文/任肖麗 王驥 許學(xué)禮
隨著信息技術(shù)與網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,門禁控制系統(tǒng)更具集成化、智能化和網(wǎng)絡(luò)化。為了社區(qū)和建筑的智能防護(hù),門禁系統(tǒng)已由從單一門禁功能發(fā)展到綜合多功能的系統(tǒng)。本文主要研究基于STM32單片機(jī)和RFID技術(shù)的門禁控制系統(tǒng),連接oneNET,通過上位機(jī)即手機(jī)APP實(shí)現(xiàn)系統(tǒng)遠(yuǎn)程控制。
本系統(tǒng)由STM32最小系統(tǒng)、RFID讀卡識(shí)別模塊、WiFi模塊、顯示屏、繼電器、電磁鎖組成。以STM32最小系統(tǒng)為核心,最小系統(tǒng)與顯示屏通信實(shí)現(xiàn)顯示屏控制;上位機(jī)通過網(wǎng)絡(luò)與服務(wù)器相互通信,服務(wù)器下發(fā)信息與STM32通信,實(shí)現(xiàn)遠(yuǎn)程的控制,利用模塊識(shí)別RFID卡,通過最小系統(tǒng)的處理,從而實(shí)現(xiàn)最小系統(tǒng)控制繼電器打開與關(guān)閉電磁鎖。系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
主控芯片采用STM32F103系列單片機(jī),內(nèi)核為Cortex-M3,工作頻率高達(dá)72MHz,程序存儲(chǔ)器容量高達(dá)256KB,支持I2C, SDIO,SPI,USART等接口模式,可滿足不同條件下的通信需求。芯片采用3.3V供電,多重電容濾波穩(wěn)定電壓,外部接有8MHz晶振及復(fù)位電路,其組成的最小系統(tǒng)電路主要由晶振電容組成的時(shí)鐘電路、主控芯片、電容電阻按鍵組成的復(fù)位電路、SWD調(diào)試接口電路組成。最小系統(tǒng)如圖2所示。
圖1:系統(tǒng)結(jié)構(gòu)框圖
圖2:STM32最小系統(tǒng)電路
門禁系統(tǒng)無需遠(yuǎn)距離識(shí)別卡號(hào)信息,且不需通過插卡形式讀取卡片,所以本系統(tǒng)適合采用高頻段的13.56MHz射頻讀寫芯片,選用RC-522 IC卡感應(yīng)模塊為RFID模塊,其主控芯片為MFRC522,是一款高度集成的讀/寫卡芯片,具有低電壓、低成本和尺寸小的特點(diǎn),集成了所有的非接觸式的通信協(xié)議,本設(shè)計(jì)采用SPI通信方式。
本系統(tǒng)人機(jī)交互界面模塊,采用集成DGUS軟件的智能屏DMT10600C070_05W,能快速靈活開發(fā)高觸摸屏人機(jī)交互界面,用戶界面體驗(yàn)好,具有極強(qiáng)的使用性和可靠性。同時(shí),該智能屏采用K600+內(nèi)核,是7.0英寸的1024×600圖形點(diǎn)陣屏,模塊采用5V供電,通過串口與主機(jī)通信。
圖3:軟件主要流程框圖
圖4:門禁系統(tǒng)
圖5:安卓APP主界面
圖6:顯示屏主界面
圖7:網(wǎng)頁應(yīng)用圖
網(wǎng)絡(luò)模塊選用ESP8266-01 Wi-Fi模塊,外觀小巧,性能強(qiáng)大,同時(shí)集成了多種Wi-Fi協(xié)議,其搭建的最小運(yùn)行電路如圖3所示,將CH_PD和VCC接高電平,GND接地,串口輸出的UTXD和URXD與串口連接,同時(shí)將串口與STM32通信,通過Wi-Fi模塊內(nèi)置的 TCP/IP 協(xié)議,實(shí)現(xiàn)STM32串口通過Wi-Fi模塊實(shí)現(xiàn)與服務(wù)器之間的通信。
ESP8266-01通過AT指令配置連接網(wǎng)絡(luò)Wi-Fi熱點(diǎn),作為客戶端,而上位機(jī)作為服務(wù)端,即,可通過網(wǎng)絡(luò)對(duì)上位機(jī)發(fā)送數(shù)據(jù),實(shí)現(xiàn)遠(yuǎn)程網(wǎng)絡(luò)通信。本系統(tǒng)使用oneNET的服務(wù)器作為服務(wù)端,Wi-Fi模塊作為客戶端連接服務(wù)器,為透?jìng)髂J剑瑢?shí)現(xiàn)與oneNET的服務(wù)器通信。
本文門禁系統(tǒng)軟件主要流程圖如圖3所示,門禁系統(tǒng)啟動(dòng)后,首先初始化系統(tǒng)各個(gè)硬件,如果網(wǎng)絡(luò)模塊與預(yù)設(shè)好的網(wǎng)絡(luò)連接成功,模塊開始對(duì)RFID模塊進(jìn)行監(jiān)聽,查詢是否有卡,如果識(shí)別到RFID卡,讀取卡片信息,和系統(tǒng)中存有的信息進(jìn)行比較,如果信息匹配成功,驅(qū)動(dòng)繼電器,打開電磁鎖,從而實(shí)現(xiàn)開門,將開門信息通過網(wǎng)絡(luò)上傳到oneNET服務(wù)器,最終可在上位機(jī)查看信息;同時(shí)監(jiān)聽顯示屏模塊發(fā)送過來的串口信息,實(shí)時(shí)解析信息,實(shí)現(xiàn)顯示屏對(duì)系統(tǒng)的控制。
本系統(tǒng)軟件設(shè)計(jì)采用模塊化方式,可分為主程序、RFID識(shí)別程序、顯示屏串口解析操作程序、ESP8266-01操作程序、STM32flash操作程序和隨機(jī)碼解鎖程序。系統(tǒng)采用的上位機(jī)是基于安卓設(shè)計(jì)的手機(jī)APP,利用易安卓(E4A)開發(fā)設(shè)計(jì)安卓手機(jī)APP。通過利用E4A實(shí)現(xiàn)調(diào)用oneNET的API即使用GET和POST在onenet服務(wù)器獲取數(shù)據(jù),同時(shí)對(duì)硬件系統(tǒng)發(fā)送命令,實(shí)現(xiàn)手機(jī)APP通過oneNET服務(wù)器控制硬件系統(tǒng)。
通過各模塊的實(shí)際測(cè)試,最終實(shí)現(xiàn)如圖4所示的門禁系統(tǒng),燒錄完整程序完成硬件測(cè)試:通過顯示屏添加用戶和RFID卡片信息,保存在STM32內(nèi)部flash,重啟讀取保存的信息,放置錄入的RFID卡片,可以開啟門禁系統(tǒng)。STM32每過10s更新隨機(jī)碼,同時(shí)通過ESP8266-01上傳到服務(wù)器,可以在顯示屏輸入隨機(jī)碼打開門禁系統(tǒng),同時(shí),每一次讀取到RFID卡片開啟門禁系統(tǒng)的信息,發(fā)送到服務(wù)器,可以在網(wǎng)頁和手機(jī)APP中查看。
安卓APP主界面如圖5,可查看接收的隨機(jī)碼,通過顯示屏輸入隨機(jī)碼即可打開電磁鎖。通過點(diǎn)擊門禁的“開”和“關(guān)”控制門禁系統(tǒng),在主界面通過實(shí)時(shí)的折線圖觀察門鎖狀態(tài)。點(diǎn)擊“下一頁”可顯示門禁系統(tǒng)中記錄的用戶開門次數(shù)。
通過DUGS軟件實(shí)現(xiàn)的顯示屏控制設(shè)計(jì),如圖6所示顯示屏主界面,當(dāng)通過串口連接STM32后,可傳輸串口信號(hào)到STM32,也可以接收STM32傳輸?shù)姆答佇畔⒆龀鱿鄳?yīng)控制。
在oneNET網(wǎng)站利用其開發(fā)工具實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用,如圖7所示,設(shè)計(jì)的應(yīng)用發(fā)布在網(wǎng)絡(luò)上,當(dāng)硬件接入到oneNET時(shí),可通過該網(wǎng)頁應(yīng)用實(shí)現(xiàn)與硬件系統(tǒng)通信。
本門禁系統(tǒng)以STM32單片機(jī)為核心,結(jié)合人機(jī)交互界面和上位機(jī),最終實(shí)現(xiàn)門禁控制系統(tǒng)。通過測(cè)試,本系統(tǒng)具有良好的識(shí)別率,可以準(zhǔn)確快速識(shí)別RFID卡片,適合小區(qū)、居民住宅等一系列地方的門禁管理,具有良好的穩(wěn)定性和實(shí)用性。