设计一款基于 ESP32 的便携式浇水控制器,具备定时浇水、水泵控制、水箱安全保护、MQTT 状态显示以及基于浏览器的设置功能
扫描二维码
随时随地手机看文章
我想要一款小巧便携的浇水控制器,它要比简单的定时器更灵活。我的目标是设计出一款能够独立运行的设备,同时还能通过 MQTT 报告状态,以便在仪表板、Home Assistant、Node-RED 或手机 MQTT 控制面板上显示。
该控制器基于 ESP32 和小型泵/继电器装置进行设计。它包含两个日常运行计划、手动泵控制、油箱追踪功能以及一个简单的网络界面。
主要特点
•早晚浇水时间表
•手动泵开启/关闭按钮
•“立即运行”按钮用于设定好的浇水周期
•坦克重置
•泵安全超时
•低容量油箱防护措施
•基于网络的设置与控制页面
•MQTT 状态发布
•MQTT 命令主题
•支持网络时间协议的软时钟功能
•首次启动时的 WiFi 配置页面
•基于浏览器的固件安装程序
它是如何运作的
在首次启动时,如果未保存任何WiFi连接信息,ESP32 将启动一个 WiFi 配置页面。一旦连接到网络,就可以通过浏览器访问该网络界面。
控制器会记录当前时间以用于定时操作。当有 WiFi 连接时,它会从 NTP 获取时间更新信息。此外,它还会保存足够的历史时间信息,以便在重启后能够更合理地继续运行。
该泵通过继电器输出进行控制。其固件启动时默认泵处于关闭状态,采用安全超时机制来实现手动操作,并且如果水箱液位过低,该泵将拒绝运行。
网络界面
该本地网页显示:
该固件还提供了 JSON 格式的状态端点,这使得与其他仪表板进行集成变得十分简便。
MQTT(消息队列遥测传输协议)
该控制器会将状态值发布至 MQTT 平台,以便由 Home Assistant、Node-RED 或简单的 MQTT 手机仪表盘进行监控。
示例主题:
•“浇水//状态//在线”
•“浇水//状态//IP”
•“浇水//状态/泵开启”
•“浇水//状态/水箱毫升数”
•“浇水//状态/电压_v”
•“浇水//状态//时间有效”
•“浇水//事件”
示例命令主题:
•“浇水//命令/水泵”
•“浇水//命令/立即执行”
•“浇水//命令/重启”
固件安装
该固件的发布版本是以一个整合的 ESP32 镜像形式提供的,并且可以通过浏览器进行安装。
## 首次启动
在闪烁之后:
1. 重新启动 ESP32。
2. 连接到设置中的无线网络门户。
3. 打开“http://192.168.4.1”。
4. 输入 Wi-Fi 信息。
5. 通过指定的 IP 地址或本地主机名打开控制器用户界面。
机械安装
该项目的实际运作方式会因使用方式的不同而有很大差异。对于一般性的指导而言,原型是基于一个 60 升的滚筒垃圾桶设计的。希望这些图片能作为一般性的指导提供帮助。
安全提示
这是一个业余/个人项目控制器,并非经过认证的灌溉控制器。请使用适当的防水措施、熔接技术、电缆防拉伸装置以及电源保护装置。除非外壳和线路设计有相关防护措施,否则请避免将市电电压直接接入控制器。
本文编译自hackster.io





