劉皓然 陳子為 嚴鑫 王寅辰 彭俊
摘? ?要:實驗室的安保問題是學校安保工作的重中之重。文章針對目前高校實驗室門禁系統(tǒng)普遍存在的安全性不高、便捷性不足、成本高等問題,將智能手機與物聯(lián)網、生物識別技術等結合,采用STM32F407ZET6作為主控、MQTT物聯(lián)網協(xié)議作為通信協(xié)議,設計開發(fā)了一款具有指紋、密碼、APP等多種開鎖方式,并且具有臨時密碼、即時授權、考勤統(tǒng)計等功能的實驗室智能門禁集控系統(tǒng)。
關鍵詞:智能門禁系統(tǒng);MQTT;移動互聯(lián)網;嵌入式系統(tǒng)
中圖分類號:TP391.44;TN929.5 文獻標志碼:A 文章編號:1673-8454(2021)03-0057-05
一、引言
如今幾乎所有高校均設置有供學生自主學習的開放實驗室以及供實驗教學的實驗室,實驗室的安保問題是學校安保工作的重中之重。目前高校實驗室的門鎖一般只是普通的防盜門鎖,門鎖鑰匙容易復制,且需要專人保管鑰匙,這對實驗室開放管理極為不便,并且存在安全隱患。[1]智能門禁系統(tǒng)以計算機技術為主體,涉及電子、通訊、生物等多種技術,用來對出入口進行有效的控制,并且限制出入人員的權限。隨著移動互聯(lián)網以及嵌入式行業(yè)的不斷發(fā)展,智能門禁系統(tǒng)逐漸發(fā)展了起來。
實驗室的門禁系統(tǒng)作為高校安防系統(tǒng)中的一個重要組成部分,其技術指標要求較一般的門禁系統(tǒng)更高。通過計算機系統(tǒng)來實現(xiàn)對出入人員的管理,利用移動互聯(lián)網技術、生物技術等科技手段來集中控制進出實驗室人員的權限是實驗室智能門禁系統(tǒng)的基本功能。盡管現(xiàn)階段市場上的智能門禁系統(tǒng)較多,但是依然存在不足之處。[2-4]
(1)安全性不高。目前很多門禁系統(tǒng)采用的都是RFID方式,通過支持ISO-14443-A門禁卡來解鎖門禁,但是該卡的保密性不強,很容易進行復制,從而破解門禁系統(tǒng)。
(2)便捷性不足。有些采用局域網的連接方式,需要手機連接熱點,或者連接門禁系統(tǒng)上的藍牙,操作煩瑣,費時費力。
(3)成本高。國產品牌的智能鎖普遍都在三千元左右,比起傳統(tǒng)鎖幾百元的價格,讓很多用戶望而卻步。
本文針對以上不足,利用手機APP以及互聯(lián)網技術設計了一種能滿足實驗室需求、具有多開鎖方式、能集中控制管理的實驗室智能門禁系統(tǒng)。
二、系統(tǒng)設計
1.系統(tǒng)總體設計
本設計需要實現(xiàn)鍵盤輸入臨時密碼開鎖、手機APP開鎖和指紋開鎖三種開鎖方式供實驗室成員選擇,系統(tǒng)主要由設備端、服務器端與APP端構成,總體設計如圖1所示。
云端主要涉及服務器、數(shù)據(jù)庫等技術,門禁終端通過GPRS、WIFI網絡、有線網絡連接到互聯(lián)網。通過騰訊云連接到云服務器上。PC端、手機端、瀏覽器端通過網絡連接到服務器,獲取信息、控制設備等。
集控系統(tǒng)的設備端如圖2所示,主要涉及指紋、GPRS、WIFI、有線連接等,設備端通過GPRS、WIFI網絡、有線網絡連接到互聯(lián)網,發(fā)送和接受服務器的消息,并根據(jù)服務器消息執(zhí)行開關鎖等相應操作。
2.設備端硬件設計
設備端硬件分為MCU模塊、GPRS模塊、以太網控制電路、WIFI模塊、指紋模塊、顯示及按鍵模塊、電源電路、開鎖電路等部分。
MCU采用意法半導體公司的STM32F407ZET,其3路UART接口分別與GPRS模塊G3524、WIFI模塊ESP8266、指紋模塊AS608相連;[5]兩路SPI接口分別與FLASH存儲器W25Q128和有線網絡模塊W5500相連;FSMC接口與LCD和SRAM等外設相連。
在設計MCU接口電路時應注意以下幾點:
(1)SRAM采用IS62WV51216,容量為1M字節(jié)。SRAM_[Ax]為SRAM的地址位,SRAM_[I/O]為SRAM的數(shù)據(jù)位,SRAM的速率較快,所以在布線時要考慮不要走線太長。
(2)GPRS模塊G3524通過4V供電,在靠近電源供給的部分,需要使用一個大容量的鉭電容來蓄能,當信號較低時,GPRS模塊需要較大電流,這樣就會拉低電源電壓,放置一個大容量鉭電容,有助于改善這一問題。天線部分需要進行50Ω的阻抗匹配設計,同時走線也不能走直角,主要以弧形線為主。
(3)以太網控制電路中,W5500通過RJ45接口與網線相連,由于RJ45含有高速信號,所以對于幾個重要信號線,采用差分等長走線,防止因為走線影響RJ45速率。
在電源電路中,整個系統(tǒng)供電包括12V、5V、4V、3.3V。12V電源主要是整個電路的電源輸入,以及門磁的驅動供電,5V主要為USB部分供電以及3.3V的轉換電源。4V主要為GPRS模塊供電,3.3V主要為MCU、W25Q128、LCD、SRAM、W5500等芯片供電。
開鎖電路則是使用傳統(tǒng)的電控鎖,鎖中帶有一個電磁鐵,當電磁鐵通電時開鎖,未通電時鎖體關閉。電磁鐵通電需要最小12V電壓,最短通電時間0.5s,故使用5V繼電器作為電磁鐵的開關,外接12V電源,當繼電器導通時電磁鐵通電開鎖,電路如圖3所示。
3.設備端軟件設計
設備端軟件需要完成以下四個主要功能:
(1)通過片上EEPROM中的信息對系統(tǒng)進行初始化,初始化包括初始化相關外設,啟動emwin圖形庫,然后通過W5500、ESP8266、G3524連接到消息服務器。
(2)使用串口3、串口4、串口5,分別與GPRS模塊、WIFI模塊、AS608指紋模塊進行通信;其中GPRS模塊、WIFI模塊均通過AT指令進行控制,使其連上MQTT服務器,當收到訂閱消息后通過串口發(fā)送接收到的信息,具體流程如圖4所示;而通過指紋模塊AS608的控制指令,可以對AS608進行指紋注冊、指紋刪除、指紋匹配等。當指紋模塊檢測到有指紋按下后,發(fā)送指紋驗證指令,即可驗證指紋的合法性,如圖5所示。
(3)控制LCD進行顯示。
(4)控制開鎖驅動電路進行開鎖。
4.Android終端app設計
在Android手機終端里面,需要完成的功能主要是設備操作、用戶操作、臨時密碼操作。結構如圖6所示。
5.數(shù)據(jù)庫設計
本設計采用MariaDB數(shù)據(jù)庫,用來儲存設備信息、用戶信息、日志信息、臨時密碼信息、產品信息。[6]MariaDB數(shù)據(jù)庫中需要設計的表有:
①user:用戶表,儲存用戶信息。如表1所示。
②devmeaasge:設備表,存放設備的信息。如表2所示。
③config:設備用戶配置表,一個設備可對應多個用戶。如表3所示。
④log:設備日志信息表,用于存放設備的日志信息。如表4所示。
⑤temppasswd:臨時密碼信息表,用于存放設備日志信息。如表5所示。
⑥product:設備出廠信息表,用于存放設備的出廠信息。如表6所示。
Web服務器是采用HTTP協(xié)議進行通信,主要處理來自APP終端授權操作的請求。接收到請求之后,根據(jù)請求內容的不同,對數(shù)據(jù)庫進行增、刪、改、查。Web服務器使用Hibernate對MariaDB數(shù)據(jù)庫進行增、刪、改、查等操作,MariaDB會將數(shù)據(jù)持久化到數(shù)據(jù)庫中。
6.MQTT策略設計
系統(tǒng)的整個通訊采用了MQTT協(xié)議,MQTT協(xié)議是基于發(fā)布與訂閱模式的一種協(xié)議。[7]所以對于發(fā)布與訂閱主題,一個良好的策略有助于增加系統(tǒng)的穩(wěn)定性。[8-11]
(1)發(fā)布策略
設備端:其發(fā)布主題為SmartAccess/dev/p/{SN}。SN為該設備的唯一ID,設備出廠時會寫入該ID,并保持該ID的唯一性。
服務端:其發(fā)布主題為SmartAccess/server/p/{SN}。SN為需要接收的目標設備。
APP端:其發(fā)布主題為SmartAccess/app/p/{SN}。SN為需要接收的目標設備。
(2)訂閱策略
設備端的訂閱主題為SmartAccess/server/p/{SN}。SN為該設備的唯一ID,即設備端上線后,會立即訂閱來自服務器端的消息。當服務器端發(fā)布了對應設備的消息后,設備端就能接收到該消息。
服務器端要訂閱三個主題:第一個是will,即設備的遺囑消息,當設備超過一定時間沒有發(fā)送心跳請求時,就會觸發(fā)該主題,進而服務器就能了解到設備的運行狀態(tài),可以發(fā)送一些離線警告的消息。第二個是/SmartAccess/dev/p/+,表示訂閱該目錄下的所有消息,即能收到所有的設備發(fā)布的消息。里面有設備的命令,包括設備在線、設備校時等。第三個是/SmartAccess/log/p/+,該主題主要是設備的日志信息。
(3)連接策略
ActiveMQ默認不驗證用戶名密碼,即只要知道了mqtt服務器地址與端口就能連接到mqtt服務器端。這樣任意的用戶都能獲取到我們的數(shù)據(jù),這帶來了很大的安全隱患。[12]我們可以通過對ActiveMQ做二次開發(fā),讓其支持鑒權操作來解決此問題,即當有設備連接時,會首先攔截該次連接,然后在數(shù)據(jù)庫里查詢該用戶名與密碼,當匹配到了用戶名與密碼之后,對該連接進行放行;如果沒有匹配到,那么就對連接進行阻斷。這樣只有保存在數(shù)據(jù)庫中的合法用戶才能連接到服務器,其他非法用戶均不能連接到服務器,進而防止非法用戶竊取數(shù)據(jù)。
三、系統(tǒng)性能測試及分析
通過使用上位機以及AT指令來測試設備端GPRS以及WIFI模塊是否能夠正常使用,測試結果如圖7所示;通過在Android終端安裝APP、注冊以及鎖定設備等操作,測試APP能否正常使用,測試結果如圖8所示;服務器端測試首先在本地電腦上完成,當功能實現(xiàn)后,將程序用MyEclipse打包,之后部署到服務器上。服務端程序的調試主要借助于http工具。采用http工具模擬手機APP的訪問,通過調整請求URL的鍵值對和請求實體,來觀察得到的返回數(shù)據(jù)是不是自己想要的結果,測試結果如圖9所示。
四、結語
本系統(tǒng)實現(xiàn)了通過WIFI、GPRS連接互聯(lián)網,通過手機APP來設置門禁系統(tǒng)的信息,可以對開鎖人員進行集控管理,可以查看設備的日志信息,通過自動統(tǒng)計日志信息,可以了解設備的使用情況以及學生的出勤情況,同時對實驗室成員的管理進一步體現(xiàn)了智能化。
參考文獻:
[1]孫恒.基于NFC技術和云服務的新型門禁系統(tǒng)設計與實現(xiàn)[J].實驗研究與探索,2016,35(1):114-120.
[2]符怡銘,袁亮,肖祥彬等.基于STM32的指紋門禁系統(tǒng)的設計[J].科技廣場,2017(3):179-181.
[3]歐煥銳.QR二維碼識別算法及其在新型門禁系統(tǒng)中應用的研究[D].杭州:浙江大學,2018.
[4]李滿玲.基于云服務的NFC門禁監(jiān)控系統(tǒng)的設計[J].吉林師范大學學報(自然科學版),2014,35(2):101-104.
[5]馬麗芳.基于北斗和GPRS車載終端的設計與研究[D].西安:西安科技大學,2013.
[6]嚴士超,果莉,李明等.基于泛在網技術的實驗室智能門禁考勤管理系統(tǒng)的研究[J].實驗技術與管理,2014,31(5):162-163,170.
[7]IBM.MQ遙測傳輸(MQTT)V3.1協(xié)議規(guī)范[DB/OL].https://www.ibm.com/developerworks/cn/webservices/ws-mqtt/index.html.
[8]任亨等.基于 MQTT 協(xié)議的消息推送服務器[J].計算機系統(tǒng)應用,2014(3):77-82.
[9]許金喜,張新有.Android平臺基于MQTT協(xié)議的推送機制[J].計算機系統(tǒng)應用, 2015(1):185-190.
[10]Lee S,Kim H,Hong D,et al.Correlation analysis of MQTT loss and delay according to QoS level[C].International Conference on Information Networking.IEEE Computer Society,Jan.2013.Bangkok:714-717.
[11]Lampkin V,Weng T.L.,Ollvera L.,et al.Building Smarter Planet Solutions with MQTT and IBM WebSphere MQ Telemetry[J/OL]. http://www.redbooks.ibm.com/abstracts/sg248054.html.
[12]周聰.基于改進的ActiveMQ的通信模型的設計和實現(xiàn)[D].長春:吉林大學,2017.
(編輯:王天鵬)