ESP32 智能灌溉实战:4 步搭出 Arduino 物联网节水系统
ESP32 智能灌溉实战4 步搭出 Arduino 物联网节水系统【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32做完之后你能做到手机上随时看菜地墒情土壤低于 30% 时 ESP32 自动开水泵 30 秒每半小时把数据传一次云端。这是一套 Arduino 物联网节水的组合全部配件加起来不到 100 元。读完本文你能学会把电容式土壤湿度探头、继电器接到 ESP32 上并验证读数写一个干了才浇、热了多浇的多参数决策算法用深度休眠把整机待机做到微安级定时醒来读数通过 Wi-Fi 把墒情 JSON 上传到云端手机可见方案速览硬件清单和闭环原理先看硬件清单全部是市面上现成的模块模块型号 / 规格作用预算参考主控ESP32-WROOM-32DevKitC采集数据、做决策、Wi-Fi 上传约 25 元土壤湿度电容式模拟输出读土壤干湿度灌溉依据约 8 元温湿度DHT11温度、相对湿度约 6 元光照BH1750I2C 接口光照强度晴天修正约 10 元继电器单路 5V开关水泵隔离强电约 5 元电源5V 适配器 太阳能板/锂电池可选供电约 30 元原理一句话感知 → 决策 → 执行 → 回传的闭环。三个传感器先给 ESP32 一组读数程序判断要不要浇、浇多久继电器接通水泵最后 Wi-Fi 把结果送回云端你在手机上看。四步实战第 1 步Arduino IDE 装好 ESP32 支持包先装 Arduino IDE官方 2.x 版即可然后做三件事文件 → 首选项在附加开发板管理器网址里填入乐鑫提供的板包索引直接粘贴纯文本即可https://espressif.github.io/arduino-esp32/package_esp32_index.json工具 → 开发板 → 开发板管理器搜 esp32安装最新稳定版约 200MB耐心等待。重启 IDE工具 → 开发板里能看到 ESP32 Dev Module 就算成功。判断依据开发板列表出现 esp32 条目版本号显示 3.x当前稳定版是 3.3。第 2 步3 步接线——探头、继电器、电源以 DevKitC 为例关键引脚如下。ESP32 的引脚编号由芯片决定换开发板只是丝印名不同。土壤探头VCC 接 3.3VGND 接 GNDOUT 接 GPIO34该脚只能输入正好用来读传感器。DHT11VCC 接 3.3V 或 5V数据脚接 GPIO4。BH1750SDA 接 GPIO21SCL 接 GPIO22这是 I2C 默认引脚程序不用改地址就能找到它。继电器 IN 接 GPIO13继电器的 VCC 和 GND 接外部 5V 适配器GND 必须和 ESP32 共地。⚠️ 水泵的供电不要从 ESP32 的 5V 脚取。判断依据上电后打开串口监视器115200 波特率读探头空气里应接近 4095浸入水中应降到 2000 以下。若读数卡死不动或恒为 0先查线。第 3 步烧录并串口验证打开仓库里的官方示例直接烧录比如 DeepSleep 示例目录 下的 GPIO 相关 demo编译、上传屏幕出现 Done uploading 即成功。然后自己敲两行代码验证硬件串口打印readSoilMoisture()的返回值往探头上滴水百分比应该上升。digitalWrite(13, HIGH)再LOW继电器应咔哒一声吸合释放。判断依据读数随环境变化、继电器有响应说明接线和烧录通道都没问题可以写正式逻辑了。第 4 步连云上报墒情数据联网部分用核心自带的 WiFi 库就够了。setup()里WiFi.begin(ssid, password)循环等待直到WiFi.status() WL_CONNECTED超时 10 秒重试。连上后打印 IP方便确认本机已进路由器网络。每 30 分钟用 HTTPClient 发一次 POST JSON土壤湿度、温度、湿度、光照、本轮灌溉时长。云端先用任意接收 POST 的接口就行本地没有服务器就先打印到串口。判断依据云端收到一条记录且状态码 200 系列字段和你串口里看到的一致系统就闭环了。关键代码解读校准把原始读数变成百分比const int SOIL_PIN 34; const int DRY_RAW 4095; // 探头在空气中的读数 const int WET_RAW 1500; // 探头完全浸入水的读数 float readSoilMoisture() { int raw analogRead(SOIL_PIN); float pct 100.0 * (DRY_RAW - raw) / (DRY_RAW - WET_RAW); return constrain(pct, 0.0, 100.0); // 钳制在 0-100% }这段在做什么把 12 位原始读数0–4095线性映射成 0–100%。为什么这么写每个探头的干、湿值都不一样别照抄别人的数字——先把你自己的探头放在空气里、再浸入水中各记一个数替换 DRY_RAW 和 WET_RAW这就是校准。ESP32 的 ADC 是 12 位底层实现在 esp32-hal-adc.h。多参数决策干了才浇热了加时bool needWatering false; int duration 0; if (soil 30.0) { // 30% 为干旱阈值 needWatering true; duration 30; // 基础 30 秒 if (temp 30.0 hum 50.0) duration 15; // 高温低湿加 15 秒 if (lux 50000) duration 10; // 强光加 10 秒 if (duration 300) duration 300; // 上限 5 分钟 }这段在做什么土壤湿度低于 30% 才启动然后在基础 30 秒上按环境加时。为什么这么写阈值全是可调常量下地跑一周后看数据再微调最后那行封顶是防止传感器误读让水泵连开半小时把地浇成河。深度休眠睡 30 分钟醒来干一轮void setup() { Serial.begin(115200); initWiFi(); // 深度休眠会清空寄存器 initSD(); // WiFi、SD、SPI 必须重新初始化 } void doOneRound() { float soil readSoilMoisture(); // ...决策、上传... esp_sleep_enable_timer_wakeup(1800ULL * 1000000); // 睡 1800 秒 esp_deep_sleep_start(); }这段在做什么跑完一轮测 → 判 → 传就睡定时器 30 分钟后叫醒它。为什么这么写ESP32 开 Wi-Fi 活跃时电流约 80mA深度休眠降到微安级半小时一轮电池用一周不成问题。注意setup()里的initWiFi()不能省——每次从深度休眠醒来等同冷启动。ESP32 灌溉避坑清单5 个高频问题水泵一开整机突然重启现象继电器咔哒一声串口立刻断流程序从头跑。原因水泵供电接在 ESP32 的 5V 脚上电机启动瞬间拉低全板电压触发欠压复位。解法水泵用独立 5V 适配器供电只和 ESP32 共 GND。土壤探头读数越来越飘探片上有白霜现象同一块土上个月读 45%现在只读 20%。原因电阻式探头在湿土里有直流电流流过水被电解腐蚀白霜就是腐蚀产物。解法换电容式探头靠介电常数变化工作无直流电流、不腐蚀。Wi-Fi 偶发断网云端断数据现象跑几天突然云端没有新记录重启设备又恢复。原因WiFi.begin只在 setup 里执行一次断线后没人重连。解法每次上传前检查连接状态断线执行WiFi.reconnect()重连失败就把这轮数据写进本地缓冲下次补传。深度休眠唤醒后 SD 卡、Wi-Fi 报错现象唤醒后第一轮SD.begin失败或 Wi-Fi 卡死。原因深度休眠清空所有寄存器外设回到出厂状态代码却以为它们还开着。解法把每次唤醒都当全新开机setup()里先读唤醒原因再完整初始化所有外设。湿度值抖动水泵乱启停现象水泵偶尔自己咔哒一下又停日志里时长只有 1 秒。原因单次模拟读数噪声大偶发跌破阈值。解法取 10 次读数的中位数并且连续 2 轮都低于阈值才真正启动灌溉。下一步与延伸阅读多区域灌溉加继电器和探头每个区域独立阈值与时间表。天气预报集成浇水前先查当天降水雨天跳过。远距离场景Wi-Fi 覆盖不到的田块改 LoRa 回传。供电优化太阳能板 锂电池把深度休眠当常驻状态。想深入实现细节仓库里可以看联网部分看 WiFi 库本地缓冲看 SD 库官方示例集中在 examples 目录串口、休眠、GPIO 都有现成 demo 可以直接改。今天就能做的第一件事花 8 元买一个电容式土壤探头接上你的 ESP32把上面那段 8 行的校准代码扔进串口监视器——把手伸进土里看到数字跟着变这个项目就算真正开始了。【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

一篇搞定:零基础 ESP32 智能灌溉系统,手机可查、自动浇水

一篇搞定:零基础 ESP32 智能灌溉系统,手机可查、自动浇水

一篇搞定:零基础 ESP32 智能灌溉系统,手机可查、自动浇水 【免费下载链接】arduino-esp32 Arduino core for the ESP32 family of SoCs 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 清晨六点半,手机在枕边震了一…

2026/10/25 11:02:57 阅读更多 →
基于springboot的甜品烘焙教程微信小程序设计与实现(源码+lw+部署文档+讲解等)

基于springboot的甜品烘焙教程微信小程序设计与实现(源码+lw+部署文档+讲解等)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/11/4 1:14:29 阅读更多 →
如何把微信聊天记录归档成本地资料库:WeChatMsg使用指南

如何把微信聊天记录归档成本地资料库:WeChatMsg使用指南

如何把微信聊天记录归档成本地资料库:WeChatMsg使用指南 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeC…

2026/10/23 10:47:14 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻