冯郅皓 严李强 潘旭
摘 要: 针对智能门锁使用距离较短、指纹解锁易被盗取和功耗较大等问题,文章设计了以网络为数据传输途径,双重半虚拟指纹验证和密码验证为开锁方式的智能门锁控制系统,门控芯片选择STM32F103C8T6、无线通信模块选择ESP8266、指纹识别模块选择ZN632,和以ULN2004L作为步进电机的驱动电路等,实现了拥有本地和远程两种方式控制的智能门锁控制系统。经过试验表明,该设计不仅使用成本低、易安装,还拥有较好的防盗系统。同时解决了现有智能门锁使用距离短和指纹开锁易损坏、易被窃取指纹和识别不灵敏等弊端。
关键词: 智能门锁;网络;指纹验证;远程控制;STM32
中图分类号: TU89;TP368.1 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.01.001
本文著录格式:冯郅皓,严李强,潘旭,等. 基于双重指纹的无线智能门锁系统设计[J]. 软件,2020,41(01):0106
【Abstract】: Aiming at the shortage of intelligent door lock, the problem of fingerprint unlocking which is easy to be stolen and consumes a lot of power, etc. This paper designs a smart door lock control system with network as the data transmission path, double semi-virtual fingerprint verification and password verification as unlocking mode. The gate chip selects STM32F103C8T6, the wireless communication module selects ESP8266, the fingerprint identification module selects ZN632, and the ULN2004L is used as the driving circuit of the stepping motor, etc., realizing the intelligent door lock control system with local and remote control. Tests show that this design not only achieves the expected design effect, but also has a better anti-theft system, At the same time, it solves the shortcomings of the existing intelligent lock, such as using in a short distance and fingerprint opening, which are easily damaged, easy to be stolen and insensitive to fingerprint identification.
【Key words】: Intelligent door lock; Network; Fingerprint verification; Remote control; STM32
0 引言
近幾年, 随着电子信息技术、通信技术和自动化技术的飞速发展, 加速了物联网行业的技术发展[1],智能锁经历了由电子锁到单机智能锁在到现在较流行的无线互联智能锁的巨大变迁[2]。研究数据表示,2017年我国智能家居市场规模可达980亿,2021年则将成长到4369亿元[3]。而智能锁在智能家居产品中占据很大的比重,同样拥有着非常可观的潜在市场。
当前人们生活中大都还是使用钥匙开锁,这样出门时常要带钥匙,有时钥匙丢了还要配上相应的钥匙,非常不方便[4]。同时,随着科学技术和生活水平的提高,人们的安防意识也在不断提升,传统机械锁已经不能满足人们对于保护单位和家庭财产安全的需要[5]。现在普遍使用的智能门锁包括密码锁、遥控锁、磁控锁和指纹锁等,大多在商业领域应用。据资料显示,常见智能门锁存在以下问题:①很多新型的开锁方式,如磁卡感应,指纹开锁,手机蓝牙开锁等,只是近距离开锁,无法对门锁实现远程控制;②指纹开锁在受到发丝、金属丝线、胶带等干扰时,均被打开;③每一次使用指纹时都会在指纹采集头上留下用户的指纹印痕,而这些指纹痕迹存在被用来复制指纹的可能性[6];④依靠蓝牙控制门锁的稳定性较差,经常出现数据丢失而不能开门的现象。
针对以上情况,文章提出了一种基于双重指纹识别的无线智能门锁控制系统的设计方案,其以WIFI作为无线通信的基础,用户通过使用(Android)智能手机和平板电脑等移动终端与门禁模块进行连接,使用移动终端上的APP远程控制开、关锁、查看设备使用记录和设备剩余电量等。该控制系统具有使用成本低、易安装等优点。
1 系统总体方案
智能门锁的控制系统包含三个方面:门禁模块、移动终端和路由器,系统的整体关系如图1所示。门禁模块主要用于管理用户的安全进出,使用三种高效和一种机械的开锁方式,可以回传数据给移动终端并实时显示门锁的使用情况。移动终端包含智能手机和平板电脑等,用户能够通过相应的APP对门锁进行远程监测与控制。路由器则负责保证智能门锁的通信,根据信道的情况自动选择和设定路由,以最佳路径,按前后顺序发送信号。控制系统包含硬件部分和软件部分。
2 系统硬件设计与实现
2.1 系统硬件设计
根据人与手机的密切相关,提出了以无线网络的高移动性[7]和生物特征的唯一性[8]为基础的智能门锁,采取智能门锁嵌套钥匙与手柄式的防盗门锁搭配使用的方式。系统硬件设计主要是由门锁控制器、无线通信模块、指纹识别模块、步进电机驱动模块、步进电机、电源模块、蜂鸣器、液晶显示模块和传统锁芯凹槽组成。图2为门禁系统的硬件结构图。门锁控制器选择STM32F103C8T6,具有稳定性, 低功耗、低成本、程序模块化的特点。其接口较为简单。芯片内部具有可编程FLASH存储器, 具有最大的集成度复位电路、低电压检测、调压器、精确的RC振荡器等;简单的结构和易用的工具, 并且该款产品被众多工业级别的嵌入式控制系统所采用, 为其提供高灵活性和高可靠的工作性能[9]。无线通信模块选择ESP8266,其使用3.3 V直流电源,具有超高集成度、超低功耗、体积小等特点[10]。ESP8266 SDK已经包含了LWIP协议栈,Socket可以配置成TCP、UDP等传输方式,只需在应用层调用相关的接口函数[11]就可以根据需求实现不同功能。指纹识别模块主要完成房屋外侧开门的验证,该模块选择ZN632半导体指纹识别,其与光学指纹识别相比较,有很高的识别率、图像质量高、防伪指纹能力强、抗静电能力强、超薄体积等优势。
为了解决以蓝牙为连接方式所存在传输距离短、连接不稳定等弊端,硬件设计的通信模块以WIFI模块为基础,以便用户能更好地进行实时监控和远程控制。用户通过手机、平板电脑等移动终端设备与固定终端上的WIFI模块验证、连接后,在APP上下达指令,将指令发送到WIFI模块,WIFI模块将已接收到的信号传递给门控芯片,门控芯片将接收到的指令经过处理后,传递给各个模块,使各个模块按照指令进行工作。电机驱动模块接收到门控芯片发送的“开启”或“关闭”等指令后,驱动步进电机旋转,从而达到开启或关闭门锁的目的。
对门锁的控制方式有三种,如图3所示。当用户使用APP开锁时,打开WIFI,输入WIFI模块上已设定的密码,实现移动终端与智能门锁通信。使用智能手机上的指纹传感器采集并验证指纹,验证成功后,WIFI模块接收指令,门控芯片处理指令后根据指令控制电机旋转。如果因为各种原因而不能使用指纹传感器进行验证识别,则可以在APP上输入密码进行验证开锁。当使用固定终端上的指纹识别模块进行解锁时,由指纹识别模块进行识别、处理,并将处理后的信号传递给门控芯片。如果识别的结果为“成功”,门控芯片则将处理后的信号传递给电机驱动模块,控制电机旋转;而如果识别的结果为“失败”,门控芯片则控制LED灯,使其连续闪烁3次。闪烁完成后,开始重新采集、验证指纹。
(1)防盗系统设计
本设计主要适用于配有执手锁等锁型的防盗门。将装置安装在房屋内侧,外侧门锁与普通门锁并无区别。在房门内侧安装三个微型的压电震动传感器,如等边三角形分布。一旦门锁遭受暴力开锁,达到压电震动传感器所设定的阈值,智能门锁上的蜂鸣器将发声预警并同时向APP发送“受到非法攻击”的提示信息。这样蜂鸣器既可以通过敲门的振动强度而发出相应的声音充当门铃,还可以在有人暴力敲门或破坏门时起到警示的作用。
此外,还在锁芯处安装有电压感应装置,在门控芯片里设定好电位的最大变化值。当小偷从外侧的锁孔用铁丝等物进行非法开锁时触及到电压感应装置,使压电感应装置的电位急剧变化并达到门控芯片所设定的最大变化值时,蜂鸣器就会发出报警并且向APP发送“遭受非法开锁”的提示消息。用户则可以通过APP下达“锁机”的指令,控制锁芯不动,从而让小偷无法通过锁芯进行开锁。
(2)条件指纹验证设计
为解决指纹识别模块长时间处于待机状态却没有工作而导致功耗较大、使用效率较低的问题,文章提出了在固定终端上和移动终端上设计使用指纹识别模块的开关。只有同时开启APP上的“使用指纹验证”功能和固定终端上指纹识别的使用开关时,才能使用固定终端上的指纹模块进行验证开锁。
2.2 硬件实现
智能门锁的硬件主要包含门控芯片电路、步进电机驱动电路和门铃及预警电路三部分。
(1)门控芯片电路
智能门锁中以STM32F103C8T6作为门控芯片,如图4门控芯片电路所示。ZN632指纹识别模块作为信号输入端,将信号传输到门控芯片进行处理。ESP8266作为WIFI通信模块,与门控芯片的GPIOA9和GPIOA10相连。其中GPIOA9作为输出TXD1,串口定义为复用推挽输出;GPIOA10作为输入RXD1,串口定义为浮空输入。指纹模块的串口4与门控芯片的GPIOA2相连,作为输出TXD2;串口5与门控芯片的GPIOA3相连,作为输入RXD2。
(2)步进电机驱动电路
步进电机驱动电路如图5所示,STM32F103C8T6门控芯片上的四个端口PB12、PB13、PB14和PB15作为步进电机控制信号的输入端口,与ULN2004L上的IN4、IN3、IN2和IN1相连,共同控制步进电机。ULN2004L作为驱动电路直接与步进电机相连,从而驱动电机正转或反转。
(3)門铃及预警电路
调节好电位器后,压电振动传感器根据所采集到的振动强度,从D0输出对应的电压信号,经过LM358运算放大器放大后,由OUT2接入蜂鸣器。如图6所示。
为了能更好地实现人机交互,在固定终端设备上使用了液晶显示屏,来显示固定终端的连接状态、电舌状态和剩余电量等。
3 系统软件设计与实现
系统的软件设计主要由门禁系统的总控制器和供用户使用的客户端两部分组成。智能门锁控制系统的总控制器是专业人员管理各个门禁系统的主要手段。管理人员可以管理用户使用门禁系统的权限,并在用户的许可下对门禁系统进行重置。客户端主要实现上位机与服务器的数据交互功能,同时实现对固定终端的控制。当使用客户端软件进行通信时,由路由器为其分配专门端口,使用TCP[12]方式与移动终端设备通信。平时智能门锁处于侦听静止状态,当有用户提出申请连接时,再与移动终端设备完成连接通信,使用移动终端设备即可控制固定终端。
3.1 门禁系统的总控
门禁系统总控制器的软件设计是在集成开发环境下使用C语言编写的,由各个子模块组成,主要包括预警及报警模块、WIFI模块的组网程序和门控芯片的驱动程序等。总控制器的主程序流程图如图7所示。
3.2 门禁系统的客户端
智能门锁的客户端软件部分是基于Java语言进行开发、编译,在Keil uVision5软件上使用C语言对STM32F103C8T6单片机上所需功能进行编译。
通过配置热点名称、加密方式、密钥、以及开放的IP地址和网络端口号,完成WIFI模块的初始化[13]。门控芯片通过与ESP8266模块相连的串口传输数据,根据移动终端发送的不同指令控制相应的模块进行工作,用户可以选择虚拟指纹验证或密码验证进行解锁。智能门锁的一切使用记录实时通过ESP8266模块发送至移动终端,并在终端软件上显示。如图8软件操作流程所示。
智能门锁的通信方式以ESP8266WIFI模块为基础,内置TCP/IP协议,将加密后的数据发送到服务器端,服务器端接收数据并提取转换实际有效的数据,写入到数据库[14]。
4 测试
(1)硬件测试
首先与ESP-8266WIFI模块验证连接,连接成功后,使用薄膜开关输入密码进行验证,密码输入匹配成功则开启门锁;密码匹配失败,则需要重新进行输入。使用指纹模块进行验证时,当匹配无效指纹,门锁开启失败;当录入指纹后再进行匹配,验证成功后,门锁开启成功。
(2)用户端测试
图9为控制系统客户端的使用界面图,通过APP可以下达指令控制门禁系统的开、关,还可以查看设备的剩余电量、门禁的使用记录以及管理指纹。当房门受到剧烈撞击时,蜂鸣器发出警报并向APP发送警报信息。
5 结语
通过多次试验验证,文章提出的基于双重指纹验证的无线智能门锁实现了对固定终端的控制,系统运行稳定,达到了智能、远程控制的目的。其中,双重半虚拟指纹验证识别的验证开锁方式也解决了传统指纹识别模块易被损坏、易被窃取残留指纹和指纹不易识别等问题;ESP-8266WIFI模块的使用,实现了远程开、关锁的功能;电位感应器使门锁更具有安全性和完备性。
参考文献
[1] 丁琳, 李蒙蒙. 基于ZigBee和4G技术的门窗智能控制系统的设计[J]. 软件, 2018, 39(11): 36-38.
[2] 张焕兰, 肖明波. 基于433MHz频段安全的智能锁系统设计[J]. 计算机工程与设计, 2018, 39(09): 2736-2742+2747.
[3] 物联网、智能家居为无线通讯产品开启了几扇门?[J]. 软件, 2017, 38(08): 179+183.
[4] 朱航江, 潘振福, 朱永利. “互联网+”智能门禁控制系统[J]. 电子技术应用, 2017, 43(03): 124-126+131.
[5] 鄢秋荣, 马耀中, 柏欢, 王腾, 王斌, 刘昱晟. 基于STM32单片机和移动通信模块的门户智能锁网络[J]. 实验室研究与探索, 2016, 35(03): 115-118+146.
[6] 吕立波. 门禁控制系统中常用的几种生物特征识别技术之比较[J]. 中国公共安全, 2017(11): 228-234.
[7] 林涛, 李鹏, 王昊. 基于蜂窝网格划分的指纹定位算法的改进[J]. 计算机工程与设计, 2019, 40(06): 1601-1605+ 1641.
[8] 李凤英, 何屹峰, 齐宇歆. MOOC学习者身份认证模式的研究——基于双因子模糊认证和区块链技术[J]. 远程教育杂志, 2017, 35(04): 49-57.
[9] 杨彦伟, 雒志秀, 郑肖宇, 亢丽变, 方舟. 基于STM32芯片的楼宇火灾远程自动报警系统[J]. 软件, 2015, 36(08): 117-120.
[10] 袁月, 曾春平, 马琨, 白玉慧, 龚艳琼. 基于无线WIFI的智能家居灯光控制系统设计[J]. 软件, 2019, 40(08): 203-207+215.
[11] 王旭峰, 周建華, 董科雨, 周芳, 徐博文. 基于ESP8266的远程无线光功率监测仪设计[J]. 单片机与嵌入式系统应用, 2018, 18(01): 70-72.
[12] 马玉春, 刘雍, 乔丽娟, 汪文彬. Android平台下的TCP客户机教学设计[J]. 软件, 2018, 39(10): 14-17.
[13] 张一鸣, 肖晓萍. 基于ARM和WIFI通信的智能开关控制器设计[J]. 计算机测量与控制, 2018, 26(08): 83-87+137.
[14] 韩团军. 基于Wi-Fi与GPRS的远程生理参数测试系统设计[J]. 实验室研究与探索, 2018, 37(03): 65-69.