当前位置: 首页 > article >正文

EG边缘计算网关连接中移ONENET物联网平台(MQTT协议)

上文:EG边缘计算网关连接阿里云物联网平台(MQTT协议)

需求概述

本章节主要实现一个流程:EG8200mini采集Modbus RTU数据,通过MQTT协议连接中移ONENET物联网平台

Modbus RTU采集此处不做过多赘述,可参考其他案例(串口读取Modbus传感器数据)介绍。下文默认已经采集到Modbus RTU数据。

要采集的Modbus点位表:

地址(Doc)

数据类型

属性

名称

00001

Boolean

读写

MotorControl1

00002

Uint16

读写

MotorControl2

40001

Uint16

读写

Requency1

40002

Uint16

读写

Requency2

需求分析

网关配置:

第一步:采集Modbus RTU数据

第二步:拼接Json

第三步:MQTT上报并接收平台响应

平台配置:

第一步:添加产品

第二步:添加物模型

第三步:添加设备

第四步:数据展示

需求实现

网关配置

第一步:采集Modbus从机的数据

此处为采集Modbus RTU数据,不在过多赘述,可参考其他案例。采集到Modbus RTU的流程如下:

此处为语雀内容卡片,点击链接查看:Modbus RTU 读数据 · IOTRouter

源码:

[{"id":"d968892da4e40a46","type":"inject","z":"b7c6f1e56286d94a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"5","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":480,"y":1780,"wires":[["9b935c0dd6a63827","3bc2eb81af744a6d"]]},{"id":"9b935c0dd6a63827","type":"modbusRead","z":"b7c6f1e56286d94a","name":"读线圈","uid":"1","dataType":"1","len":"120","modbus":"f4b98c3be57ddcad","columns":[{"Key":"MotorControl1","Address":"0","Type":"23","Tdata":""},{"Key":"MotorControl2","Address":"1","Type":"23","Tdata":""}],"x":670,"y":1780,"wires":[["de1ce0dfa2e082f8"]]},{"id":"30fa1cad395c11c4","type":"modbusRead","z":"b7c6f1e56286d94a","name":"读频率","uid":"1","dataType":"3","len":"120","modbus":"f4b98c3be57ddcad","columns":[{"Key":"Requency1","Address":"0","Type":"1","Tdata":""},{"Key":"Requency2","Address":"1","Type":"1","Tdata":""}],"x":670,"y":1860,"wires":[["de1ce0dfa2e082f8"]]},{"id":"de1ce0dfa2e082f8","type":"join","z":"b7c6f1e56286d94a","name":"","mode":"custom","build":"merged","property":"payload","propertyType":"msg","key":"topic","joiner":"\\n","joinerType":"str","accumulate":false,"timeout":"0.5","count":"","reduceRight":false,"reduceExp":"","reduceInit":"","reduceInitType":"","reduceFixup":"","x":870,"y":1820,"wires":[["b53287da47908499"]]},{"id":"3bc2eb81af744a6d","type":"delay","z":"b7c6f1e56286d94a","name":"","pauseType":"delay","timeout":"200","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"allowrate":false,"outputs":1,"x":470,"y":1860,"wires":[["30fa1cad395c11c4"]]},{"id":"b53287da47908499","type":"debug","z":"b7c6f1e56286d94a","name":"调试 254","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1040,"y":1820,"wires":[]},{"id":"f4b98c3be57ddcad","type":"modbus config","name":"","model":"2","host":"127.0.0.1","port":"502","serialport":"/dev/ttyAS3","baudrate":"115200","databits":"8","stopbits":"1","parity":"none","timeout":"50","reqtimeout":"1000"}]
第二步:拼接Json

参考ONENETonJson协议MQTT数据格式以及平台配置第二步的物模型设置。将网关配置第一步采集的数据JSON格式化:

上行Json示例:

{

"id": "123",

"version": "1.0",

"params": {

"Power": {

"value": "on",

"time": 1524448722123

},

"WF": {

"value": 23.6,

"time": 1524448722123

}

}

}

平台下行反馈Json示例:

{

"id": "123",

"code": 200,

"msg": "xxxx"

}

此处为语雀视频卡片,点击链接查看:onenet上报封装.mp4

源码:

var RS485_RECV = msg.payload
var time = Date.now()


var pid = "31ACZV4snl"
var deviceName = "device001"
var topic = `$sys/${pid}/${deviceName}/thing/property/post`
msg.topic = topic
var mqttSend = {
	"id": "123",
	"version": "1.0",
	"params": {
		"DO1": {
			"value": RS485_RECV.MotorControl1 ? true : false,
			"time": time
		},
		"DO2": {
			"value": RS485_RECV.MotorControl2 ? true : false,
			"time": time
		},
		"frequency1": {
			"value": RS485_RECV.Requency1,
			"time": time
		},
		"frequency2": {
			"value": RS485_RECV.Requency2,
			"time": time
		}
	}
}

msg.payload = JSON.stringify(mqttSend)
return msg;
第三步:MQTT上报

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

pid:产品ID

device-name:设备名称

设备属性上报Topic:$sys/{pid}/{device-name}/thing/property/post

上报响应订阅topic:$sys/{pid}/{device-name}/thing/property/post/reply

此处为语雀视频卡片,点击链接查看:onenet数据上报.mp4

平台配置

第一步:添加产品

进入ONENET物联网平台

产品开发->创建产品:

所属地址:自由选择

节点类型:网关设备

协议类型:MQTT

数据格式:oneJson

联网方式:自定义

开发方案:自定义方案

产品厂商:自定义

产品型号:自定义

品牌名称:自定义

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

第二步:添加物模型

产品开发->设置物模型->添加自定义模型:

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

第三步:添加设备

设备接入管理->设备管理->添加设备:

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

设备名称:自定义

设备描述:自定义

此处为语雀视频卡片,点击链接查看:ev_20240702_173246.mp4

第四步:激活设备

参考文档MQTT设备连接:

MQTT连接参数:

连接地址:mqtts.heclouds.com
端口:1883
clientId:设备名称
username:产品ID
password:计算后的token(参考下一步说明)

Token计算参考文档Token计算:

res:products/31ACZV4snl                              (规则products/{产品ID})
et:1721859317                                        (失效时间)
key:awGbZ4HLsXkvaxOlixv/642tOZM3dXUzf+Xd6UnV098=     (产品key)

根据上述步骤获取的连接参数:

地址:mqtts.heclouds.com
端口:1883
clientId:device001
username:31ACZV4snl
password:version=2018-10-31&res=products%2F31ACZV4snl&et=1721791062&method=md5&sign=iDH4WvVwIGlpRkFlBC1Eow%3D%3D

将MQTT连接参数配置到MQTT发布节点

此处为语雀视频卡片,点击链接查看:MQTT-onenet配置.mp4

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

第五步:数据展示

设备管理->详情->属性:

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

总结

EG边缘计算网关与中移ONENET物联网平台的无缝对接,用户可以轻松实现对工业设备、传感器等现场设备的远程监控和管理。EG网关负责数据采集和协议转换,ONENET平台提供云端数据处理、分析与可视化,形成了一个高效、稳定的物联网系统。利用MQTT协议的轻量高效特点,确保设备数据能够及时、可靠地上传到云平台,实现工业设备的智能化和远程控制。

更多了解:成都纵横智控


http://www.kler.cn/a/302101.html

相关文章:

  • python+requests接口自动化测试框架实例详解
  • 【再谈设计模式】享元模式~对象共享的优化妙手
  • 解决PDF.js部署到IIS服务器上后报错mjs,.ftl 404 (Not Found)
  • Java包装类型的缓存
  • 【扩展卡尔曼滤波理论推导与实践】【理论】【1/3 前言】
  • UE5 崩溃问题汇总!!!
  • 【微处理器系统原理与应用设计第十二讲】通用定时器设计二之PWM波实现呼吸灯的功能
  • GitLab邮箱发送邮件:如何实现自动化发信?
  • unity3d c# 切换数字人效果
  • 【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】
  • 初学51单片机之IO口上下拉电阻相关
  • 渠道分析促增长,App如何靠渠道来源追踪构建评估体系
  • 大模型微调:RHLF与DPO浅析
  • Python面试宝典第48题:找丑数
  • element-plus组件问题汇总
  • javaWeb三剑客:html,css
  • “精装朋友圈”的年轻人,开始在40度高温买羽绒服
  • 青少年人工智能编程水平测试YCL备考秘籍
  • 针对Docker容器的可视化管理工具—DockerUI
  • 排序算法总结
  • AE软件下载,辅助你完成梦想作品
  • Redis 主从复制的原理详解
  • 获取1688 API 接口
  • PFC和LLC的本质和为什么要用PFC和LLC电路原因
  • 【Linux】Linux 共享内存:高效的进程间通信
  • 磁盘空间不足扩容lvm