摘" 要:該文介紹一種基于STM32單片機的二維碼門禁控制系統(tǒng)。該系統(tǒng)通過集成圖像采集、二維碼識別、數(shù)據(jù)通信和控制邏輯等關(guān)鍵模塊,實現(xiàn)高效、安全的門禁管理。首先,系統(tǒng)利用GM65圖像傳感器捕捉進(jìn)出人員的二維碼圖像,然后通過STM32單片機的強大處理能力進(jìn)行二維碼解碼,從而獲取其中的身份信息。接著,系統(tǒng)將解碼得到的數(shù)據(jù)與One-Net云端信息進(jìn)行比對,以判斷進(jìn)出人員是否具有合法通行權(quán)限。若權(quán)限驗證通過,則門禁設(shè)備執(zhí)行開鎖操作,允許人員通行;若驗證不通過,則系統(tǒng)拒絕開鎖,并記錄相關(guān)事件。該系統(tǒng)的引入,不僅提升門禁管理的效率和安全性,還降低了人為操作的錯誤率,為智能化、自動化的門禁管理提供新的解決方案。
關(guān)鍵詞:STM32單片機;二維碼識別;門禁控制;圖像采集;數(shù)據(jù)處理
中圖分類號:TP391.44" " " 文獻(xiàn)標(biāo)志碼: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”比特流的概念,使用若干個與二進(jìn)制相對應(yīng)的幾何形體來表示文字?jǐn)?shù)值信息,從誕生之日起,就得到了許多國家的關(guān)注。它在各類證件的管理、報表和票據(jù)管理、商品及貨物管理、工業(yè)生產(chǎn)線的自動化管理[1]方面應(yīng)用廣泛。二維碼的門禁系統(tǒng)相較于其他電磁式門禁系統(tǒng),能夠在最短時間內(nèi)甄別來訪者身份并決定是否允許來訪者通過,有著保密性高、抗損性強、存儲量大等優(yōu)點[2]。本文設(shè)計出了基于二維碼的門禁控制系統(tǒng),將采集的二維碼數(shù)據(jù)與數(shù)據(jù)庫數(shù)據(jù)進(jìn)行比對,如果一致,開啟門禁系統(tǒng);如果不一致,將無法開啟門禁系統(tǒng)[3],實現(xiàn)了門禁控制系統(tǒng)的功能[4]。
1" 系統(tǒng)功能及方案設(shè)計
1.1" 系統(tǒng)功能
設(shè)計出的基于單片機的二維碼門禁控制系統(tǒng),實現(xiàn)了二維碼自動生成、二維碼數(shù)據(jù)采集和編碼傳輸、數(shù)據(jù)匹配、門禁開關(guān)及用戶提示等功能。二維碼自動生成,用戶配置二維碼數(shù)據(jù),向得到授權(quán)的用戶發(fā)送實時數(shù)據(jù),并存儲已被授權(quán)的訪客信息。二維碼數(shù)據(jù)采集和編碼傳輸:采集圖像信息,對圖像內(nèi)二維碼圖形辨識,并將二維碼數(shù)據(jù)轉(zhuǎn)換成串口數(shù)據(jù)傳輸?shù)絾纹瑱C。數(shù)據(jù)匹配:單片機讀取串口數(shù)據(jù),并與存儲器內(nèi)部數(shù)據(jù)進(jìn)行匹配。門禁開關(guān),數(shù)據(jù)一致,開啟門禁系統(tǒng);否則,不開啟門禁系統(tǒng)。用戶提示功能,提示用戶出示二維碼數(shù)據(jù),并反饋是否可以通行。
1.2" 方案設(shè)計
根據(jù)系統(tǒng)的功能,設(shè)計出的門禁控制系統(tǒng)框圖如圖1所示。該系統(tǒng)由STM32控制模塊、二維碼識別模塊、門禁開關(guān)模塊、LED顯示模塊、報警模塊、電源模塊和串口通信模塊組成[5]。二維碼識別模塊掃描二維碼得到相關(guān)信息后,將數(shù)據(jù)通過串口傳輸?shù)絊TM32F103C8T6單片機內(nèi)部,同時單片機通過太網(wǎng)通信模塊調(diào)取One-Net云平臺所存存儲的授權(quán)信息,兩者進(jìn)行對比,比對有效后輸出相關(guān)信號至門禁開關(guān)模塊,以此來達(dá)到門禁系統(tǒng)開關(guān)的目的。
2" 系統(tǒng)的硬件設(shè)計
2.1" STM32模塊
本設(shè)計的控制核心選用STM32系列的STM32F 103C8T6單片機,它具有72 MHz的額定工作頻率,64 KB的Flash存儲器空間,20 KB的SRAM存儲器。另外還集成“看門狗”、定時器、GPIO口、DMA控制器、ADC、UART、SPI接口及IIC接口等外設(shè),具有成本低、速度快、性價比高等優(yōu)點[6]。外圍電路如圖2所示,主要構(gòu)成部分有晶振電路、復(fù)位電路以及電源電路3部分[7]。
2.2" 二維碼識別模塊
本設(shè)計的二維碼解碼模塊選用的是GM65模塊,如圖3所示。它的內(nèi)部MCU集成了圖形辨識算法,并以圖像識別為基礎(chǔ)內(nèi)含了二維碼解碼算法,能夠極其輕松并精準(zhǔn)地辨別條碼比標(biāo)識,并可以將其轉(zhuǎn)換輸出為串口數(shù)據(jù),與單片機通信。此外,GM65模塊還有著良好的物理屬性,工作電壓DC4.2~6.0 V,工作電流160 mA,待機電流30 mA;識別角度為支持旋轉(zhuǎn)360°,傾斜±65°,偏轉(zhuǎn)60°;分辨率為648×488;掃描角度:水平35°,垂直38°。內(nèi)置紅外光識別與 LED 燈補光,即使是在十分黑暗的工作環(huán)境下,GM65模塊依然能夠正常工作。
2.3" 電源模塊
在本次系統(tǒng)設(shè)計中,外部提供12 V電源,可驅(qū)動門禁裝置開啟,而內(nèi)部的STM32單片機、GM65模塊需要3.3 V供電 ,以太網(wǎng)模塊、LED顯示模塊、報警模塊需要5 V供電。12 V轉(zhuǎn)5 V的電路(圖4)采用ME3116芯片作為主芯片。ME3116是種金屬氧化物半導(dǎo)體場效應(yīng)晶體管的降壓穩(wěn)壓器,可輸出1 A的負(fù)載。采用PWM 輸出方式,工作頻率穩(wěn)定在550 KHz。5 VDC轉(zhuǎn)3.3 VDC的電路采用AMS1117穩(wěn)壓器為核心,片上微調(diào)把基準(zhǔn)電壓調(diào)整到1.5%的誤差以內(nèi)。如圖5所示。
2.4" 以太網(wǎng)云端通信模塊設(shè)計
USR-TCP232-T2是一款插針式以太網(wǎng)模塊,內(nèi)部包含TCP/IP協(xié)議棧可以完全支持One-Net中EDP協(xié)議的開發(fā),實現(xiàn)UART轉(zhuǎn)以太網(wǎng)雙向透傳功能,具備1路以太網(wǎng)口,10/100 Mbps速率;支持自定義注冊包、心跳包機制;支持網(wǎng)頁、AT指令、串口和網(wǎng)絡(luò)配置;支持超時重啟、DHCP自動獲取IP、DNS域名解析、虛擬串口、遠(yuǎn)程升級固件功能。通過此模塊能夠很容易達(dá)到嵌入式設(shè)備的網(wǎng)絡(luò)平臺基本功能,避免勞心費神、減少大量的開發(fā)時間。
串口轉(zhuǎn)以太網(wǎng)模塊 USR-TCP232-T2 向云端傳送時,將數(shù)據(jù)包的大小和固定的時間作為根據(jù),對串行數(shù)據(jù)進(jìn)行封裝,打包的時間是4個字節(jié)。因此,當(dāng)串口接收數(shù)據(jù)的時間間隔大于4字節(jié)的時間時,模塊便執(zhí)行命令,將其打包傳輸出去。例如:將波特率設(shè)置為9 600時,根據(jù)公式器件默認(rèn)打包時間:T=1/9 600×40=4 ms。計算公式如公式(1)所示
T=1/波特率×10×4 。 (1)
2.5" 顯示模塊
本設(shè)計的顯示部分選用LCD1602字符型液晶顯示模塊,提示用戶二維碼是否校驗通過。它由LCD字符型液晶顯示屏、控制驅(qū)動芯片HD44780,以及外部電路組成。能夠顯示16×2個英文字符;工作電壓在4.5~5.5 V;負(fù)荷工作電流為2.0 mA(5.0 V);字符尺寸:2.95 mm×4.35 mm(寬×高)。
LCD1602顯示屏與STM32F103C8T6單片機連接的電路圖如圖6所示。VCC端連接5 V電源電壓;GND接地;RS為數(shù)據(jù)/命令選擇;A0連接電位器,調(diào)節(jié)亮度;RE為讀/寫選擇;E為使能信號;D0—D7為雙向數(shù)據(jù)線;A為背光電源正極;K為背光電源負(fù)極,電源負(fù)極相連。
2.6" 門禁開關(guān)模塊
門禁開關(guān)模塊主要是控制門磁裝置開關(guān),電路輸入端的信號為高電平“1”時,電路中繼電器吸合,驅(qū)動門禁開啟;反之,則不開啟。如圖7所示。
3" 系統(tǒng)的軟件設(shè)計
3.1" 軟件設(shè)計整體概述
程序的設(shè)計包含二維碼解碼部分、云端傳輸部分、按鍵控制部分、蜂鳴器報警部分以及繼電器控制部分5個部分。二維碼解碼部分負(fù)責(zé)掃描二維碼圖片,并將解碼得到的數(shù)據(jù)通過串口發(fā)送給單片機。云端控制部分負(fù)責(zé)將單片機通過以太網(wǎng)口與云平臺建立連接,并上傳解碼數(shù)據(jù)至云平臺。按鍵控制部分和蜂鳴器報警部分負(fù)責(zé)將按鍵程序以及蜂鳴器程序初始化,完成結(jié)構(gòu)化函數(shù)供主程序調(diào)用。繼電器控制部分負(fù)責(zé)接收單片機發(fā)送的高低電平信號,用以控制電磁鎖的開斷。
3.2" 程序設(shè)計
系統(tǒng)通電后,USARTx_Inlt(USART2,9600)、My_
RELAY_Init()、My_KEY_Init()、My_BEEP_Init()、My_QRBAR_Init()等函數(shù)對系統(tǒng)的各個模塊進(jìn)行初始化,通過bool My_OneNet_DevLink(void)的返回值判斷STM32單片機是否與One-Net平臺建立連接;GM65模塊設(shè)置掃描模式為感應(yīng)模式并配置解碼模塊為串口輸出模式,將解碼得到數(shù)據(jù)文件My_QrBarCode_Process()通過串口發(fā)送給單片機,單片機將接收到的數(shù)據(jù)通過USR-TCP232-T2以太網(wǎng)模塊發(fā)送至云端,One-Net云平臺內(nèi)部匹配數(shù)據(jù),將判斷結(jié)果反饋回單片機(“0”為假,“1”為真);如果vold OnGetQrBarCode()內(nèi)部返回值為“1”,門禁開啟、蜂鳴器發(fā)出兩聲清脆“滴滴”,如果vold OnGetQrBarCode()內(nèi)部返回值為“0”,蜂鳴器發(fā)出兩聲音調(diào)較低“嘟嘟”。
在系統(tǒng)通電狀態(tài)下,按鍵程序if(KeytsRelease(KEY_0))成立,則認(rèn)為有人操作按鍵,門禁開啟(按鍵優(yōu)先級最高)。如圖8所示。
4" 系統(tǒng)性能測試
4.1" 功能及穩(wěn)定性測試
在考慮極端環(huán)境下,系統(tǒng)外置電源斷電的情況下。此時內(nèi)部12 V、24 000 mAh備用鋰電池組電源開啟,支持門禁系統(tǒng)工作,經(jīng)過測試能夠支持門禁系統(tǒng)12 h的負(fù)荷工作。
應(yīng)急按鈕測試,系統(tǒng)設(shè)定的應(yīng)急按鈕為優(yōu)先級最高指令,通過測試,無論系統(tǒng)在何種工作模式下,動作應(yīng)急按鈕,門禁系統(tǒng)均開啟。
4.2nbsp; 采集數(shù)據(jù)精度及實時性測試
GM65模塊是內(nèi)部解析二維碼的數(shù)據(jù)通過串口通信的方式與STM32單片機通信,所以使用串口助手監(jiān)聽GM65模塊解碼數(shù)據(jù)與USR-VCOM有人虛擬軟件內(nèi)部數(shù)據(jù)對比;對500份通過授權(quán)的數(shù)據(jù)對比發(fā)現(xiàn),兩者一致。
周圍不同光照強度測試,選取5~100 Lux的光照強度,均可完全識別二維碼數(shù)據(jù)(GM65模塊內(nèi)部有LED補光)。
對于比對成功的數(shù)據(jù),系統(tǒng)能夠在2~3 s時間內(nèi)開啟門禁,符合設(shè)計要求。
5" 結(jié)束語
本文是以STM32F103C8T6單片機為核心設(shè)計并實現(xiàn)了基于二維碼的門禁控制系統(tǒng),該系統(tǒng)能夠?qū)崿F(xiàn)對門禁的安全、可靠控制,具有保密性高、靈活、方便等優(yōu)點,可廣泛應(yīng)用于小區(qū)、公司、單位和家庭,具有較高的實際推廣價值。
參考文獻(xiàn):
[1] 許超.基于標(biāo)準(zhǔn)地址的二維碼電子門牌技術(shù)研究[D].南京:南京郵電大學(xué),2019.
[2] 侯化安,易忠,王三勝.基于STM32的磁檢測系統(tǒng)和掃描檢測算法研究[J].測試技術(shù)學(xué)報,2016,30(4):313-321.
[3] 王雪飛.嵌入式系統(tǒng)在指紋門禁系統(tǒng)的應(yīng)用[J].信息系統(tǒng)工程,2018(2):94.
[4] 張楠.手機鑰匙在電子門禁系統(tǒng)中的應(yīng)用[J].金陵科技學(xué)院學(xué)報,2015,31(1):27-29.
[5] 原國強.基于STM32的交流電機磁場定向控制系統(tǒng)設(shè)計與實現(xiàn)[D].天津:天津大學(xué),2016.
[6] 胡瑤.基于單片機控制的鐵路機車壓縮機溫度控制電路的研究[D].蘭州:蘭州交通大學(xué),2016.
[7] 孟珩.基于無線傳感網(wǎng)絡(luò)的溫室監(jiān)控系統(tǒng)研究與設(shè)計[D].青島:山東科技大學(xué),2020.