基于STM32 单片机的二维码门禁系统
2022-01-28郑俊杰李申肖迪创李未贾巍通讯作者
郑俊杰,李申,肖迪创,李未,贾巍(通讯作者)
(湖北文理学院汽车与交通工程学院,湖北襄阳,441053)
0 引言
随着我国社会信息科学技术、信息安全技术和我国社会主义市场经济的快速发展进步,信息安全技术已经逐渐广泛渗透应用到了现代人们社会日常生活的每一个领域,住宅小区的安全防护系统也逐渐走向智能化。同时,随着现代社会人们的财产安全及其防盗意识不断增强,对高层住宅楼房的安全、室内外门禁系统设计的人性化技术水平要求也愈发严格。原来的机械门锁采用了机械闭锁式,金属钥匙的耦合性很强,一把钥匙打开多扇门时有发生,安全性大大降低。而之后开发的IC 卡门禁系统也容易出现门禁卡丢失、损坏的问题。本文所要介绍的设计系统-基于单片机的二维码门禁系统[2]则很好的规避了以上的诸多问题。
1 总体设计原理
图1 智能门禁系统硬件框图
本设计基于单片机的二维码门禁系统主要由以下几部分组成:(1)微光互联 QT960 扫码器;(2)主控 STM32F407单片机最小系统;(3)屏幕显示部分;(4)电机驱动 L298控制开关门电机及其他外设设备。智能门禁系统以STM32F407 单片机为控制核心,当用户需要打开门禁时,出示二维码通过扫码器进行扫描,扫描得到的信息通过单片机进行判断是否为已录入信息用户,若是,则自动开锁打开门禁[3]。同时系统还具有语音播报的功能,如当有人靠近扫码器时提示:“请出示您的二维码”。若二维码已录入,则播报“欢迎光临”,否则提示:“未正确扫描二维码,请重新扫描”。最后,系统还配备了应急处理部件,当主控单片机故障或线路某部分损坏而无法实现自动开门时,门卫人员通过应急按钮,可实现手动开门。
2 系统组成电路设计
■2.1 二维码扫码器 QT960
本系统采用硬件解码的方式实现二维码的解码工作。使用模块为北京微光互联公司生产的二维码扫码器 QT960。该模块在设计上采用了内嵌式向下凹陷的密封设计,并配置了背景灯、蜂鸣器等期间,考虑了扫码时的光照影响及扫码完成后的音源提示。同时该模块在数据输出方式上具有多种选择,包括串口通信常用的 232 输出、TTL 输出等。QT960扫码设备有一下几个方面的优点:(1)支持快速扫码;(2)体积小,厚度仅为 23.8mm;(3)识读速度快,精度高,识读速度最快可达 0.1 秒;(4)操作简单,搭配人性化使用工具,使设备调试更便捷。该模块还支持进行二次开发,对于本系统来说是一个很好的选择。该模块的扫描速度为 50ms 每次,扫描距离为 3~10cm,同时可以进行连续扫描操作。支持屏幕或者纸张打印二维码的扫描。对于本系统来说,扫描二维码之后解码产生的数据信息,通过串口与单片机进行数据传输,之后单片机进行信息处理。
■2.2 STM32F407 单片机最小系统
本系统使用 STM32F407 单片机作为主控部件,实现对二维码扫码器读取数据的分析处理,然后完成对电机等外设的控制输出。STM32F4 是由意法半导体公司设计开发的高性能控制器件,首先它在配置上十分齐全,数据运算的速度跟处理能力也是优于 51 等系列的单片机。同时它具备极高的集成度,其主频是168MHz、具有 1024Kflash 存储器,有 3 个 ADC 共 24 通道,拥有 IIC、TIMER 等众多外部设备。STM32F407 单片机最小系统板包含电源电路、复位按键、串口下载等模块,同时将单片机的所有 IO 口通过排针的方式全部引出,便于在做嵌入式开发时,其他外设设备的连接。
图2 STM32F407 最小系统板电路图
图3 电机直流驱动模块电路图
■2.3 电机驱动电路模块
在门禁系统的最后实施阶段,最重要的就是对开关门电机的控制。系统通过L298N 驱动模块实现对门控电机进行控制,实现门禁系统的最后也是最关键一步:打开、关闭门禁。该驱动模块供电电压范围为+5~35V,最大工作功率为20W,可以实现同时对两路直流电机的驱动控制。使能端口 ENA 为高电平时处于有效控制状态,低电平时无控制信号输出。
本系统通过 STM32 单片机输出 PWM 波,控制该电机驱动实现对电机的调速控制。在进行电机调速时根据电机工作状态表去设置 IN1 和 IN2,确定电机的转动方向。然后单片机 I/O 口输出 PWM 波对驱动模块使能端进行调速控制。根据 L298N 直流驱动模块电机工作状态表可知,当使能信号为高电平时,电机处于无控制停止状态;当使能信号为高电平,并且输入控制端同为低电平或同为高电平时,电机处于制动状态,阻止电机转动。
■2.4 检测提醒电路模块
检测提醒电路的功能是实现对来访人员的位置检测。并将位置信息传输给单片机,控制播报相应的语音信息。当有人员来访,靠近门禁至 50cm 时,提醒来访人员“请出示二维码”。同时也可实现问候语功能,如在提醒出示二维码之前先语音播报“欢迎光临”。本系统对于到访人员的位置检测采用 HC-SRF05 超声波测距模块,可以实现对测距精度 3mm 的测量,同时对于距离测量范围可以达到 2cm~400cm 的无接触式测量。模块包括一个超声波发射头与一个超声波接收头及外围的控制电路。同时该模块通过单片机 I/O 口施密特触发方式,输出高电平,实现发送 40kHz 方波信号。模块可以自动检测是否有超声波信号返回,当检测到有返回超声波信号时,单片机控制 I/O 口输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间 t。则测试距离 d 为:
■2.5 语音播报电路模块
本部分实现的功能是对访客进行语音播报提醒功能,本模块支持任意中文、英文字母、阿拉伯数字的文本合成,实现“欢迎光临”、“请出示二维码”等语音提醒功能。本系统通过STM32 单片机的串口进行语音播报控制。单片机的串口 TX、RX 脚分别与模块的 RX、TX 脚连接,通过 UART 串口向模块发送中文GBK 码、英文或数字是 ASCII 码,进行语音播报。
3 系统软件设计
系统采用STM32 单片机作为控制核心,实现有访客到访时语音播报,然后对二维码识别检验,判断是否打开门禁系统。程序主函数部分采用标志位编程的方法实现系统逻辑判断。首先写入 flag 标志位置 1;此时只进行超声波测距功能的实现,当有访客到来检测离门禁系统距离小于 50cm 时,播报语音“欢迎光临”同时标志位置 2;此时跳出超声波测距循环,进行二维码扫描等待,等待时间为10s,若 10s 后无动作则标志位置 1;重新进入超声波测距循环,若出示二维码且二维码正确则标志位置 3;实现打开门禁,此时标志位置 4;进行超声波检测,当检测距离超过 100cm 时,标志位置 5;持续 5s 进行超声波测距以检测访客是否已全部通过门禁系统,若 5s 内检测数据均大于 100cm,则标志位置 6;实现关闭门禁,同时标志位置 1;若 5s 内检测有到有数据小于 100 出门则标志位置 5;若出示二维码错误则标志位置 7;语音提示“请重新出示有效二维码”同时标志位置 2;进行 10s 二维码待检测状态。
图4 超声波测距模块电路图
图5 语音播报电路图
4 总结
图6 系统主程序框图
本文通过对二维码生成[4]、数据存储、解码理论的相关研究结合门禁系统,提出了基于二维码对来访人员身份识别的智能门禁系统,该系统相较于其他的门禁系统成本较低。不需要实物开门物品,拿出手机出示二维码即可当做打开门禁的钥匙,对用户来说使用十分方便。同时也可以将来访人员的到访时间、个人姓名身份信息等可以存储于二维码之中,进而实现对来访用户的信息存储。本智能门禁系统的识别不易受外界环境的干扰,应用前景广阔,在未来的智能家居、小区安防等均可以有良好应用。