本帖最后由 ryanh7 于 2022-8-14 15:14 编辑
模块
海凌科fpm383c 电容式指纹模块
价格30元左右
用途:
1、指纹锁
不建议使用在有较高安全要求的场所,如果模块被替换或者串口信号被监听,是可以欺骗主机的。车库门之类安全性要求不高的场所可以考虑
2、打卡机
监督你家小朋友打卡学习
3、身份识别
在某些场景识别用户身份,触发不同的设备动作
硬件:
A、esp8266 + fpm383c + 其他执行机构
可以根据指纹识别结果直接驱动设备完成某些动作,比如指纹锁、DIY快递柜。可以在hass离线的情况下独立完成原有功能。
(示意,来源网络)
B、esp8266 + fpm383c + hass
最简单的只需要一个指纹模块、esp8266模块外加一个合适的外壳。就可以把这个“小盒子”插上电源放在任何地方,担任不同的功能,比如可以做打卡机,也可以联动其他设备。
(示意,来源网络)
接线VCC,GND,TX,RX
TOUCH线没有使用,这个触摸中断信号必须在休眠后才恢复低电平,设计有点奇怪。程序里用了轮询,效率和速度比较低,凑合着用。
主要功能:
1、可独立控制的RGB灯
不过实际上只有6种颜色以及亮度可以控制,可以设置呼吸灯及闪烁效果(待实现)。可以根据喜欢的方式设置灯效。
配置示例
fpm383c:
# 一些基础配置
light:
- platform: fpm383c #配置RGB指示灯,所有颜色都会被重新映射到6种颜色(白色默映射到红色)
name: "指示灯"
id: fpm383c_id
2、多种基本的动作控制和触发器,可以实现自定义的行为,动作有注册指纹、取消注册、清空指纹、重启指纹模块,触发器有注册进度、指纹匹配成功、匹配失败(没注册过的指纹或指纹质量差)、手指按压、手指离开。
配置示例:
#引用组件库示例
external_components:
- source: github://ryanh7/esphome-custom-components@fpm383c
components: [ fpm383c ]
uart: #指定串口
id: uart_fpm383c
baud_rate: 57600
rx_pin: GPIO26
tx_pin: GPIO25
fpm383c:
on_touch: #手指触摸模块时触发
- light.turn_on: #示例,打开黄灯
id: fpm383c_id
brightness: 50%
red: 100%
green: 100%
blue: 0
on_release: #手指松开时触发
- light.turn_on: #示例,打开蓝灯
id: fpm383c_id
brightness: 50%
red: 0
green: 0
blue: 100%
on_finger_scan_unmatched: #指纹匹配失败时触发
- light.turn_on:#示例,打开红灯
id: fpm383c_id
brightness: 50%
red: 100%
green: 0
blue: 0
on_finger_scan_matched: #指纹匹配成功时触发
- light.turn_on: #示例,打开绿灯。还可以在这里执行开锁等其他动作
id: fpm383c_id
brightness: 50%
red: 0
green: 100%
blue: 0
on_finger_register_progress: #指纹注册进度,可以获取当前指纹编号和注册进度
then:
- lambda: |-
ESP_LOGD("PROGRESS", "register progress is %d%%, id=%04X", x.progress_in_percent, x.id); // 示例,打印进度日志
其他注意事项
1、手指触摸和离开的触发器在注册指纹的过程中不生效,原因是指纹模块在这个过程中不响应查询。也避免了一些容易混乱的问题。
2、仍然建议不要使用在高可靠性和高安全性的场景中,原因是程序并没有严格和可靠的安全性测试,可能会因为某些未预料的bug产生的不可预料的错误。
3、我买的模块在回复主机查询手指匹配结果的时候,回复内容常常不能通过校验(目前仅发现查询指纹匹配结果的命令有问题,疑似模块的固件有bug),因此在程序中暂时跳过了这条命令的完整性校验。
|