杲靖,常森淏,謝光前,張建兵,瞿世云,曾祥峰
(常州工學院計算機信息工程學院,江蘇常州 213032)
隨著科學技術的不斷進步和人們生活水平的不斷提高,人們出于對家庭和財產的安全考慮,對門鎖的安全需求也越來越高。然而隨著人們感覺到高科技便利的同時,也出現許多的不安全因素,傳統的機械門鎖存在一些固有的缺點,盡管在設計上進行了精心考慮,但機械鑰匙容易復制和丟失等問題時常發生。
為了解決這個問題,智能門鎖應運而生,為人們提供了有效將不法分子隔離在門外的解決方案。與傳統機械鎖相比,智能門鎖顯著提升了門鎖的安全性,為用戶提供更多的安全保障。而目前市面上的智能門鎖在遠程解鎖、語音解鎖等方面仍然不夠完善,無法滿足生活中一些經常出現的應用場景,例如:不方便用手解鎖、遠程為訪客解鎖等。另外,隨著互聯網時代的到來,智能門鎖的網絡化趨勢越來越明顯,智能門鎖更需要保護用戶數據和安全服務,為此設計了一種更加智能、更加方便、更加安全的智能門鎖控制系統,這也是我們研究和設計此項目的主要原因和重點[1-4]。
智能門鎖控制系統設計框圖如圖1 所示。基于STM32 的智能門鎖控制系統由硬件系統與軟件系統組合而成。硬件系統的設計由STM32 單片機核心板電路、指紋識別模塊、遠程控制模塊、ESP32語音模塊等組成;軟件系統由安卓App、數據庫、云端服務器等組成。框架總體分為六大部分包括傳感器、執行器、遠程控制與數據記錄端、物聯網模塊、處理器和語音控制端。

圖1 系統總體設計框架圖
基于STM32 的智能門鎖控制系統結構如圖2 所示,包括指紋識別模塊、射頻識別模塊、舵機模塊、蜂鳴器模塊、無線傳輸模塊、語音識別模塊、觸摸屏模塊、人體感應模塊以及STM32F103低功耗系列單片機及其電路組成的電路。STM32 芯片通過USART 與無線傳輸模塊、指紋模塊、語音模塊進行通信,通過GPIO接收人體感應信號以及控制有源蜂鳴器和舵機模塊,通過SPI與射頻識別模塊通信,通過I2C與觸摸屏模塊進行交互。

圖2 智能門鎖系統結構
在整個硬件系統中,微處理器扮演著至關重要的角色。它對其他硬件設備的選擇具有重要的影響。相對于C51 單片機和Arduino,ARM 處理器的資源更加豐富,擁有更強大的計算能力和擴展能力,可以滿足更復雜的應用需求,同時其功耗也較低。
STM32 核心板實物如圖3 所示,智能門鎖采用STM32F103ZET6開發板作為主控板,其具有豐富的硬件資源,提供了足夠的存儲空間用于程序和數據的存儲,可以適用于需要較高性能和多種外部設備連接的應用場景。該STM32芯片還包括多種類型定時器,這些定時器可以用于各種計時和定時任務的處理。

圖3 核心板實物圖
本系統使用了LIENTEK 公司推出的ATK-AS608光學指紋識別模塊。這款模塊體積小、功耗低、接口簡單,同時還具備高可靠性、快速識別速度以及適應干濕手指和快速指紋搜索的能力。該指紋識別模塊通過USART2與STM32主控芯片相連,實現了指紋的錄入和識別功能。
觸摸屏模塊可以根據主控的需要,讀取對應數量的觸控信息。觸摸屏模塊用于用戶與STM32 主控芯片進行交互,并可實現密碼開鎖、修改密碼和添加指紋等操作。
傳統智能門鎖在語音識別功能上有很大的不足,人為添加的擾動表現在聲學特征上即為噪聲,并不影響人耳對于音頻內容的獲取人的聲音[5],不僅容易被模仿和錄制,且不同地區的用戶口音不同,語音識別難度大,傳統的聲紋語音解鎖模塊是一直處于開啟狀態耗電量較大。
針對傳統智能門鎖在語音解鎖上的不足,本系統采用通過Wi-Fi 連接到互聯網進行智能配網的設置[6],通過MQTT 協議進行數據傳輸,利用第三方平臺與“米家”進行交互。通過“米家”的小愛同學,錄入用戶個人的聲紋信號特征參數存儲在庫中,同時設置好語音開鎖指令保存在語音助手中,當語音助手識別到有人說話的語音信號后,語音助手進行語音信號特征的參數對比,確認是用戶本人后,提示用戶已經喚醒語音助手,用戶接到提示后說出開鎖指令,語音助手用已經保存的指令和用戶開鎖指令進行語音數據對比,把對比成功或者失敗的指令回傳給ESP32,再讓ESP32通過串口發送數據給STM32控制是否開鎖。
無線聯網模塊由ESP8266 NodeMCU 開發板實現,如圖4 無線傳輸控制系統框圖所示。STM32 主控芯片與ESP8266 板直接連接,ESP8266 板通過與MQTT服務器連接,再與手機通信,實現無線傳輸控制功能。ESP8266板訂閱控制命令主題,接收遠程控制指令,再通過串口將指令發送給主控芯片,實現數據傳輸和遠程控制功能。

圖4 無線傳輸控制系統框圖
MQTT 協議作為一種傳輸消息的協議類型,是以主題訂閱模型和消息發布模型為基礎[7]。為了確保數據的安全傳輸,ESP8266 板與MQTT 服務器的通信采用TLS協議加密,該協議提供了對應用層數據的身份認證、完整性驗證以及機密性保護等功能[8]。一般情況下,TLS 協議認證采用單向認證,即客戶端會驗證MQTT 服務器身份,MQTT 服務器不對客戶端進行認證。但是為了提高數據傳輸的安全性能,本系統的TLS 認證采用雙向認證,即MQTT 服務器和客戶端都會互相認證,雙方之間要交換證書,這樣不僅能夠防止第三方對數據的竊聽,也能夠鑒別客戶端真偽性,同時還可以確保數據的完整性并避免數據被篡改。
軟件設計方面,軟件設計從智能門鎖功能出發,將功能模塊化,搭建層次化軟件架構,最終將智能門鎖軟件設計分為三部分:App設計、數據庫設計、服務器設計。MQTT 服務器連接“智能門鎖”App、后端服務器和STM32芯片,在App發送指令到STM32芯片執行對應操作時,也會有相應的記錄通過后端服務器存儲在數據庫中,本系統軟件設計框圖如圖5所示。

圖5 軟件設計框圖
系統軟硬件如圖6 所示,為完成智能門鎖控制系統的建設,將各功能模塊與主控模塊進行焊接,確保線路連接正常。經過調試修改確認無誤后,對智能門鎖的語音模塊和無線傳輸控制模塊等功能模塊進行逐一測試,隨后對手機App 軟件進行測試,測試結果表明可有效進行語音控制和遠程控制,使得門鎖解鎖方式更加多樣,解鎖更加便捷。

圖6 系統軟硬件圖
最后進行了軟硬件聯合調試,測試結果表明本系統設計的樣機可以實現預期的控制效果,驗證了硬件和軟件方面方案的正確性和可行性。
總體來說,這款基于STM32F103單片機開發的智能門鎖系統,有效解決了傳統智能門鎖存在的安全性低、價格高以及解鎖不夠便利等問題。該系統利用語音解鎖和遠程解鎖功能,可有效解決不方便用手解鎖或者不方便為訪客解鎖的問題。同時,該系統還提供了一種基于TLS 雙向認證的安全的MQTT 連接方法,增加了系統的安全性。該系統整體設計高度完備且實用,明顯提升了開鎖的安全性和便捷性。在未來的研究與開發中,此類系統將繼續優化,并適應更多的使用環境和需求,為智能門鎖的進一步發展開辟了新的可能性。