劉 巖,阮治綱,趙壯壯,卓洪陽(yáng),高宏峰
(河南科技大學(xué)信息工程學(xué)院,河南 洛陽(yáng) 471023)
近年來(lái),智能家居快速普及。但是在電子門(mén)鎖領(lǐng)域,市場(chǎng)上的產(chǎn)品大都需要人們手動(dòng)開(kāi)鎖和上鎖,如插卡式,非常不方便。鑒于這種情況,本系統(tǒng)對(duì)當(dāng)前市場(chǎng)上的電子門(mén)鎖進(jìn)行了改進(jìn),增加了APP解鎖這一功能。用戶使用時(shí),可以通過(guò)手機(jī)上的APP來(lái)解鎖。在酒店、旅館等應(yīng)用場(chǎng)所,當(dāng)旅客通過(guò)互聯(lián)網(wǎng)預(yù)定房間后,如果有人已得到旅客的同意要進(jìn)去,旅客就可以用APP遠(yuǎn)程控制預(yù)定的房間。并且在擁有大量房間(如賓館)的場(chǎng)合下,可以通過(guò)手機(jī)APP控制某個(gè)房間的門(mén)鎖開(kāi)關(guān)。
圖1 遠(yuǎn)程門(mén)鎖控制系統(tǒng)總體框圖
圖1為遠(yuǎn)程門(mén)鎖控制系統(tǒng)的總體設(shè)計(jì)框圖,包括云服務(wù)器、門(mén)鎖端、手機(jī)客戶端。手機(jī)客戶端連接服務(wù)器,然后向服務(wù)器發(fā)送控制門(mén)鎖的指令。服務(wù)器等待手機(jī)客戶端發(fā)來(lái)指令并把指令轉(zhuǎn)發(fā)給門(mén)鎖端。門(mén)鎖端與服務(wù)器建立長(zhǎng)連接,等待服務(wù)器發(fā)來(lái)指令然后進(jìn)行解鎖或關(guān)鎖操作。除此之外,門(mén)鎖端還可使用本地密碼解鎖和指紋解鎖。
門(mén)鎖裝置分為硬件電路和軟件程序兩部分。
本系統(tǒng)硬件主要包括:STM32F103C8T6、矩陣鍵盤(pán)、GSM模塊、指紋模塊、L298N驅(qū)動(dòng)、OLED顯示模塊。本系統(tǒng)所用鎖為電磁鎖,其具有使用方便,安全可靠,穩(wěn)定耐用的特點(diǎn)。
STM32F103C8T6用來(lái)作為門(mén)鎖端的控制芯片,矩陣鍵盤(pán)用來(lái)選擇開(kāi)鎖模式和輸入密碼,GSM模塊用來(lái)連接服務(wù)器,指紋模塊用來(lái)進(jìn)行指紋解鎖,L298N驅(qū)動(dòng)用來(lái)驅(qū)動(dòng)電磁鎖,OLED顯示模塊用來(lái)進(jìn)行人機(jī)交互。
圖2為門(mén)鎖裝置硬件結(jié)構(gòu)圖,微控制器STM32使用串口與GSM模塊進(jìn)行通信,使GSM模塊與服務(wù)器建立長(zhǎng)連接。當(dāng)服務(wù)器發(fā)來(lái)指令時(shí),GSM模塊會(huì)把收到的指令通過(guò)串口發(fā)給STM32,STM32收到指令后通過(guò)通用IO口驅(qū)動(dòng)L298N模塊控制電磁門(mén)鎖的開(kāi)關(guān)。除此之外,用戶還可選擇密碼解鎖和指紋解鎖。當(dāng)使用密碼解鎖時(shí),用戶通過(guò)矩陣鍵盤(pán)輸入事先保存到程序中的密碼來(lái)解鎖。當(dāng)使用指紋解鎖時(shí),用戶的指紋放到指紋模塊上,指紋模塊錄入用戶指紋并與指紋模塊庫(kù)中的指紋進(jìn)行匹配。如果指紋存在,指紋模塊就通過(guò)串口向STM32發(fā)送指紋正確的指令,STM32就驅(qū)動(dòng)L298N打開(kāi)電磁鎖。除此之外,門(mén)鎖端用一個(gè)獨(dú)立按鍵用來(lái)手動(dòng)鎖門(mén)。
圖2 門(mén)鎖端硬件結(jié)構(gòu)圖
圖3為門(mén)鎖軟件總體結(jié)構(gòu)圖,門(mén)鎖軟件有三種模式:遠(yuǎn)程解鎖模式、密碼解鎖模式和指紋解鎖模式。門(mén)鎖端上電后默認(rèn)為遠(yuǎn)程解鎖模式,可以通過(guò)矩陣鍵盤(pán)選擇程序去選擇使用哪種模式解鎖。還可以用按鍵選擇添加/刪除指紋程序去添加或刪除指紋。
圖3 門(mén)鎖軟件總體結(jié)構(gòu)圖
圖4為遠(yuǎn)程解鎖程序流程圖。如果STM32收到開(kāi)鎖指令,就執(zhí)行開(kāi)鎖程序并向服務(wù)器發(fā)送回應(yīng)。遠(yuǎn)程關(guān)鎖程序和遠(yuǎn)程解鎖程序是一樣的,這里就不介紹了。
圖4 遠(yuǎn)程解鎖程序流程圖
圖5為密碼解鎖程序流程圖。首先輸入密碼,然后檢測(cè)密碼是否正確,密碼正確就執(zhí)行開(kāi)鎖程序,密碼錯(cuò)誤OLED就顯示密碼錯(cuò)誤。
圖6為指紋解鎖程序流程圖。程序等待指紋錄入完畢后,會(huì)與指紋庫(kù)中指紋進(jìn)行匹配,如果庫(kù)中已有這個(gè)指紋就執(zhí)行開(kāi)鎖程序。否則就不開(kāi)鎖并讓OLED顯示指紋錯(cuò)誤。
圖5 密碼解鎖流程圖
圖6 指紋解鎖流程圖
門(mén)鎖軟件中還有添加/刪除指紋程序。為保證門(mén)鎖的安全性,這個(gè)程序要輸入兩個(gè)密碼,兩次密碼都正確才能用按鍵去選擇添加或刪除指紋的程序。如果是添加指紋,就先錄入指紋然后指紋模塊就會(huì)自動(dòng)保存然后向STM32發(fā)送添加成功的指令。如果是刪除指紋,首先用按鍵選擇需要?jiǎng)h除的指紋的序號(hào),然后STM32向指紋模塊發(fā)送刪除這個(gè)指紋的命令,指紋模塊就會(huì)刪除相應(yīng)指紋。
云服務(wù)器簡(jiǎn)稱ECS,可以為中小企業(yè)用戶提供處理能力可彈性變化的計(jì)算服務(wù)。本系統(tǒng)服務(wù)器架構(gòu)如圖7所示,云服務(wù)器作為整個(gè)系統(tǒng)的核心,它為手機(jī)客戶端和門(mén)鎖端提供接口。手機(jī)客戶端連接云服務(wù)器后進(jìn)行注冊(cè)和登陸一個(gè)賬號(hào),然后向服務(wù)器發(fā)送開(kāi)鎖或關(guān)鎖指令,服務(wù)器運(yùn)行消息轉(zhuǎn)發(fā)程序把指令轉(zhuǎn)發(fā)給門(mén)鎖端。
圖7 服務(wù)器架構(gòu)圖
圖8為APP設(shè)計(jì)框圖,其主要分為人機(jī)交互層和內(nèi)部邏輯層。人機(jī)交互層主要是制作人機(jī)交互界面,內(nèi)部邏輯層主要負(fù)責(zé)處理來(lái)自人機(jī)交互層的數(shù)據(jù),并把人機(jī)交互界面中輸入的指令使用socket協(xié)議發(fā)送給服務(wù)器。除此之外,內(nèi)部邏輯層還可以讓人機(jī)交互界面顯示從服務(wù)器接收到的消息。
圖8 手機(jī)客戶端結(jié)構(gòu)圖
本文主要闡述了一種新型遠(yuǎn)程電子門(mén)鎖系統(tǒng)。本系統(tǒng)將APP與門(mén)禁系統(tǒng)相結(jié)合,更有利于用戶了解門(mén)鎖的狀態(tài)和進(jìn)行控制。與傳統(tǒng)的電子門(mén)鎖產(chǎn)品相比,它的安全性得到了較大的改善,實(shí)用性更強(qiáng)。它既可以應(yīng)用在家庭門(mén)禁系統(tǒng),也可以應(yīng)用在酒店等服務(wù)領(lǐng)域,具有很好的實(shí)用價(jià)值和應(yīng)用前景。