基于WiFi和RFID技术的小区智能门禁系统设计
2021-10-28韩媛媛
韩媛媛
(衡水学院数学与计算机学院,河北 衡水 053000)
0 引言
通信技术的逐渐成熟使得人们的生活越来越方便,例如,用户可以随时随地通过手机进行各种支付活动,并对个人账户进行查询、转账、缴费、充值等功能的管理,用户也可以随时了解自己的消费信息。移动支付为用户的生活提供了极大的便利,提高了人们的生活效率,也更方便用户对个人账户进行管理,提升了人们对生活的体验感。然而,随着2020年新冠肺炎疫情的爆发,人们对居住环境安全性的意识越来越强,但是传统的小区门禁系统功能单一[1],且大都存在着功耗较大、通信距离有限、过多占用基站资源等缺点,可见已不能满足人们的需求。因此,对小区门禁系统的改进刻不容缓。
STM32单片机相较于51单片机多了许多资源,如USB控制器,同时,它废除了机器周期,所以它的速度大约是51单片机的几十倍。其程序都是模块化的,外围接口功能也比较强大,另外,STM32单片机集低功耗、低电压于一身,具有高度集成和开发简易的特点,是项目开发的理想选择[2]。射频识别技术(Radio Frequency Identification,RFID)是一种非接触式自动识别技术[3],利用无线射频方式对电子标签进行读写,其基本原理是将电子标签放在需要识别的物品上,阅读器通过天线发送出一定频率的射频信号,当标签进入磁场时产生感应电流从而获得能量,发送出的编码等信息被阅读器读取并解码后送至电脑主机进行相关处理。电子标签具有防水、防磁、耐高温的特点,能够保证射频识别技术在应用时具有较强的稳定性。随着移动终端的广泛使用,用户对无线接入的需求日渐突出,WiFi以其灵活性和移动性脱颖而出,几乎所有的社区都完全被WiFi无线覆盖。基于此,笔者将以STM32单片机作为主控机,结合WiFi技术和RFID技术设计完成一款小区智能门禁系统。
1 系统总体设计
基于WiFi和RFID技术的小区智能门禁系统的工作模式分为两种:一种是控制模式,另一种是警报模式。
在控制模式下,用户可以手动刷卡进入小区,前提是该卡已经在系统中被注册成功。另外,为了防止出现用户出行未带门禁卡而无法正常出入小区的情况,用户也可以使用手机NFC功能控制门禁的打开和关闭,或者通过手机应用程序进行门禁的控制,极大程度地为居民的出行提供方便。
在警报模式下,系统主要通过刷卡判断用户是否为小区住户。若是小区用户,蜂鸣器会响一次,作为打开门禁的提示,并在OLED显示屏上显示出小区住户的正确住房信息,例如,“**单元***住户欢迎您回家”。若是非小区用户,蜂鸣器会持续报警,提醒门卫值班人员有非小区人员进入,做好身份登记,同时,OLED显示屏上显示“您无法进入该小区”,门禁系统无法正常打开。此外,系统还通过SHT30温湿度传感器实时监测室外的温度和湿度,并将数值显示到OLED显示屏上,时间模块RTC用于显示当前时间,方便居民记录当前所处环境与时间。
2 硬件系统设计
硬件系统设计由STM32单片机、RFID射频模块、WiFi模块、OLED显示屏、蜂鸣器、SHT30温湿度传感器等组成。
2.1 RFID射频模块
RFID射频模块采用RC522模块,它是一款低电压、低成本、体积小的非接触式读写芯片,应用于13.56 MHz非接触式通信,支持ISO14443兼容应答信号;与主机进行通信时,采用连线较少的串行通信,且可根据用户的不同需求,选取SPI、I2C或串行UART模式之一,有利于减少连线,缩小PCB板体积,降低成本。在本系统中采用SPI通信模式。
2.2 WiFi模块
WiFi模块使用有乐鑫公司开发的高度集成ESP8266芯片,它具有体积小、丢包现象不严重、价格超低等优势。ESP8266芯片是一款低功耗的串口透传模块,能够将物理硬件与WiFi网络连接,且性能较高[4-6]。在小区智能门禁系统中,将芯片作为一个WiFi模块,不需要再对芯片进行开发,只需要根据模块提供的接口,用AT指令和该模块进行通信,让模块去接入网络。它支持3种工作模式,分别是STA、AP和STA+AP模式。在STA模式中,该模块通过路由器连接网络,手机或者电脑实现对该设备的远程控制。在AP模式中,该模块作为热点,手机或者电脑连接WiFi与该模块通信,实现局域网的无线控制。STA+AP模式是两种模式共存,既可以通过路由器连接到互联网,也可以作为WiFi热点,使其他设备连接到这个模块,实现广域网与局域网的无缝切换。
2.3 OLED显示屏
OLED显示屏是利用有机电自发光二极管制成的显示屏,由于同时具备自发光有机电激发光二极管,所以该显示屏不需背光源,而且对比度高、视角广、反应速度快,比较适合在露天环境中使用。因此,本系统选用OLED显示屏。
2.4 蜂鸣器
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,只要供电,接入信号,就会产生蜂鸣声。本系统利用蜂鸣器发出的蜂鸣声实现报警功能,在系统中使用的是由多谐振荡器、压电蜂鸣片、阻抗匹配器及共鸣箱、外壳等组成的压电式蜂鸣器。
2.5 SHT30温湿度传感器
SHT30温湿度传感器得益于瑞士Sensirion公司推出的CMOSens技术,比其他类型的传感器更加安全可靠,具有功耗低、反应快、抗干扰能力强等优点。而且该传感器的内容经过了校准、线性化与放大等操作,输出的是与温湿度成线性关系的模拟电压,不需要额外的驱动库,使用简单方便,其温度工作范围为-40℃~125℃,湿度工作范围是0~100%RH,达到了门禁系统中温湿度的标准。因此,本系统采用的SHT30温湿度传感器。
3 软件系统设计
软件系统设计主要包括读门禁卡功能设计、远程控制功能设计和基础信息显示及警报功能设计。
3.1 读门禁卡功能设计
该功能利用RC522模块实现,其执行程序可以分成两部分:
1)RC522的初始化。ISO14443协议分为Type A和Type B两种,本系统中选用的门禁卡使用的是Type A协议,因此,需要设置RC522的工作方式。由于该模块需要通过SPI协议与STM32单片机进行通信,所以还需要初始化SPI协议。
2)RC522读取门禁卡。首先,寻找天线范围内的门禁卡,若寻卡成功,则做一个防冲撞的判断;若防冲撞成功,则在液晶屏上显示门禁卡的ID号;然后,进行门禁卡选择,若选卡成功,则进行门禁卡密码的验证,验证通过后进行门禁卡信息的读取;若读取到门禁卡的信息已被存储,则门禁打开。
读门禁卡程序流程图如图1所示。
图1 读门禁卡程序流程图
3.2 远程控制功能设计
为满足居民对移动终端的需求,设计了手机端应用程序,通过与选用的ESP8266模块相连,实现了远程控制功能。
首先,进行ESP8266的初始化,在此阶段需要初始化UART串口,进行WiFi的设置并连接。例如,设置ESP8266的工作模式,然后,在手机端应用程序中创建新用户;通过MQTT协议与物联网云平台建立超链接后,将信息写入物联网云平台(网址为iot.embsky.com),用户登录网页版物联网平台查看Client ID,并将其复制到手机端应用程序的Client ID处进行登录,查看订阅的主题,建立连接;这样手机端与门禁卡便能够同时控制门禁的开关。远程控制流程图如图2所示。
图2 远程控制流程图
3.3 基础信息显示及警报功能设计
本系统利用SHT30传感器进行温湿度信息采集,并显示到OLED显示屏上,利用蜂鸣器实现警报功能。首先,初始化SHT30传感器所使用的GPIO引脚,配置采样频率;然后,发送读取SHT30温湿度数据的指令,使其能够产生开始信号,并发送设备地址。第一次等待确认信号,发送采样指令的高字节;第二次等待确认信号,发送采样指令的低字节;最后一次等待确认信号并产生结束信号。在进行蜂鸣器配置时,首先,初始化相应的GPIO引脚,并定义GPIO初始化结构体的变量;其次,通过时钟总线使能所需要的GPIO时钟;最后,配置引脚的输出模式和输出速率,若引脚输出高电平,蜂鸣器响,若输出低电平,蜂鸣器不响。
4 系统测试
4.1 读门禁卡功能测试
在测试中,选用两张门禁卡,第一张设定为一单元503住户,第二张设定为非本小区门禁卡。刷卡时,OLED显示屏分别显示“一单元503住户欢迎您回家”和“您无法进入该小区”,读门禁卡功能测试通过。
4.2 远程控制功能测试
对于ESP8266模块的测试主要是判断能否通过串口正常收发数据,以及能否和服务器正常组网。测试中,在手机上设置所注册的WiFi用户名与密码,进行连接。经检测,可以完成通信。
在进行测试时,手机安装MQTT软件,将注册的卡片进行刷卡测试,判断注册的用户是否能够正常进入到小区里;然后,使用未注册的卡片进行刷卡测试,判断是否能够进入小区;并且,测试手机端应用程序功能,点击门禁开关按钮,判断是否能够成功进入。经检测,系统中的手机端应用程序可以完成组网并通信。
4.3 基础信息显示及警报功能测试
该测试主要是测试传感器能否获取到正确的数据。测试中,将串口和电源连接起来,观察OLED显示屏上是否出现实时的温湿度;通过刷小区住户门禁卡与非小区住户门禁卡进行测试,观察显示屏上能否得到正确的用户信息,蜂鸣器是否会报警,以此来判断传感器是否正常工作。经检测,各部分信息正常且有显示,当非小区用户刷卡时,蜂鸣器会报警。
5 总结
笔者基于WiFi和RFID技术设计了一款智能门禁系统,同时,考虑到现代人对智能终端的依赖,还设计了远程控制功能。但为了防止外来人员随意仿造本小区用户门禁卡,所以未提供注册门禁卡的功能;同时,为防备外来人员的闯入,设计了警报功能,一定程度上达到了保护居住小区用户安全的目的。