第二章:系统架构概览——农业气象站的典型硬件组成

做农业气象站,说白了就是跟四个东西打交道:传感器、MCU、无线模块、电源。这四样东西怎么搭在一起,决定了你的产品能活多久、测得准不准、成本高不高。

我刚开始做这个方向的时候,犯过一个挺傻的错误——把传感器和无线模块的电源直接连在一起,结果无线发射的时候,传感器电压被拉低,数据全飘了。嗯,这种坑踩过一次就记住了。

2.1 传感器:采集数据的“眼睛”

农业气象站要测什么?温度、湿度、气压、风速、风向、降雨量、光照强度、土壤湿度……每样传感器都有自己的脾气。

典型传感器清单:

传感器类型 常用型号 接口 典型功耗
温湿度 SHT30 / BME280 I2C 2-5 µA(休眠)
气压 BMP280 / MS5611 I2C / SPI 1 µA(休眠)
光照 BH1750 / OPT3001 I2C 0.5 µA(休眠)
风速风向 脉冲式风速仪 GPIO 中断 0 mA(无源)
雨量 翻斗式雨量计 GPIO 中断 0 mA(无源)
土壤湿度 电容式探头 模拟量 / I2C 5-10 mA(测量时)

我个人习惯,温湿度传感器首选 I2C 接口的。为什么?因为 I2C 只需要两根线,而且大部分 MCU 都自带硬件 I2C,省引脚、省代码。我在项目中遇到过用模拟 I2C 的,结果时序被中断打乱,数据偶尔出错,排查了两天才发现是软件模拟的问题。

小技巧: 传感器选型时,一定要看“休眠电流”而不是“工作电流”。因为气象站大部分时间在睡觉,休眠电流才是决定电池寿命的关键。

2.2 MCU:系统的“大脑”

MCU 选什么?低功耗是第一位。我个人推荐 STM32L 系列或者 Nordic nRF52 系列。前者是通用低功耗王者,后者自带蓝牙,适合无线场景。

MCU 选型要点:

  • 休眠功耗: 必须低于 1 µA。我见过标称 2 µA 的芯片,实际跑起来因为外设漏电,直接飙到 10 µA。
  • 唤醒时间: 从休眠到开始采集,最好在 1 ms 以内。有些老芯片要几十毫秒,白白浪费电量。
  • 外设集成度: 尽量选自带 RTC、ADC、DMA 的。外挂芯片越多,功耗越难控制。

举个例子,我用 STM32L051 做过一个项目,休眠电流 0.8 µA,唤醒后采集一次数据加无线发送,总共耗时 50 ms,平均电流 15 mA。算下来,一节 CR2032 电池能用两年多。

核心原则: MCU 的“工作电流”不重要,“休眠电流 × 休眠时间 + 工作电流 × 工作时间”才是真正的平均功耗。

2.3 无线模块:数据的“快递员”

无线模块的选择,取决于你的传输距离和数据量。

常见方案对比:

无线技术 典型距离 峰值电流 休眠电流 适用场景
LoRa 1-5 km 120 mA 1 µA 远距离、低速率
NB-IoT 基站覆盖 200 mA 3 µA 有蜂窝信号的地方
BLE 10-100 m 15 mA 0.5 µA 近距离、手机直连
Zigbee 100-300 m 30 mA 1 µA 组网场景

我个人最常用 LoRa。为什么?因为农业气象站往往分布在田里、山上,离基站远,LoRa 的穿透力和距离是硬道理。我曾经在山区部署过一个站点,LoRa 信号穿过了两座小山包,直线距离 3.2 公里,数据包成功率 98% 以上。

注意: 无线模块的“峰值电流”是瞬间的,但电源设计必须能扛住这个瞬间。我曾经用了一个小容量电容,结果 LoRa 发射时电压跌到 2.5V,模块直接复位。后来换成了 100 µF 钽电容,问题解决。

2.4 电源:系统的“心脏”

电源方案决定了你的气象站能活多久。常见的方案有几种:

  • 电池 + 太阳能: 最推荐。白天充电,晚上用电池。锂电池选 18650,容量大、便宜、好买。
  • 一次性电池: 适合短期部署。用 ER14505 这种锂亚电池,自放电率极低,但大电流放电能力差。
  • 超级电容: 适合超低功耗、短寿命场景。但容量有限,撑不过阴天。

电源管理芯片推荐:

芯片型号 输入电压 静态电流 特点
TPS63020 1.8-5.5V 30 µA 升降压一体,效率高
MCP1640 0.8-5.5V 19 µA 升压型,适合单节电池
RT9013 2.5-5.5V 1 µA 低压差 LDO,超低静态

我个人的习惯是:MCU 和传感器用 LDO 供电,无线模块用 DC-DC 供电。因为无线模块瞬间电流大,DC-DC 效率高,而传感器对纹波敏感,LDO 更干净。

避坑指南: 我曾经把太阳能板直接接到锂电池上,没有加充电管理芯片。结果一个阴天后的晴天,电池过充鼓包了。后来老老实实加了 TP4056 充电芯片,虽然多花 5 毛钱,但安全多了。

2.5 系统架构图(文字描述)

一个典型的农业气象站硬件连接是这样的:

太阳能板 → 充电管理 → 锂电池 → 电源管理芯片 → 3.3V 总线
                                                      │
                                                      ├── MCU (STM32L0)
                                                      ├── 传感器 (I2C 总线)
                                                      ├── LoRa 模块 (SPI)
                                                      └── RTC (独立供电)

注意看,RTC 是独立供电的。为什么?因为 MCU 休眠时,RTC 还要继续跑,如果共用电源,MCU 的漏电会影响 RTC 的稳定性。我见过一个设计,RTC 和 MCU 共用 LDO,结果 MCU 休眠时 LDO 输出飘了,RTC 时间一天慢 5 分钟。

好了,系统架构大概就是这样。下一章我会详细讲每个模块的低功耗设计细节,包括怎么选型、怎么布线、怎么调试。你想想看,如果每个环节都省下 1 µA,整个系统就能多活好几个月。