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