收货

安装

售后

自检

发货

装配

模具

标题摘要内容

用户自定义 MQTT 协议与 MCU 数据直传对接[20260829]售后服务

来源:四川葛南仪器有限公司 | 作者:SCGN | 发布时间 :2026-08-29 | 5 次浏览: | 🔊 点击朗读正文 ❚❚ | 分享到:
用户自定义 MQTT 协议与 MCU 数据直传对接适用于水利监测 MCU-M/MCU-4X 等采集单元,MCU 内置 MQTT 客户端,不经第三方网关直接按自定义报文上传数据至 MQTT 服务器,区别于厂家默认格式。MQTT 为应用层协议,底层通常为以太网(TCP),部分带 4G 模块的 MCU 可通过 4G 网络直连服务。

一、基础概念:MCU 作为 MQTT 客户端主动发起 TCP 连接,对接用户自建或第三方 Broker。原厂默认使用固定 Topic 和 JSON 载荷,而用户自定义直传则定制固件,自定义发布/订阅主题及 Payload 报文(JSON/二进制/十六进制),直传用户平台。Payload 方案包括:自定义 JSON(最常用,易解析)和自定义二进制(字节流,流量低,4G 场景省流量,但需程序解码)。注意:MQTT 协议本身不变,自定义的是 Topic 和业务数据内容。

二、对接前置条件:MCU-X 和 MCU-M 型固件支持 MQTT 客户端、自定义 Topic/Payload 及远程升级。网络需确保 MCU 网口或 4G 模块可访问 MQTT 服务(IP/域名、端口可达),默认端口 1883(无加密)或 8883(TLS 加密)。服务侧需准备 Broker 服务器、账号密码或设备证书,并约定全部自定义要素,如 Broker 地址、认证方式、发布/订阅 Topic、Payload 格式、QoS 等级(水利推荐 QoS1)、保活时间(60-120s)、遗嘱消息(离线推送)及数据处理方式(本地换算或上传原始数据)。

三、报文示例:示例 1 为自定义 JSON Payload(工程值,水利监测,QoS=1),发布主题如 device/sg-mcu-001/sensor/data,Payload 包含设备编号、时间戳、通道信息(渗压计频率、温度、工程值等)。平台下发召测指令时,MCU 订阅主题如 device/sg-mcu-001/cmd/set,收到后立即采集并上报。示例 2 为自定义二进制 Payload(省流量,4G 无线),帧结构含设备编号、时间戳、通道号、频率、温度、工程值、状态码及 CRC16,上位机需按协议解包。

四、工作模式:模式 A 为定时主动上报(主流),MCU 连接 Broker、按周期采集、组包并 PUBLISH(QoS=1),平台订阅解析入库。模式 B 为平台下发指令召测,MCU 订阅指令主题,收到后执行采集或校时,再以自定义 Payload 上报,适合需即时召测的场景。

五、对比:自定义 MQTT 直传相比原厂 MQTT 或网关转发,硬件上无需网关,固件可定制 Topic+Payload,网络直连 Broker,数据格式完全用户自定义,二进制流量极低,但固件 BUG 可能影响上传稳定性;而网关转发虽保持原厂固件,但增加单点故障风险且格式不可改。

六、实施步骤:输出《MQTT 自定义对接协议文档》(含 Broker 信息、Topic 规则、帧定义、指令、状态码、CRC 算法);评估固件能力(自定义 Topic/Payload、QoS、遗嘱,以及原始或工程值输出);实验室用 MQTTX 模拟 Broker 联调,验证上报、召测、断线重连及遗嘱,核对接数据一致性;现场配置 Broker 地址、密码、周期,公网部署建议启用 TLS;进行 72 小时稳定性测试,模拟故障验证状态码输出。

七、水利行业注意点(匹配 SL/T 530-2026):报文必须含设备编号、NTP 同步时间戳、通道号、传感器类型、原始读数、温度、工程物理量、单位及采集状态,满足归档要求。公网传输须启用 TLS 8883,禁止裸 1883。推荐 QoS1 以防丢测。支持断线自动重连及补发,遗嘱消息用于离线告警。

八、常见故障:连接失败(端口、账号、防火墙或 APN 配置);收不到数据(Topic 订阅/发布反或大小写错);数据不一致(率定参数未映射);频繁断连(KeepAlive 不合理或 4G 信号弱);指令无响应(订阅主题错误)。

用户自定义 MQTT 协议与 MCU 数据直传对接

适用:水利监测 MCUM / MCU4X 等采集单元,MCU 内置 MQTT 客户端,不经过第三方网关,MCU 直接把传感器数据按用户自定义 MQTT 报文上传 MQTT 服务器,区别于厂家默认 MQTT 主题 & 载荷格式。 MQTT 属于应用层协议,底层一般为以太网(TCP);部分带 4G 模块 MCU,可通过 4G 网络直连 MQTT 服务。

一、基础概念

MCU 内置 MQTT Client MCU 作为 MQTT 客户端,主动发起 TCP 连接,对接用户自建 / 第三方 MQTT Broker(服务器)。

原厂默认:固定 Topic、固定 JSON 载荷格式

用户自定义 MQTT 直传:MCU 固件定制,自定义发布主题、订阅主题、自定义 Payload 报文(自定义 JSON / 二进制 / 十六进制报文),直传给用户平台,不做中间转发。

两种 Payload 载荷方案

方案 1:自定义 JSON 格式(最常用,水利平台、物联网平台易解析)

方案 2:自定义二进制报文(字节流,数据量小、流量低,4G 场景节约流量,解析需要程序解码)

️注意:MQTT 协议本身不变(CONNECT/PUBLISH/SUBSCRIBE 等报文),自定义指的是:Topic 主题 + Payload 业务数据内容由用户定义,不是修改 MQTT 标准协议。

二、对接前置条件

MCU-X和MCU-M型  固件都支持 MQTT 客户端,支持自定义 Topic、自定义 Payload 输出;支持远程固件升级。

网络:MCU 网口 / 4G 模块可访问 MQTT 服务,IP / 域名、端口可达;

MQTT 默认端口:1883(无加密);8883(TLS 加密)

MQTT 服务侧准备:Broker 服务器、账号密码 / 设备证书、订阅接收主题;

约定全部自定义要素:

项目

说明

Broker 地址

IP 或域名,端口 1883/8883

认证方式

用户名密码 / TLS 证书 / 匿名(不推荐)

发布 Topic(MCU→服务器)

MCU 上报数据的主题,支持按设备编号区分

订阅 Topic(服务器→MCU)

平台下发指令:参数设置、召测采集、校时、重启

Payload 格式

自定义 JSON / 自定义二进制字节流

QoS 等级

QoS0 (最多一次)、QoS1 (至少一次,水利推荐 QoS1)、QoS2 仅重要控制指令

保活时间 KeepAlive

一般 60120s

Will 遗嘱消息

MCU 离线时推送离线状态,用于设备在线监测

数据处理

MCU 本地完成工程值换算,还是上传原始频率 + 温度,上位机换算

三、报文示例

示例 1:自定义 JSON Payload(工程值,水利监测,QoS=1)

MCU 发布主题示例 device/sg-mcu-001/sensor/data

Payload(自定义,完全脱离厂家默认格式)

{

  "devId":"SG-MCU-001",

  "timestamp":"2026-08-29T10:30:00+08:00",

  "ntpSync":true,

  "channels":[

    {

      "No":1,

      "Type":"渗压计",

      "fq":6567.23,

      "tp":20.5,

      "el":123.45,

      "ut":"kPa",

      "ss":0

    }

  ]

}

status:0 正常;1 断线;2 超量程;3 采集失败

平台下发召测指令,MCU 订阅主题 device/sg-mcu-001/cmd/set 下发 payload:

{"cmd":"read","chList":[1,2,3]}

MCU 收到后立即采集并上报最新数据。

示例 2:自定义二进制 Payload(省流量,4G 无线 MCU)

发布 Topic:sg/mcu/001/upload 二进制帧结构(自定义)

表格

设备编号 (4 字节)

时间戳 (4 字节)

通道号 (1 字节)

频率 (4 字节 float)

温度 (2 字节 short)

工程值 (4 字节 float)

状态码 (1 字节)

CRC16 (2 字节)

二进制模式上位机需要按协议解包,适合大量设备 4G 远传。

四、两种工作模式

模式 A:定时主动上报(主流,水库大坝监测)

MCU 网络连接 MQTT Broker,完成登录,上报遗嘱消息。

MCU 按配置周期(30s、5min、15min)采集各通道传感器。

MCU 按照用户自定义 Topic、自定义 Payload 组包。

MQTT PUBLISH 消息上报服务器(QoS=1 保证至少送达一次)。

用户平台订阅对应主题接收、解析、入库。

模式 B:平台下发指令召测(按需采集)

MCU 订阅平台下发指令 Topic。

用户平台发布召测 / 校时 / 参数配置指令。

MCU 收到 MQTT 订阅消息,解析业务指令。

MCU 执行采集 / 校时,再以自定义 Payload 上报结果。

适合:下闸蓄水期间需要即时召测当前测值场景。

五、自定义 MQTT 直传 vs 原厂 MQTT / 网关转发

对比项

MCU 自定义 MQTT 直传

原厂默认 MQTT

网关协议转换

硬件

MCU 网口 / 4G 直接输出,无需网关

MCU 直出

需增加网关设备

固件

MCU 固件定制 Topic+Payload

原厂固定格式

MCU 保持原厂固件,网关转 MQTT

网络链路

MCU 直连 Broker

MCU 直连 Broker

MCU→网关→MQTT 服务器

数据格式

完全用户自定义

固定厂家 JSON

网关转换为用户自定义

流量

二进制 Payload 流量极低

冗余字段多

网关侧增加转发开销

风险点

固件 BUG 直接影响上传

稳定但格式不可改

网关单点故障风险

六、对接实施步骤

输出《MQTT 自定义对接协议文档》:Broker 信息、Topic 命名规则、JSON / 二进制帧定义、全部指令、状态码、CRC 算法示例。

厂家固件评估:确认支持自定义 Topic、自定义 Payload、QoS 配置、遗嘱消息;确认 MCU 是输出原始频率还是本地输出工程值。

实验室联调:MQTTX 工具模拟 Broker,测试连接、定时上报、指令召测、断线重连、遗嘱离线消息。

重点校验:上报测值与 MCU 本地液晶屏读数一致;断线后网络恢复自动重连 MQTT。

现场配置:Broker 地址、账号密码、上报周期、NTP 对时,TLS 加密开启(公网部署强烈建议)。

稳定性测试:72 小时连续运行,统计丢包;模拟传感器断线、网络断连恢复,验证状态码输出。

七、水利行业重点注意点(匹配 SL/T 5302026)

上报报文必须携带:设备唯一编号、时间戳(NTP 同步时间)、通道号、传感器类型、原始读数、温度、工程物理量、单位、采集状态故障码,满足归档要求。

公网传输务必启用 TLS 8883 加密,禁止裸端口 1883 公网暴露。

QoS 建议设置为QoS1,水库监测不能丢测;QoS0 网络抖动容易丢数据。

必须支持断线自动重连 MQTT Broker;网络恢复后补发缺失数据(可选)。

遗嘱消息:MCU 离线时 Broker 推送离线状态,平台可以识别设备离线告警。

八、常见故障

MQTT 连接失败:服务器端口不通、账号密码错误、防火墙拦截、4G 模块 APN 配置错误。

连接成功收不到数据:Topic 订阅 / 发布写反;大小写敏感。

数据和本地不一致:MCU 内部率定参数没有映射到自定义 MQTT 输出逻辑。

频繁断连:KeepAlive 保活时间设置不合理;4G 信号弱。

指令下发 MCU 无响应:MCU 没有正确订阅下发主题。

 (上述文字来源于AI看图摘要)

 

葛南小杜 手机


13990288886

四川葛南仪器有限公司办公地点


四川省德阳市庐山北路477号希望城E栋24楼

公司传真


0838-2565136

公司邮箱


1768129995@qq.com