劉西閣
(常州信息職業(yè)技術(shù)學(xué)院網(wǎng)絡(luò)空間安全學(xué)院 江蘇省常州市 213164)
近年來(lái)人們生活水平逐步提高,人們的安全防范意識(shí)和對(duì)生活品質(zhì)要求也隨之提高,傳統(tǒng)的鑰匙開鎖已經(jīng)無(wú)法滿足人們的要求,智能門鎖應(yīng)用越來(lái)越廣泛。目前智能門鎖開鎖方式主要有指紋識(shí)別、人臉識(shí)別、密碼開鎖和無(wú)線通信遠(yuǎn)程開鎖等,使用的無(wú)線通信技術(shù)也是多種多樣,文獻(xiàn)[1]以單片機(jī)為核心,結(jié)合Wi-Fi 通信技術(shù),實(shí)現(xiàn)手機(jī)控制門鎖[1];文獻(xiàn)[2]利用NB-IoT 技術(shù),設(shè)計(jì)了一種基于窄帶物聯(lián)網(wǎng)技術(shù)的公租房智能門鎖系統(tǒng)[2];文獻(xiàn)[3]以GPRS 技術(shù)為基礎(chǔ)設(shè)計(jì)了一種操作簡(jiǎn)單的智能門鎖控制系統(tǒng)[3];文獻(xiàn)[4]采用藍(lán)牙通信模塊,實(shí)現(xiàn)對(duì)門鎖甚至整個(gè)家居系統(tǒng)的控制[4]。綜合比較,無(wú)線通信方式控制的智能門鎖的優(yōu)點(diǎn)在于不進(jìn)行數(shù)據(jù)對(duì)比處理,只做數(shù)據(jù)采集及數(shù)據(jù)傳輸,更為安全可靠,且不需要大量布線 。
本文以ESP8266 為核心控制器[5],取代了傳統(tǒng)的ESP8266+單片機(jī)芯片組合的控制方式[6],利用Wi-Fi 技術(shù)設(shè)計(jì)了一種低成本易控制的智能門鎖控制器,通過(guò)MQTT 通信協(xié)議,結(jié)合云端服務(wù)管理,實(shí)現(xiàn)多門鎖多終端協(xié)同。本設(shè)計(jì)可在移動(dòng)端非局域網(wǎng)接入方式下實(shí)現(xiàn)秒級(jí)內(nèi)開鎖,具備遠(yuǎn)程開鎖和自動(dòng)登記開鎖人員信息功能。
本文設(shè)計(jì)的智能門鎖系統(tǒng)包含三部分:門鎖控制器、云服務(wù)器和用戶終端,如圖1所示。門鎖控制器采用ESP8266 Wi-Fi MCU 為核心模塊,外圍擴(kuò)展電機(jī)驅(qū)動(dòng)模塊、USB 串口轉(zhuǎn)換模塊、電源模塊和按鍵。系統(tǒng)以ESP8266 為主控制單元,取代了傳統(tǒng)的ESP8266+單片機(jī)芯片組合的控制方式,控制過(guò)程可簡(jiǎn)單概括為門鎖控制器利用Wi-Fi 技術(shù)接入互聯(lián)網(wǎng),通過(guò)云服務(wù)器和用戶終端建立通信通道,用戶終端和門鎖控制器之間的通信采用MQTT 通信協(xié)議,即以消息訂閱/發(fā)布的方式對(duì)門鎖進(jìn)行控制,云服務(wù)器在中間負(fù)責(zé)數(shù)據(jù)轉(zhuǎn)發(fā)。
圖1:系統(tǒng)總體框架圖
ESP8266 是面向物聯(lián)網(wǎng)應(yīng)用的高性價(jià)比、高度集成的Wi-Fi MCU(微控制單元),除了Wi-Fi 功能,ESP8266 還集成了32-bit處理器和片上SRAM,擁有強(qiáng)大的片上處理和存儲(chǔ)能力,可通過(guò)GPIO 口集成傳感器及其他設(shè)備,另外片內(nèi)還集成了天線開關(guān)、功率放大器、低噪聲接收放大器、濾波器和電源管理模塊,開發(fā)成本低,在運(yùn)行中最少的占用系統(tǒng)資源。
ESP8266 模組共有16 個(gè)引腳,要想使模組正常工作,必須對(duì)其外圍電路進(jìn)行設(shè)計(jì),電路圖如圖2所示。復(fù)位電路采用按鍵控制電路,復(fù)位信號(hào)RST 低電平有效,工作狀態(tài)下復(fù)位信號(hào)置高,需要復(fù)位時(shí),按下按鍵將RST 管腳置零進(jìn)行復(fù)位;使能管腳EN 一直置高;ESP8266 工作模式由GPIO0 決定,上拉進(jìn)入工作模式,下拉進(jìn)入下載模式,所以GPIO0 管腳的電路設(shè)計(jì)成按鍵控制,未按下時(shí)上拉VCC,按下后下拉GND,通過(guò)按鍵控制ESP8266 在工作模式和下載模式之間切換;TXD0 和RXD0 連接USB 串口轉(zhuǎn)換模塊;GPIO4 和GPIO5 連接電機(jī)驅(qū)動(dòng)模塊。
圖2:ESP8266 電路圖
USB 串口轉(zhuǎn)換模塊選用CH340 芯片,該芯片是一個(gè)USB 總線的轉(zhuǎn)換芯片,能實(shí)現(xiàn)USB 轉(zhuǎn)串口的功能。CH340 需要外接晶體振蕩器電路給系統(tǒng)提供基本時(shí)鐘信號(hào),晶體振蕩電路設(shè)計(jì)是在X1 和X0 引腳之間連接晶體振蕩器和負(fù)載電容,晶振選擇12MHz 的石英晶體,負(fù)載電容選擇22pF 的高頻瓷片電容。D-和D+通過(guò)串聯(lián)電阻連接USB 接口。RXD 和TXD 連接ESP8266 的串行口TXD0 和RXD0。電路設(shè)計(jì)如圖3所示。
圖3:USB 轉(zhuǎn)串口電路圖
電源轉(zhuǎn)換模塊需要將5V 電壓轉(zhuǎn)換成3.3V,本設(shè)計(jì)選用AMS1117 穩(wěn)壓器。AMS1117 是一個(gè)正向低壓降穩(wěn)壓器,在1A 電流下壓降為1.2V。AMS1117 有兩個(gè)版本:固定輸出版本和可調(diào)版本,固定輸出電壓為1.5V、1.8V、2.5V、2.85V、3.0V、3.3V、5.0V,具有1%的精度。本設(shè)計(jì)選用3.3V 固定輸出版本,電路圖設(shè)計(jì)如圖4所示,C3 和C4 是輸入電容,防止斷電后出現(xiàn)的電壓倒置,C5 和C6 是輸出濾波電容,作用是抑制自激振蕩,達(dá)到輸出平滑穩(wěn)定的電壓。
圖4:電源轉(zhuǎn)換電路圖
電機(jī)驅(qū)動(dòng)模塊選用的是L9110S,該芯片是為控制和驅(qū)動(dòng)電機(jī)設(shè)計(jì)的兩通道推挽式功率放大專用集成電路器件。芯片有兩個(gè)TTL/CMOS 兼容電平的輸入,有兩個(gè)輸出端能直接驅(qū)動(dòng)電機(jī)的正反向運(yùn)動(dòng),具有較大的電流驅(qū)動(dòng)能力,每通道能通過(guò)800mA 的持續(xù)電流,峰值電流能力可達(dá)1.5A。本系統(tǒng)的L9110S 電路設(shè)計(jì)如圖5所示,兩個(gè)輸入端通過(guò)上拉電阻連接ESP8266 的P4 和P5 管腳,輸出端直接連接門鎖。
圖5:L9110S 電路圖
軟件設(shè)計(jì)開發(fā)使用AiThinker IDE 集成開發(fā)環(huán)境,基于官方提供的軟件開發(fā)包(SDK)進(jìn)行程序設(shè)計(jì),系統(tǒng)選用的開發(fā)包版本為ESP8266_NONOS_SDK,工程選用esp_mqtt_proj,在此基礎(chǔ)上進(jìn)行設(shè)計(jì)開發(fā)。
程序初始化并發(fā)起MQTT 連接,具體流程如圖6所示。串口初始化,設(shè)置串口波特率為115200bps,本項(xiàng)目串口主要用于程序下載和串口信息打??;控制門鎖管腳設(shè)置,根據(jù)硬件設(shè)計(jì),選擇GPIO4 和GPIO5 管腳,并定義管腳功能;調(diào)用MQTT_InitConnection 函數(shù)進(jìn)行連接信息初始化,設(shè)置連接服務(wù)器的地址、端口號(hào)和認(rèn)證加密;調(diào)用MQTT_InitClient 函數(shù)進(jìn)行客戶端初始化,設(shè)置客戶端的標(biāo)識(shí)號(hào)、用戶名、密碼和心跳時(shí)間;ESP8266 既可以作為Wi-Fi 站點(diǎn)(station)也可以作為熱點(diǎn),本設(shè)計(jì)選用其作為站點(diǎn),調(diào)用WIFI_Connect 函數(shù)發(fā)起Wi-Fi 連接,參數(shù)里填寫連接熱點(diǎn)的SSID 號(hào)和密碼;連接成功則調(diào)用MQTT_Connect 連接MQTT 服務(wù)器,連接不成功則斷開MQTT 連接。
圖6:程序初始化流程圖
MQTT 連接成功后則進(jìn)入門鎖控制程序,控制流程如圖7所示。首先調(diào)用MQTT_Subscribe 函數(shù)訂閱消息,參數(shù)填寫訂閱的主題名稱;等待服務(wù)器轉(zhuǎn)發(fā)的主題消息,并對(duì)消息數(shù)據(jù)內(nèi)容解析判斷,當(dāng)為ON 時(shí),執(zhí)行開鎖流程,開鎖后等待5S 并關(guān)閉門鎖,當(dāng)為OFF 時(shí),直接關(guān)閉門鎖。
圖7:門鎖控制程序流程圖
本系統(tǒng)軟件主要有以下功能:
(1)基于ESP8266 芯片,提供了物聯(lián)網(wǎng)硬件設(shè)備門鎖的Wi-Fi 接入功能,實(shí)現(xiàn)手機(jī)APP 端自定義配置SSID 和密碼;
(2)通過(guò)MQTT 通信協(xié)議,長(zhǎng)連接云服務(wù)端,實(shí)現(xiàn)門鎖的遠(yuǎn)程控制,同時(shí)使用了基于用戶名及密碼的方式接入,加強(qiáng)了設(shè)備接入的安全性;
(3)接收MQTT 已訂閱的消息,解析消息內(nèi)容,通過(guò)電機(jī)驅(qū)動(dòng)模塊控制門鎖開關(guān)。
搭建系統(tǒng)測(cè)試環(huán)境對(duì)其功能測(cè)試驗(yàn)證,門鎖采用電動(dòng)雙快鎖,搭建EMQX 服務(wù)器,其中控制器模型和測(cè)試模型如圖8 和圖9所示,利用ESP_DOWNLOAD_TOOL 燒錄軟件將軟件程序代碼下載到ESP8266 芯片,按照系統(tǒng)方案里要實(shí)現(xiàn)的功能點(diǎn)進(jìn)行驗(yàn)證,測(cè)試時(shí)可連接串口,通過(guò)串口助手打印信息實(shí)時(shí)觀察程序運(yùn)行情況,測(cè)試過(guò)程如下:
圖8:控制器實(shí)物
圖9:智能門鎖系統(tǒng)測(cè)試模型
(1)控制器上電,利用ESP-TOUCH 的Smart Config(智能配置)技術(shù)設(shè)置控制器連接的SSID 和密碼,設(shè)置完成后通過(guò)串口助手打印信息查看Wi-Fi 連接是否成功。
(2)控制器通過(guò)MQTT 協(xié)議連接云服務(wù)器,服務(wù)器上能夠看到控制器連接信息和訂閱發(fā)布消息主題。
(3)手機(jī)端安裝MQTT 客戶端測(cè)試工具APP,向訂閱主題發(fā)布控制指令,該指令經(jīng)服務(wù)器轉(zhuǎn)發(fā),能正常控制門鎖的開關(guān)。
本文基于ESP8266 模組設(shè)計(jì)實(shí)現(xiàn)了一款可便捷實(shí)時(shí)開閉鎖、造價(jià)低廉、安全性高的智能門鎖控制器,同時(shí)又結(jié)合云端服務(wù)管理,更加關(guān)注門鎖使用過(guò)程中產(chǎn)生數(shù)據(jù)的整合利用。經(jīng)反復(fù)測(cè)試,手機(jī)APP 遠(yuǎn)程控制門鎖開關(guān)的反應(yīng)速度都是秒級(jí)內(nèi)的。另外系統(tǒng)的可擴(kuò)展性還允許更多的物聯(lián)網(wǎng)設(shè)備接入,在云端和門鎖控制進(jìn)行聯(lián)動(dòng)。