







摘" 要:該文介紹一種基于STM32單片機的二維碼門禁控制系統。該系統通過集成圖像采集、二維碼識別、數據通信和控制邏輯等關鍵模塊,實現高效、安全的門禁管理。首先,系統利用GM65圖像傳感器捕捉進出人員的二維碼圖像,然后通過STM32單片機的強大處理能力進行二維碼解碼,從而獲取其中的身份信息。接著,系統將解碼得到的數據與One-Net云端信息進行比對,以判斷進出人員是否具有合法通行權限。若權限驗證通過,則門禁設備執行開鎖操作,允許人員通行;若驗證不通過,則系統拒絕開鎖,并記錄相關事件。該系統的引入,不僅提升門禁管理的效率和安全性,還降低了人為操作的錯誤率,為智能化、自動化的門禁管理提供新的解決方案。
關鍵詞:STM32單片機;二維碼識別;門禁控制;圖像采集;數據處理
中圖分類號:TP391.44" " " 文獻標志碼:A" " " " " 文章編號:2095-2945(2024)25-0049-04
Abstract: This paper introduces a two-dimensional code access control system based on STM32 single chip microcomputer. The system realizes efficient and safe access control management by integrating key modules such as image acquisition, QR code recognition, data communication and control logic. First of all, the system uses the GM65 image sensor to capture the QR code images of people entering and leaving, and then decodes the QR code through the powerful processing ability of the STM32 single-chip microcomputer, so as to obtain the identity information. Then, the system compares the decoded data with the One-Net cloud information to determine whether people in and out have legal access. If the authority verification passes, the access control device performs the unlocking operation and allows people to pass; if the verification fails, the system refuses to unlock and records the relevant events. The introduction of this system not only improves the efficiency and security of access control management, but also reduces the error rate of human operation, and provides a new solution for intelligent and automatic access control management.
Keywords: STM32 single chip microcomputer; QR code recognition; access control; image acquisition; data processing
二維碼(Quick Response Code,QR Code)在代碼編制上利用“0”“1”比特流的概念,使用若干個與二進制相對應的幾何形體來表示文字數值信息,從誕生之日起,就得到了許多國家的關注。它在各類證件的管理、報表和票據管理、商品及貨物管理、工業生產線的自動化管理[1]方面應用廣泛。二維碼的門禁系統相較于其他電磁式門禁系統,能夠在最短時間內甄別來訪者身份并決定是否允許來訪者通過,有著保密性高、抗損性強、存儲量大等優點[2]。本文設計出了基于二維碼的門禁控制系統,將采集的二維碼數據與數據庫數據進行比對,如果一致,開啟門禁系統;如果不一致,將無法開啟門禁系統[3],實現了門禁控制系統的功能[4]。
1" 系統功能及方案設計
1.1" 系統功能
設計出的基于單片機的二維碼門禁控制系統,實現了二維碼自動生成、二維碼數據采集和編碼傳輸、數據匹配、門禁開關及用戶提示等功能。二維碼自動生成,用戶配置二維碼數據,向得到授權的用戶發送實時數據,并存儲已被授權的訪客信息。二維碼數據采集和編碼傳輸:采集圖像信息,對圖像內二維碼圖形辨識,并將二維碼數據轉換成串口數據傳輸到單片機。數據匹配:單片機讀取串口數據,并與存儲器內部數據進行匹配。門禁開關,數據一致,開啟門禁系統;否則,不開啟門禁系統。用戶提示功能,提示用戶出示二維碼數據,并反饋是否可以通行。
1.2" 方案設計
根據系統的功能,設計出的門禁控制系統框圖如圖1所示。該系統由STM32控制模塊、二維碼識別模塊、門禁開關模塊、LED顯示模塊、報警模塊、電源模塊和串口通信模塊組成[5]。二維碼識別模塊掃描二維碼得到相關信息后,將數據通過串口傳輸到STM32F103C8T6單片機內部,同時單片機通過太網通信模塊調取One-Net云平臺所存存儲的授權信息,兩者進行對比,比對有效后輸出相關信號至門禁開關模塊,以此來達到門禁系統開關的目的。
2" 系統的硬件設計
2.1" STM32模塊
本設計的控制核心選用STM32系列的STM32F 103C8T6單片機,它具有72 MHz的額定工作頻率,64 KB的Flash存儲器空間,20 KB的SRAM存儲器。另外還集成“看門狗”、定時器、GPIO口、DMA控制器、ADC、UART、SPI接口及IIC接口等外設,具有成本低、速度快、性價比高等優點[6]。外圍電路如圖2所示,主要構成部分有晶振電路、復位電路以及電源電路3部分[7]。
2.2" 二維碼識別模塊
本設計的二維碼解碼模塊選用的是GM65模塊,如圖3所示。它的內部MCU集成了圖形辨識算法,并以圖像識別為基礎內含了二維碼解碼算法,能夠極其輕松并精準地辨別條碼比標識,并可以將其轉換輸出為串口數據,與單片機通信。此外,GM65模塊還有著良好的物理屬性,工作電壓DC4.2~6.0 V,工作電流160 mA,待機電流30 mA;識別角度為支持旋轉360°,傾斜±65°,偏轉60°;分辨率為648×488;掃描角度:水平35°,垂直38°。內置紅外光識別與 LED 燈補光,即使是在十分黑暗的工作環境下,GM65模塊依然能夠正常工作。
2.3" 電源模塊
在本次系統設計中,外部提供12 V電源,可驅動門禁裝置開啟,而內部的STM32單片機、GM65模塊需要3.3 V供電 ,以太網模塊、LED顯示模塊、報警模塊需要5 V供電。12 V轉5 V的電路(圖4)采用ME3116芯片作為主芯片。ME3116是種金屬氧化物半導體場效應晶體管的降壓穩壓器,可輸出1 A的負載。采用PWM 輸出方式,工作頻率穩定在550 KHz。5 VDC轉3.3 VDC的電路采用AMS1117穩壓器為核心,片上微調把基準電壓調整到1.5%的誤差以內。如圖5所示。
2.4" 以太網云端通信模塊設計
USR-TCP232-T2是一款插針式以太網模塊,內部包含TCP/IP協議棧可以完全支持One-Net中EDP協議的開發,實現UART轉以太網雙向透傳功能,具備1路以太網口,10/100 Mbps速率;支持自定義注冊包、心跳包機制;支持網頁、AT指令、串口和網絡配置;支持超時重啟、DHCP自動獲取IP、DNS域名解析、虛擬串口、遠程升級固件功能。通過此模塊能夠很容易達到嵌入式設備的網絡平臺基本功能,避免勞心費神、減少大量的開發時間。
串口轉以太網模塊 USR-TCP232-T2 向云端傳送時,將數據包的大小和固定的時間作為根據,對串行數據進行封裝,打包的時間是4個字節。因此,當串口接收數據的時間間隔大于4字節的時間時,模塊便執行命令,將其打包傳輸出去。例如:將波特率設置為9 600時,根據公式器件默認打包時間:T=1/9 600×40=4 ms。計算公式如公式(1)所示
T=1/波特率×10×4 。 (1)
2.5" 顯示模塊
本設計的顯示部分選用LCD1602字符型液晶顯示模塊,提示用戶二維碼是否校驗通過。它由LCD字符型液晶顯示屏、控制驅動芯片HD44780,以及外部電路組成。能夠顯示16×2個英文字符;工作電壓在4.5~5.5 V;負荷工作電流為2.0 mA(5.0 V);字符尺寸:2.95 mm×4.35 mm(寬×高)。
LCD1602顯示屏與STM32F103C8T6單片機連接的電路圖如圖6所示。VCC端連接5 V電源電壓;GND接地;RS為數據/命令選擇;A0連接電位器,調節亮度;RE為讀/寫選擇;E為使能信號;D0—D7為雙向數據線;A為背光電源正極;K為背光電源負極,電源負極相連。
2.6" 門禁開關模塊
門禁開關模塊主要是控制門磁裝置開關,電路輸入端的信號為高電平“1”時,電路中繼電器吸合,驅動門禁開啟;反之,則不開啟。如圖7所示。
3" 系統的軟件設計
3.1" 軟件設計整體概述
程序的設計包含二維碼解碼部分、云端傳輸部分、按鍵控制部分、蜂鳴器報警部分以及繼電器控制部分5個部分。二維碼解碼部分負責掃描二維碼圖片,并將解碼得到的數據通過串口發送給單片機。云端控制部分負責將單片機通過以太網口與云平臺建立連接,并上傳解碼數據至云平臺。按鍵控制部分和蜂鳴器報警部分負責將按鍵程序以及蜂鳴器程序初始化,完成結構化函數供主程序調用。繼電器控制部分負責接收單片機發送的高低電平信號,用以控制電磁鎖的開斷。
3.2" 程序設計
系統通電后,USARTx_Inlt(USART2,9600)、My_
RELAY_Init()、My_KEY_Init()、My_BEEP_Init()、My_QRBAR_Init()等函數對系統的各個模塊進行初始化,通過bool My_OneNet_DevLink(void)的返回值判斷STM32單片機是否與One-Net平臺建立連接;GM65模塊設置掃描模式為感應模式并配置解碼模塊為串口輸出模式,將解碼得到數據文件My_QrBarCode_Process()通過串口發送給單片機,單片機將接收到的數據通過USR-TCP232-T2以太網模塊發送至云端,One-Net云平臺內部匹配數據,將判斷結果反饋回單片機(“0”為假,“1”為真);如果vold OnGetQrBarCode()內部返回值為“1”,門禁開啟、蜂鳴器發出兩聲清脆“滴滴”,如果vold OnGetQrBarCode()內部返回值為“0”,蜂鳴器發出兩聲音調較低“嘟嘟”。
在系統通電狀態下,按鍵程序if(KeytsRelease(KEY_0))成立,則認為有人操作按鍵,門禁開啟(按鍵優先級最高)。如圖8所示。
4" 系統性能測試
4.1" 功能及穩定性測試
在考慮極端環境下,系統外置電源斷電的情況下。此時內部12 V、24 000 mAh備用鋰電池組電源開啟,支持門禁系統工作,經過測試能夠支持門禁系統12 h的負荷工作。
應急按鈕測試,系統設定的應急按鈕為優先級最高指令,通過測試,無論系統在何種工作模式下,動作應急按鈕,門禁系統均開啟。
4.2nbsp; 采集數據精度及實時性測試
GM65模塊是內部解析二維碼的數據通過串口通信的方式與STM32單片機通信,所以使用串口助手監聽GM65模塊解碼數據與USR-VCOM有人虛擬軟件內部數據對比;對500份通過授權的數據對比發現,兩者一致。
周圍不同光照強度測試,選取5~100 Lux的光照強度,均可完全識別二維碼數據(GM65模塊內部有LED補光)。
對于比對成功的數據,系統能夠在2~3 s時間內開啟門禁,符合設計要求。
5" 結束語
本文是以STM32F103C8T6單片機為核心設計并實現了基于二維碼的門禁控制系統,該系統能夠實現對門禁的安全、可靠控制,具有保密性高、靈活、方便等優點,可廣泛應用于小區、公司、單位和家庭,具有較高的實際推廣價值。
參考文獻:
[1] 許超.基于標準地址的二維碼電子門牌技術研究[D].南京:南京郵電大學,2019.
[2] 侯化安,易忠,王三勝.基于STM32的磁檢測系統和掃描檢測算法研究[J].測試技術學報,2016,30(4):313-321.
[3] 王雪飛.嵌入式系統在指紋門禁系統的應用[J].信息系統工程,2018(2):94.
[4] 張楠.手機鑰匙在電子門禁系統中的應用[J].金陵科技學院學報,2015,31(1):27-29.
[5] 原國強.基于STM32的交流電機磁場定向控制系統設計與實現[D].天津:天津大學,2016.
[6] 胡瑤.基于單片機控制的鐵路機車壓縮機溫度控制電路的研究[D].蘭州:蘭州交通大學,2016.
[7] 孟珩.基于無線傳感網絡的溫室監控系統研究與設計[D].青島:山東科技大學,2020.