尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

用Arduino-ESP32搭建土壤湿度自动灌溉系统:3步接线完成自动浇水

用Arduino-ESP32搭建土壤湿度自动灌溉系统:3步接线完成自动浇水 用Arduino-ESP32搭建土壤湿度自动灌溉系统3步接线完成自动浇水【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32结果先行ESP32智能灌溉系统跑起来之后浇水全自动每5分钟读一次土壤湿度低于30%就自动打开电磁阀放水30秒你用手机网页随时查看数据、远程手动启泵。整套系统基于开源 arduino-esp32 板支持包开发硬件成本百元内一个周末就能接完线。方案选型主控选ESP32自带2.4G Wi-Fi数据直接上云不用加模块双核240MHz跑多路传感器控制绰绰有余DevKitC板子三十元以内。开发选arduino-esp32开源核心IDE里装板支持包就能用熟悉的Arduino C写固件不用学Espressif IDF那套构建体系。支持的芯片清单见快速上手文档官方介绍了ESP32功能与适配型号选板子前点开核对一下。传感器选电容式土壤湿度不像电阻式会电解腐蚀能长期埋土里读数更稳。执行器用5V继电器驱动12V电磁阀继电器只传控制信号负载用电独立供电大电流不会回流烧ESP32。物料清单类别型号/规格用途数量主控板ESP32-WROOM-32D DevKitC主控跑灌溉程序1传感器电容式土壤湿度传感器v1.2读土壤湿度1传感器可选DHT11气温湿度修正灌溉时长1执行器5V继电器模块 12V电磁阀通断水路1套电源5V/2A USB电源适配器给继电器和ESP32供电1辅材杜邦线、12V潜水泵或用现成水路、防水盒连接与防护按需软件Arduino IDE 2.x arduino-esp32支持包编写与烧录固件-搭建步骤第一步3步装好Arduino-ESP32开发环境打开Arduino IDE进入文件→首选项在底部附加开发板管理器网址里填入ESP32板支持地址点击输入框右侧按钮把网址换行填入后确认接着打开工具→开发板→开发板管理器搜索esp32点Install等下载完成⚠️ 搜不到esp32通常是网络下载问题看安装ESP32支持文档。它写了官方IDE安装步骤和备选下载方式下载卡住时照着排查。第二步土壤湿度传感器接ESP32的接线方式对照下面的引脚图选引脚图上ADC1标注表示该引脚可做模拟输入接线分三处传感器VCC接3.3VGND接GND信号脚接GPIO34ADC1通道Wi-Fi开启时也能正常读数。继电器IN接GPIO13VCC接5VGND接GND。电磁阀接继电器COM与NO之间由独立12V电源供电。 传感器线别超过1米线太长读数会飘还容易受电磁干扰。第三步编写自动灌溉控制逻辑固件核心就三段代码湿度读数、继电器控制、深睡节电写法见下文关键实现。写完在工具栏选板型号和串口点上传按钮烧录。想按气温修正灌溉时长就把DHT11数据脚接GPIO4加DHT库在循环里读温度即可。第四步联调ESP32的Wi-Fi上传流程ESP32作为Wi-Fi Station接入家里的路由器再把传感器数据POST到自建服务器联调按三步查串口监视器设115200波特率确认输出WiFi连接成功。把传感器拿在手里再浸入水杯看百分比是否随之变化。暂时短接COM-NO不接真实阀门看继电器是否吸合、水泵定时启停。关键实现第一段完成传感器校准与读数DRY和WET是你自己在空气中和浸水时实测的两个原始值const int SOIL_PIN 34; // 信号脚在GPIO34ADC1_CH6 const int DRY 4095; // 空气中实测原始值 const int WET 1500; // 完全浸水实测原始值 float readMoisture() { int raw analogRead(SOIL_PIN); float pct 100.0 * (DRY - raw) / (DRY - WET); return constrain(pct, 0.0, 100.0); }第二段带安全限幅地控制继电器防止程序出bug时水泵彻夜常开void waterFor(int seconds) { if (seconds 0 || seconds 300) return; // 超5分钟视为参数错误 digitalWrite(RELAY_PIN, HIGH); // 启动水泵 delay(seconds * 1000); digitalWrite(RELAY_PIN, LOW); // 停泵 lastWaterTime millis() / 1000; }第三段用于太阳能供电场景两次测量之间让ESP32进深睡平均功耗降到微安级void sleepCycle() { esp_sleep_enable_timer_wakeup(300 * 1000000); // 每5分钟唤醒 esp_deep_sleep_start(); }实测与排错现象可能原因解决方法IDE找不到串口USB转串口驱动缺失或端口选错重插USB在工具菜单选对COMx必要时装CP2102/CH340驱动analogRead恒为0引脚在ADC2上Wi-Fi开启时被占用换GPIO32/33/34/35全在ADC1Wi-Fi连不上连了5GHz频段ESP32只支持2.4G Wi-Fi换2.4G或开热点继电器吸合不动作继电器没供电或负载接错继电器用独立5V供电阀门接COM-NO之间湿度读数乱跳未校准或走线过长重新标定干湿两点信号脚并10nF电容滤波烧录反复失败时先看官方故障排查文档。它整理了社区最常见的报错原因对照你的错误信息逐条比对最省时间。进阶玩法分田分区多加一组继电器和电磁阀按各区域湿度独立灌溉。接天气预报调用天气API预报有雨就跳过当天灌溉省水更省电费。本地报警加蜂鸣器和红色LED湿度异常或水泵故障时现场声光提示。深度参与自己克隆核心仓库编译固件git clone https://gitcode.com/GitHub_Trending/ar/arduino-esp32按仓库内贡献指南参与开发。第一桶省下的水从今晚接上那根传感器线开始。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表