項宇楠,胡小小,李章東,傅偉聰,王 鵬,沈艷霞
(江南大學 物聯網工程學院,江蘇 無錫 214122)
防盜鎖是大部分家庭都需要購買的鎖具,與人們的生活密切相關。鎖作為家中第一道安全防線,不僅可以保衛家中安全,更是提升我們生活品質的標志。在智能家居時代,智能鎖是智能化時代的體現,機械鎖的安全性和便利性已經無法滿足人們的需求。“互聯網+”、智慧生活、物聯網技術的觸角已伸向每家每戶都離不開的門鎖[1]。此前,智能門鎖、安防門鎖、電子門鎖等主要在辦公樓、酒店賓館等地使用,如今隨著家庭安防需求的增加及智能產品的普及,家用門鎖已成為智能化搶占的市場。近期,智能門鎖產品層出不窮,在智能化和安全性等方面精益求精,目前已研發出人臉識別鎖、指紋密碼鎖、刷卡鎖和數字密碼鎖等。智能門鎖作為新一代識別技術優勢明顯,將逐漸取代純機械鎖,成為鎖具行業的新主角,并且這一趨勢不可逆轉。本文所設計的智能門鎖使用聲紋識別技術,不僅使家用門鎖在安全性和便利性等方面得到了大幅提升,還可使用APP遠程控制進行門鎖的開關動作,遠程監視門鎖的開關狀態。
SPCE061A單片機可對特定人員進行語音識別,識別成功率高達80%以上,還可控制高低電平動作進行開鎖操作;另一方面通過手機APP或網頁端與服務器連接后,服務器與WiFi模塊可進行通信并傳輸數據,由WiFi模塊向單片機輸入信號,單片機動作以實現對門鎖的遠程控制。
本系統設計的基于SPCE061A單片機的語音識別智能門鎖的主要組成包括61單片機、WiFi模塊ESP8266、傳感器、網絡服務器、門鎖控制終端、LED燈控制終端、繼電器、電子鎖。
61單片機可進行語音錄入,通過對語音信號進行壓縮編碼,運用壓縮算法放音,再通過編寫的程序進行訓練,將訓練后的語音自動存儲在片內存儲器中,訓練成功后即可進行語音識別。方案設計如圖1所示,其客戶終端可選手機APP或網頁,網絡服務器采用貝殼物聯云端服務器,WiFi模塊與家中WiFi互聯后再與單片機系統相連,就可通過WiFi模塊將來自互聯網的控制命令轉發至串口,此時WiFi模塊的串口與單片機串口相連,單片機解讀串口數據命令,由繼電器通過單片機I/O口輸入的電平變化選擇發生階躍響應,觸發電子鎖,實現手機APP或者網頁對其的控制。

圖1 總體方案設計
系統采用SPCE061A單片機進行語音識別[2]。SPCE061A單片機具有功耗低、功能強、效率高、可靠性好且易于擴展等優點。SPCE061A配備了凌陽科技開發的最新16位微處理器,其內部含有8個寄存器,4個通用寄存器R1~R4,1個程序計數器PC,1個堆棧指針SP,1個基址指針BP,1個寄存器SR,通用寄存器R3和R4結合組成一個32位寄存器MR,MR可以作為乘法運算和內積運算的目標寄存器[3]。此外,SPCE061A還有3個FIQ中斷和14個IRQ中斷,及1個由指令控制的軟中斷。客戶終端采用Arduino單片機系統實現[4],其核心是ATMEGA328P-AU單片機,配上周邊器件,安裝在一快印刷電路板上能夠獨立完成設定功能,同時還能通過各類傳感器感知環境,通過控制燈光、馬達和其他裝置來反饋、影響環境。Arduino單片機系統一端通過傳感器與門鎖相連,一端通過ESP8266 WiFi模塊與家庭WiFi相連,由此實現通過手機APP控制門鎖開關。
將SPCE061A單片機用于語音識別模塊[5],SPCE061A的內部結構如圖2所示。

圖2 SPCE061A單片機內部結構
模塊含有84個引腳,可進行多輸入輸出操作,且32 k的FLASH存儲器可進行語音存儲,7通道10位模/數轉換器與單通道聲音模/數轉換器可方便對語音進行模數轉換[6]。
語音識別模塊分為訓練階段和識別階段:在訓練階段,先初始化RAM,再調用語音訓練函數BSR_Train(int WordID,int TrainMode)執行訓練,之后獲得訓練結果,將訓練結果中的語音模型導出存儲到FLASH中。SPCE061A語音存儲和回訪系統如圖3所示[7]。

圖3 語音存儲和回訪系統結構圖
在識別階段,運用凌陽編碼算法庫中的函數進行識別,先調用初始化識別器函數BSR_InitRecognizer(int AudioSource),將存儲的訓練語言的特征模型調出與需要識別的語音比對,再調用獲得識別結果可信度函數BSR_GetRecognizerScore()獲取輸入語音與特征模型的匹配度[8]。
繼電器模塊選用中間繼電器,當傳感器收集語音信息讀入單片機系統后,單片機系統會發出一個高電平使繼電器線圈通電,之后繼電器主觸點閉合,同時使電子鎖[9]與電路之間的開關閉合,進而控制電子鎖的開關。硬件電路框架如圖4所示。

圖4 硬件電路框架
ESP8266為安信可公司開發的ESP8266模塊編譯平臺,具有免安裝、純綠色、無需虛擬機、Windows系統直接運行、IDE界面、編輯和編譯一體化、Eclipse編譯后直接生成固件等優點[10]。
該智能門鎖下位機通過公共云端將用戶的控制動作傳送至ESP8266芯片,再通過Andruin UNO面板實現該動作,流程如圖5所示。

圖5 下位機流程圖
貝殼物聯云平臺采用以TCP協議為主,UDP協議為輔的形式進行通信,兩種協議間信息互通。在TCP協議基礎上,可直接使用TCP或WebSocket建立長連接,定時發送心跳數據,保持用戶、設備在線,在線期間與服務器可進行JSON字符串格式的數據通信,也可采用http(s)通信協議獲取用戶資源、上傳圖片,并實時更新。以UDP協議為基礎的通信,設備不必保持在線狀態,可隨時向服務器發送指令進行相關操作。
傳感器采集門鎖的開關狀態,反饋至8266模塊,8266模塊將即時狀態通過云端傳遞給貝殼物聯服務器,服務器可通過兩種方式提示用戶門鎖的狀態:一是手機客戶端,即APP;二是網頁。用戶可根據實際情況控制門鎖。
本設計的目的在于方便用戶通過手機打開門鎖,因此需判斷上電顯示是否與預定相同,可采用ESPlorer進行仿真驗證。程序開始后,初始化函數,將ESP8266刷入NodeMCU固件,默認執行Init.lua中的程序,在Init.lua中再調用并執行switch.lua程序(遠程開關程序),之后在ESPlorer環境下編寫程序。
本軟件完成了各模塊的設計并對各模塊進行了測試,測試工具包括Android手機和筆記本電腦。利用“貝殼物聯”作為云端,在Android手機上運行客戶端軟件,用戶登錄后可以進行相關操作,登錄界面如圖6所示。
在貝殼物聯軟件中添加設備,實現對其的控制。WiFi模塊選用ESP8266,該模塊與家中WiFi互聯后再與單片機系統相連,之后可通過ESP8266芯片轉發來自互聯網的控制命令至串口。圖7所示為已實現添加的門鎖設備,連接完成后通過手機控制門鎖的開關。

圖6 登錄界面

圖7 已實現添加的門鎖設備
本系統基于SPCE061A單片機語音識別系統設計而成,通過語音訓練后,將傳感器采集的用戶聲音與之前的樣本進行比較,觸發電子鎖,實現語音開鎖,識別率高。以MEGA328P-AU單片機作為控制核心,通過WiFi與電子鎖相連,實現智能開鎖,降低成本。以手機APP作為控制終端,隨時隨地實現對系統的控制和監控。該智能門鎖具有開鎖簡便、安全性能良好、能耗小、成本低等優點,能夠較好地滿足市場需求。