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 连接都要重新建立,单次唤醒的工作时间应尽量压缩到数秒内。
三、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 即可,引脚与开发方式基本兼容。
下图把本节的需求分析到选型定型的逻辑关系整理为一张结构图,左侧是监测参数与接口需求,中间是传输与功耗约束,右侧落到具体型号与开发板结论。
四、定型后的开发板资源核对
选定 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)。这一点在选型阶段就应写进需求约束,而不是等调试时才发现读数异常。把监测参数、接口需求、传输方式、功耗预算和引脚分配整理成一份简短的需求清单,后续每一节的功能开发都可以回到这份清单上核对,项目就不会在细节上反复返工。