找回密码
 立即注册

微信扫码登录

搜索
查看: 571|回复: 1

[厨卫] 泡沫盾+8266接入HA

[复制链接]

17

主题

496

回帖

3648

积分

论坛元老

积分
3648
金钱
3135
HASS币
0
发表于 2025-10-22 16:23:30 | 显示全部楼层 |阅读模式
本帖最后由 george65 于 2025-10-28 19:44 编辑

參考花落花空大佬的帖子 https://bbs.hassbian.com/thread-12515-1-1.html
把泡沫盾接入HA  

材料:8266一個 AMS1117-3.3V一個 1N4007兩個 0.3mm線材少許

我買內置電池款  上方只有一個觸碰按鈕
螢幕擷取畫面 2025-10-22 155612.png

這是在麵包板上做測試
紅色線跟黑色線接到TYPE-C的VCC跟GND取電給8266使用
黃色線是接到彈簧 控制泡沫盾觸發
綠色線是狀態反饋 我也不知道這是什麼芯片  
上面都沒有印絲  反正我量到這腳未觸發時4.2V
觸發後剩0.7V  
42403_0.jpg
局部放大
42404_0.jpg
用萬用板把ESP01S跟AMS1117 3.3V組起來
IMG_20251023_111707.jpg IMG_20251023_111859.jpg
esp01s貼在內盒裡
不知道為什麼觸碰彈簧隔著盒子會感應不良
懶得調整線路  直接鎖一顆螺絲跟觸碰彈簧相接
IMG_20251027_224908.jpg
IMG_20251028_085619.jpg
找一顆已經沒在用的小米門窗感應器修改
IMG_20251028_092652.jpg
把干簧管焊下  接一顆按鈕開關上去
IMG_20251028_093302.jpg
再寫個自動化來連動  這樣就可以把門窗感應器放在順手的地方使用
螢幕擷取畫面 2025-10-28 192037.jpg
# ---------------------------------------------------------
# 定義全域變數,用來保存觸發計數(支援掉電後自動恢復)
# ---------------------------------------------------------
globals:
  - id: count_memory
    type: int
    restore_value: yes        # 記憶值會保存在 Flash 中,掉電後仍保留
    initial_value: '0'        # 初始值為 0


# ---------------------------------------------------------
# 定義 GPIO 開關腳位
# ---------------------------------------------------------
switch:
  # 實際輸出腳(IO1)
  - platform: gpio
    pin: 1
    id: Touch

  # 提供前端或 Home Assistant 操作的模板開關
  - platform: template
    name: "Touch"
    turn_on_action:
      - switch.turn_on: Touch
      - delay: 100ms
      - switch.turn_off: Touch


# ---------------------------------------------------------
# 定義輸入感測腳位(例如外部觸控或訊號輸出)
# ---------------------------------------------------------
binary_sensor:
  - platform: gpio
    pin:
      number: 3
      mode: INPUT_PULLUP
      inverted: True
    name: "Touch"
    # 每次偵測到觸發(按下)時,計數 +1
    on_press:
      - lambda: |-
          id(count_memory)++;  // 全域變數 +1
          id(touch_count).publish_state(id(count_memory));  // 更新顯示數值


# ---------------------------------------------------------
# 定義一個虛擬感測器,用於顯示觸發次數
# ---------------------------------------------------------
sensor:
  - platform: template
    name: "觸發次數"
    id: touch_count
    unit_of_measurement: "次"
    accuracy_decimals: 0
    update_interval: never    # 不定時刷新,僅在事件發生時更新


# ---------------------------------------------------------
# 定義一個手動按鈕,用來清除計數
# ---------------------------------------------------------
button:
  - platform: template
    name: "清除計數"
    on_press:
      - lambda: |-
          id(count_memory) = 0;  // 歸零全域變數
          id(touch_count).publish_state(0);  // 同步顯示歸零

回复

使用道具 举报

hsbn 手机认证

0

主题

33

回帖

228

积分

中级会员

积分
228
金钱
195
HASS币
0
发表于 2025-10-24 10:44:51 | 显示全部楼层
感谢分享
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian ( 晋ICP备17001384号-1 )

GMT+8, 2025-11-1 03:43 , Processed in 0.063582 second(s), 14 queries , MemCached On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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