张强志,房楚杰,杨永华,张智创,饶皆昌
(嘉应学院 物理与电子工程学院,广东 梅州 514015)
入室盗窃类案件给人民的人身财产安全带来极大的损失,扰乱受害者正常的生产、生活秩序,严重威胁到广大人民群众的人身财产安全[1].因此,门控安防作为最广大人民群众所采用的预防入室盗窃的安全措施,对于保护其人身财产安全显得至关重要.然而,传统的机械锁开锁慢,出门时可能忘带钥匙,钥匙可能丢失被盗用,开锁时钥匙可能断掉,不方便不安全.因此,随着电子技术的发展和普及,为了解决传统门控安防存在的种种痛点,出现了众多电子门控安防系统,使得门控安防变得越来越自动化、智能化,更加方便安全.
王乐乐等为应对新冠疫情,设计了一种零接触智能密码锁,以单片机为核心控制器,通过红外遥控技术实现零接触远程密码开锁,降低二次传染的风险.[2]杨朋飞等针对传统门禁系统价格高、安全性低,设计了一种基于STC89C52 单片机的指纹密码锁系统,采用FPM10A 光学指纹识别模块完成指纹录入、识别和清除等操作,并辅以液晶显示、按键输入、开锁控制和指示提醒等模块.[3]叶晨设计了一款基于51 单片机的RFID 门禁系统,该系统可读写标准非接触式射频卡,已注册射频卡可以方便、快速、安全地开启门禁.[4]赵若禺等为提高门禁管理系统的效率和智能化程度,利用人脸识别技术,开发了一种基于人脸识别的智能门禁管理系统,该系统包含上位机和下位机两大部分,具有人脸识别、数据存储与管理、门锁开关控制和休眠等功能.[5]
然而,不管是按键密码、射频卡、人脸识别等开锁方式,各自均存在一些痛点,如停电、忘记密码、忘带射频卡、忘带手机、有来客需要远程开锁等.另外,市面上绝大部分电子门控系统均只有声光报警来简单震慑擅闯人员,而无法即时向用户反馈被闯信息,更无法提供擅闯人员的任何相关信息.因此,本文尝试集各种开锁方式于一体,来互相弥补各自的痛点,并添加抓拍功能和电话报警功能,设计一款基 于STM32 的智能门控安防系统,以同时满足更多用户的门控安防需求.
本文的系统可通过指纹模块、射频卡模块、键盘模块、人脸识别、APP 等实现开锁;当有来客而主人不在家时,可通过手机端APP 生成并发送时效动态验证码,客人可用验证码键盘开锁,或者当客人已来到家门口时,可通过APP 远程一键开锁;当有陌生人尝试开锁并触发警报时,不仅有声光报警,系统还会抓拍陌生人头像并向主人拨打电话即时告警.系统不仅人性化、自动化、智能化,还充分考虑安全性、可扩展性,可满足更多用户的需求,具有更好的市场前景.
可设置多个密码、指纹、人脸、射频卡,并可添加、删除;APP 远程开门,展示状态信息,远程添加、删除密码,生成并发送验证码给指定手机号码;液晶显示器展示状态信息和提示信息;多次错误触发报警,包括声光报警、抓拍头像、电话告警等;密码、指纹、人脸、射频卡等信息掉电不丢失,验证码设置时效并且掉电丢失.
根据功能需求,智能门控安防系统的整体设计包括电源模块、单片机最小系统、显示模块、键盘模块、指纹模块、射频模块、摄像头模块、GSM 模块、Wi-Fi 模块、报警模块、电子锁模块、电子锁状态监测模块等.
电源模块:12 V 电源适配器(在产品落地时可附带3 节18 650 电池串联供电以防电网停电)通过AMS 1117-5、AMS 1117-3.3 和L 7805 CD 2 T-TR 芯片分别获得5 V 和3.3 V,给各模块供电.
STM 32 F 429 IGT 6 单片机最小系统作为控制核心,具有:高性能Cortex-M4 内核,最大CPU 频率180 MHz,正常工作温度下的工作电压1.8~3.6 V,共260 Kbytes 的SRAM,1 Mbytes 的Flash 存储,176 个引脚,FMC 灵活存储控制器,共14 个定时器,随机数生成器,多种通信接口(SPI、I2C、UART 等),摄像头接口,12 位多路ADC 和DAC,等等.功能强大,功耗小,符合设计需求.
LCD 12864 液晶显示模块:显示分辨率128υ64 点,正常工作温度下的工作电压3.0~5.5 V,内置汉字字库,可并行或串行通信,可完成图形显示,功耗低,使用起来灵活、简单、方便.
4υ4 矩阵键盘模块:密码输入和指令输入.
AS608 光学指纹模块:正常工作电压3~3.6 V,可选USART 或USB 接口,内置DSP 运算单元和指纹识别算法,一个指纹处理时间不到0.4 s,速度快,拒真率低于1%、认假率低于0.001%,识别率非常高[6].
RFID-RC522 射频读卡模块:13.56 MHz 非接触式通信,正常工作电压2.5~3.3 V,可选SPI、I2C、UART接口,读卡范围5 cm.
ATK-OV5640 摄像头模块:高性能500 万高清摄像头模块,正常工作电压3.3 V,可自动对焦,采用标准的SCCB 接口(兼容I2C 接口),支持图像压缩(JPEG),支持按QSXGA 比例缩小到其他任何尺寸,自带嵌入式微处理器,自带有源晶振,功耗低.
TC35i GSM 模块:支持中文短信息的工业级GSM 模块,正常工作电压3.3~4.8 V,通过接口连接器和天线连接器分别连接SIM 卡读卡器和天线,支持双向传输语音和数据,可选波特率300 b/s~115 kb/s,自动波特率1.2 kb/s~115 kb/s,体积小、重量轻、功耗低、便于集成.
ESP8266-01s Wi-Fi 模块:正常工作电压3.3~5 V,8 M 的Flash 存储(足够烧录固件),支持多种IEEE 802.11 无线标准,支持三种Wi-Fi 工作模式,支持多种无线安全机制和加密类型,支持多种配置方式(AT+指令集、Web 页面、Android/iOS 等),串口波特率110~4 608 000 b/s(默认波特率115 200 b/s),内置TCP/IP协议栈,支持TCP 透传,丢包现象不严重,体积小、功耗低、价格低;结合中国移动OneNET 物联网开放平台提供包括MQTT、TCP 透传、HTTP 等的多协议接入能力和全云端在线应用构建能力(支持图形化应用开发),可将ESP8266-01 s 作为Wi-Fi 客户端连接到指定路由器,然后接入OneNET 物联网平台(平台提供支持ESP8266 的MQTT 协议固件,帮助快速接入),并开发云上应用(APP)管理数据,从而快速实现“设备-平台-应用”的三端通信[7].
声光报警模块:三极管驱动有源蜂鸣器(额定工作电压5 V),结合红色发光二极管(LED).
电子锁模块:工作电压5 V,ULN 2003 A 芯片驱动4 相5 线步进电机控制锁舌,实现电子锁开关.
电子锁状态监测模块:常开磁性接近开关(探头靠近磁铁时开关闭合)嵌入到锁体中,磁铁固定在门框上,实现电子锁开关状态的监测.
系统的硬件结构如图1 所示,主要包括:电源模块(AMS1117-5、AMS1117-3.3 和L7805CD2T-TR)、单片机最小系统(STM32F429IGT6)、显示模块(LCD12864)、键盘模块(4υ4 矩阵键盘)、指纹模块(AS608)、射频模块(RFID-RC522)、摄像头模块(ATK-OV5640)、GSM 模块(TC35i)、Wi-Fi 模块(ESP8266-01s)、报警模块(蜂鸣器和LED)、电子锁模块(ULN2003A、步进电机和锁舌)、电子锁状态监测模块(磁性开关).
图1 系统的硬件结构
系统的主程序如图2 所示.
图2 系统的主程序流程图
开机初始化:包括串口、显示模块、功能模块的初始化设置,如连接OneNET.
按键获取:一直等待直到有按键被按下,如果是“0#”则根据提示输入管理员密码进入管理员模式,此模式可以对密码(包括数字、指纹、射频卡、人脸等)进行管理(包括添加、删除等);如果是“1#”则进入指纹验证;如果是“2#”则进入密码验证;如果是“3#”则进入射频验证;如果是“4#”则进入人脸验证;默认是密码验证,以“*”结尾.
异常操作:次数累计超过5 次(成功开锁则清零)则触发报警,驱动摄像头进行抓拍(留下追查线索),蜂鸣器和LED 声光报警,并拨打预留的主人电话(最多可留5 个手机号码)进行告警,直到有人接听(包括拒接)则停止拨打,主人看到是安防系统的电话号码,则可知有陌生人擅闯.
锁开关状态监测:当检测到门被关上(即磁性开关闭合),则驱动步进电机关锁.
云连接状态监测:与云平台进行通信前,要保证云连接,断开则重连.
云上数据接收、处理、上报:如接收到APP 端的开锁指令,则立马开锁;如接收到指令“add 新密码”则添加新密码;如接收到指令“del 旧密码”则删除旧密码;如接收到指令“gen 手机号码”则生成6位随机验证码(时效1 小时且掉电丢失,为节省定时器资源最多生成3 个)发送给指定的手机号码,客人可用验证码键盘开锁;上报处理结果给云平台,并同步展示到APP 端;如有抓拍图像则压缩后上传至云端.
云上数据的上报、下发采用MQTT 协议:ISO 标准下基于发布/订阅范式的消息协议,工作在TCP/IP协议族上,为硬件性能低下的远程设备以及网络状况糟糕的情况而设计,具有轻量、简单、开放、易于实现等特点.[8]
OneNET Studio 是中国移动OneNET 物联网开放平台的一个核心产品,其定位于新一代物联网中台,向下可接入设备,向上可承载应用;不仅提供统一设备接入(提供MQTT、CoAP和泛协议标准接入SDK)和运维监控,还提供一站式开发,面向不同行业场景,提供项目管理与应用开发工具,可实现跨用户跨产品的资源整合,加速项目集成.[9]
本文主要在OneNET Studio 进行云平台配置,供设备接入并进行图形化拖拽式应用开发,按开发文档的流程操作即可,简单、便捷.开发的APP 界面如图3 所示,“锁开关”实现电子锁的开关控制,“密码个数”表示当前已添加密码个数,“max表示最多添加多少个密码,“设置结果”表示命令框指令的执行结果,“命令框”可输入指令管理密码、发送验证码等.
图3 APP 界面
系统采用的是建立在LBPH 基础之上的人脸识别算法.[10]首先以每个像素为中心,判断与周围像素灰度值大小关系,对其进行二进制编码,从而获得整幅图像的LBP 编码图像;再将LBP 图像划分为x*y 块区域,获取每个区域的LBP 编码直方图,继而得到整幅图像的LBP 编码直方图.为节省存储空间,将人脸图像的LBP 编码直方图存入Flash 作为人脸密码,而不是存入整幅图像,然后 比较不同人脸图像的LBP编码直方图即可实现人脸识别的功能.
开发设备:Proteus 设计原理图和PCB 图,TrueSTUDIO 结合Proteus 进行C 语言控制程序的开发、编译、调试,FlyMcu 烧录程序,然后制作电路板,最后进行元器件焊接安装.
配置云平台:按照OneNET Studio 的开发文档,创建一个MQTT 协议产品,定义功能,添加设备,设置数据流.
创建手机APP:按照OneNET Studio 的开发文档,新增应用,添加设备,图形化设置界面编辑应用,关联数据流,下载后交付使用.
测试内容和结果包括:可设置多个密码、指纹、人脸、射频卡,并可添加、删除;APP 可远程开锁,可远程添加、删除密码,可生成并发送验证码给指定手机号码;不同验证方式均可成功开锁;液晶显示器可展示状态信息和提示信息;5 次异常操作可触发报警,包括摄像头抓拍、声光报警、电话告警;密码、指纹、人脸、射频卡等信息掉电不会丢失,验证码过时会失效且掉电会丢失.设备部分测试如图4 所示,分别为指纹开锁和射频卡开锁;APP 部分测试界面如图5 所示,分别为远程开锁和远程添加、删除密码.
图4 设备部分测试图
图5 APP 部分测试界面
门控安防对于保护人身财产安全至关重要 .针对传统门控安防系统的不足,本文设计了一款基 于STM32 单片机,融合物联网技术和人工智能技术的智能门控安防系统.该系统实现摄像头抓拍、时效动态验证码开门、智能向用户电话告警、人脸识别解锁、APP 远程控制等既定功能.实物测试结果表明,系统运行良好稳定,能很好地保证用户的人身财产安全.系统以较低的成本实现丰富的功能,并具有良好的可扩展性,更加智能化,可以满足更多用户的需求,具有更好的市场前景.
另外,还可对功能进行扩展,比如:添加语音录放设备进行语音报警和语音提示;添加拨打电话和语音对讲功能;添加语音识别功能;APP 添加图像展示功能;等等.还可对系统进行优化,比如:人脸识别的准确率和速度;对APP 界面进行优化;简化按键操作;等等.