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

news2024/12/23 7:07:42

上文: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.coloradmin.cn/o/2121176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是迟滞?

在描述两个量之间的关系时,我们通常可以说特定的输入值对应于特定的输出值。例如,放大器具有输入电压和输出电压,这些电压与增益相关(在现实生活中增益是频率的函数而不是常数)。如果我们忽略饱和等非理想因素&#xf…

【实战篇】为什么我的MySQL会“抖”一下?

背景 不知道你有没有遇到过这样的场景,一条 SQL 语句,正常执行的时候特别快,但是有时也不知道怎么回事,它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短。看上去&…

Conda安装R环境并在Jupyter Lab中运行

说明: Conda 安装 R 环境,并在 Jupyter Lab 中运行 R 脚本。 1. 创建环境并安装r-base 创建环境:conda create -n [环境名] 激活环境:conda activate [环境名] 安装 Jupyter Lab:conda install -c conda-forge jupy…

【北京迅为】《STM32MP157开发板使用手册》-第十七章 制作Ubuntu文件系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

SpringBoot2:请求处理原理分析-接口方法的返回值处理(returnValueHandlers)

一、知识回顾 前面,我们学习了,一个请求过来,先经过filter组件,判断restful风格接口的请求类型。 然后,通过HandlerMapping找到处理该请求的接口。 接着,进入接口方法的参数解析环节,这里主要学…

低代码开发:业务与技术的完美融合

正文: 随着数字化转型的加速,企业对应用软件的需求日益增长。然而,传统的开发方式往往费时费力,难以满足市场的快速变化。在此背景下,低代码开发平台应运而生,它们正逐步改变我们的工作方式,让…

AI辅助设计的底层逻辑与革命性应用

在数字化浪潮席卷各行各业的今天,人工智能(AI)以其强大的数据处理能力和智能决策支持,正逐步渗透到设计领域的每一个角落。AI辅助设计,作为这一趋势的先锋,正以其独特的底层逻辑和创新方法,引领…

基于vue框架的城市环卫车辆管理系统971x5(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:环卫工,车辆信息,车辆借用,车辆报修,通知公告,车辆归还,报修处理,车辆分类,员工打卡,员工请假,加班申请,员工任务 开题报告内容 基于Vue框架的城市环卫车辆管理系统开题报告 一、研究背景与意义 1.1 研究背景 随着城市化进程的加速&…

Vue 介绍与体验

目录 Vue 介绍与体验vue 简介vue 概念vue 特性数据驱动视图双向数据绑定 MVC和MVVM模型vue 版本 Vue的 optionsdata属性methods属性 Vue 的基本使用Vue 安装与使用Vue2 安装与使用(可选) Vue 的调试工具 Vue 介绍与体验 vue 简介 Sum: 概念…

PI电动位移平台简明教程

该文章仅供参考,编写人不对任何实验设备、人员及测量结果负责!!! 0 引言 文章主要介绍PI位移台的硬件连接、软件配置以及软件控制。文章中提到的内容在产品手册中都有说明,强烈建议在操作前通读产品手册,…

【Qt】Qt界面美化 | QSS

文章目录 QSS概述QSS 设置方式1. 指定控件设置样式2. 全局样式设置3. 样式的层叠4. 从文件加载样式表5. 使用 Qt Designer 编辑样式 选择器选择器概述1. 类选择器2. ID选择器3. 子控件选择器(Sub-Controls)4. 伪类选择器(Pseudo-States) 样式属性盒子模型(Box Model) 控件样式实…

YOLOv5改进 | 模块缝合 | C3 融合RFAConv和CBAM注意力机制 【二次融合 小白必备】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv5入门 改…

系统设计文档示例

设计文档示例 文章目录 设计文档示例一、整体架构二、业务或功能-模块设计2.1、需求说明2.2、交互流程2.3、页面设计2.4、功能实现逻辑2.4.1 API设计2.4.2 DB设计 三、 配置说明四、开发示例 一、整体架构 系统架构图简要说明部署架构图简要说明功能模块图简要说明技术架构:前…

智汇云舟在京举办2024视频孪生产品发布会

9月6日,由北京智汇云舟科技有限公司(以下简称“智汇云舟”)主办的“智算时空 重塑视界”2024视频孪生产品发布会在北京举行。此次活动汇聚了来自科技界的众多精英、合作伙伴及行业媒体,共同见证了视频孪生技术的最新成果与未来展望…

discuz论坛3.4 截图粘贴图片发帖后显示不正常问题

处理方法 source\function 路径下修改function_discuzcode.php function bbcodeurl($url, $tags) 函数 if(!in_array(strtolower(substr($url, 0, 6)), array(http:/, https:, ftp://, rtsp:/, mms://,data:i) 这一句里增加 data:i 即可 function bbcodeurl($url,…

【Java-反射】

什么是反射? JAVA反射机制是在运行状态中,创建任意一个类,能获取这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言…

对云原生架构的理解和思考

云原生到底是什么? 现在大家都在讨论云原生,那么什么是云原生呢?顾名思义云原生便是云上生长出来的东西,用软件开发者的语言来说:就是用云计算的特性来构建、部署和管理应用程序。 说到云原生就不得不说下云计算&…

共享WIFI扫码率低怎么办?做好这些就够了!

随着共享WIFI贴的市场需求和收益空间不断展现,越来越多的人都开始计划加入共享WIFI贴dai li 商的行列之中,以借此成就一番事业。不过,由于不少入局者都在落地过程中遭遇了共享WIFI贴扫码率很低的问题,使得很多人都因害怕步入他们的…

《数字图像处理(面向新工科的电工电子信息基础课程系列教材)》P2

Old 目标检测原来只是定位目标的位置,给出bounding box,现在的目标检测是包括定位和识别的多任务学习。深度学习改变了很多。 每一轮备课都会发现问题,并完善。 New Give the analogy of the character recognition system. 禹晶、肖创柏…

使用Java增删改查数据库

文章目录 前言一、PrepareStatement类是什么?二、实操展示 1.增2.删3.改4.查总结 前言 既然连接数据库都可以通过java语言实现,那么通过java语言对数据库进行增删改查的操作自然是顺理成章的事情了。 一、PrepareStatement类是什么? PrepareS…