基于物联网的门禁系统设计

2020-11-11 08:02吴超琼许钟华陆晓兴杨才广
智能计算机与应用 2020年6期
关键词:门禁系统终端设备流程图

吴超琼, 许钟华, 陆晓兴, 杨才广

(广西民族师范学院 物理与电子工程学院, 广西 崇左532200)

1 系统方案设计

门禁终端采用STM32F103C8T6 作为主控单元,该芯片采用Cortex-M3 架构,频率72 Mhz,支持程序和数据加密,在低成本和安全的同时满足系统设计需要[1]。 软件中间件使用FreeRTOS 操作系统来调度任务。 外围组成单元及模块主要有4×4 矩阵键盘负责人机交互,门禁密码的输入,用0.96 寸OLED 屏幕显示信息,AS608 指纹模块负责识别指纹并存储指纹信息,DC-DC 电源管理单元为系统不同外设提供不同电压的稳定电源,SHT20 数字温湿度传感器负责检测门禁终端系统周围的温湿度数据,通过互联网传输至服务器,中转至手机APP,在手机APP 上显示温湿度。 ESP8285 WIFI 模块帮助门禁终端设备接入互联网,且可提供OTA 升级功能。 门禁终端系统框图如图1 所示。

服务器端采用阿里云轻量级服务器,该服务器拥有IPV4 下的固定公网IP,为数据传输带来了便利。 服务器作为一个中间设备,提供数据转发、账号授权和终端设备OTA 升级。

图1 门禁终端系统框图Fig. 1 Block diagram of access control terminal system

APP 端,目前适配安卓7 至安卓9。 APP 端作为物联网设备的主要交互方式,在APP 上可以看到终端设备的温湿度信息和门禁锁的状态(开启还是关闭)。 在交互方式上,可以通过输入密码远程解锁,或者验证手机持有者的指纹远程解锁。 系统的网络结构图如图2 所示。

图2 系统网络结构图Fig. 2 Network structure diagram of the system

2 系统运行框架

(1)门禁终端设备软件更新。 本设计门禁终端可进行OTA 升级。 终端加电,在BootLoader 中会初始化ESP8285 WIFI 模块和OLED 显示模块,主控芯片发送指令给ESP8285 使其连接指定服务器,建立连接后发送握手协议,握手协议自行设计的特定信息,用于设备验证。 服务器解析验证正确后,既可访问服务器。 随后主控芯片发送系统软件版本查询命令,服务器给予反馈,如果版本高于本地,主控芯片发送更新请求,服务器响应并发送最新的程序,OLED 屏幕显示更新信息。 软件更新的流程图如图3 所示。

图3 软件更新流程图Fig. 3 Flow chart of software updates

关于OTA 升级,在实际的使用过程中,用户代码一般都会大于芯片的内存大小,这样升级的时候会有限制用户代码的大小问题。 采用DMA 双缓存机制,来协调程序写入flash 的时差问题和内存大小的问题。 ESP8285 是通过串口和主控通信,波特率为115 200[2],所接收的用户程序也是通过串口发送给主控芯片。 在接收处理上,创建两个大小为4 097字节的数组,BUF1 和BUF2,使用DMA 来接收数据,数据长度为4 096字节,通过DMA 溢出中断来切换BUF1 和BUF2,F1 系列的芯片没有硬件DMA 双缓存,所以手动切换。 经过测试计算,115 200波特率下,使用溢出中断切换BUF 的时间小于一个位发送的间隔时间,也就是说可以不丢失数据完美切换BUF,通过一些设定的标志位来判断某个BUF 是否接收完成,并写入到主控芯片的flash 中,接收4 KB数据的时间要大于写入4 KB 数据到主控flash 中的时间,直到全部接收完成。 整个通信过程,服务器到ESP8285 是通过TCP 协议,TCP 可靠,有丢包重发机制,所以数据直接透传[3]。 ESP8285 到主控芯片,使用UART 通信,在115 200 波特率下,误码率为0%[4],所以在这一环节数据同样可以稳定可靠的传输。

(2)门禁终端主体程序。 程序进入了用户代码,首先初始化各个外设。 然后创建一个任务用来创建用户任务,创建完成之后会删除。 整个操作系统负责调度的任务有键盘扫描任务,获取用户输入的数字密码、温湿度检测、检测环境的温湿度、OLED屏幕显示、功能切换、网络通信。 每两秒更新上传一次温湿度和门禁锁状态数据,断线重连、触摸检测(该任务包含了指纹验证),获取用户输入的指纹信息、开锁、网络授时,可获取当前北京时间。 门禁终端软件的总流程图如图4 所示。

图4 门禁终端软件流程图Fig. 4 Flow chart of access control terminal software

(3)服务器端。 通过APP 和终端各自函数中填写服务器固定IPv4 地址,为其开放的端口使用socket 发送设备ID 进行账号验证授权。 账号授权后,建立连接,验证APP 和终端预设信息,不符合则返回预设值。 开始数据接收,此时云端开始检测APP 和终端是否都在线,若对方未上线则返回未上线消息,同时在云端打印接受的数据(丢弃该数据)等待APP 和终端上线后才可转发消息。 服务器工作的流程图如图5 所示。

(4)手机APP 端。 APP 启动后,初始化网络、指纹、广播等控件,发送设备ID 验证账号,建立起socket 连接[5]。 建立连接后,等待终端上线。 若使用密码解锁,获取到从键盘输入的字符转发为特定开头的数据发送至云端,再由云端转发至终端。 密码校验成功/失败则通过云端返回一个解锁/已锁值。 接收到这个值即可判断此时门禁的状态;若使用指纹解锁,则调动系统指纹模块,将该指纹数据以特定形式发送。 完成远程解锁。

当APP 和终端完成连接后,APP 接收终端通过云端发来的特定数据,进行模块化显示,并广播此时门禁的状态。 手机APP 工作流程图如图6 所示。

图6 APP 工作流程图Fig. 6 Workflow diagram of APP

3 系统调试

将硬件平台与软件平台进行联合测试。 首先,在手机上安装物联网门禁系统APP;将门禁终端设备加电,接入网络,物联网门禁系统APP,进行终端、服务器与APP 互联,进行各项功能测试。 门禁终端设备的实物图如图7 所示。 物联网门禁系统APP 界面如图8 所示。

图7 门禁终端设备实物图Fig. 7 Physical drawing of access control terminal equipment

图8 物联网门禁系统APP 界面Fig. 8 Interface of internet of things access system APP

首先,测试本地开锁功能,本地终端有两种方式开锁,一种是按键密码开锁,一种是指纹开锁。 提前存储数字密码和用户指纹信息,通过测试按键输入正确密码和输入正确指纹后可成功开锁。

其次,测试通过手机APP 远程开锁功能,手机APP 也有两种方式远程开锁,一种是输入密码开锁,另一种是输入指纹开锁。 打开手机物联网门禁系统APP,在APP 上输入密码可成功远程开锁,输入指纹也可成功远程开锁。

4 结束语

本文设计的物联网门禁系统采用模块化设计,减小了终端体积,有效降低终端功耗。 设计了多种开锁方式,提高了门禁的便利行、智能性和安全性。测试表明,各方式开锁便利快速,通信稳定可靠,通用性高,易于扩展应用。

猜你喜欢
门禁系统终端设备流程图
基于多种生物特征识别的RFID门禁系统设计
云的识别指南
一个简易的校园智能门禁系统的设计
基于门禁系统在地铁综合监控系统中的实践分析
变电站门禁系统运维对策
行车记录仪通信连接方法、行车记录仪及终端设备
电力配网自动化中配电自动化终端设备的应用
电网终端设备信息安全研究
电网监视终端与自动化设备的运行维护技术
流程图学习指南