如何使用ESP8266构建一个简单的自动灌溉系统
手动浇水容易导致浇水过多或过少,尤其是在一天中土壤条件不断变化的情况下。本项目展示了利用ESP8266、土壤湿度传感器、继电器控制水泵以及DHT11传感器构建的简单自动化灌溉系统。
ESP8266持续监测土壤湿度,并根据预设的湿度阈值自动控制水泵运行。同时,系统通过DHT11传感器测量温度和湿度,并将数据发送至KiwisIoT平台,用户可通过实时仪表盘查看相关数据。
该系统在KiwisIoT仪表盘上提供以下四个参数:
•土壤状态
•水泵状态
•温度
•湿度
功能
•基于土壤湿度的自动水泵控制
•实时土壤状态监测
•温度监测
•湿度监测
•ESP8266 Wi-Fi 连接
•KiwisIoT 云控制面板
•基于滞后控制的水泵调节,避免频繁开关
•简单易懂、适合初学者的物联网实现
电路连接
土壤湿度传感器
继电器模块
继电器控制外部水泵。
请使用合适的外部电源为水泵供电。不要直接将较大的水泵从ESP8266的GPIO引脚上供电。
DHT11
引脚配置
系统工作原理
土壤湿度传感器通过ESP8266的A0引脚提供模拟值。
本项目使用两个阈值:
•干土阈值:850
•湿土阈值:800
当土壤湿度值超过850时,系统认为土壤干燥并启动水泵。
在800至850之间的数值范围被特意保留不变,水泵保持其先前状态,而非反复切换,从而形成简单的滞后控制,有助于防止土壤湿度值在单个阈值附近波动时出现频繁的继电器切换。
DHT11监测
DHT11传感器提供以下信息:
•温度(°C)
•湿度(%)
ESP8266读取这些数据,并将它们连同灌溉状态一起发送给KiwisIoT。
KiwisIoT配置
本项目使用四个KiwisIoT通道:
仪表盘可实时显示当前灌溉状态。
KiwisIoT仪表盘
仪表盘包含四个监控小部件:
•土壤状态 – 显示“干燥”或“湿润”
•水泵状态 – 显示“开启”或“关闭”
•温度 – 显示当前温度
•湿度 – 显示当前湿度
这使得无需直接检查硬件即可监控灌溉系统。
设置 KiwisIoT
•创建一个 KiwisIoT 账户。
•创建一个新的仪表板/面板。
•创建所需的通道。
•从面板中复制主题 ID。
•将主题 ID 添加到 Arduino 代码中。
•为四个通道配置仪表板小部件。
•将程序上传至 ESP8266。
一旦 ESP8266 连接到 Wi-Fi,传感器数据就会开始显示在仪表板上。
Arduino 代码
在上传代码前,请替换 Wi-Fi 密码和 KiwisIoT 主题 ID。
测试项目
上传代码后,在 115200 波特率下打开串口监视器。
你应该看到类似以下信息:
当土壤足够湿润时,水泵自动关闭。
相同的信息也会发送到 KiwisIoT 仪表板,从而实现对灌溉系统的远程监控。
运行结果
在演示的设置中,KiwisIoT 仪表板显示:
土壤状态:DRYPump 状态:ON 温度:33.8 °C 湿度:66.0 %
该仪表板提供了一种简单的方式,用于观察当前的灌溉状况和环境参数。
应用程序
该项目可扩展用于:
•家庭园艺
•小型农场
•温室
•露台花园
•苗圃
•智能农业原型
•学生物联网项目
还可添加水位传感器、雨量传感器、光照传感器或多个土壤湿度传感器等附加传感器。
结论
本项目展示了如何使用ESP8266构建一个简单的自动灌溉系统,并实现实时物联网监控。
土壤湿度传感器可自动控制水泵,而DHT11则提供环境数据。通过KiwisIoT,这些参数可通过仪表盘进行可视化,使系统更易于监控和扩展。
将ESP8266、土壤湿度传感、自动泵控制与KiwisIoT相结合,为开发连接型智能农业应用提供了实用的起点。
本文编译自hackster.io





