王夢坤
(安徽理工大學(xué)電氣與信息工程學(xué)院,安徽 淮南 232000)
智能鎖具的發(fā)展和應(yīng)用越來越普及,通常意義上的智能門鎖包括卡片鎖、指紋鎖、密碼鎖、聲紋鎖、人臉識別鎖等。這些門鎖存在如下缺點:價格昂貴、能耗大、安裝部署不便[1],而射頻識別門禁系統(tǒng)存在認(rèn)證介質(zhì)容易丟失、損壞,指紋識別門禁系統(tǒng)容易受到環(huán)境的影響[2]。采用窄帶物聯(lián)網(wǎng)(narrow-band Internet of thing,NB-IoT)無線通信技術(shù)可對鎖狀態(tài)實現(xiàn)無線監(jiān)測,通過GPS模塊獲得鎖具的位置信息,通過藍牙模塊與手機APP連接完成開關(guān)鎖任務(wù)。NB-IoT覆蓋廣,信號強以及功耗和成本上相比于其他無線通信模塊的優(yōu)勢,而藍牙透傳功能較為方便,較為符合鎖具的監(jiān)控和操作。出于安全性和簡便性考慮,將鎖具設(shè)計為內(nèi)嵌式結(jié)構(gòu)[3],提供位置信息,用戶登錄APP申請鎖的ID和名稱及操作權(quán)限后需要管理員在云平臺審批,審批通過后手機APP方可開關(guān)鎖,開關(guān)鎖執(zhí)行后,鎖狀態(tài)等數(shù)據(jù)信息將由無線通信模塊上傳到云平臺進行監(jiān)控,大大降低了配電柜物品被盜的風(fēng)險[4]。
基于NB-IoT智能門鎖系統(tǒng)由門鎖信息采集終端,數(shù)據(jù)傳輸平臺,云監(jiān)控平臺,開關(guān)鎖執(zhí)行機構(gòu)等組成。數(shù)據(jù)采集終端將鎖舌檢測模塊采集到的鎖狀態(tài)信息以數(shù)據(jù)包的形式通過NB-IoT模塊上傳到云平臺上,用戶既可以用云平臺完成對數(shù)據(jù)的監(jiān)測和儲存,也可以下發(fā)命令到終端。鎖舌檢測模塊檢測到鎖如果沒有鎖到位,將會上傳錯誤信息給云平臺,進而查出錯誤鎖的位置信息進行調(diào)整和維修。系統(tǒng)總體架構(gòu)如圖1所示。
圖1 系統(tǒng)總體架構(gòu)
智能門鎖系統(tǒng)以STM32F103C8T6嵌入式單片機為主控芯片,硬件框圖如圖2所示。硬件部分由電源模塊、NB-IoT模塊、GPS定位模塊、數(shù)據(jù)存儲模塊、藍牙通信模塊、鎖舌檢測模塊(光電開關(guān)模塊)、電機驅(qū)動模塊、門磁檢測模塊等組成。系統(tǒng)主要實現(xiàn)以下功能:(1)數(shù)據(jù)存儲芯片用來儲存單片機與藍牙、NB-IoT模塊互動的數(shù)據(jù)。(2)GPS模塊用來上傳鎖體的位置信息給云平臺。(3)當(dāng)用戶用APP向云平臺申請鎖的操作權(quán)限后,云平臺管理員(可以和用戶是同一個人)收到申請后將操作權(quán)限審批通過,藍牙模塊連接手機藍牙,就可以通過手機APP下達開關(guān)鎖指令,而關(guān)鎖完成后會向云平臺上傳鎖的狀態(tài)。(4)鎖舌檢測模塊通過光電開關(guān)讀取高低電平,進而確認(rèn)鎖的狀態(tài)。(5)若開鎖后不進行藍牙關(guān)鎖,門合上后門磁檢測到關(guān)門信號后1min進行關(guān)鎖。(6)電機驅(qū)動芯片用來驅(qū)動電機拖動鎖舌進行開關(guān)鎖。
圖2 系統(tǒng)硬件圖
NB-IoT相比于傳統(tǒng)的通信技術(shù)(Zigbee通訊和GPRS通訊)具有深覆蓋、低功耗、大連接、低成本等優(yōu)勢,華為是國內(nèi)NB-IoT發(fā)展的強有力推動者,目前為止,NB-IoT已經(jīng)運用到智慧城市(智能停車、智能抄表、路燈檢測等)、智慧工業(yè)等(智能農(nóng)業(yè)、設(shè)備檢測、物流跟蹤等)、智慧生活(智能樓宇、跟蹤護航、環(huán)境監(jiān)測等)方面[5]。NB-IoT模塊與STM32的Usart3進行通信,NB-IoT模塊的RX與MCU的Usart3_TX引腳連接,而NB-IoT模塊的TX與MCU的Usart3_RX引腳連接。為了讓云監(jiān)控平臺能隨時找到門鎖信息采集終端,NB-IoT模塊使用DRX模式。DRX雖然叫做“不連續(xù)接收”,但對門鎖信息采集終端采用DRX模式,相當(dāng)于一直處于監(jiān)聽狀態(tài),隨時都可以收到來自云監(jiān)控平臺的控制指令,圖3為無線通信模塊與終端收發(fā)數(shù)據(jù)流程圖,為了增加收發(fā)數(shù)據(jù)的準(zhǔn)確性,加入了5s延時函數(shù)。
全球定位系統(tǒng)簡稱為GPS(Global Positioning System),具有實時、全天候、全球性的精準(zhǔn)導(dǎo)航要求,經(jīng)過不斷的升級和更新后,GPS全球定位系統(tǒng)成為應(yīng)用最為廣泛的衛(wèi)星定位系統(tǒng)[6]。系統(tǒng)GPS模塊與STM32的Usart2進行通信,RX引腳接MCU的Usart2_TX,而模塊的TX接MCU的Usart2_RX。通信開始之前先要系統(tǒng)初始化,之后GPS模塊要初始化,NB-IoT模塊將門鎖位置數(shù)據(jù)上傳給云控制平臺,云平臺接收到門鎖的位置數(shù)據(jù)后要查驗位置信息是否有效,無效則返回,若位置有效將對門鎖信息采集終端發(fā)來的經(jīng)度、緯度和高度進行解析,進而顯示具體的位置信息,GPS模塊的工作流程如圖4所示。
圖3 無線通信模塊與終端收發(fā)數(shù)據(jù)流程圖
圖4 GPS模塊工作流程圖
當(dāng)開關(guān)鎖執(zhí)行完成后,門鎖信息采集終端會上傳給云控制平臺此時鎖舌的狀態(tài),一般情況下,云控制平臺會顯示開鎖正?;蜿P(guān)鎖正常,不會下達鎖舌調(diào)整指令,若鎖舌位置錯誤,上傳的信息會顯示狀態(tài)錯誤,云平臺此時將給門鎖信息采集終端下達調(diào)整指令直至鎖舌位置正確,如圖5所示。
門磁檢測模塊由兩部分組成,磁鐵安裝在門上,檢測模塊在配電柜里,檢測模塊一端接到MCU的PB6和3.3V上,用來讀取高低電平,另一端接到門鎖信息采集終端的GND上。門開著時,由于檢測模塊檢測不到磁鐵,PB6為高電平,門關(guān)好以后,兩端引腳短路,PB6為低電平,若手機APP不執(zhí)行關(guān)鎖指令,1min后將關(guān)鎖,圖6為門磁關(guān)鎖流程圖。
圖5 鎖舌狀態(tài)上報流程圖
圖6 門磁關(guān)鎖流程圖
智能鎖研發(fā)的目的,是為了提高門鎖的安全性,手機藍牙為智能門鎖的操作提供了方便,也避免了鑰匙被仿制的不安全問題[7]。藍牙模塊與STM32的Usart1進行透傳,藍牙模塊的TX與MCU的Usart1_RX引腳連接,藍牙模塊的RX與MCU的Usart1_TX引腳連接。首先要對Usart1進行初始化,開啟Usart1中斷隨時接收手機APP發(fā)來的數(shù)據(jù),若要操作開關(guān)鎖需要用戶通過APP寫入門鎖的ID和申請操作權(quán)限,管理員在云控制平臺審批權(quán)限通過后,用戶才能開關(guān)鎖,開鎖完成后將鎖舌的狀態(tài)和門鎖的位置信息以數(shù)據(jù)包的形式上傳到云平臺[8],如圖7所示。
手機APP的開發(fā)基于Android操作系統(tǒng),出于方便用戶操作的考慮,手機APP界面簡潔易懂。信息界面顯示的是通過審核的鎖的ID號,同時也顯示了用戶和管理員的信息,若為超級管理員可自己申請操作權(quán)限并可以自己審批。操作界面顯示的是開鎖和關(guān)鎖指令,藍牙名稱和鎖的ID也顯示在上面。工作界面主要顯示的是權(quán)限審批和操作記錄,而聯(lián)系人為用戶和管理員名單,其余界面為注銷、切換用戶,退出登錄等。
圖7 藍牙模塊工作流程圖
云監(jiān)控平臺對整個系統(tǒng)的數(shù)據(jù)進行控制和處理,云監(jiān)控平臺功能如圖8所示,平臺上可以顯示鎖的位置信息,鎖的數(shù)目,鎖的開關(guān)次數(shù)記錄,鎖的狀態(tài),管理員對用戶申請操作權(quán)限的請求進行審批,管理門鎖的ID號并確認(rèn)是否為有效ID,對狀態(tài)錯誤的鎖下達調(diào)整指令進行調(diào)整,當(dāng)平臺出現(xiàn)Bug時管理員會及時后臺修復(fù)。
圖8 云監(jiān)控平臺功能圖
基于NB-IoT智能門鎖系統(tǒng)主程序流程圖如圖9所示,門鎖信息采集終端接通電源后,STM32底層硬件將初始化,完成時鐘配置后,GPIO隨即初始化,為了讓延時函數(shù)能工作,定時器也要初始化,然后完成幾個模塊的初始化工作。調(diào)用藍牙模塊配合手機APP實現(xiàn)開關(guān)鎖操作;鎖舌檢測模塊檢測鎖舌是否到位,未到位將錯誤信息通過NB-IoT模塊上傳給云控制平臺,云控制平臺通過NB-IoT模塊下達調(diào)整指令對鎖舌進行調(diào)整;門鎖狀態(tài)上傳后,GPS定位模塊通過NB-IoT模塊進行位置信息上傳至云控制平臺;門鎖信息采集終端的外部模塊需要完成任務(wù)執(zhí)行、響應(yīng)各種中斷、數(shù)據(jù)分析和處理等工作。
圖9 系統(tǒng)主程序流程圖
門鎖信息采集終端和云監(jiān)控平臺是不間斷通訊,智能門鎖系統(tǒng)利用鎖舌檢測模塊檢測鎖舌的狀態(tài),通過NB-IoT模塊上傳到云控制平臺的數(shù)據(jù)判斷門鎖是否鎖好,若鎖舌狀態(tài)錯誤,平臺會通過NB-IoT模塊下達給門鎖信息采集終端作出調(diào)整,若調(diào)整出錯或鎖出現(xiàn)故障管理員可通過GPS模塊上傳的位置信息查看門鎖的具體位置,工作人員即可去具體位置進行檢修、維護,大大提高了門鎖的安全性,降低了失竊率,具有良好的使用價值和推廣前景。