新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

EG网关采集Modbus RTU通过MQTT连接华为云物联网平台

2025-09-01 12:04:37 阅读: 发布人:纵横智控

 需求概述

本章节主要实现一个需求:EG8200Mini采集Modbus RTU数据,通过MQTT协议连接华为云物联网平台。

Modbus RTU采集此处不做过多赘述,可参考其他案例介绍。下文默认已经采集到Modbus RTU数据。

MQTT通信相关参数及Json数据格式要求,参考华为云设备属性上报_设备接入 IoTDA

发布主题(Topic):$oc/devices/{device_id}/sys/properties/report

数据格式样例:

{

"services": [

{

"service_id": "Temperature", //服务ID

"properties": {

"value": 57, //属性名称

"value2": 60 //属性名称

}

}

]

}

需求分析

网关配置:

第一步:采集Modbus RTU数据

第二步:拼装Json

第三步:MQTT上报

平台配置:

第一步:添加产品

第二步:添加物模型

第三步:添加设备

第四步:数据展示

需求实现

1.网关配置

第一步:采集Modbus RTU数据

此处为采集Modbus RTU数据,不在过多赘述。采集Modbus RTU的流程如下:

边缘计算网关/物联网平台/网关模块/纵横智控

源码:https://iotrouter.yuque.com/zn3vdn/eg8000/pd8m0mdxsb4t3xkl

第二步:拼装Json

参考需求概述的MQTT数据格式以及平台配置第二步的物模型设置,将网关采集到的Modbus数据Json格式化:

边缘计算网关/物联网平台/网关模块/纵横智控

var data = msg.payload

msg.payload = JSON.stringify({

"services": [{

"service_id": "serverId",

"properties": {

"temMotorControl1p": data.MotorControl1,

"MotorControl2": data.MotorControl2,

"Requency1": data.Requency1,

"Requency2": data.Requency2

},

}

]

})

return msg

第三步:MQTT上报

使用MQTT发布节点,参考平台配置第四步的内容填写MQTT连接参数:

设备属性上报Topic:$oc/devices/{device_id}/sys/properties/report。

此处为语雀视频卡片,点击链接查看:MQTT上报

2.平台配置

第一步:添加产品

进入华为云物联网平台

设备接入IoTDA->产品->创建产品:

产品名称:自定义

协议类型:MQTT

数据格式:JSON

设备类型选择:自定义类型

设备类型:自定义

其他默认:

此处为语雀视频卡片,点击链接查看:添加产品

第二步:添加物模型

产品->EG网关对接演示->详情->自定义模型->添加服务->新增属性:

此处为语雀视频卡片,点击链接查看:添加物模型

第三步:添加设备

设备->所有设备->注册设备:

所属产品:选择第一步创建的产品

设备标识码:自定义填入

设备ID:自定义

设备名称:自定义

备注描述:自定义

此处为语雀视频卡片,点击链接查看:添加设备

第四步:激活设备

设备->所有设备->详情:

边缘计算网关/物联网平台/网关模块/纵横智控

MQTT连接参数:

边缘计算网关/物联网平台/网关模块/纵横智控

将MQTT连接参数配置到MQTT发布节点,详见网关配置第三步:

边缘计算网关/物联网平台/网关模块/纵横智控

此时可以看到设备已经在线:

边缘计算网关/物联网平台/网关模块/纵横智控

第五步:数据展示

设备->所有设备->详情->物模型数据:

网关触发数据发送,可以看到华为云物联网平台物模型数据更新:

边缘计算网关/物联网平台/网关模块/纵横智控

源码

网关的流程支持以Json格式导入导出,方便与其他人分享做好的流程。本章节的流程Json文件如下,复制后在菜单栏右上角选择导入粘贴即可,导出同理。https://iotrouter.yuque.com/zn3vdn/eg8000/pd8m0mdxsb4t3xkl

注意

MQTT配置节点导出时,不会携带用户名和密码。因此导入时需要重新录入用户名和密码 。

热门产品