| 本帖最后由 george65 于 2025-10-28 19:44 编辑 
 參考花落花空大佬的帖子 https://bbs.hassbian.com/thread-12515-1-1.html
 把泡沫盾接入HA
 
 材料:8266一個 AMS1117-3.3V一個 1N4007兩個 0.3mm線材少許
 
 我買內置電池款  上方只有一個觸碰按鈕
 
   
 這是在麵包板上做測試
 紅色線跟黑色線接到TYPE-C的VCC跟GND取電給8266使用
 黃色線是接到彈簧 控制泡沫盾觸發
 綠色線是狀態反饋 我也不知道這是什麼芯片
 上面都沒有印絲  反正我量到這腳未觸發時4.2V
 觸發後剩0.7V
 
   局部放大
 
   用萬用板把ESP01S跟AMS1117 3.3V組起來
 
     esp01s貼在內盒裡
 不知道為什麼觸碰彈簧隔著盒子會感應不良
 懶得調整線路  直接鎖一顆螺絲跟觸碰彈簧相接
 
   
   找一顆已經沒在用的小米門窗感應器修改
 
   把干簧管焊下  接一顆按鈕開關上去
 
   再寫個自動化來連動  這樣就可以把門窗感應器放在順手的地方使用
 
   
 
# ---------------------------------------------------------
# 定義全域變數,用來保存觸發計數(支援掉電後自動恢復)
# ---------------------------------------------------------
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);  // 同步顯示歸零
 
 |