50 元 1 小时:ESPHome 漏水检测器零代码配置教程
【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome
凌晨三点,洗衣机的排水软管松了。等你第二天早上发现,地板已经被泡了半小时,楼下邻居的微信也发了过来。漏水这事,坏就坏在没人盯着。其实一块 ESP8266 开发板加一个几块钱的水浸传感器,用 ESPHome 写几十行 YAML 配置就能变成 24 小时在线的漏水检测器,不用写代码,花不到 50 元、大约 1 小时就能上线。
方案全景:一块开发板、一个探头、一个喇叭
说白了,整套系统就是三样东西。开发板跑 ESPHome,负责判断和指挥,是大脑;水浸传感器插在水里就能感知,是耳朵;蜂鸣器接到 GPIO 上,一有状况就响,是喇叭。最关键的优点是:告警逻辑全部在设备本地执行,就算家里网络断了,探头报警、蜂鸣器照样响。涉及到的核心模块就是 GPIO 二进制传感器(esphome/components/gpio/binary_sensor/)和开关组件(esphome/components/gpio/switch/)。
动手前:备齐这三样东西
| 名称 | 干什么用的 | 大概多少钱 |
|---|---|---|
| ESP8266 NodeMCU 开发板 | 大脑,跑 ESPHome 和 Wi-Fi | 约 20 元 |
| 数字水浸传感器(带 3 针接线板那种) | 耳朵,探到水就改变电平 | 约 5 元 |
| 5V 有源蜂鸣器 | 喇叭,本地声音告警 | 约 5 元 |
| 杜邦线若干 | 连接各个模块 | 几元 |
| ESPHome 软件 | 把配置编译成固件并烧录进去 | 免费,开源项目(仓库地址 https://gitcode.com/GitHub_Trending/es/esphome ) |
软件不用克隆仓库,一行命令装好 CLI 就能用:
# 在电脑上用 Docker 跑 esphome,装好后不用再管环境 docker run -it --rm -v "$PWD:/config" esphome/esphome跟着做:四步把漏水检测器装好
步骤 1:把探头和蜂鸣器接上开发板
接线其实只有 4 根,接错也不怕,最多是报警不响。
- 水浸传感器:VCC 接开发板的 3V3,GND 接 GND,信号脚(OUT)接 D2(也就是 GPIO4)。
- 蜂鸣器:正极接 D1(GPIO5),负极接 GND。
- 最后给开发板插上 USB 供电。
步骤 2:写第一份配置文件并保存
这段配置定义了设备、Wi-Fi,以及耳朵和喇叭接在哪个引脚上。INPUT_PULLUP表示用芯片内部上拉电阻,探头一入水就把引脚拉低,状态翻转为 on。
esphome: name: leak-detector platform: ESP8266 board: nodemcuv2 wifi: ssid: "你的Wi-Fi名" password: "你的Wi-Fi密码" ap: # Wi-Fi 断了自动变热点,方便你救回设备 ssid: "LeakDetector-Fallback" ap_timeout: 120s binary_sensor: - platform: gpio pin: number: GPIO4 mode: INPUT_PULLUP name: "Leak Sensor" device_class: moisture filters: - delayed_on: 1s # 水要连续 1 秒才算数,挡掉水珠毛刺 switch: - platform: gpio pin: GPIO5 name: "Alarm Buzzer" id: alarm_buzzer保存成leak.yaml。写对了吗?先验一下:esphome config leak.yaml,输出 ok 就能进行下一步。
步骤 3:让它在漏水时自己喊
这段自动化只干一件事:探头一变 on,先响 5 秒,再短促地叫 6 下,提醒你去看一眼。
on_state: # 接在上面的 Leak Sensor 下面 then: - switch.turn_on: alarm_buzzer - delay: 5s - switch.turn_off: alarm_buzzer - repeat: count: 6 then: - switch.turn_on: alarm_buzzer - delay: 300ms - switch.turn_off: alarm_buzzer - delay: 500ms步骤 4:编译上传,通电测试
一条命令完成校验、编译、烧录。
esphome run leak.yaml第一遍固件走 USB 写入;从第二版开始,它就能走 Wi-Fi 在线更新了。看到日志出现Leak Detector is ready,拿牙签蘸一滴水滴到探头金属片上:蜂鸣器先长鸣 5 秒、再急促地叫 6 下。稳了,检测器正式上岗。
踩坑实录:新手最常翻的三处车
蜂鸣器一直长响,没水也响。多半是探头两个金属片被什么东西连起来了(垫着的纸吸水、旁边有冷凝水),或者 OUT 线松脱后悬空。断电,擦干、理线,再上电。
电脑找不到开发板。症状是run一直卡在连接。八成是 Wi-Fi 密码抄错,或者路由器换了频段。ESP8266 只支持 2.4G Wi-Fi,别接 5G 频段。
状态翻来覆去、误报频繁。把delayed_on从 1 秒加到 2 秒;供电虚标的话,换一根能稳定输出的充电头试试。
不止于此
- 同一套配置改个名字、换个引脚,多复制几份,就是全屋多点监测
- 接入 Home Assistant 后,漏水能直接推送到你手机
- 加一路继电器接进水电磁阀,漏水时自动断水
- 配合深睡和电池,把它做成无线低功耗节点
- 用 ESP-NOW 让多个探头组网回传
【免费下载链接】esphomeESPHome is a system to control your ESP32, ESP8266, BK72xx, RP2040 by simple yet powerful configuration files and control them remotely through Home Automation systems.项目地址: https://gitcode.com/GitHub_Trending/es/esphome
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考