譚點(diǎn),司珂帆,丁立,李悅娜,王奕人
(天津職業(yè)技術(shù)師范大學(xué) 自動(dòng)化與電氣工程學(xué)院,天津,300000)
就目前來(lái)說(shuō),隨著經(jīng)濟(jì)的發(fā)展和科技的進(jìn)步,家居智能化的概念也逐漸進(jìn)入人們的生活中。而門鎖既是每個(gè)家庭安全的保障也是智能家居的主要發(fā)展對(duì)象。近年來(lái),人們生活品質(zhì)的提高,家庭智能鎖的比例也逐漸升高。
當(dāng)前智能門鎖根據(jù)是否聯(lián)網(wǎng)分為單機(jī)型和聯(lián)網(wǎng)型兩大類。單機(jī)型多使用密碼、指紋、刷卡等身份認(rèn)證的方式,但其往往開(kāi)鎖方式單一,用戶無(wú)法遠(yuǎn)程得知門鎖當(dāng)前的狀態(tài),鑰匙管理困難,安全無(wú)法得到保障。聯(lián)網(wǎng)型智能門鎖通過(guò)通信技術(shù)與電子技術(shù)相結(jié)合實(shí)現(xiàn)對(duì)門鎖的控制,大多采用ZigBee、WiFi、藍(lán)牙、蜂窩網(wǎng)絡(luò)、LoRa 等通信方式,但其并沒(méi)有使用云平臺(tái)服務(wù),且通信距離有限,安全性較差,具有一定的局限性。另外,智能門鎖系統(tǒng)不只需要解決用戶身份認(rèn)證這一個(gè)功能,還需要考慮鑰匙管理困難、應(yīng)用場(chǎng)景局限、門鎖系統(tǒng)靈活性差、安全性低等弊端。
門鎖下位機(jī)利用WiFi 模塊接入局域網(wǎng),在經(jīng)MQTT 通訊協(xié)議接入OneNet 云平臺(tái)服務(wù)器,實(shí)現(xiàn)物聯(lián)網(wǎng)的同時(shí)參與云計(jì)算,成功搭建門鎖系統(tǒng)客戶端等待云服務(wù)器的下發(fā)指令。手機(jī)APP 連接網(wǎng)絡(luò)接入云服務(wù)器與門鎖客戶端訂閱相同的主題(不限個(gè)數(shù))進(jìn)行一類數(shù)據(jù)的傳輸。用戶每次登錄APP 都自動(dòng)接入云服務(wù)器,通過(guò)手機(jī)上發(fā)指令到云平臺(tái),云服務(wù)器在接收到指令報(bào)文隨后下發(fā)給門鎖下位機(jī),達(dá)到遠(yuǎn)距離對(duì)門鎖的控制以及通信。
硬件層可通過(guò)電容觸摸屏輸入密碼開(kāi)鎖,指紋識(shí)別開(kāi)鎖,IC卡感應(yīng)開(kāi)鎖,人臉識(shí)別開(kāi)鎖,開(kāi)關(guān)鎖播報(bào),不合理報(bào)警,電容屏圖像顯示。
移動(dòng)客戶端通過(guò)APP 遠(yuǎn)程開(kāi)關(guān)鎖,修改密碼,設(shè)置一次性密碼,用戶的錄入與刪除(包括指紋,IC 卡,人臉)和信息查詢,出入記錄的查看,門鎖的各項(xiàng)指標(biāo)檢測(cè)和門外監(jiān)視等。
圖1 系統(tǒng)架構(gòu)圖
STM32H7 主控芯片處理器,STM32 是意法半導(dǎo)體(ST)公司開(kāi)創(chuàng)的一個(gè)單片機(jī)產(chǎn)品家族,在全世界核心芯片研發(fā)領(lǐng)域處于領(lǐng)先地位。H7 系列具有強(qiáng)大的內(nèi)核,Chro-ART Accelerator 和MJPEG codec 可減輕90%以上的CPU 工作負(fù)荷,圖像顯示效果佳;主DMA 能處理記憶體和外設(shè)之間最復(fù)雜的數(shù)據(jù)傳輸配置,最多提供16 個(gè)通道減輕CPU工作負(fù)荷,可橫跨各種外設(shè),高效率傳輸資料;在安全管理方面,使用專屬加密技術(shù)和哈希硬件加速,可減輕90%以上的CPU 工作負(fù)荷;高精度計(jì)時(shí)器(2.1ns)能產(chǎn)生復(fù)雜波形,與多重事件同步,無(wú)須CPU 輔助。
SDWn028T63 液晶觸摸串口屏采用了TFT 彩色液晶顯示技術(shù),分辨率為240×320,支持16 位RGB(65K 色)顯示。觸摸屏采用電容式觸摸技術(shù),觸摸精度高,可在屏幕上實(shí)現(xiàn)多點(diǎn)觸控。支持多種圖形顯示模式,包括點(diǎn)陣、字符和自定義圖形,同時(shí)也支持中英文等多國(guó)語(yǔ)言的顯示。該屏幕還支持多種通信協(xié)議,如RS232、RS485 和TTL 等,可以方便地接入各種嵌入式主控器。
此系統(tǒng)使用的是FPC1020A 電容式半導(dǎo)體指紋識(shí)別模塊。1020A 模塊通訊接口為UART 或USB,本模塊作為從設(shè)備,由主設(shè)備發(fā)送相關(guān)命令對(duì)其進(jìn)行控制。該模塊具有可調(diào)節(jié)的安全等級(jí)功能、指紋特征數(shù)據(jù)的讀/寫功能和指紋圖像的讀/寫功能,識(shí)別方式為1:N 識(shí)別或1:1 驗(yàn)證。其工作流程為:指紋采集->特征提取->模板存儲(chǔ)->驗(yàn)證比對(duì)。
MF522-AN 模塊采用Philips MFRC522 芯片設(shè)計(jì)讀卡電路,使用方便,成本低廉,適用于設(shè)備開(kāi)發(fā)、讀卡器開(kāi)發(fā)等高級(jí)應(yīng)用的用戶、需要進(jìn)行射頻卡終端設(shè)計(jì)/生產(chǎn)的用戶。
圖2 識(shí)別流程圖
ESP32-CAM 是一款集成了ESP32 和OV2640 攝像頭的開(kāi)發(fā)板,是基于ESP32 芯片的物聯(lián)網(wǎng)開(kāi)發(fā)板。它有WiFi 和藍(lán)牙功能,同時(shí)還支持多種傳感器,可以廣泛應(yīng)用于物聯(lián)網(wǎng)、智能家居、安防監(jiān)控等領(lǐng)域。其顯著的擁有雙內(nèi)核處理器和高級(jí)WiFi、藍(lán)牙功能,可以快速高效地處理大量數(shù)據(jù),同時(shí)具有良好的穩(wěn)定性和可靠性。200 萬(wàn)像素OV2640 攝像頭可以達(dá)到最高1600×1200 分辨率的拍攝效果支持JPEG、BMP、RGB、YUV 等多種圖像格式。其可支持多種傳感器,支持Arduino 集成開(kāi)發(fā)環(huán)境。和ESP-IDF 開(kāi)發(fā)框架,可靈活適應(yīng)不同的開(kāi)發(fā)需求,同時(shí)還可支持多種開(kāi)發(fā)語(yǔ)言和操作系統(tǒng)。
ESP8266 為一個(gè)WiFi 模塊,它有主從兩種工作模式一樣,也具有兩種工作模式:STA 模式(Station)和AP 模式(Access Point),一般WiFi 模塊還會(huì)有一個(gè)STA+AP模式,即可以在兩種模式下切換的狀態(tài)。
AP 模式下,WiFi 模塊產(chǎn)生熱點(diǎn),提供無(wú)線接入服務(wù),允許其它無(wú)線設(shè)備接入,提供數(shù)據(jù)訪問(wèn),一般的無(wú)線路由/網(wǎng)橋工作在該模式下。該模式對(duì)應(yīng)TCP 傳輸協(xié)議中的服務(wù)端(TCP Server)。
STA模式下,WiFi模塊為連接到無(wú)線網(wǎng)絡(luò)的終端(站點(diǎn)),可以連接到AP,一般無(wú)線網(wǎng)卡工作在STA 模式下。該模式對(duì)應(yīng)TCP 傳輸協(xié)議中的客戶端(TCP Client)。
MQTT(Message Queuing Telemetry Transport) 是一種輕量級(jí)的、基于發(fā)布/訂閱模式的消息協(xié)議。它主要針對(duì)物聯(lián)網(wǎng)(IoT)場(chǎng)景設(shè)計(jì)的,具有低帶寬、低功耗、高可靠性等特點(diǎn)。
圖3 MQTT 協(xié)議收發(fā)圖
MQTT 采用了輕量級(jí)的消息頭和基于TCP/IP 的傳輸層協(xié)議,能夠有效減少網(wǎng)絡(luò)負(fù)載。MQTT 采用發(fā)布/訂閱模式,發(fā)布者(Publisher)將消息發(fā)布到一個(gè)主題(Topic)上,訂閱者(Subscriber)通過(guò)訂閱相應(yīng)的主題可以接收到對(duì)應(yīng)的消息。
E4A(Engine for Android),是一款基于Delphi 開(kāi)發(fā)的Android 應(yīng)用程序開(kāi)發(fā)框架。借助E4A,開(kāi)發(fā)者可以使用Pascal 語(yǔ)言來(lái)編寫Android 應(yīng)用程序,E4A 提供了許多方便的API 和庫(kù),包括可訪問(wèn)Android 操作系統(tǒng)底層特性的NDK(Native Development Kit)等。
圖4 APP 界面
運(yùn)用E4A 自帶的MQTT 通訊類庫(kù),其中最主要的事件函數(shù)包括;連接成功,訂閱成功,發(fā)送完畢和收到消息。最主要的方法函數(shù)包括:連接服務(wù)器,發(fā)送消息,訂閱消息,取消訂閱和關(guān)閉服務(wù)。接入OneNet 云平臺(tái),也可在可視化應(yīng)用界面觀測(cè)到云端下發(fā)的指令和數(shù)據(jù)。
首先在OneNet 物聯(lián)網(wǎng)平臺(tái)上創(chuàng)建一個(gè)產(chǎn)品->為產(chǎn)品添加第一設(shè)備->查看設(shè)備ID,產(chǎn)品ID 和鑒權(quán)信息->將OneNet 服務(wù)器地址(TCP://183.230.40.39:6002),三元素信息以及其他參數(shù)寫入“連接服務(wù)器函數(shù)”中(見(jiàn)圖7)。
圖6 APP 窗口
如果連接成功則彈出提示“連接成功”否則“連接失敗”(見(jiàn)圖8)。
發(fā)送消息函數(shù)參數(shù)1 為發(fā)送消息的主題,參數(shù)2 為發(fā)送內(nèi)容,參數(shù)3 為等級(jí)0/1/2(見(jiàn)圖9)。
接收消息事件參數(shù)1 位收到的消息主題,參數(shù)2 位接收內(nèi)容,參數(shù)3 同上(見(jiàn)圖10)。
圖10
接收到的消息在事件中進(jìn)行字節(jié)轉(zhuǎn)文本,隨后判斷消息的主題和消息是否為該響應(yīng)的主題和內(nèi)容,達(dá)到命令的接收和程序的處理。
硬件層想要連接云服務(wù)器首先得先連接局域網(wǎng),所以得通過(guò)esp8266 模塊,讓門鎖接入局域網(wǎng)內(nèi),也就是熟知的物聯(lián)網(wǎng)。利用esp8266 的AT 指令方式聯(lián)網(wǎng),選擇STA 模式(“AT+CWMODE=1”)主機(jī)與從機(jī)通過(guò)8266WIFI 模塊進(jìn)行一問(wèn)一答的過(guò)程將路由器的賬號(hào)密碼輸入對(duì)應(yīng)參數(shù)中,設(shè)備成功聯(lián)網(wǎng)。
圖11
接著在OneNet 物聯(lián)網(wǎng)平臺(tái)上創(chuàng)建產(chǎn)品的第二個(gè)設(shè)備(注:軟件層與硬件層在同一產(chǎn)品下)與前面的步驟一樣,得到三元素。通過(guò)MQTT 通信協(xié)議發(fā)送連接報(bào)文,當(dāng)?shù)玫狡脚_(tái)的正確答復(fù)后說(shuō)明接入成功,否則接入失敗。
圖12
在信息采集過(guò)程中,由于設(shè)備和手指本身固有的特性,使得圖像呈現(xiàn)出前景和背景的差異,前者圖像比較清晰,后者較為模糊,不利于信息的后期處理。指紋圖像分割是采用一定的算法和要求對(duì)原始的圖像進(jìn)行分割,也就是把指紋圖像中紋線模糊,后續(xù)無(wú)法處理的圖像區(qū)域剔除,保留有效區(qū)域,使后續(xù)處理能夠集中在有效區(qū)域,為后續(xù)處理節(jié)省了時(shí)間,提高了準(zhǔn)確率。指紋的紋理都是具有一定方向的,指紋圖像的方向圖是基于方向一致性的指紋圖像分割的前提,指紋圖像的分割算法基本上都是基于圖像的方向特性和灰度特性的。
基于灰度方差的指紋圖像分割法是比較常用的一種分割方法,該方法適用于指紋紋線清晰,對(duì)比度比較高的指紋圖像。一般來(lái)說(shuō),指紋圖像前景區(qū)域中的脊線和谷線之間的灰度變化比較大,因此其局部的灰度方差也很大。而背景區(qū)域中局部灰度方差幾乎沒(méi)有變化?;谶@一特征,可以將圖像的局部灰度方差作為一種判斷方法,即確定一個(gè)閥值,將圖像的灰度方差與這一閥值比較,保留大于閥值的部分,完成圖像的分割。該算法的描述如下。
第一步:將指紋圖像分成M×N 個(gè)子塊,其中每一塊的大小為W×WO。
第二步:分別計(jì)算出指紋圖像中每一子塊的灰度均值和灰度方差,第x 行y 列個(gè)子塊圖像的灰度均值和方差公式如(1)和(2)所示。其中x=1,2,y=1,2,..n。
第三步:根據(jù)指紋圖像的灰度方差值的分布,確定閥值T,分割圖像。將上一步到的灰度方差與T 進(jìn)行比較,大于該閥值的區(qū)塊為指紋的前景區(qū),保留該子塊的灰度值,否則為背景。指紋分割效果圖如圖14 所示。
圖14 指紋識(shí)別
本節(jié)分別APP,門鎖下位機(jī)以及對(duì)系統(tǒng)重要功能測(cè)試展開(kāi)介紹。測(cè)試內(nèi)容包括WIFI 模塊的串口通信,遠(yuǎn)程開(kāi)關(guān)鎖,一次性密碼等。系統(tǒng)實(shí)物如圖15 所示。
圖15
圖16
圖17
此APP 主界面由五個(gè)功能菜單入口,發(fā)布消息、訂閱主題按鍵以及接收消息框,和開(kāi)關(guān)鎖控制鍵組成。頂部的箭頭是返回上一級(jí)按鍵右上角為高級(jí)菜單,中間是顯示門鎖的狀態(tài),在各個(gè)界面實(shí)時(shí)顯示。
密碼菜單中可重置開(kāi)鎖密碼和設(shè)置動(dòng)態(tài)密碼。修改密碼可進(jìn)入子界面進(jìn)行密碼的修改。
指紋菜單有錄入指紋和刪除指紋的入口。界面上半部分會(huì)提示下一步從而完成錄入與刪除的功能。
IC 卡菜單也具有添加和刪除的入口。進(jìn)入攝像頭菜單可實(shí)時(shí)監(jiān)視設(shè)備周圍的畫面,在需要的情況下可關(guān)閉和打開(kāi)攝像頭。出入記錄菜單用來(lái)顯示門鎖的開(kāi)關(guān)時(shí)間和開(kāi)鎖方式。
主界面的下半?yún)^(qū)為MQTT 協(xié)議的發(fā)送和接收,提高調(diào)試的直觀性,在接下來(lái)功能齊全的情況下會(huì)將其刪除。此APP 還屬測(cè)試階段,除此外我們會(huì)進(jìn)一步完善和鞏固APP的實(shí)用性和安全性。
門鎖下位機(jī)整體布局參考的是市面上常見(jiàn)的智能門鎖。主要由如下幾大塊構(gòu)成指紋模塊,攝像頭,液晶觸摸屏,IC卡射頻模塊H7 低功耗主控板以及ESP8266WiFi 模塊。在無(wú)人感應(yīng)的情況下,指紋和觸摸屏處于待機(jī)狀態(tài),當(dāng)IC 卡接觸到模塊產(chǎn)生動(dòng)作。攝像頭在檢測(cè)到人臉后進(jìn)行處理。ESP8266 連接網(wǎng)絡(luò)同時(shí)接入云端,是下位機(jī)和APP 溝通的橋梁。由于門鎖的特殊應(yīng)用場(chǎng)景要將功耗降到最低,否則浪費(fèi)資源浪費(fèi)財(cái)力,經(jīng)過(guò)深思熟慮和技術(shù)甄別,采用了STM32H7 主控芯片處理器作為本項(xiàng)目的首腦。由于一些原因下位機(jī)封裝還達(dá)不到產(chǎn)品的級(jí)別,日后有條件會(huì)進(jìn)行改變。
(1)WiFi 模塊串口通信無(wú)線通訊模塊是整個(gè)系統(tǒng)工作的關(guān)鍵,ESP8266 是系統(tǒng)和服務(wù)器之間的橋梁。有了它MQTT 才得以施展。表1是該模塊的測(cè)試用例。
表1 無(wú)線通訊用例表
由表1 可知,在串口調(diào)試助手中首先輸入AT,回車后,輸出OK 就表示通信模塊初始化,此時(shí)可進(jìn)行聯(lián)網(wǎng)、發(fā)送數(shù)據(jù)等測(cè)試。通過(guò)輸入指定的網(wǎng)絡(luò)協(xié)議、網(wǎng)址以及端口號(hào)可測(cè)試聯(lián)網(wǎng)是否成功。經(jīng)測(cè)試,ESP8266 通信正常。
(2)遠(yuǎn)程開(kāi)關(guān)鎖
遠(yuǎn)程開(kāi)關(guān)鎖是通過(guò)APP 向云服務(wù)器傳控制指令,服務(wù)器在向門鎖系統(tǒng)下發(fā)所接收到的指令,從而實(shí)現(xiàn)啦APP 對(duì)門鎖系統(tǒng)的指令下發(fā)。
經(jīng)過(guò)表2 的測(cè)試,我們APP 通過(guò)界面按鍵向門鎖系統(tǒng)發(fā)送以MQTT 為通訊協(xié)議的命令時(shí),如果發(fā)布消息的主題與門鎖系統(tǒng)訂閱的主題相同且命令正確,門鎖會(huì)向APP 返回一個(gè)APP 已經(jīng)訂閱了的主題為“ERR”命令為“0/1”的消息,從輸出的結(jié)果得出開(kāi)關(guān)鎖是否成功。經(jīng)測(cè)試,功能得以實(shí)現(xiàn)。
表2 遠(yuǎn)程開(kāi)關(guān)鎖用例表
(3)一次性密碼
一次性密碼的設(shè)計(jì)可以有效地管理門鎖的運(yùn)行,且可給不同的用戶提供開(kāi)鎖的需求。比如酒店,民宿這類行業(yè)。也是通過(guò)APP 端編輯好密碼下發(fā)給門鎖硬件端。功能測(cè)試用例表如表3。
表3 一次性密碼用例表
通過(guò)測(cè)試,APP 端編輯必須是8 位以內(nèi)4 位以上的數(shù)字密碼,否則設(shè)置的密碼不符合要求,導(dǎo)致一次性密碼設(shè)置失敗,重新設(shè)置。
以上是我們展示的一種基于云平臺(tái)的智能門鎖系統(tǒng)。該系統(tǒng)采用了先進(jìn)的技術(shù),如物聯(lián)網(wǎng)和云計(jì)算,可以讓用戶以便捷、快速和高效的方式控制門鎖。我們?cè)O(shè)計(jì)了一個(gè)全面的系統(tǒng)架構(gòu)來(lái)實(shí)現(xiàn)該目標(biāo),包括一個(gè)智能門鎖設(shè)備、云服務(wù)器、手機(jī)應(yīng)用和網(wǎng)站。設(shè)計(jì)過(guò)程中我們遇到了一些挑戰(zhàn),比如設(shè)備的連通性、安全性和可擴(kuò)展性。我們通過(guò)深入地研究和實(shí)驗(yàn),解決了這些問(wèn)題并取得了不錯(cuò)的成果。我們的實(shí)驗(yàn)結(jié)果表明,該智能門鎖系統(tǒng)在控制門鎖方面具備了較高的效率和便捷性。