news 2026/9/14 4:22:43

ESPHome 30元一个下午搭好漏水检测报警

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ESPHome 30元一个下午搭好漏水检测报警

ESPHome 30元一个下午搭好漏水检测报警

【免费下载链接】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 开发板加一个水浸传感器、一个蜂鸣器,总预算 35 元以内,大约一个半小时内搭好一套漏水检测系统:全程只需复制粘贴 YAML 配置,ESPHome 会把配置编译成固件刷进芯片,通电后设备持续感知探头干湿状态,漏水时本地蜂鸣器报警,并通过局域网把告警推给 Home Assistant,不需要写任何代码。

为什么选 ESPHome

现成的漏水报警器大多只能本地响铃,离家在外收不到消息;带手机通知的 WiFi 款普遍贵一倍,不少还要订阅云服务。ESPHome 的思路不同:你用 YAML 声明「哪个引脚接了传感器、漏水时做什么」,工具自动生成、编译并上传完整固件。

这样做的好处:

  • 告警走本地 MQTT 和 Home Assistant,不依赖云端
  • 配置是纯文本,可备份、可复制改几行重新刷入
  • 传感器状态是一个二进制传感器(只有「开/关」两态的信号组件,这里表示漏水与否),Home Assistant 能直接拿它做自动化
  • 同一套配置换个房间、换个探头就能复用

整套 ESPHome 水浸传感器配置加起来不到 20 行 YAML。

准备工作:物料与接线

购买清单

名称作用预估价格区间
ESP8266 NodeMCU v2 开发板主控,负责 WiFi 通信与逻辑10~15 元
水浸传感器模块(带 D0 数字输出)探头感知水,D0 输出高/低电平5~10 元
有源蜂鸣器(3.3V)本地声音告警,通电即响3~5 元
杜邦线 + 小面包板、5V/1A 电源连接与供电5~10 元

买传感器认准「带 D0 数字输出」:只有模拟口(A0)的模块需要比较器电路才能判断干湿,不适合这种直接接 GPIO 的方案。

如何接线不短路

传感器三根线,面包板插接即可:

  • 传感器 5V → 开发板 5V(按模块标注来)
  • 传感器 GND → 开发板 G
  • 传感器 D0 → D2(即 GPIO4)

蜂鸣器三根线:V+ → 3V3,GND → G,信号脚 → D1(即 GPIO5)。引脚要避开 D0/D3(GPIO0/GPIO2),它们参与 ESP8266 启动流程,外接负载可能导致开发板起不来。各引脚的详细说明见 GPIO 组件文档。

搭建过程:四段 YAML

安装 esphome 命令行工具后运行esphome dashboard,在网页端新建设备,按下面四段粘贴配置。

第一步:设备身份与 WiFi

esphome: name: leak-detector esp8266: board: nodemcuv2 wifi: ssid: "HomeWiFi" password: "你的WiFi密码" ap: # 连不上网时,设备自动变成热点,方便排查 ssid: "leak-detector-fallback"

第二步:漏水传感器,防误触发的关键在 filters

binary_sensor: - platform: gpio pin: number: GPIO4 # D2,接传感器 D0 mode: INPUT_PULLUP # 内部上拉,不用外接电阻 name: "Kitchen Leak" device_class: moisture # HA 会按「干湿」类传感器处理 filters: - delayed_on: 1s # 连续 1 秒有水才上报,滤掉溅水 - delayed_off: 10s # 持续干燥 10 秒才判恢复

filters 是 Binary Sensor 内置的去抖过滤,逻辑见 filter 源码。

刷入固件后先做一次验证:把探头蘸水。状态没变化(一直是 off)说明模块输出逻辑相反,在 pin 下加一行inverted: true再部署一次即可。

第三步:让蜂鸣器只在漏水时响

switch: - platform: gpio pin: GPIO5 # D1 name: "Alarm Buzzer" id: alarm_buzzer

再给第二步的 binary_sensor 补上两个动作:

on_state: # 传感器变 on(检测到漏水)时触发 - switch.turn_on: alarm_buzzer - delay: 10s - switch.turn_off: alarm_buzzer on_release: # 漏水消除后触发,收尾 - switch.turn_off: alarm_buzzer

验证时如果状态变了但蜂鸣器不响,先拿 3.3V 直接给蜂鸣器通电试一下:不响说明是坏的或 5V 起鸣的型号,换 3V~5V 工作的有源蜂鸣器;再检查 D1 焊接或插接是否松动。

第四步:Home Assistant 漏水告警

设备接入 MQTT 后,把事件交给 Home Assistant 就能推送到手机:

mqtt: broker: "192.168.1.100" # 你的 HA 里 MQTT 服务地址

在 Home Assistant 里建一条自动化:触发条件选binary_sensor.kitchen_leak变 on,动作选「发送手机推送」。这一步完成后,人在外面也能收到通知。

不灵敏或误报怎么调

现象调整
偶尔误报delayed_on从 1s 加到 2~3s
潮湿环境长期漂移裁掉传感器外围电路板只留金属探头,非探头侧贴防水胶布
恢复太慢delayed_off调小到 5s

实际跑起来是什么样

刷机加调参约一个半小时。日常状态下设备静默工作,Home Assistant 里能看到一个「Kitchen Leak」开关状态实体;探头一沾水,约 1 秒后蜂鸣器响 10 秒,手机推送同时到达;擦干后状态按delayed_off延时复位。断电恢复后蜂鸣器默认不响,不会半夜误鸣。

扩展思路

  • 多房间:同一份 YAML 当模板,改名字和引脚逐间部署,HA 里把各点位收进一张仪表盘卡片;配置多时可用 packages 机制把每间房拆成单独文件再!include
  • 电池供电:想进一步省电可研究 deep_sleep 机制,周期性唤醒采样,代价是告警会延迟
  • 记录趋势:水浸状态本身只有两态,若想在 HA 里做历史分析和趋势图,可以另加一个模拟量传感器做辅助参考

本文配置兼容 ESPHome 2024.x 及以上版本(平台块使用新的esp8266:顶层写法),换用 ESP32、BK72xx 等平台时替换为对应平台块,并按该板型文档选择引脚即可。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/14 4:21:59

STM32嵌入式开发迁移到VS Code的工程化实践

1. 项目概述:为什么STM32开发者正在集体迁入VS Code最近三个月,我手头带的五个嵌入式项目里,有四个新启动的工程全部跳过了Keil MDK和IAR Embedded Workbench,直接在VS Code里完成了从新建工程、代码编写、调试烧录到量产固件生成…

作者头像 李华
网站建设 2026/9/14 4:20:49

Tool Updater

Tool Updater 【免费下载链接】gastown Gas Town - multi-agent workspace manager 项目地址: https://gitcode.com/GitHub_Trending/ga/gastown Checks for and applies Homebrew updates to beads (bd) and dolt. gt is rebuilt separately by the rebuild-gt plugin…

作者头像 李华
网站建设 2026/9/14 4:19:23

VS Code 1.112 配 TaoToken:Agent 权限级别与消息队列这样设置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/14 4:19:15

DeepSeek Vision接入Codex与Harness:给编程智能体装上眼睛

DeepSeek的Vision能力接入Codex和Harness这事,最近在开发圈里讨论度一下子高了起来。说白了,以前大家在终端里跑Codex这种编程智能体,它只能“读文字”,代码报错信息、终端日志这些纯文本没问题,可一旦涉及截图、UI原型…

作者头像 李华