『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 3418|回复: 28

[插件集成] 【esphome】分享指纹模块的使用

[复制链接]

50

主题

244

帖子

4306

积分

元老级技术达人

积分
4306
金钱
4052
HASS币
80
发表于 2022-8-14 15:14:33 | 显示全部楼层 |阅读模式
本帖最后由 ryanh7 于 2022-8-14 15:14 编辑

模块
海凌科fpm383c 电容式指纹模块
O1CN0106vVPY1kldkEFw3Gx_!!2201505264724.png O1CN01lklnRk1kldkGLanm9_!!2201505264724.png O1CN01TmrA0Q1kldkKMBb0p_!!2201505264724.png
价格30元左右

用途:
1、指纹锁
不建议使用在有较高安全要求的场所,如果模块被替换或者串口信号被监听,是可以欺骗主机的。车库门之类安全性要求不高的场所可以考虑
2、打卡机
监督你家小朋友打卡学习
3、身份识别
在某些场景识别用户身份,触发不同的设备动作

硬件:
A、esp8266 + fpm383c + 其他执行机构
可以根据指纹识别结果直接驱动设备完成某些动作,比如指纹锁、DIY快递柜。可以在hass离线的情况下独立完成原有功能。

12335229593_1151331178.jpg_Q75.jpg

(示意,来源网络)
B、esp8266 + fpm383c + hass
最简单的只需要一个指纹模块、esp8266模块外加一个合适的外壳。就可以把这个“小盒子”插上电源放在任何地方,担任不同的功能,比如可以做打卡机,也可以联动其他设备。

images.jpeg
(示意,来源网络)


接线VCC,GND,TX,RX
TOUCH线没有使用,这个触摸中断信号必须在休眠后才恢复低电平,设计有点奇怪。程序里用了轮询,效率和速度比较低,凑合着用。

主要功能:


1、可独立控制的RGB灯
不过实际上只有6种颜色以及亮度可以控制,可以设置呼吸灯及闪烁效果(待实现)。可以根据喜欢的方式设置灯效。 下载.png 507E1760-BC72-4F2B-9C25-85B2BF8ED198.JPEG
配置示例
fpm383c:
  # 一些基础配置

light: 
  - platform: fpm383c #配置RGB指示灯,所有颜色都会被重新映射到6种颜色(白色默映射到红色)
    name: "指示灯"
    id: fpm383c_id

2、多种基本的动作控制和触发器,可以实现自定义的行为,动作有注册指纹、取消注册、清空指纹、重启指纹模块,触发器有注册进度、指纹匹配成功、匹配失败(没注册过的指纹或指纹质量差)、手指按压、手指离开。
1660459904174.gif
配置示例:
#引用组件库示例
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),因此在程序中暂时跳过了这条命令的完整性校验。

评分

参与人数 1金钱 +5 收起 理由
ciasdmxhxjjpd@c + 5

查看全部评分

没意思,跑路了
回复

使用道具 举报

2

主题

50

帖子

386

积分

中级会员

Rank: 3Rank: 3

积分
386
金钱
336
HASS币
0
发表于 2022-8-14 15:35:40 来自手机 | 显示全部楼层
楼主,R503指纹模块程序有吗
回复

使用道具 举报

50

主题

244

帖子

4306

积分

元老级技术达人

积分
4306
金钱
4052
HASS币
80
 楼主| 发表于 2022-8-14 18:51:26 | 显示全部楼层
ebeeb 发表于 2022-8-14 15:35
楼主,R503指纹模块程序有吗

没有              
没意思,跑路了
回复

使用道具 举报

39

主题

477

帖子

2691

积分

金牌会员

Rank: 6Rank: 6

积分
2691
金钱
2214
HASS币
10
发表于 2022-8-14 19:41:52 | 显示全部楼层
看起来厉害,不适合我等小白
回复

使用道具 举报

23

主题

137

帖子

712

积分

高级会员

Rank: 4

积分
712
金钱
575
HASS币
0
发表于 2022-8-14 20:37:58 来自手机 | 显示全部楼层
真会玩,可惜想不出用在哪。
回复

使用道具 举报

39

主题

2051

帖子

7705

积分

元老级技术达人

积分
7705
金钱
5639
HASS币
110
发表于 2022-8-15 08:32:18 | 显示全部楼层
搞在电动车上
回复

使用道具 举报

23

主题

660

帖子

3108

积分

论坛元老

Rank: 8Rank: 8

积分
3108
金钱
2448
HASS币
10
发表于 2022-8-15 10:19:10 | 显示全部楼层
Brewer 发表于 2022-8-14 20:37
真会玩,可惜想不出用在哪。

我想到一个场景。。。。给体重秤识别不同的人。。。
回复

使用道具 举报

23

主题

263

帖子

1347

积分

金牌会员

Rank: 6Rank: 6

积分
1347
金钱
1084
HASS币
0
发表于 2022-8-15 14:57:43 | 显示全部楼层
想装电动车上。。。。
回复

使用道具 举报

50

主题

244

帖子

4306

积分

元老级技术达人

积分
4306
金钱
4052
HASS币
80
 楼主| 发表于 2022-8-15 16:12:52 | 显示全部楼层
本帖最后由 ryanh7 于 2022-8-15 16:37 编辑
wshc1216 发表于 2022-8-15 10:19
我想到一个场景。。。。给体重秤识别不同的人。。。

配置示例:
sensor:
  - platform: 某平台
    name: "体重秤"
    id: scale
  - platform: template
    name: "人员1的体重"
    id: weight1
  - platform: template
    name: "人员2的体重"
    id: weight2
# 其他基础配置
fpm383c:
  on_match:
    - if:
        condition:
          lambda: "return x.id == 0;"
        then:
          - lambda: "id(weight1).publish_state(id(scale).state);"
    - if:
        condition:
          lambda: "return x.id == 1;"
        then:
          - lambda: "id(weight2).publish_state(id(scale).state);"

称完体重摸一下指纹,就登记了

没意思,跑路了
回复

使用道具 举报

50

主题

244

帖子

4306

积分

元老级技术达人

积分
4306
金钱
4052
HASS币
80
 楼主| 发表于 2022-8-15 16:22:51 | 显示全部楼层
th11998844 发表于 2022-8-15 14:57
想装电动车上。。。。

配置示例:
switch:
  - platform: gpio
    pin: 25 # 接继电器
    id: relay
# 其他基础配置
fpm383c:
  on_match:
    - switch.toggle: relay


继电器和钥匙锁串联:必须同时开锁和摁指纹;并联:开锁或者用指纹
没意思,跑路了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-30 08:34 , Processed in 0.387899 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表