农业物联网基础:传感器类型、数据采集原理与通信协议
各位同学,欢迎来到第二章。这一章咱们要聊的是农业物联网的“五官”和“神经”——传感器和通信协议。说白了,就是搞清楚数据从哪来、怎么来、怎么传出去。
我刚开始做农业项目时,觉得传感器嘛,插上电就能用。结果第一次去大棚部署,就被现实狠狠教育了一顿。嗯,这里面的坑不少,咱们一个一个说。
传感器类型:你得知道田里在发生什么
农业环境里,我们最关心的几个参数其实很固定。我把它分成三类:环境、土壤和气象。今天先讲最核心的三种。
温湿度传感器
这个最常见。大棚里温度高了要通风,低了要加温;湿度大了容易得病,小了作物萎蔫。常用的有DHT22、SHT30这类数字传感器,也有PT100这种工业级的。
我个人习惯,大棚里用SHT30就够了,精度±0.3°C,价格也合适。但要注意——千万别把传感器直接暴露在阳光下。我曾经有个项目,传感器装在铁皮箱里,夏天中午测出来65°C,作物早热死了。后来加了百叶箱式的防护罩,数据才正常。
光照传感器
光照强度直接影响光合作用效率。单位是lux或μmol/m²/s(光合有效辐射PAR)。
常用的有BH1750(数字输出,I²C接口)和TSL2591(高动态范围)。如果你只是补光控制,BH1750够用;但要做科研级别的光合效率分析,建议上PAR传感器。
这里有个细节:光照传感器必须水平安装。我见过有人随便挂在棚架上,角度歪了30度,读数直接差了一半。你想想看,补光策略全错了,作物能长好吗?
土壤pH传感器
土壤酸碱度影响养分有效性。比如pH低于5.5时,磷元素会被固定,作物吸收不了。
市面上的pH传感器分两种:玻璃电极和ISFET(离子敏感场效应管)。玻璃电极精度高(±0.1pH),但需要定期校准和补充电解液;ISFET免维护,但寿命短一些。
我建议:如果项目周期超过一年,老老实实用玻璃电极。ISFET用半年后漂移严重,我吃过这个亏。
| 传感器类型 | 常用型号 | 接口 | 精度 | 典型应用 |
|---|---|---|---|---|
| 温湿度 | SHT30, DHT22 | I²C, 单总线 | ±0.3°C, ±2%RH | 大棚环境监测 |
| 光照 | BH1750, TSL2591 | I²C | ±1lux | 补光控制 |
| 土壤pH | E-201-C, SEN0161 | 模拟量 | ±0.1pH | 土壤改良决策 |
数据采集原理:传感器是怎么“说话”的
传感器采集数据,本质上是一个物理量→电信号→数字值的转换过程。我尽量说得简单点。
模拟量采集
像土壤pH传感器,输出的是0~5V的模拟电压。边缘网关通过ADC(模数转换器)读取这个电压,再根据标定曲线换算成pH值。
举个例子:某pH传感器在pH7.0时输出2.5V,pH4.0时输出4.0V。那么ADC读到3.0V时,对应的pH值就是:
pH = 7.0 - (3.0 - 2.5) * (7.0 - 4.0) / (4.0 - 2.5)
= 7.0 - 0.5 * 3.0 / 1.5
= 7.0 - 1.0
= 6.0
注意:模拟量采集最怕噪声。大棚里的电机、变频器都会引入干扰。我习惯在ADC输入端加一个RC低通滤波器,或者软件上做多次采样取平均。
数字量采集
像SHT30、BH1750这类数字传感器,内部已经完成了模数转换,直接通过I²C或SPI总线输出数字值。边缘网关只需要按协议读取寄存器就行。
这样做的好处是抗干扰能力强,但要注意总线长度。I²C在1米以内没问题,超过3米就需要加电平转换或改用RS-485。
通信协议:数据怎么传出去
传感器采集到数据后,需要从节点传到边缘网关,再从网关传到云端。这里有两个主流协议:MQTT和CoAP。我分别说说。
MQTT:发布/订阅模式
MQTT是物联网领域的事实标准。它基于TCP,采用发布/订阅模式。传感器作为客户端,把数据发布到某个主题(topic),网关或云端订阅这个主题就能收到。
举个例子:
// 传感器发布数据到主题
Topic: farm/greenhouse1/temperature
Payload: {"value": 25.3, "unit": "celsius", "timestamp": 1712345678}
// 网关订阅这个主题
Topic: farm/greenhouse1/temperature
// 网关收到数据后处理
MQTT有三个服务质量等级(QoS):
- QoS 0:最多发一次,丢了不管。适合光照这类变化慢的数据。
- QoS 1:至少发一次,可能重复。适合温湿度,丢一包影响不大。
- QoS 2:恰好发一次,最可靠。适合控制指令或报警。
我个人习惯,传感器上报用QoS 1,控制指令用QoS 2。别所有数据都用QoS 2,网络开销会大好几倍。
CoAP:轻量级UDP协议
CoAP是专门为资源受限设备设计的。它基于UDP,类似HTTP的请求/响应模式,但头部只有4字节。
什么时候用CoAP?当你的传感器是电池供电、网络不稳定的时候。比如野外墒情监测站,用NB-IoT传数据,CoAP比MQTT省电30%以上。
但CoAP也有缺点:没有持久连接。每次通信都要重新建立会话,不适合需要实时推送的场景。
| 特性 | MQTT | CoAP |
|---|---|---|
| 传输层 | TCP | UDP |
| 模式 | 发布/订阅 | 请求/响应 |
| 头部大小 | 2字节(最小) | 4字节 |
| 可靠性 | QoS 0/1/2 | CON/NON |
| 适用场景 | 大棚、养殖场(有电有网) | 野外、电池供电(低功耗) |
知识体系总览
下面这张图把本章的核心逻辑串起来了。从传感器到数据采集,再到通信协议,最后到边缘网关,每一步都有讲究。
从这张图可以看得很清楚:传感器类型决定了采集方式(模拟还是数字),采集方式又影响了通信协议的选择。比如土壤pH传感器输出模拟信号,ADC转换后数据量小,用CoAP就很合适;而温湿度传感器直接输出数字值,数据更新频繁,用MQTT更靠谱。
核心要点:
- 传感器选型要兼顾精度、成本和环境适应性
- 模拟量采集注意抗干扰,数字量采集注意总线长度
- MQTT适合有稳定电源的场景,CoAP适合电池供电的低功耗场景
- QoS等级不是越高越好,要根据数据重要性选择