找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

2786

积分

0

好友

355

主题
发表于 12 小时前 | 查看: 0| 回复: 0

在日常使用Home Assistant管理自动灌溉系统时,你是否也遇到过一些令人头疼的问题?例如,水泵因为软管微小的渗漏就触发泄漏保护停机;或者预过滤器堵塞导致系统无法建立足够压力;又或者是圆盘过滤器堵塞,使得出水口压力不足,影响灌溉效果。

为了解决这些问题,一位DIY玩家充分利用了Rain Bird圆盘过滤器上预留的两个压力接口,设计了一套巧妙的一体化监测方案——同时监测过滤器入口和出口的压力。这样一来:

  • 入口压力异常 → 可以推断水泵或前置预过滤器出现问题;
  • 入口压力正常但出口压力低 → 基本可以锁定是圆盘过滤器本身堵塞了;
  • 将这些压力数据,尤其是两者之间的差值,集成到Home Assistant后,就能轻松设置告警,甚至实现自动复位的逻辑。

水压监测设备实物图,显示压力读数

01 项目亮点

这个项目的核心亮点在于其精准的诊断思路和高性价比的实现方案:

  • 双点测压,差压诊断:在同一节点上监控“入口/出口”两路压力,通过计算差值,一眼就能判断系统是否存在堵塞。
  • 低成本硬件组合:核心硬件仅需D1 mini(ESP8266)、一个外置ADC(ADS1115)和两只0–10 bar量程的压力传感器。
  • ESPHome 原生生态支持:通过I²C接入传感器,内置线性标定、中值滤波、变化阈值(Δ)上报等功能,配置完成后可直接无缝接入Home Assistant,极大简化了运维复杂度。
  • 可选现场显示:支持即插即用的0.96英寸OLED屏幕,方便在现场直接查看读数,无需连接手机或电脑。
  • 完善的工程细节:考虑了G1/4螺纹角接头侧向安装、特氟龙带密封、220V交流转5V直流独立供电等安全与可靠性设计。

ADS1115 ADC模块与OLED显示屏电路板特写

02 核心硬件清单

  • 主控芯片:WeMos D1 mini(基于ESP8266)
  • 压力传感器:WNK83MA ×2(5V供电,0–10 bar量程,G1/4英寸外螺纹)
  • 模数转换器(ADC):ADS1115(I²C接口,支持4路差分或单端输入)
  • 显示模块(可选):0.96英寸OLED显示屏(驱动芯片为SSD1306)
  • 电源模块:220V交流转5V直流小型隔离电源模块

ESP8266 D1 mini与ADS1115连接示意图

03 方案要点与电气设计思路

  • 为何使用外置ADC?
    ESP8266芯片自带的ADC通道有限,且精度和抗干扰能力一般。而像ADS1115这类专业ADC芯片,通过I²C总线仅占用2个GPIO引脚,就能扩展出4路高精度模拟量输入,性价比极高。
  • 量程与供电设计
    选用的压力传感器在10 bar满量程时输出0.5–4.5 V电压。为了省去额外的电平转换电路,方案让ADS1115工作在3.3V电压下(其输入电压上限约为VDD+0.3V≈3.6V)。考虑到系统正常工作压力通常在4.5–5 bar左右,对应的传感器输出电压估算不超过2.25 V,完全落在安全范围内。
  • 工作原理
    对入口和出口两路绝对压力进行同步采样,然后计算两者的差值(差压 = 入口压力 - 出口压力)。当圆盘过滤器开始堵塞时,流阻增大,出口压力下降,这个差压值就会显著升高,从而成为判断堵塞的关键指标。

面包板上的电路原型搭建

04 软件栈与关键配置(ESPHome)

整个项目的软件核心是ESPHome配置文件,它定义了硬件如何工作以及如何与Home Assistant通信。

  • 基础配置:启用API、OTA(无线升级)、日志和状态指示灯;配置I²C总线并挂载ADS1115设备;可选地启用OLED显示屏组件。
  • 采样与滤波配置
    • 设置 gain: 4.096(对应满量程±4.096V,为实际电压留出充足余量)。
    • 启用 median 中值滤波器,有效抑制采样数据中的偶然抖动和噪声。
    • 设置 delta: 1% 变化上报阈值,只有传感器读数变化超过1%时才上报数据,避免网络和数据存储的冗余负载。
  • 传感器标定:这是保证读数准确的关键。以花园水泵自带机械压力表作为参照,记录下多个稳定压力点对应的传感器输出电压,进行线性拟合,得到电压到压力(bar)的转换公式。
  • Home Assistant集成:设备编译刷入后,在Home Assistant中通过ESPHome插件自动发现并添加。之后便可以在仪表盘中添加压力、差压的仪表盘或趋势曲线卡片,并基于差压阈值创建自动化,例如:“当差压持续超过1.0 bar时,向手机发送推送通知,提醒清洗过滤器”。

焊接好的传感器接口与ADC模块

05 机械装配与防水细节

  • 侧向安装:使用G1/4英寸90度内螺纹弯头,将压力传感器侧向安装在过滤器housing的背面,减少设备的整体突出体积,更美观且防撞。
  • 可靠密封:在传感器螺纹、弯头螺纹以及与过滤器接口这三处,均沿螺纹旋紧方向缠绕3–4圈特氟龙生料带。对于此类塑料或铜质连接件,不建议使用麻丝,因为麻丝吸水后可能膨胀损坏部件。
  • 布线供电:所有电路在万用板(perfboard)上集中焊接。220V转5V的电源模块单独固定,确保强电部分隔离安全。整个监测器作为独立模块,通过航空插头或防水接头与泵系统连接。

装配完成的内部电路结构

设备内部集成的AC-DC电源模块

独立的AC-DC电源模块特写

安装在白色外壳内的最终设备

06 实测与标定方法

为了获得准确的读数,必须对传感器进行现场标定:

  1. 采集数据点:通过打开或关闭不同的灌溉支路,让系统在多个压力点(如2 bar, 3 bar, 4 bar等)稳定运行。
  2. 记录配对值:在每个稳定压力点,同时记录OLED屏幕(或ESPHome日志)上显示的传感器通道电压值,以及水泵上机械压力表的准确读数。
  3. 计算拟合参数:将多组(压力,电压)数据代入线性公式,计算出斜率和截距,并写入ESPHome配置的 calibrate_linear 中。
  4. 验证:在Home Assistant中观察压力历史曲线,并测试阈值告警是否与实际物理状态一致。

实测表明,所选压力传感器线性度良好,配合ESPHome的中值滤波与Δ阈值上报机制,数据上报非常稳定,有效噪声极少。

压力与电压标定数据表

压力与电压关系的线性拟合散点图

基于拟合公式计算的参考值表格

ESPHome设备管理界面,显示双路压力与差压

Home Assistant中的泵系统监控仪表盘

07 可扩展方向

这个基础框架具有很强的可扩展性:

  • 叠加更多信号:可以增加流量传感器、水温传感器或水箱液位传感器,结合差压数据,构建更全面的故障诊断模型。
  • 远程通信方案:如果花园距离家庭路由器太远,Wi-Fi信号弱,可以考虑改用LoRa或NB-IoT模块进行远距离数据回传。
  • 维护管理友好化:在Home Assistant面板中加入“上次清洗时间”和“累计运行差压”等统计卡片,实现基于条件的智能维护提醒。
  • 增强安全控制:增加干接点或继电器输出,直接联动水泵的电源保护或冲洗电磁阀,实现更高级的自动保护功能。

08 项目总结

这套 “双点测压 + 外置ADC + ESPHome” 的组合方案,成功地将灌溉系统中“看不见的堵塞与泄漏”问题,转化为了 “可视化的差压数据与即时告警” 。其硬件结构简单、成本可控,并且与Home Assistant的集成体验极其顺滑。无论是家庭花园灌溉、小型温室种植还是庭院水景维护,这套方案都值得借鉴和复用。如果你也在为类似的问题寻找解决方案,不妨试试这个思路,也欢迎在云栈社区分享你的DIY经验与改进。




上一篇:jq/htop/tmux等10个提升Linux运维效率的实用命令盘点与场景解析
下一篇:HBM与HBF混合架构H³:如何实现长序列LLM推理的6倍吞吐量提升
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-2-9 21:20 , Processed in 0.417495 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

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