黃恒一 康世印 付三麗 王英輝
摘 要:日常工作生活中,住宅的安全防范、單位的文件檔案、財務(wù)報表以及個人證件等重要材料一般加鎖保存?,F(xiàn)在流行指紋鎖配一把備用的機(jī)械鑰匙,避免指紋系統(tǒng)某天出問題或沒電等從而打不開門。但密碼可更改,指紋一生不可更改,所以一旦指紋信息泄露,指紋識別這個功能就完全不能使用,如果機(jī)械鎖鑰匙丟失,換鎖成本也很高。因此研究保密性能高的電子密碼鎖成為迫切需求。文中以STC89C52單片機(jī)為核心,基于MIT APP Inventor平臺制作APP,實現(xiàn)了用戶通過實物上的矩陣按鍵和智能手機(jī)APP均可開鎖和修改密碼的功能,具有保密性好、編碼量多、操作簡單、成本低等優(yōu)勢,提高了密碼鎖的安全性。
關(guān)鍵詞:智能手機(jī);藍(lán)牙;密碼鎖;APP;STC89C52;安全性
中圖分類號:TP242.6文獻(xiàn)標(biāo)識碼:A文章編號:2095-1302(2020)03-0-04
0 引 言
機(jī)械鎖[1-2]必須有鑰匙。如果忘帶或者弄丟鑰匙,就只能找專業(yè)開鎖的來開鎖;如果進(jìn)門后忘了拔鑰匙就會給自家的安全埋下隱患。
指紋鎖[3-4]不用擔(dān)心忘記帶鑰匙,也不用擔(dān)心出現(xiàn)鑰匙被盜等問題。除此之外,有的指紋鎖還有密碼、感應(yīng)卡、應(yīng)急鑰匙等多種開門方式,再也不用被一把鑰匙束縛。但是,通常指紋鎖選用普通的機(jī)械彈子鎖作為應(yīng)急鎖,這種結(jié)構(gòu)會給指紋鎖留下安全隱患,成為指紋鎖的致命瑕疵。同時,指紋鎖掃描表面面積大、且為塑料材質(zhì),容易被惡性破壞導(dǎo)致不正當(dāng)開鎖。比對指紋信息在鎖具中,一旦鎖具被惡意破壞,指紋信息很容易盜取。
本系統(tǒng)設(shè)計的密碼鎖具有保密性好、密碼可變、誤碼輸入保護(hù)、操作簡單等優(yōu)勢。系統(tǒng)控制程序基于Keil4[5-6]環(huán)境編程,采用Proteus進(jìn)行部分功能模擬仿真,智能手機(jī)客戶端通過APP Inventor 2開發(fā)平臺[7]完成APP設(shè)計。
1 系統(tǒng)總體設(shè)計
本系統(tǒng)的硬件設(shè)計采用STC89C52單片機(jī)作為核心控制器,由電源輸入、晶振、復(fù)位、矩陣鍵盤、藍(lán)牙、開鎖、報警和儲存等模塊組成。系統(tǒng)硬件結(jié)構(gòu)如圖1所示。
本系統(tǒng)以單片機(jī)為主控模塊,24C02存儲芯片存儲密碼,蜂鳴器報警,繼電器組成的開鎖模塊,智能手機(jī)客戶端連接的藍(lán)牙模塊,LCD1602顯示密碼的輸入與修改的顯示模塊所組成。智能手機(jī)客戶端運(yùn)用APP Inventor 2開發(fā)平臺,設(shè)計一款可以使藍(lán)牙模塊與電子密碼鎖之間進(jìn)行通信的APP,實現(xiàn)智能手機(jī)作為虛擬鑰匙遠(yuǎn)程控制電子密碼鎖開鎖及密碼的修改等功能。
電源輸入電路為系統(tǒng)提供直流電。晶振電路的主要作用是為系統(tǒng)提供基準(zhǔn)頻率,產(chǎn)生震蕩時鐘脈沖。復(fù)位電路是使系統(tǒng)中的各個功能部件處于一個初始狀態(tài),各個功能部件從這個初始狀態(tài)開始工作。單片機(jī)的復(fù)位引腳是RST引腳,開機(jī)的瞬間使引腳RST獲得一個高電平或者利用開關(guān)都可以完成復(fù)位操作。
矩陣鍵盤實現(xiàn)按鍵輸入6位密碼,主要有數(shù)字鍵0~9、確定鍵、修改鍵等。
開鎖模塊主要功能是實現(xiàn)密碼鎖的開關(guān)。用戶輸入密碼正確,單片機(jī)向開鎖模塊發(fā)送開門信號,開鎖模塊驅(qū)動電磁鎖開鎖,通過控制電路的導(dǎo)通來達(dá)到電路開鎖的目的。
報警模塊用于輸入錯誤時的發(fā)出提示音,加電后不發(fā)出聲音。輸入密碼錯誤次數(shù)達(dá)到3次時發(fā)出警報提示音。
藍(lán)牙模塊的作用是與智能手機(jī)藍(lán)牙匹配接收數(shù)據(jù),并將接收的數(shù)據(jù)交給單片機(jī)處理。
儲存模塊為了保證系統(tǒng)正確密碼的可靠性且斷電不丟失,所以需要外部儲存器來保存密碼。本設(shè)計選用AT24C02芯片作為系統(tǒng)的外部存儲設(shè)置。該芯片在通電后的工作電壓1.8~5.5 V,每次最多可以寫入8位數(shù)據(jù),其還具有較大的存儲空間,同時具有很強(qiáng)的干擾能力,可以防止電壓不穩(wěn)定造成的數(shù)據(jù)丟失。AT24C02完全符合本設(shè)計對6位數(shù)字密碼的需求。
本系統(tǒng)設(shè)計的開鎖密碼為6位密碼,單片機(jī)接收矩陣鍵盤或智能手機(jī)客戶端的密碼輸入,通過和儲存芯片中的六位密碼進(jìn)行比對,判斷輸入密碼是否正確。如果密碼輸入正確,則驅(qū)動電磁執(zhí)行器開鎖功能,紅色小燈泡發(fā)光。如果密碼輸入錯誤,蜂鳴器發(fā)出短暫提示聲,且開鎖次數(shù)加一。若密碼輸入錯誤次數(shù)超過3次,則單片機(jī)通過通信線路向報警模塊發(fā)出報警信號,蜂鳴器發(fā)出連續(xù)刺耳的報警聲。用戶可以通過按鍵設(shè)置和修改電子密碼鎖的密碼。藍(lán)牙接收模塊接收智能手機(jī)客戶端發(fā)送的指令,并傳遞給單片機(jī)處理。
2 APP Inventor設(shè)計
APP Inventor 2的開發(fā)環(huán)境對使用者非常友好,幾乎不用提前系統(tǒng)性地學(xué)習(xí),只需要進(jìn)行簡單了解,即可以上手編輯。其優(yōu)勢概括為:簡單的操作方式、可視化的編輯、方便理解的模塊化、邏輯鮮明、正確性相對較高。
APP Inventor 2是一個基于網(wǎng)頁、可拖拽的Android程序開發(fā)平臺,可以將枯燥無味的一行行代碼轉(zhuǎn)變成不同顏色的語句模塊欄。它能讓原本不熟悉編程,甚至不懂編程的人也能堅持開發(fā)出自己的Android APP。
APP Inventor 2具體使用如下:登錄網(wǎng)站http://app.gzjkw.net/選用“登錄”方式后,點(diǎn)擊“新建項目”,創(chuàng)建新的項目;在組件設(shè)計界面設(shè)置界面,在表格布局中添加按鈕,并選擇一個列表選擇框,給各個按鈕命名;非可視組件中添加藍(lán)牙客戶端以及對話框;在素材中添加圖片作為APP背景即可。對應(yīng)本系統(tǒng)設(shè)計的APP,讓用戶直接在手機(jī)上操控,實現(xiàn)電子密碼鎖的開鎖或者修改密碼等功能。
2.1 藍(lán)牙連接和通信
本文通過藍(lán)牙連接[8]按鈕來完成手機(jī)與電子密碼鎖的連接與通信,如圖2所示。
2.2 與下位機(jī)的通信
12個按鈕分別設(shè)定為數(shù)字鍵0~9、確認(rèn)鍵以及修改鍵。由控制面板中的發(fā)生條件,到調(diào)用藍(lán)牙客戶端發(fā)送文本,由文本內(nèi)容決定該按鈕功能。如圖3所示,發(fā)送文本“0”則該按鍵無功能。發(fā)送文本“ONA”則該按鍵的功能為確定。
2.3 打包APK
完成APK[9]組件設(shè)計和邏輯設(shè)計后,點(diǎn)擊打包APK按鈕,選擇打包APK并顯示二維碼,如圖4所示。然后下載到智能手機(jī)上,安裝客戶端并調(diào)試。
3 主程序設(shè)計
用戶輸入密碼,若輸入密碼錯誤蜂鳴器發(fā)出響聲,輸入次數(shù)加1;密碼錯誤次數(shù)達(dá)到3次報警系統(tǒng)報警,蜂鳴器發(fā)出連續(xù)蜂鳴聲報警。若輸入密碼正確LED燈泡亮起,等待輸入命令,用戶可以自行更改密碼,新密碼寫入24C02中。系統(tǒng)采用C語言編寫,主要包括主程序和子程序。主程序完成系統(tǒng)的初始化、電子密碼鎖的開啟、關(guān)閉以及密碼的修改功能。子程序主要完成輸入狀態(tài)的顯示、按鍵識別和藍(lán)牙連接等功能。主程序流程如圖5所示。
4 系統(tǒng)調(diào)試
硬件通電完成后,開始對實物進(jìn)行功能調(diào)試,具體調(diào)試功能分為:開鎖、密碼修改、藍(lán)牙模塊、智能手機(jī)客戶端和報警等功能調(diào)試,具體的調(diào)試過程如下。
4.1 開鎖電路調(diào)試
接通電源,液晶顯示器初始狀態(tài)如圖6(a)所示,LCD顯示“Password Lock Input:”光標(biāo)提示輸入密碼;通過矩陣鍵盤輸入初始6位密碼“123456”,6位數(shù)字密碼均被用“*”加密顯示,再點(diǎn)擊“確認(rèn)”按鈕。若輸入密碼正確,則呈開鎖狀態(tài),且紅色LED點(diǎn)亮,如圖6(b)所示。
4.2 密碼修改調(diào)試
密碼輸入正確后,點(diǎn)擊“修改”按鈕可以進(jìn)行密碼的修改。初始界面如圖7(a)所示,LCD顯示“Input1:”和“Input2:”,通過矩陣鍵盤輸入新的6位密碼,輸入兩遍,點(diǎn)擊“確認(rèn)”按鈕,密碼修改完成。密碼修改完成界面如圖7(b)所示,LCD顯示“Password Succeed”。
4.3 藍(lán)牙模塊調(diào)試
打開智能手機(jī)客戶端,點(diǎn)擊“藍(lán)牙連接”按鈕,選擇藍(lán)牙名稱”BT04-A”,點(diǎn)擊連“連接”,如圖8(a)所示。藍(lán)牙模塊連接成功發(fā)出一聲”嘀”的提示音,同時智能手機(jī)屏幕跳轉(zhuǎn)到“0~9”“修改”“確定”按鍵和“藍(lán)牙已連接”界面,如圖8(b)所示。
4.4 智能手機(jī)客戶端調(diào)試
智能手機(jī)與藍(lán)牙模塊連接后,通過智能手機(jī)上鍵盤輸入6位密碼,實物硬件上LCD以*加密顯示,點(diǎn)“確定”開鎖,如圖9(a)所示。接著,智能手機(jī)客戶端點(diǎn)擊“修改”按鈕,通過手機(jī)鍵盤輸入新的6位密碼,如圖9(b)所示。
4.5 報警模塊調(diào)試
輸入6位密碼,點(diǎn)擊“確認(rèn)”,密碼正確,則電子密碼鎖打開,蜂鳴器無響應(yīng);若輸入密碼錯誤,蜂鳴器發(fā)出一聲報警提示聲。當(dāng)輸入密碼的錯誤連續(xù)3次時,蜂鳴器持續(xù)報警。
5 結(jié) 語
本系統(tǒng)實現(xiàn)了智能手機(jī)作為虛擬鑰匙[10],可以遠(yuǎn)程控制電子密碼鎖的開鎖及密碼修改等功能,文章對系統(tǒng)軟硬件設(shè)計與實現(xiàn)過程做了詳細(xì)介紹,系統(tǒng)穩(wěn)定可靠。但是該設(shè)計功能仍需進(jìn)一步完善,后期可以安裝門鈴、語音報警和報警信息發(fā)送功能,加強(qiáng)電子密碼鎖的安全等級。
參 考 文 獻(xiàn)
[1]曾雄飛.一種機(jī)械電子鎖[J].機(jī)電工程技術(shù),2015,44(2):65-67.
[2]傅強(qiáng),唐嵐,張興敢.一種新型電子機(jī)械鎖的設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(8):171-174.
[3]黎安慶,唐飛龍.基于WiFi的指紋鎖設(shè)計[J].機(jī)電信息,2019(18):118-119.
[4]馬馨雅.基于STM32的指紋識別門禁系統(tǒng)[J].電子世界,2018(24):157.
[5]鄧力.基于Keil時序邏輯和Proteus的電路仿真[J].實驗室研究與探索,2017,36(1):80-83.
[6]王超,符曉玲.基于Proteus和Keil的單片機(jī)演奏樂曲的仿真[J].電子設(shè)計工程,2014,22(14):103-106.
[7]李文川,曾玉.APP Inventor2的項目應(yīng)用及教學(xué)策略[J].電子技術(shù)與軟件工程,2018(11):55-56.
[8]李洋博,趙澤林,李圓,等.基于32單片機(jī)控制的智能語音刷卡系統(tǒng)[J].電腦編程技巧與維護(hù),2019(3):125-127.
[9]石宗育,劉凱,謝飛帆.Andorid應(yīng)用程序逆向分析及應(yīng)用[J].電腦知識與技術(shù),2018,14(19):96-98.
[10] DANIEL Thunberg.安全的汽車虛擬鑰匙[J].上海信息化,2019(3):66-68.