从4月份到现在完成两个电子锁的demo。现在总结下电子锁的问题点。
项目一:物联网电子门锁.
功能: 密码、指纹、卡片的录入、删除.
开锁信息、状态信息等上传到手机APP.
语言播报.
低功耗.
原理: 触控用的KL16的TSI功能。
单片机通过433与DTU通信,锁作主机,DTU作从机,锁端工作状态下每 3S 发送一令牌包给DTU查询是否有数据,有数据DTU就发送给锁,
DTU收到锁端的数据,如,开锁信息,DTU将数据上传到服务器。
硬件: KL16Z128、433、THM3070、W25Q32.
功能点:1.菜单栏的显示
2.触控.
3.密码的存储.
4.指纹的识别、存储.
5.卡片的读取、存储.
6.锁与DTU的通信.
7.休眠唤醒.
8.RTC.
难点与解决办法:
1..密码、指纹、卡片信息的存储:
密码、指纹、卡片信息存在外部Flash时,比对太慢,所以存在单片机的Flash。
但是频繁的擦除/写入操作会影响单片的寿命。所以构建一个结构体包含Flash的某个位的擦除/写入信息,用1表示可操作位,0表示相应位已经擦除/写入。
2.锁与DTU的通信:
协议的编码与解析。
3.休眠与唤醒:
进入休眠关闭不需要的外设,配置相应IO口达到最低功耗。
低功耗下VLPS下500ms,VLPR下发送令牌包,检测天线、滑盖、触控、指纹。检测到这些唤醒条件中的一个则唤醒。
RTC时钟源用外部的32.768KHZ,用内部的话,需要中断更新UTC,这样会影响VLPS。
项目二:电子锁
与项目一相比项目二触控用的 TSM12 、指纹用PD601B(项目一用的图正指纹)、暂时还没有433.
难点与解决办法:
1.菜单栏:
没问题。
2.指纹:
指纹的手指检测不能靠检测 IO 口来判断是否有手指,在工作状态下一直发检测指纹的指令,
3.低功耗:
一开始一直降不下去。触控板接上后功耗100uA,硬件改后降到30uA左右。