ESP32 农田监测站:接线、组网到数据上云完整指南
2026/9/12 20:51:17 网站建设 项目流程

ESP32 农田监测站:接线、组网到数据上云完整指南

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

用一块 ESP32-C3 开发板加两枚传感器,总成本不到 40 元、耗时约 2 小时,即可搭出把土壤温湿度实时上云的 ESP32 农业监控系统。基于 arduino-esp32 官方核心 3.3.11,WiFi、OTA、深度睡眠开箱即用,适合想给菜园或试验田装监测节点的新手。

一张表备齐物料与开发环境

项目规格为什么选它
主控板ESP32-C3 Dev Module(RISC-V,160 MHz)板载 WiFi/BLE,十几元买断通信成本
土壤湿度FC-28 模拟输出探头AO 直插 ADC,免驱动芯片
温度DS18B20 数字探头单总线只占 1 个 GPIO,精度 ±0.5℃
开发环境Arduino IDE + arduino-esp32 核心 3.3.x官方维护,板级与工具链一次装全

环境搭建只有一步:按 安装文档 在 IDE「首选项 → 附加开发板管理器网址」中加入 ESP32 地址,打开开发板管理器搜索 esp32 安装 3.3.x 版本,再到「工具」菜单选中 ESP32C3 Dev Module。

安装完成后,开发板菜单里会出现 ESP32C3 Dev Module 等可选型号

从零到上云:最短上手路径

动作 1:装核心,先让板子说话。动作:烧录任意 Blink 示例,串口监视器波特率设为 115200。 预期现象:C3 板载 RGB 灯(GPIO8)开始闪烁。 验证成功:串口稳定输出——核心与工具链没问题,后面所有故障都可以排除环境因素。

动作 2:接传感器,把土壤读数读出来。动作:FC-28 的 AO 接 A5(即 GPIO5)、VCC 接 3V3、GND 接地;DS18B20 的 DATA 接 GPIO4,并在 DATA 与 3V3 之间加一只 4.7kΩ 上拉电阻。

const int SOIL_PIN = 5; // A5 = GPIO5 void setup() { Serial.begin(115200); } void loop() { int raw = analogRead(SOIL_PIN); // 12 位,0~4095 float moisture = map(raw, 0, 4095, 100, 0); Serial.printf("soil %d -> %.1f%%\n", raw, moisture); delay(2000); }

预期现象:串口每 2 秒刷出一行原始值与百分比。 验证成功:探头悬空时读数接近 100%,插入湿土后明显下降——土壤湿度传感器越湿读数越小,这条变化曲线符合预期,说明 ADC 通路完好。

动作 3:连 WiFi,把数据发出去。

#include <WiFi.h> void setup() { Serial.begin(115200); WiFi.begin("你的SSID", "你的密码"); while (WiFi.status() != WL_CONNECTED) delay(500); Serial.println("IP: " + WiFi.localIP().toString()); }

预期现象:串口打印出路由器分配的 IP。 验证成功:把湿度与温度拼成 JSON,用 HTTPClient 库 POST 到云平台免费数据通道,网页端能看到随探头位置波动的实时曲线。ESP32 WiFi 上传数据这一步跑通,系统就算闭环了。

农田现场通常已有路由器,ESP32 作 Station 直接接入,无需额外网关

它是怎么转起来的:输入、处理、输出

整个过程可以拆成三段。输入端,FC-28 输出一个随土壤含水量变化的电压,ESP32 的 ADC 把它量化成 0~4095 的 12 位数字——相当于用一把 4096 格刻度尺给模拟信号拍照;DS18B20 则自己算好温度,只靠一根数据线报数。处理端,程序做两件小事:用 map 把原始值换算成百分比,再用滑动平均滤掉抖动的毛刺。输出端,数据按固定间隔打包成 JSON,经 WiFi 交给云端存储展示;数值越界时,可以在本地点亮指示灯,或为后续控制逻辑留好钩子。

传感器信号先经 IO_MUX/GPIO 矩阵路由,再到达 ADC、UART 等外设

进阶玩法:往三个方向走

🔋 低功耗,让电池版跑几个月。把「常开」改成「定时醒」:参考 深度睡眠 TimerWakeUp 示例,设 5 分钟定时器唤醒,醒后采一次数、发一次包、立刻睡回去,整机功耗从常开的几十毫安降到深睡微安级,适合无电源的田头。

多节点,一片田一个网。装上 ESP-NOW 库 后,节点之间免路由器直连:田间多个从节点把数据发给一个主节点,主节点统一上云,省流量也省布线;距离再远,可换 LoRa 模块走 UART。

从监测到控制,闭环自动灌溉。GPIO 上挂继电器驱动电磁阀:湿度低于阈值开阀、高于阈值关阀;固件迭代不用拔线,用 Update(OTA)库 远程刷包即可。

踩坑速查

现象原因处理
⚠️ 串口全乱码或无输出监视器波特率与程序不匹配两边都设 115200,上传前先关掉监视器
湿度读数恒为 0 或 4095探头没入土,或接了悬空引脚确认 AO 接在 A0~A5(C3 为 GPIO0~5),探头插进湿土
一上电就进下载模式、无法启动GPIO0 上电瞬间被拉低,命中启动引脚传感器信号改接 GPIO5,给 GPIO0 加 10kΩ 上拉
WiFi 永远连不上密码大小写输错,或现场信号太弱串口打印 WiFi.status() 定位,必要时把节点挪近路由器
云平台返回 401/403API Key 失效或通道号写错重新生成 Key,确认 channel 与代码一致
上传提示找不到设备未进下载模式或选错串口按住 BOOT 键再上电,重新选择 COM 口

到这里,一套能自主采数、自主上云的 ESP32 农业监控节点就搭完了。下一步建议:先把 5 分钟定时采集和深度睡眠接上,让设备脱离 USB、靠电池在田里跑满一周,再考虑多节点扩展。

【免费下载链接】arduino-esp32Arduino core for the ESP32 family of SoCs项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询