APP下载

基于云平台下与APP 交互的智能门锁系统

2023-11-19谭点司珂帆丁立李悦娜王奕人

电子制作 2023年21期
关键词:指纹图门锁指纹

谭点,司珂帆,丁立,李悦娜,王奕人

(天津职业技术师范大学 自动化与电气工程学院,天津,300000)

0 引言

就目前来说,随着经济的发展和科技的进步,家居智能化的概念也逐渐进入人们的生活中。而门锁既是每个家庭安全的保障也是智能家居的主要发展对象。近年来,人们生活品质的提高,家庭智能锁的比例也逐渐升高。

当前智能门锁根据是否联网分为单机型和联网型两大类。单机型多使用密码、指纹、刷卡等身份认证的方式,但其往往开锁方式单一,用户无法远程得知门锁当前的状态,钥匙管理困难,安全无法得到保障。联网型智能门锁通过通信技术与电子技术相结合实现对门锁的控制,大多采用ZigBee、WiFi、蓝牙、蜂窝网络、LoRa 等通信方式,但其并没有使用云平台服务,且通信距离有限,安全性较差,具有一定的局限性。另外,智能门锁系统不只需要解决用户身份认证这一个功能,还需要考虑钥匙管理困难、应用场景局限、门锁系统灵活性差、安全性低等弊端。

1 设计方案和系统架构

门锁下位机利用WiFi 模块接入局域网,在经MQTT 通讯协议接入OneNet 云平台服务器,实现物联网的同时参与云计算,成功搭建门锁系统客户端等待云服务器的下发指令。手机APP 连接网络接入云服务器与门锁客户端订阅相同的主题(不限个数)进行一类数据的传输。用户每次登录APP 都自动接入云服务器,通过手机上发指令到云平台,云服务器在接收到指令报文随后下发给门锁下位机,达到远距离对门锁的控制以及通信。

硬件层可通过电容触摸屏输入密码开锁,指纹识别开锁,IC卡感应开锁,人脸识别开锁,开关锁播报,不合理报警,电容屏图像显示。

移动客户端通过APP 远程开关锁,修改密码,设置一次性密码,用户的录入与删除(包括指纹,IC 卡,人脸)和信息查询,出入记录的查看,门锁的各项指标检测和门外监视等。

图1 系统架构图

2 系统的搭建和驱动设计

■2.1 处理器

STM32H7 主控芯片处理器,STM32 是意法半导体(ST)公司开创的一个单片机产品家族,在全世界核心芯片研发领域处于领先地位。H7 系列具有强大的内核,Chro-ART Accelerator 和MJPEG codec 可减轻90%以上的CPU 工作负荷,图像显示效果佳;主DMA 能处理记忆体和外设之间最复杂的数据传输配置,最多提供16 个通道减轻CPU工作负荷,可横跨各种外设,高效率传输资料;在安全管理方面,使用专属加密技术和哈希硬件加速,可减轻90%以上的CPU 工作负荷;高精度计时器(2.1ns)能产生复杂波形,与多重事件同步,无须CPU 辅助。

■2.2 LCD 液晶屏

SDWn028T63 液晶触摸串口屏采用了TFT 彩色液晶显示技术,分辨率为240×320,支持16 位RGB(65K 色)显示。触摸屏采用电容式触摸技术,触摸精度高,可在屏幕上实现多点触控。支持多种图形显示模式,包括点阵、字符和自定义图形,同时也支持中英文等多国语言的显示。该屏幕还支持多种通信协议,如RS232、RS485 和TTL 等,可以方便地接入各种嵌入式主控器。

■2.3 指纹模块

此系统使用的是FPC1020A 电容式半导体指纹识别模块。1020A 模块通讯接口为UART 或USB,本模块作为从设备,由主设备发送相关命令对其进行控制。该模块具有可调节的安全等级功能、指纹特征数据的读/写功能和指纹图像的读/写功能,识别方式为1:N 识别或1:1 验证。其工作流程为:指纹采集->特征提取->模板存储->验证比对。

■2.4 RFID 射频

MF522-AN 模块采用Philips MFRC522 芯片设计读卡电路,使用方便,成本低廉,适用于设备开发、读卡器开发等高级应用的用户、需要进行射频卡终端设计/生产的用户。

图2 识别流程图

■2.5 摄像头

ESP32-CAM 是一款集成了ESP32 和OV2640 摄像头的开发板,是基于ESP32 芯片的物联网开发板。它有WiFi 和蓝牙功能,同时还支持多种传感器,可以广泛应用于物联网、智能家居、安防监控等领域。其显著的拥有双内核处理器和高级WiFi、蓝牙功能,可以快速高效地处理大量数据,同时具有良好的稳定性和可靠性。200 万像素OV2640 摄像头可以达到最高1600×1200 分辨率的拍摄效果支持JPEG、BMP、RGB、YUV 等多种图像格式。其可支持多种传感器,支持Arduino 集成开发环境。和ESP-IDF 开发框架,可灵活适应不同的开发需求,同时还可支持多种开发语言和操作系统。

■2.6 WiFi 无线传输模块

ESP8266 为一个WiFi 模块,它有主从两种工作模式一样,也具有两种工作模式:STA 模式(Station)和AP 模式(Access Point),一般WiFi 模块还会有一个STA+AP模式,即可以在两种模式下切换的状态。

AP 模式下,WiFi 模块产生热点,提供无线接入服务,允许其它无线设备接入,提供数据访问,一般的无线路由/网桥工作在该模式下。该模式对应TCP 传输协议中的服务端(TCP Server)。

STA模式下,WiFi模块为连接到无线网络的终端(站点),可以连接到AP,一般无线网卡工作在STA 模式下。该模式对应TCP 传输协议中的客户端(TCP Client)。

3 系统的软件部分

■3.1 MQTT 协议

MQTT(Message Queuing Telemetry Transport) 是一种轻量级的、基于发布/订阅模式的消息协议。它主要针对物联网(IoT)场景设计的,具有低带宽、低功耗、高可靠性等特点。

图3 MQTT 协议收发图

MQTT 采用了轻量级的消息头和基于TCP/IP 的传输层协议,能够有效减少网络负载。MQTT 采用发布/订阅模式,发布者(Publisher)将消息发布到一个主题(Topic)上,订阅者(Subscriber)通过订阅相应的主题可以接收到对应的消息。

■3.2 门锁APP 开发

E4A(Engine for Android),是一款基于Delphi 开发的Android 应用程序开发框架。借助E4A,开发者可以使用Pascal 语言来编写Android 应用程序,E4A 提供了许多方便的API 和库,包括可访问Android 操作系统底层特性的NDK(Native Development Kit)等。

图4 APP 界面

■3.3 APP 连接OneNet 云平台

运用E4A 自带的MQTT 通讯类库,其中最主要的事件函数包括;连接成功,订阅成功,发送完毕和收到消息。最主要的方法函数包括:连接服务器,发送消息,订阅消息,取消订阅和关闭服务。接入OneNet 云平台,也可在可视化应用界面观测到云端下发的指令和数据。

首先在OneNet 物联网平台上创建一个产品->为产品添加第一设备->查看设备ID,产品ID 和鉴权信息->将OneNet 服务器地址(TCP://183.230.40.39:6002),三元素信息以及其他参数写入“连接服务器函数”中(见图7)。

图6 APP 窗口

如果连接成功则弹出提示“连接成功”否则“连接失败”(见图8)。

发送消息函数参数1 为发送消息的主题,参数2 为发送内容,参数3 为等级0/1/2(见图9)。

接收消息事件参数1 位收到的消息主题,参数2 位接收内容,参数3 同上(见图10)。

图10

接收到的消息在事件中进行字节转文本,随后判断消息的主题和消息是否为该响应的主题和内容,达到命令的接收和程序的处理。

■3.4 硬件层连接OneNet 云平台

硬件层想要连接云服务器首先得先连接局域网,所以得通过esp8266 模块,让门锁接入局域网内,也就是熟知的物联网。利用esp8266 的AT 指令方式联网,选择STA 模式(“AT+CWMODE=1”)主机与从机通过8266WIFI 模块进行一问一答的过程将路由器的账号密码输入对应参数中,设备成功联网。

图11

接着在OneNet 物联网平台上创建产品的第二个设备(注:软件层与硬件层在同一产品下)与前面的步骤一样,得到三元素。通过MQTT 通信协议发送连接报文,当得到平台的正确答复后说明接入成功,否则接入失败。

图12

■3.5 采集指纹算法

在信息采集过程中,由于设备和手指本身固有的特性,使得图像呈现出前景和背景的差异,前者图像比较清晰,后者较为模糊,不利于信息的后期处理。指纹图像分割是采用一定的算法和要求对原始的图像进行分割,也就是把指纹图像中纹线模糊,后续无法处理的图像区域剔除,保留有效区域,使后续处理能够集中在有效区域,为后续处理节省了时间,提高了准确率。指纹的纹理都是具有一定方向的,指纹图像的方向图是基于方向一致性的指纹图像分割的前提,指纹图像的分割算法基本上都是基于图像的方向特性和灰度特性的。

基于灰度方差的指纹图像分割法是比较常用的一种分割方法,该方法适用于指纹纹线清晰,对比度比较高的指纹图像。一般来说,指纹图像前景区域中的脊线和谷线之间的灰度变化比较大,因此其局部的灰度方差也很大。而背景区域中局部灰度方差几乎没有变化。基于这一特征,可以将图像的局部灰度方差作为一种判断方法,即确定一个阀值,将图像的灰度方差与这一阀值比较,保留大于阀值的部分,完成图像的分割。该算法的描述如下。

第一步:将指纹图像分成M×N 个子块,其中每一块的大小为W×WO。

第二步:分别计算出指纹图像中每一子块的灰度均值和灰度方差,第x 行y 列个子块图像的灰度均值和方差公式如(1)和(2)所示。其中x=1,2,y=1,2,..n。

第三步:根据指纹图像的灰度方差值的分布,确定阀值T,分割图像。将上一步到的灰度方差与T 进行比较,大于该阀值的区块为指纹的前景区,保留该子块的灰度值,否则为背景。指纹分割效果图如图14 所示。

图14 指纹识别

4 系统测试

本节分别APP,门锁下位机以及对系统重要功能测试展开介绍。测试内容包括WIFI 模块的串口通信,远程开关锁,一次性密码等。系统实物如图15 所示。

图15

图16

图17

■4.1 APP 介绍

此APP 主界面由五个功能菜单入口,发布消息、订阅主题按键以及接收消息框,和开关锁控制键组成。顶部的箭头是返回上一级按键右上角为高级菜单,中间是显示门锁的状态,在各个界面实时显示。

密码菜单中可重置开锁密码和设置动态密码。修改密码可进入子界面进行密码的修改。

指纹菜单有录入指纹和删除指纹的入口。界面上半部分会提示下一步从而完成录入与删除的功能。

IC 卡菜单也具有添加和删除的入口。进入摄像头菜单可实时监视设备周围的画面,在需要的情况下可关闭和打开摄像头。出入记录菜单用来显示门锁的开关时间和开锁方式。

主界面的下半区为MQTT 协议的发送和接收,提高调试的直观性,在接下来功能齐全的情况下会将其删除。此APP 还属测试阶段,除此外我们会进一步完善和巩固APP的实用性和安全性。

■4.2 门锁下位机

门锁下位机整体布局参考的是市面上常见的智能门锁。主要由如下几大块构成指纹模块,摄像头,液晶触摸屏,IC卡射频模块H7 低功耗主控板以及ESP8266WiFi 模块。在无人感应的情况下,指纹和触摸屏处于待机状态,当IC 卡接触到模块产生动作。摄像头在检测到人脸后进行处理。ESP8266 连接网络同时接入云端,是下位机和APP 沟通的桥梁。由于门锁的特殊应用场景要将功耗降到最低,否则浪费资源浪费财力,经过深思熟虑和技术甄别,采用了STM32H7 主控芯片处理器作为本项目的首脑。由于一些原因下位机封装还达不到产品的级别,日后有条件会进行改变。

■4.3 功能测试

(1)WiFi 模块串口通信无线通讯模块是整个系统工作的关键,ESP8266 是系统和服务器之间的桥梁。有了它MQTT 才得以施展。表1是该模块的测试用例。

表1 无线通讯用例表

由表1 可知,在串口调试助手中首先输入AT,回车后,输出OK 就表示通信模块初始化,此时可进行联网、发送数据等测试。通过输入指定的网络协议、网址以及端口号可测试联网是否成功。经测试,ESP8266 通信正常。

(2)远程开关锁

远程开关锁是通过APP 向云服务器传控制指令,服务器在向门锁系统下发所接收到的指令,从而实现啦APP 对门锁系统的指令下发。

经过表2 的测试,我们APP 通过界面按键向门锁系统发送以MQTT 为通讯协议的命令时,如果发布消息的主题与门锁系统订阅的主题相同且命令正确,门锁会向APP 返回一个APP 已经订阅了的主题为“ERR”命令为“0/1”的消息,从输出的结果得出开关锁是否成功。经测试,功能得以实现。

表2 远程开关锁用例表

(3)一次性密码

一次性密码的设计可以有效地管理门锁的运行,且可给不同的用户提供开锁的需求。比如酒店,民宿这类行业。也是通过APP 端编辑好密码下发给门锁硬件端。功能测试用例表如表3。

表3 一次性密码用例表

通过测试,APP 端编辑必须是8 位以内4 位以上的数字密码,否则设置的密码不符合要求,导致一次性密码设置失败,重新设置。

5 结束语

以上是我们展示的一种基于云平台的智能门锁系统。该系统采用了先进的技术,如物联网和云计算,可以让用户以便捷、快速和高效的方式控制门锁。我们设计了一个全面的系统架构来实现该目标,包括一个智能门锁设备、云服务器、手机应用和网站。设计过程中我们遇到了一些挑战,比如设备的连通性、安全性和可扩展性。我们通过深入地研究和实验,解决了这些问题并取得了不错的成果。我们的实验结果表明,该智能门锁系统在控制门锁方面具备了较高的效率和便捷性。

猜你喜欢

指纹图门锁指纹
像侦探一样提取指纹
为什么每个人的指纹都不一样
一种简易气门锁夹安装设备
6款热门智能门锁推荐
指纹图像传感器技术与后续发展研究
钥匙门锁对对碰
沉香GC-MS指纹图谱分析
基于模板检测法的指纹图像的细节特征提取
基于自适应稀疏变换的指纹图像压缩
可疑的指纹