3. 植物工厂数据采集系统搭建

植物工厂的数据采集系统并不是“买几个传感器插上就能用”的简单组合,而是一条从物理量到可用数据的完整链路:传感器把温度、湿度、光照、CO₂浓度、基质含水率等环境量转换为电信号,采集器完成模拟量或数字量的读取与规整,再通过现场总线或工业以太网把数据汇聚到边缘计算节点,由节点完成协议转换、数据清洗、本地缓存与上云转发。理解这条链路的每一段“接口形态”和“协议边界”,是搭建稳定采集系统的前提。

一、硬件连接:先分清信号类型,再决定接线方式

植物工厂常用传感器按输出形态可分为三类。第一类是模拟量传感器,例如输出 0~10V 或 4~20mA 的温湿度变送器、光照度变送器;第二类是数字量/总线型传感器,例如 RS-485 接口的 CO₂传感器、Modbus 温湿度探头;第三类是脉冲或开关量设备,例如翻斗式雨量计式的灌溉计量、门磁与限位开关。三类信号的接线逻辑完全不同,混接是现场最常见的故障来源。

以 RS-485 总线型传感器为例,典型接线为 A、B 两根差分信号线加电源正负。工程上要注意三点:一是总线采用手拉手菊花链拓扑,避免星形分支,分支过长会引入反射;二是总线两端各接一个 120Ω 终端电阻,短距离低速时可省略,但超过数十米或速率较高时应保留;三是屏蔽层单端接地,防止形成地环路。模拟量传感器则要关注供电与信号共地问题,4~20mA 电流环抗干扰能力强,适合长距离传输,而 0~10V 电压信号在长线缆上容易衰减,应尽量缩短走线或改用电流型。

现场经验:同一路 RS-485 总线上挂接的设备应统一波特率、数据位、停止位与校验方式,并保证从站地址不重复。调试阶段可先只接一台设备验证通信,再逐台增加,便于快速定位地址冲突或接线错误。

二、通信协议:Modbus 负责“采得到”,MQTT 负责“传得远”

在植物工厂的采集层,Modbus RTU 是最常见的现场协议。它采用主从结构,采集器作为主站轮询各从站寄存器。以读取某型温湿度变送器为例,若从站地址为 0x01,温度寄存器起始地址为 0x0000、数量 2 个,则主站发送的请求帧为:

01 03 00 00 00 02 C4 0B
从站地址 功能码 起始地址高 起始地址低 寄存器数量高 寄存器数量低 CRC校验

从站返回的响应帧中,数据区为 4 个字节,通常高字节在前。若返回 01 03 04 01 2C 02 8A ...,则温度原始值为 0x012C,即 300;若传感器标定为“原始值÷10”,则实际温度为 30.0℃。这里的关键是标定系数必须与传感器手册一致,否则数据看似正常却整体偏移。采集器配置时要把寄存器地址、数据类型(16 位整数/32 位浮点)、字节序、缩放系数逐项核对,不能只填地址。

采集器完成现场采集后,向上通常采用 MQTT 协议接入边缘节点或云平台。MQTT 的发布/订阅模型适合多主题、多设备的数据分发。典型主题设计可按“园区/温室/区域/设备类型/设备编号”分层,例如 plantfactory/zoneA/env/temp-01。消息负载建议使用 JSON,包含时间戳、设备编号、测量值与质量标志:

{"ts":"2025-03-01T08:30:00+08:00","dev":"temp-01","temp":24.6,"hum":68.2,"q":0}

其中 q 为质量位,0 表示正常,非 0 表示越限、通信超时或传感器故障。把质量标志随数据一起上传,比事后在平台侧猜测数据是否可信要可靠得多。QoS 等级选择上,环境监测数据通常用 QoS 1 保证至少送达,避免因网络抖动丢点;但要注意 QoS 1 可能重复,因此负载中带时间戳和设备编号,便于平台侧去重。

植物工厂数据采集链路:传感器 → 采集器 → 边缘节点 → 平台 传感器层 温湿度变送器 4~20mA / RS-485 CO₂ 传感器 RS-485 / Modbus RTU 光照度传感器 0~10V 模拟量 基质含水率探头 RS-485 / 脉冲 数据采集器 模拟量输入 AI 4~20mA / 0~10V RS-485 主站 Modbus RTU 轮询 数字量 / 脉冲 开关量计数 边缘计算节点 协议转换 Modbus → MQTT 数据清洗与标定 缩放 / 去重 / 质量位 本地缓存 断网续传 规则与告警 阈值 / 越限判断 监控平台 MQTT Broker 时序数据库 RS-485 / 以太网 MQTT 关键点:现场协议负责“采得到”,MQTT 负责“传得远”,边缘节点负责“采得准、传得稳”

三、边缘计算节点配置:把“原始数据”变成“可信数据”

边缘节点是整条链路的“翻译官”和“守门员”。配置时通常要完成四件事:建立设备接入通道、定义数据点表、设置清洗与告警规则、配置本地缓存与上云策略。以一台运行 Linux 的边缘网关为例,若使用开源的 Node-RED 或类似流式工具,核心配置可抽象为“输入节点—处理节点—输出节点”三段。

输入段负责 Modbus 轮询。需要为每个从站建立连接参数:串口设备(如 /dev/ttyUSB0)、波特率 9600、8 位数据位、无校验、1 位停止位,轮询周期建议按传感器响应速度设定,环境量通常 5~10 秒一次即可,过密会加重总线负载。处理段完成缩放与质量判断,例如温度原始值 300 经系数 0.1 得到 30.0℃,同时判断是否落在 -10~50℃ 的合理区间,越限则置质量位为 1。输出段把 JSON 负载发布到 MQTT 主题,并写入本地 SQLite 或环形缓冲区,网络恢复后按时间顺序补传。

这里有一个容易被忽视的细节:时间戳应由边缘节点统一打上,而不是依赖各传感器或采集器各自计时。现场设备时钟往往不同步,若每条数据带不同基准的时间,后续做趋势分析和告警关联时会出现“同一时刻数据对不齐”的问题。边缘节点可配置 NTP 对时,并在数据负载中统一使用带时区的 ISO 8601 格式。

四、联调与验收:用可观察的结果判断链路是否成立

系统搭好后不能只看“平台上有数字在跳”。建议按以下顺序验证:先用万用表或串口调试工具确认单台传感器输出正常;再用 Modbus 调试软件读取寄存器,核对原始值与标定换算是否一致;然后观察采集器轮询日志,确认无超时、无 CRC 错误;最后在平台侧检查数据到达间隔是否稳定、质量位是否长期为 0。若出现“数据偶尔跳变”,优先排查总线终端电阻、屏蔽接地与供电纹波;若出现“整点丢数”,则检查边缘节点的缓存与补传策略是否生效。

注意:Modbus 寄存器地址在不同厂商手册中可能以“0 基址”或“1 基址”表述,配置前务必确认偏移规则;MQTT 主题中的设备编号应与资产台账一致,避免后期设备更换时数据错挂。

完成上述硬件连接、协议配置与边缘节点规则设置后,采集系统才具备“可持续运行”的基础。后续的监测看板、阈值优化与联动控制,都建立在这条链路稳定、数据可信的前提之上。