1. 项目概述
去年帮朋友改造老式门锁时,发现传统机械锁存在钥匙易丢失、配匙麻烦等问题。于是萌生了用单片机+蓝牙模块做个无线密码锁的想法。这种方案不仅解决了钥匙管理的痛点,还能通过手机APP实现远程开锁、临时密码分享等扩展功能。
整套系统由STM32单片机作为主控,HC-05蓝牙模块负责无线通信,电磁锁作为执行机构。用户可以通过手机APP输入密码,经蓝牙传输到单片机验证后控制锁体开关。相比市面上的成品智能锁,自制方案成本能控制在百元以内,而且所有代码和电路都掌握在自己手里,安全性和可定制性更高。
2. 硬件设计与选型
2.1 核心器件选型
主控芯片选了STM32F103C8T6,这款ARM Cortex-M3内核的单片机性价比极高:
- 72MHz主频足够处理密码验证逻辑
- 64KB Flash存储空间可保存多组密码
- 丰富的GPIO接口方便外设扩展
- 开发社区资源丰富,遇到问题容易找到解决方案
蓝牙模块选用HC-05经典款,主要考虑:
- 兼容性:支持SPP协议,市面上大多数手机都能连接
- 传输距离:室内实测8-10米稳定连接
- 供电:3.3V与单片机共用电源
- 成本:单价不到20元
注意:购买HC-05时要确认是主从一体版本,有些低价模块只支持单一模式
2.2 电源方案设计
系统采用两套独立供电:
-
控制部分:5V USB供电经AMS1117降压到3.3V
- 单片机、蓝牙模块、指示灯等低功耗器件
- 总电流需求约150mA
-
锁体驱动:12V锂电池组供电
- 电磁锁瞬间电流可达1A
- 通过TIP122达林顿管控制通断
- 并联1000μF电容消除电压跌落
实测发现电磁锁动作时会产生电压波动,导致单片机复位。解决方法是在3.3V电源端加装100μF钽电容,并在复位引脚增加0.1μF去耦电容。
2.3 PCB布局要点
自制双面板时特别注意:
- 蓝牙天线区域(模块背面)不要走线或铺铜
- 电磁锁驱动电路远离模拟信号线
- 所有电源入口处放置0.1μF+10μF组合电容
- 预留SWD调试接口和串口输出引脚
3. 软件系统实现
3.1 蓝牙通信协议
定义简单的ASCII协议格式:
code复制[起始符][命令][参数][校验和][结束
解锁全文
加入我们的会员,获取最新、最热、最精彩的开发者技术内容