基于STM32 的智能门锁控制系统设计与实现

作者: 杲靖 常森淏 谢光前 张建兵 瞿世云 曾祥峰

基于STM32 的智能门锁控制系统设计与实现0

摘要:针对传统智能门锁安全性低、价格高、解锁不够方便等一系列问题,设计并开发一款基于STM32F103单片机的智能门锁系统。该系统采用STM32芯片作为嵌入式控制中心的核心,可分别通过触屏按键密码、指纹、语音、手机远程控制等方式进行解锁,同时还提供一种基于TLS双向认证的安全的MQTT连接方法。该系统整体设计具备高度的完备性与实用性,同时也提升了开锁的安全性和便捷性。最终通过实物实验验证,充分实现了预期的结果。

关键词:智能门锁;STM32F103;语音解锁;远程解锁;TLS双向认证

中图分类号:TP368.1 文献标识码:A文章编号:1009-3044(2023)28-0087-03

0 引言

随着科学技术的不断进步和人们生活水平的不断提高,人们出于对家庭和财产的安全考虑,对门锁的安全需求也越来越高。然而随着人们感觉到高科技便利的同时,也出现许多的不安全因素,传统的机械门锁存在一些固有的缺点,尽管在设计上进行了精心考虑,但机械钥匙容易复制和丢失等问题时常发生。

为了解决这个问题,智能门锁应运而生,为人们提供了有效将不法分子隔离在门外的解决方案。与传统机械锁相比,智能门锁显著提升了门锁的安全性,为用户提供更多的安全保障。而目前市面上的智能门锁在远程解锁、语音解锁等方面仍然不够完善,无法满足生活中一些经常出现的应用场景,例如:不方便用手解锁、远程为访客解锁等。另外,随着互联网时代的到来,智能门锁的网络化趋势越来越明显,智能门锁更需要保护用户数据和安全服务,为此设计了一种更加智能、更加方便、更加安全的智能门锁控制系统,这也是我们研究和设计此项目的主要原因和重点[1-4]。

1 系统总体设计

智能门锁控制系统设计框图如图1所示。基于STM32的智能门锁控制系统由硬件系统与软件系统组合而成。硬件系统的设计由STM32单片机核心板电路、指纹识别模块、远程控制模块、ESP32语音模块等组成;软件系统由安卓App、数据库、云端服务器等组成。框架总体分为六大部分包括传感器、执行器、远程控制与数据记录端、物联网模块、处理器和语音控制端。

2 智能门锁硬件系统结构

基于STM32的智能门锁控制系统结构如图2所示,包括指纹识别模块、射频识别模块、舵机模块、蜂鸣器模块、无线传输模块、语音识别模块、触摸屏模块、人体感应模块以及STM32F103低功耗系列单片机及其电路组成的电路。STM32芯片通过USART与无线传输模块、指纹模块、语音模块进行通信,通过GPIO接收人体感应信号以及控制有源蜂鸣器和舵机模块,通过SPI与射频识别模块通信,通过I2C与触摸屏模块进行交互。

2.1 STM32核心板设计

在整个硬件系统中,微处理器扮演着至关重要的角色。它对其他硬件设备的选择具有重要的影响。相对于C51单片机和Arduino,ARM处理器的资源更加丰富,拥有更强大的计算能力和扩展能力,可以满足更复杂的应用需求,同时其功耗也较低。

STM32 核心板实物如图3 所示,智能门锁采用STM32F103ZET6开发板作为主控板,其具有丰富的硬件资源,提供了足够的存储空间用于程序和数据的存储,可以适用于需要较高性能和多种外部设备连接的应用场景。该STM32芯片还包括多种类型定时器,这些定时器可以用于各种计时和定时任务的处理。

2.2 指纹模块设计

本系统使用了LIENTEK公司推出的ATK-AS608 光学指纹识别模块。这款模块体积小、功耗低、接口简单,同时还具备高可靠性、快速识别速度以及适应干湿手指和快速指纹搜索的能力。该指纹识别模块通过USART2与STM32主控芯片相连,实现了指纹的录入和识别功能。

2.3 TFTLCD 触摸屏模块设计

触摸屏模块可以根据主控的需要,读取对应数量的触控信息。触摸屏模块用于用户与STM32主控芯片进行交互,并可实现密码开锁、修改密码和添加指纹等操作。

2.4 语音模块设计

传统智能门锁在语音识别功能上有很大的不足,人为添加的扰动表现在声学特征上即为噪声,并不影响人耳对于音频内容的获取人的声音[5],不仅容易被模仿和录制,且不同地区的用户口音不同,语音识别难度大,传统的声纹语音解锁模块是一直处于开启状态耗电量较大。

针对传统智能门锁在语音解锁上的不足,本系统采用通过Wi-Fi 连接到互联网进行智能配网的设置[6],通过MQTT协议进行数据传输,利用第三方平台与“米家”进行交互。通过“米家”的小爱同学,录入用户个人的声纹信号特征参数存储在库中,同时设置好语音开锁指令保存在语音助手中,当语音助手识别到有人说话的语音信号后,语音助手进行语音信号特征的参数对比,确认是用户本人后,提示用户已经唤醒语音助手,用户接到提示后说出开锁指令,语音助手用已经保存的指令和用户开锁指令进行语音数据对比,把对比成功或者失败的指令回传给ESP32,再让ESP32通过串口发送数据给STM32控制是否开锁。

2.5 无线传输控制模块设计

无线联网模块由ESP8266 NodeMCU 开发板实现,如图4无线传输控制系统框图所示。STM32主控芯片与ESP8266 板直接连接,ESP8266 板通过与MQTT服务器连接,再与手机通信,实现无线传输控制功能。ESP8266板订阅控制命令主题,接收远程控制指令,再通过串口将指令发送给主控芯片,实现数据传输和远程控制功能。

MQTT协议作为一种传输消息的协议类型,是以主题订阅模型和消息发布模型为基础[7]。为了确保数据的安全传输,ESP8266板与MQTT服务器的通信采用TLS协议加密,该协议提供了对应用层数据的身份认证、完整性验证以及机密性保护等功能[8]。一般情况下,TLS协议认证采用单向认证,即客户端会验证MQTT服务器身份,MQTT服务器不对客户端进行认证。但是为了提高数据传输的安全性能,本系统的TLS认证采用双向认证,即MQTT服务器和客户端都会互相认证,双方之间要交换证书,这样不仅能够防止第三方对数据的窃听,也能够鉴别客户端真伪性,同时还可以确保数据的完整性并避免数据被篡改。

3 智能门锁软件设计

软件设计方面,软件设计从智能门锁功能出发,将功能模块化,搭建层次化软件架构,最终将智能门锁软件设计分为三部分:App设计、数据库设计、服务器设计。MQTT服务器连接“智能门锁”App、后端服务器和STM32芯片,在App发送指令到STM32芯片执行对应操作时,也会有相应的记录通过后端服务器存储在数据库中,本系统软件设计框图如图5所示。

4 实验与分析

系统软硬件如图6所示,为完成智能门锁控制系统的建设,将各功能模块与主控模块进行焊接,确保线路连接正常。经过调试修改确认无误后,对智能门锁的语音模块和无线传输控制模块等功能模块进行逐一测试,随后对手机App软件进行测试,测试结果表明可有效进行语音控制和远程控制,使得门锁解锁方式更加多样,解锁更加便捷。

最后进行了软硬件联合调试,测试结果表明本系统设计的样机可以实现预期的控制效果,验证了硬件和软件方面方案的正确性和可行性。

5 结论

总体来说,这款基于STM32F103单片机开发的智能门锁系统,有效解决了传统智能门锁存在的安全性低、价格高以及解锁不够便利等问题。该系统利用语音解锁和远程解锁功能,可有效解决不方便用手解锁或者不方便为访客解锁的问题。同时,该系统还提供了一种基于TLS双向认证的安全的MQTT连接方法,增加了系统的安全性。该系统整体设计高度完备且实用,明显提升了开锁的安全性和便捷性。在未来的研究与开发中,此类系统将继续优化,并适应更多的使用环境和需求,为智能门锁的进一步发展开辟了新的可能性。

参考文献:

[1] 林永明,段斌.基于智能门锁云端系统渗透测试的防火墙绕

过风险探究[J].日用电器,2021(10):115-118.

[2] 黄培强. 智能门锁风险分析及防范[J]. 工程与管理科学,

2022,4(10):32-34.

[3] 刘彩迪,徐统嘉,刘立业,等.智能门锁设计[J].电子制作,2022,

30(19):70-72.

[4] 王志勇.智能门锁控制系统的设计与开发[D].杭州:浙江理

工大学,2018.

[5] 杨舟.针对深度学习图像识别中的对抗样本防御研究[D].西

安:西安电子科技大学,2021.

[6] 尹文博,李丹,钟昆,等.基于ESP32的家庭智能语音控制系统

[J].电脑知识与技术,2022,18(21):67-69,81.

[7] 张朝兰,姜孝均,易大江.基于MQTT协议物联网文件传输的

实现[J].互联网周刊,2023(4):20-22.

[8] 徐绘凯,刘跃,马振邦,等.MQTT安全大规模测量研究[J].信息

网络安全,2020,20(9):37-41.

【通联编辑:梁书】

上一篇 点击页面呼出菜单 下一篇