1. 农业远程监控系统需求分析与ESP32选型

在动手写第一行代码之前,农业远程监控项目最容易被忽视、却最影响后续成败的环节,是把"要监控什么、数据怎么传、电从哪来"这三件事想清楚。很多初学者拿到一块开发板就开始接传感器,结果做到一半发现所选型号没有足够的 ADC 通道,或者电池撑不过一个灌溉周期,只能推倒重来。本节围绕监测参数、远程传输、低功耗三条主线梳理需求,并在此基础上完成 ESP32 系列型号的对比与开发板定型。

一、先明确监测对象与量程

农业环境监控的核心参数通常包括土壤温湿度、空气温湿度与光照强度。它们各自对应不同的传感器类型和接口形式,直接决定了主控需要具备哪些外设资源。

土壤温湿度常用电容式土壤传感器,输出模拟电压或 RS485 数字信号。以常见的电容式土壤湿度探头为例,其模拟输出在干燥空气中约为 2.8~3.0 V,完全浸水时约为 1.1~1.3 V,湿度越高输出电压越低,因此需要主控具备稳定的 ADC 参考电压和足够的采样精度。土壤温度则常由 DS18B20 一类单总线数字传感器提供,精度 ±0.5 ℃,量程覆盖 -10~85 ℃,足以应对大多数农田场景。

空气温湿度多采用 DHT22 或 SHT30。DHT22 成本低但采样间隔不宜小于 2 s,SHT30 走 I²C 接口,精度更高(湿度 ±2 %RH、温度 ±0.3 ℃),适合对数据质量要求较高的场景。光照强度可用 BH1750 数字光照传感器,I²C 接口,量程 1~65535 lx,直接输出勒克斯值,省去光敏电阻的非线性标定麻烦。

把这些参数汇总,可以得到一张需求对照表,它同时也是选型的输入条件:

监测参数 典型传感器 接口类型 对主控的要求
土壤湿度 电容式土壤探头 模拟电压 ≥1 路 ADC,参考电压稳定
土壤温度 DS18B20 单总线 1 个 GPIO,支持 1-Wire 时序
空气温湿度 SHT30 / DHT22 I²C / 单总线 I²C 控制器或 1 个 GPIO
光照强度 BH1750 I²C 与温湿度共用 I²C 总线

可以看到,四类参数合计需要 1 路 ADC、1 个单总线 GPIO 和 1 条 I²C 总线。这个资源需求并不高,但它提示我们:ADC 的可用性与精度、GPIO 的复用灵活性,是选型时必须核对的硬指标。

二、远程传输与低功耗需求

农业现场往往远离路由器,Wi-Fi 覆盖不稳定,因此远程传输方案要在 Wi-Fi、LoRa、4G 之间做取舍。若大棚内有可用 Wi-Fi,ESP32 内置的 2.4 GHz Wi-Fi 可直接把数据推送到云平台或本地服务器,成本最低;若田块分散、距离超过几百米,则需外接 LoRa 模块或选用带 4G 模组的方案。对大多数教学与中小规模应用,Wi-Fi + MQTT 是性价比最高的组合:ESP32 通过 MQTT 协议把 JSON 格式的传感器数据发布到 Broker,服务端订阅后入库展示。

低功耗方面,农业监控通常不需要秒级刷新。土壤湿度和空气温湿度在十几分钟内变化有限,把采样周期设为 5~10 分钟完全够用。这意味着主控大部分时间可以处于深度睡眠(Deep Sleep),只在采样和上报时短暂唤醒。ESP32 深度睡眠电流约 10 μA 量级,若配合 18650 锂电池(约 2500 mAh)与太阳能小板补电,可实现长期免维护运行。需要注意的是,深度睡眠唤醒后程序从头执行,因此传感器状态、Wi-Fi 连接都要重新建立,单次唤醒的工作时间应尽量压缩到数秒内。

估算示例:假设每次唤醒工作 8 s、平均电流 80 mA,其余时间深度睡眠电流 10 μA,采样周期 10 分钟。则单周期平均电流约为 (80 mA × 8 s + 0.01 mA × 592 s) / 600 s ≈ 1.08 mA,2500 mAh 电池理论可支撑约 2300 小时,即约 96 天。此为合理假设下的估算,实际受 Wi-Fi 重连耗时与传感器预热影响。

三、ESP32 系列型号对比与定型

ESP32 家族型号较多,教学与农业项目常见的有 ESP32-WROOM-32、ESP32-S3、ESP32-C3 和 ESP32-S2。它们的差异集中在内核、无线能力、ADC 与 GPIO 资源上。

型号 内核 无线 ADC 适用判断
ESP32-WROOM-32 双核 Xtensa LX6 Wi-Fi + 蓝牙经典/BLE 2 组 12 位 SAR ADC 资源充足,资料最全,适合入门与多传感器
ESP32-S3 双核 LX7,带向量指令 Wi-Fi + BLE 5 2 组 12 位 ADC 算力强,适合后续加摄像头或边缘推理
ESP32-C3 单核 RISC-V Wi-Fi + BLE 5 2 组 12 位 ADC 成本低、功耗友好,GPIO 较少
ESP32-S2 单核 LX7 仅 Wi-Fi 2 组 12 位 ADC 无蓝牙,适合纯 Wi-Fi 上报场景

对本课程而言,ESP32-WROOM-32 开发板是更稳妥的选择:双核可以一个核跑传感器采集、另一个核处理 Wi-Fi 与 MQTT,互不阻塞;GPIO 数量充裕,方便同时接 I²C、单总线和模拟探头;社区资料与库支持最成熟,遇到问题容易排查。若后续课程需要扩展摄像头识别病虫害,再升级到 ESP32-S3 即可,引脚与开发方式基本兼容。

下图把本节的需求分析到选型定型的逻辑关系整理为一张结构图,左侧是监测参数与接口需求,中间是传输与功耗约束,右侧落到具体型号与开发板结论。

监测参数与接口 土壤湿度 模拟电压 → ADC 土壤温度 DS18B20 → 单总线 空气温湿度 SHT30 → I²C 光照强度 BH1750 → I²C 资源合计:1 路 ADC 1 个 GPIO + 1 条 I²C 传输与功耗约束 远程传输 Wi-Fi + MQTT 优先 远距离可外接 LoRa/4G 采样周期 5~10 分钟一次 数据变化缓慢,无需高频 低功耗策略 Deep Sleep 深度睡眠 唤醒后采样并上报 估算:约 1.08 mA 平均电流 2500 mAh 电池约 96 天 型号对比与定型 ESP32-WROOM-32 双核 · 资源足 · 资料全 ESP32-S3 算力强 · 可扩展摄像头 ESP32-C3 低成本 · GPIO 较少 ESP32-S2 仅 Wi-Fi · 无蓝牙 定型结论 ESP32-WROOM-32 开发板 双核分工 · 接口匹配 后续可平滑升级 S3

四、定型后的开发板资源核对

选定 ESP32-WROOM-32 开发板后,还要做一次引脚与资源的落地核对,避免"选型正确、接线冲突"。建议在需求阶段就确定一组默认引脚分配,例如:土壤湿度模拟量接 GPIO34(仅输入、无内部上拉,适合 ADC1 通道),DS18B20 接 GPIO4 并外接 4.7 kΩ 上拉电阻,SHT30 与 BH1750 共用 I²C,SDA 接 GPIO21、SCL 接 GPIO22。这样一组分配既避开了启动时被拉高的 strapping 引脚,也把模拟采集与数字总线分开,减少干扰。

此外要留意 ESP32 的 ADC2 在 Wi-Fi 工作时不可用,因此模拟传感器务必接到 ADC1 通道(GPIO32~39)。这一点在选型阶段就应写进需求约束,而不是等调试时才发现读数异常。把监测参数、接口需求、传输方式、功耗预算和引脚分配整理成一份简短的需求清单,后续每一节的功能开发都可以回到这份清单上核对,项目就不会在细节上反复返工。

本节的可交付成果是一份"需求与选型确认单":监测参数四项、接口资源三项、传输方式(Wi-Fi + MQTT)、采样周期(10 分钟)、供电方案(18650 + 太阳能)、主控型号(ESP32-WROOM-32)与默认引脚分配。它既是选型依据,也是后续硬件接线与程序结构的起点。