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

 找回密码
 立即注册
查看: 107020|回复: 147

[新奇玩法] 单元门禁改造+esphome本地自动化

  [复制链接]

26

主题

2096

帖子

8506

积分

论坛元老

Rank: 8Rank: 8

积分
8506
金钱
6405
HASS币
30

论坛元老

发表于 2019-10-26 21:27:28 | 显示全部楼层 |阅读模式
本帖最后由 情非殇 于 2019-10-28 12:45 编辑

多图杀猫,!!!慎点

翻了下帖子,发现已经时2019年1月的时候跟帖请教@natic大佬准备动手的,然后,现在已经是10月底了。

背景:楼下进门有个门禁机,需要 钥匙 || ID卡 || 呼叫家里 开门(ps:懒得带钥匙,防盗门已经换绿米指纹锁了,没道理楼下进门再带东西)
物理机:1)楼下按门牌号, 2)家里响铃, 3)必须抬起话机, 4)然后按开门键
改造:物理按键&&网络控制,手动和自动开门;原有功能不受任何因素影响
所需模块:1)物理自复位按钮, 2)发光二极管\2枚做代码判断和视觉判断, 3)4路继电器,模拟抬起/挂断话机, 4)2路继电器,模拟开门按键和实现喇叭静音, 5)5v1路继电器,监听楼下开门请求, 6)D1mini, 7)1到2块LM2576 DC降压模块 ,【自用链接仅限参考】, 8)杜邦线若干, 9)万用表和剥线钳

思路:入户5跟线,能力有限搞不清功能,从pcb下手,万用表搞起,挨个功能点测试如何模拟
|取电,红黑有18v供电,降压模块降压到5v给各个模块供电;
|监听入户信号,最初喇叭响时有5v信号,后来拆掉可视化模块后,莫名丢失,自查,从可视化接口重新取得18v信号减压至5v激活继电器(正极接vcc,负极接信号线,pcb反面把信号线和gnd焊接一起;继电器常开和com接8266的gpio和gnd);
|模拟抬起/挂断话机,见下文;
|模拟开门键,按下后用万用表测PCB附近通断,并联一路接继电器常开和com即可
代码:二楼

实现功能
物理按键:红色按钮单击_模拟开门(绿灯为自复位按钮视觉状态反馈),长按2秒绿灯灭——松手红灯亮,激活自动化,楼下按门铃自动开门(自动化开启时喇叭静音,红灯为自动化判断条件)
网控:精简到只需要一个switch.LED_RED,监听到门铃时,按键开门并自复位自己;监听不到门铃时,按键为打开自动化开门(10-27补充新视频)
优点:新增改装模块默认功能接线都是在常闭端,不管哪部分坏掉,都不影响原有物理功能;全部自动化都写在esphome中,稳定不受外部影响

视频效果==




游客,如果您要查看本帖隐藏内容请回复

拆机图==
背部写真
A1960268482E906ADD92957593CF6E99.JPG
拆开前面板
B18B1394BC872B3C5C6DA919637920EF.JPG
主控PCB
E1FD77B21085AC91981885928E5691DB.JPG
前面板物理操作按钮PCB
AA17467964E8E2675DAD94F0DF37348E.JPG
A6B4147C1563A430FAAC949A610EC1CB.JPG
话机抬起/挂断,模块(相当于继电器)
A5157B50449644B72EFF4C4340D485B5.JPG
话机模块正反面,挂断状态,即白色舌头按下,32通31断,抬起话机后32断31通,654同样道理
QQ图片20191013104253.jpg
改装线路图,SW1是原有模块,RLY1/2是新增继电器(RELAY_KA1/2)。
QQ图片20191026211625.png

改装图==
飞线改装话机挂机模块,实现双控,配合继电器常闭端,改装系统坏掉也不影响任何原机物理操作//并联到喇叭取5v监听门铃
7EABC5B66B80B1441C864E6AB2E8668A.JPG
打孔增加自复位按钮+2枚发光二极管

85DAD3B5EEA73D11E0A6913EA6EA8915.JPG
nodemcu,原定的D1mini有问题,先用手里的顶一下
09BD3FB3C27FF1696F5E47E65CD1C56E.JPG
继电器接杜邦不是很好接,我就直接焊死在pcb阵脚上了,机智
F8575E7BD42066D2E10F66790239D7CA.JPG

BETA1版本,全部飞线到机身外部,
9B18D3903EBE684D3F39CA528A54F2C1.JPG
49217AA1188244A6FD9A62787F4B9C56.JPG

BETA2.1版本,拆除机身内可视化模块,清理空间,直接布局改装模块
C7EAAE183F678AB3A4FDC0B14A84197B.JPG

BETA2.2最终版,
拆掉可视化模块后,喇叭没有5v电了,无解,折腾后从可视化模块插口获取到了楼下呼叫后才会有的18v电,上降压模块,降压到5v,给继电器信号以监听门铃
098246553FFD698D6B21E1ABC7BC4137.JPG
DA78BF2A4331EF28015841C1DFBBC6F4.JPG
3AD70833AA66F04D83336A6860CBC857.JPG



非常感谢大佬的帮助:
@natic
@wsy
@ˋwaiting for U ゞSir 楠总




























评分

参与人数 1金钱 +8 收起 理由
hassio-newbie + 8 墙都不扶,就服楼主!

查看全部评分

回复

使用道具 举报

26

主题

2096

帖子

8506

积分

论坛元老

Rank: 8Rank: 8

积分
8506
金钱
6405
HASS币
30

论坛元老

 楼主| 发表于 2019-10-26 21:27:29 | 显示全部楼层
本帖最后由 情非殇 于 2019-10-26 21:48 编辑
esphome:
  name: nodemcu_01
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_passwd

  use_address: 172.22.1.247

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: !secret api_passwd
  reboot_timeout: 30min

ota:
  safe_mode: True
  password: !secret ota_passwd
  port: 8266
  
web_server:
  port: 80

#######################################################################

binary_sensor:
## 自复位按钮操作
  - platform: gpio
    pin:
      number: D3
      mode: INPUT_PULLUP
      inverted: True
    name: "BUTTON"
    id: button
  ## 按下绿灯亮
    on_press:
      then:
        - switch.turn_on: relay_green
  ## 复位绿灯灭(如果绿灯依然亮)
    on_release:
      if:
        condition:
          - switch.is_on: relay_green
        then:
          - switch.turn_off: relay_green
  ## 单击执行开门流程(beta_0.3将只在有呼入时可操作)
    on_click:
      min_length: 50ms
      max_length: 500ms
      then:
        - script.execute: open_door
  ## 长按激活/停止红灯(2~4秒有效)
    on_multi_click:
      - timing:
          - ON for 2s to 4s
          - OFF for at least 0.5s
        then:
          - switch.toggle: relay_red
## 监听门铃
  - platform: gpio
    pin:
      number: D2
      mode: INPUT_PULLUP
      inverted: True
    name: "BELL"
    id: bell
  ## 如果红灯亮,等待0.5秒,执行开门流程
    on_press:
      if:
        condition:
          - switch.is_on: relay_red
        then:
          - delay: 500ms
          - script.execute: open_door


switch:
## 绿灯(按键指示)
  - platform: gpio
    pin: D0
    name: "LED_GREEN"
    id: relay_green
  ## 亮起时长,2秒/次
    on_turn_on:
      - delay: 2.1s
      - if:
          condition:
            for:
              time: 2s
              condition:
                switch.is_on: relay_green
          then:
            - switch.turn_off: relay_green
            # - logger.log: Test has stayed connected for at least 1 minutes!
## 红灯(自动化流程条件)
  - platform: gpio
    pin: D1
    name: "LED_RED"
    id: relay_red
  ## 灯亮静音,灯灭恢复
    on_turn_on:
      - switch.turn_on: mute
      # - logger.log: "Switch Turned On!"
    on_turn_off:
      - switch.turn_off: mute
      # - logger.log: "Switch Turned Off!"
## 模拟接听(抬起/挂起话机)
  - platform: gpio
    pin: D5
    name: "RELAY_KA1"
    id: relay_ka1
  - platform: gpio
    pin: D6
    name: "RELAY_KA2"
    id: relay_ka2
## 开门
  - platform: gpio
    pin: D7
    name: "RELAY_KEY"
    id: relay_key
## 静音(门铃)(联动红灯)
  - platform: gpio
    pin: D8
    name: "MUTE"
    id: mute

## 8266运行时间
sensor:
  - platform: uptime
    name: Uptime Sensor

################################################################################
# Example configuration entry

script:
## 模拟手动开门完整流程
  - id: open_door
    then:
    ## 模拟抬起话筒,切换间隔10ms(ps:50ms模拟失败)
      - switch.turn_on: relay_ka2
      - delay: 10ms
      - switch.turn_on: relay_ka1
    ## 等待0.8s后,短接并联0.1s模拟开门按键
      - delay: 800ms
      - switch.turn_on: relay_key
      - delay: 100ms
      - switch.turn_off: relay_key
    ## 等待1.5秒后,模拟挂起话筒
      - delay: 1500ms
      - switch.turn_off: relay_ka1
      - delay: 10ms
      - switch.turn_off: relay_ka2
    ## 模拟流程end,log装逼测试!
      - logger.log: ok, the door is open! perfect!
      
  ## beta_0.1测试失败后,测试代码用
  # - id: open_door1
  #   then:
  #     - switch.turn_on: relay_ka2
  #     - delay: 10ms
  #     - switch.turn_on: relay_ka1
  # - id: open_door2
  #   then:
  #     - switch.turn_on: relay_key
  #     - delay: 100ms
  #     - switch.turn_off: relay_key


评分

参与人数 2金钱 +40 HASS币 +20 收起 理由
natic + 20 论坛有你更精彩!
+ 20 + 20 大神666!

查看全部评分

回复

使用道具 举报

26

主题

2096

帖子

8506

积分

论坛元老

Rank: 8Rank: 8

积分
8506
金钱
6405
HASS币
30

论坛元老

 楼主| 发表于 2019-12-3 11:29:23 | 显示全部楼层
本帖最后由 情非殇 于 2019-12-3 11:41 编辑
tomdf01 发表于 2019-12-3 10:11
感谢楼主分享。有个问题,如图,楼主有修改原电路板么?如果没有修改,在RLY2闭合后,按图例32引脚是断开了 ...

是的,我把原电路模块吸锡拿来下了,1和2位置的模块引脚掰弯和PCB分别飞线了,只有3位置还维持焊接不变。
这个接线就是拆除原有模块后,配合2个继电器接线的图
回复

使用道具 举报

8

主题

735

帖子

4277

积分

论坛元老

Rank: 8Rank: 8

积分
4277
金钱
3537
HASS币
40
QQ
发表于 2019-10-26 22:34:21 | 显示全部楼层
大佬
回复

使用道具 举报

11

主题

270

帖子

3019

积分

论坛元老

Rank: 8Rank: 8

积分
3019
金钱
2749
HASS币
10
发表于 2019-10-26 22:36:03 | 显示全部楼层
学习紫薯布丁紫薯布丁
回复

使用道具 举报

0

主题

92

帖子

684

积分

高级会员

Rank: 4

积分
684
金钱
592
HASS币
0
发表于 2019-10-26 23:15:17 | 显示全部楼层
大神有你更精彩
回复

使用道具 举报

6

主题

226

帖子

3359

积分

论坛元老

Rank: 8Rank: 8

积分
3359
金钱
3133
HASS币
0
发表于 2019-10-26 23:26:33 | 显示全部楼层
感兴趣 ,牛牛牛 看看
回复

使用道具 举报

22

主题

303

帖子

1071

积分

金牌会员

Rank: 6Rank: 6

积分
1071
金钱
763
HASS币
20
发表于 2019-10-26 23:31:42 | 显示全部楼层
感觉esphome好强大,大神们都可以各种高科技的玩,学习了。
回复

使用道具 举报

12

主题

351

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
821
HASS币
0
发表于 2019-10-26 23:35:07 | 显示全部楼层
学习学习
回复

使用道具 举报

12

主题

351

帖子

1172

积分

金牌会员

Rank: 6Rank: 6

积分
1172
金钱
821
HASS币
0
发表于 2019-10-26 23:36:51 | 显示全部楼层
学习学习
回复

使用道具 举报

0

主题

188

帖子

1108

积分

金牌会员

Rank: 6Rank: 6

积分
1108
金钱
920
HASS币
0
发表于 2019-10-27 07:33:02 | 显示全部楼层

学习学习
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-25 09:26 , Processed in 4.695680 second(s), 40 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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