基于stm32的智能门锁开发日记(一)

基于stm32的智能门锁开发日记(一)

(一)需求分析,设计思路以及4G模块测试



前言

        虽然我有出门带钥匙的习惯,但是很多人估计还是喜欢不带钥匙直接出门吧,就像我的舍友们,他们就经常出门不带钥匙,我们宿舍的门钥匙也是一直插在锁眼里的,这样并不是很安全,于是我就打算设计一个基于stm32的宿舍智能锁,通过某些识别手段,类似指纹识别,人脸识别一类的,来实现智能开锁,正好我是学通信工程的,这不就专业对口了。


一、需求分析

        首先,指纹识别,这是最基础的功能,一定要有,密码开锁,也是不可或缺的,万一手上沾水了呢,指纹识别针对湿手可靠性可没有那么高。
        然后,人脸识别,这个稍微复杂一些,但是呢,比较巧的一点是,我正好是我们学校RoboMaster战队的成员,接触过OpenCV,在OpenCV contrib库中包含了一些人脸识别算法,LBPH非常适合我的需求,但是人脸识别对算力的要求比较高,用单片机来跑这个多少有些难为他了,于是我打算用树莓派来实现人脸识别。如果使用,树莓派这个项目的成本就偏高了,可以在日后有机会的时候加上。
        与此同时,我还想添加通过网络远程开锁,远程下发临时密码这样的功能,而我们的校园网需要登录认证,所以用esp32做主控或者esp8266串口联网的方案就被排除了,只能使用4G网络模组来实现联网。
        智能锁的开锁功能,可以依靠舵机实现,用舵机拉动门锁的开关,从内侧开门,不会对学校本来的门锁造成损伤,非常符合我的需求。

二、硬件选型

1.主控芯片

主控芯片我选了STM32G431CBU6,主要原因是这个芯片uart多,支持USB,并且是QFN的封装,比LQFP封装的那些好焊接太多了。
在这里插入图片描述

2.指纹模块

指纹模块我选择的是海凌科的PFM383F模块,二十块包邮的价格还要什么自行车。
在这里插入图片描述

3.网络模块

网络模块我用了合宙的air780E 4G Cat.1模块这个模块是移芯618平台,理论上效果应该不会差(当然也有个原因就是这个模块蛮便宜的hhh),但是使用这个模块,天线就需要自己设计了,我直接选了CrossAir的L01贴片天线,这是一个4G全网通的天线,对PCB的设计要求也不算高,照着要求画出来信号就不差了。
在这里插入图片描述

 

 

 
当时我还挺怕我这天线设计翻车,因为阻抗不匹配直接没信号来着,没想到这信号居然这么好,与此同时同一位置我手机的信号强度是-59dbm(切换到4G),虽然我知道不能这么比就是了。

信号强度
串口查询信号质量

 
合宙技术手册

三、硬件设计

PCB设计我是使用嘉立创EDA专业版画的,感谢JLC的免费打样,让我这项目很快的就落地了。
先放两张图在这里,我这个设计不是很完美,也不知道会不会出问题,等我这个项目最终完成以后再开源硬件电路的文件吧,供电用XT30这个老毛病了,鉴定为打RM打的
电路图

焊接好的PCB
PS:有一个去耦电容忘了焊了,不过本身3.3V就是LDO出来的,也没接什么会产生高频噪声的元件,问题不大。
PS2:DCDC有点麻烦,正好手头有一堆之前项目剩下的ams1117-3.3就随手多贴了几个。。合宙那个模块峰值电流有点大就多贴几个并联供电了。

四、网络测试

在手头的服务器上跑了一个TCP服务端的程序,然后用经典的at指令控制air780e连接服务器,测试还蛮成功的。
在这里插入图片描述

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32智能锁程序模块整合是将不同功能的程序模块整合到一起,实现智能锁的各项功能。整合过程可以分为硬件连接、软件编程和功能测试三个步骤。 在硬件连接方面,首先需要将STM32单片机与其他硬件模块连接起来。这包括与电源模块连接以提供电力,与电池连接以备份电源,与电机连接以控制开关锁,与按钮连接以实现输入控制,与LCD显示屏连接以实现信息展示等。在连接过程中,需要按照硬件接口规范进行正确的线路连接,并确保接地和电源的质量良好,以防止干扰和短路。 在软件编程方面,需要使用适当的集成开发环境(如IAR或Keil)进行程序开发。首先,根据需求编写各个程序模块的代码,包括电池电量检测、开锁控制、指纹识别、密码验证等。然后,将这些模块逐步整合到一个主程序中,并进行编译和调试。在编程过程中,需要熟悉STM32的编程语言(如C语言)和相关的开发库(如HAL库),并使用各种开发工具来解决问题。 在功能测试方面,需要对整合后的智能锁进行全面的测试。这包括对各个功能模块的测试,如正确识别用户指纹或验证密码、控制开关锁的正常运行、电池电量检测的准确性等。同时,还需要测试整体的稳定性和可靠性,以确保智能锁在实际使用中能够满足功能要求并具有良好的用户体验。 综上所述,STM32智能锁程序模块整合需要进行硬件连接、软件编程和功能测试三个步骤。在整合过程中,需要熟悉硬件接口和相关的开发工具,编写程序代码,并进行全面的功能和稳定性测试,以确保智能锁的正常运行和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值