首页 > 编程语言 >物联网虚拟仿真系统通过可视化编程接入迅通云平台

物联网虚拟仿真系统通过可视化编程接入迅通云平台

时间:2024-08-30 09:21:37浏览次数:10  
标签:仿真 平台 编程 迅通云 value MQTT 可视化 数据 设备

物联网虚拟仿真系统工作准备

进入物联网虚拟仿真系统,拉入传感器并正确接好线后,双击配置仿真设备的随机值。

img

img

img

打开物联网虚拟仿真系统本地工具,开启HTTP Server的服务于HTTP端口后,即可看到数据存入客户端

img

img

img

在网页上搜索本地IP:8000的网址,即可看到JSON格式的仿真设备数据。

img

进入可视化编程

Node-RED作为数据传输中转站,处理数据将数据最后通过MQTT上传至迅通云平台。

如有网迅通GW56网关,即可直接进入Node-Red可视化编程。 如果没有要去官网下载本地Node-Red

本次案例实验使用的是网迅通GW56网关的可视化编程

首先进入Node-RED,通过HTTP进行GET请求读取仿真数据

img

拉入时间戳节点作为触发,HTTP节点读取,将数值打印出来。

img

双击HTTP节点进行配置

img

部署后即可看到仿真数值在调试窗口中打印出来。

img

迅通云工作准备

创建产品

img

img

导入通用物模型

img

模型类别

属性:大部分适用于只可读的传感器设备。设定整数或小数数据类型即为仪表盘展示。

功能:适用于控制设备,设定整数或小数数据类型即为滑杆发送数据。

模型特征

图表展示:设备详细中以图表方式显示

实时监测:实时显示监测数据,但是不会存储到数据库

只读数据:设备上报数据,但是平台不能下发指令

历史存储:设备上报的数据会存储到数据库作为历史数据

分享权限:设备分享时需要指定是否拥有该权限

img

导入完通用物模型后,发布产品。

创建设备

根据上一节创建完产品后,我们可以创建设备。进入到产品管理,找到创建的产品点击查看设备。

img

img

img

创建产品详细操作可查看:创建产品

新增完后是未激活状态,当MQTT连接上后,就能自动激活

通信连接

设备->迅通云数据上报格式(读取设备)

MQTT 接入方式中,设备需要和云平台建立 TCP 长连接,并通过 MQTT 协议特有的方式完成身份认证。当设备成功连接到云平台后,通过 发布订阅 相应的 主题(Topic),来完成和云平台的消息通信。

已数据上报为例,如果采用 MQTT 方式上报,设备首先要和云平台建立MQTT连接,创建好设备后查看设备详情页,点击认证信息即可知道用户名密码以及client ID

点击认证信息,查看MQTT连接参数

img

{productId} 代表产品ID, {deviceNum} 代表设备编号。通过web端获取产品ID和设备编号,如果使用自动添加设备,设备编号可以使用唯一编码或者使用设备MAC地址,设备认证成功后会在后端自动添加一个对应的设备实体

例如简单认证的客户端ID组成
 客户端Id等于 认证类型 + 设备编号 + 产品编号 + 用户ID
 clientId = S & deviceNumber & productId & userId

迅通云的连接MQTT的地址为

 mqtt:/cloud.rpdiot.com:1883

设备发布数据到云平台的主题为

/{productId}/{deviceNum}/property/post     
 发布数据 (实时显示,属性/功能和监测数据,可定时上报监测数据) 

设备发布数据到云平台的格式为

发布数据和事件,对应主题:/{productId}/{deviceNum}/property/post 可不上报remark

解释# 描述:属性、功能、事件都属于物模型,Json定义是一样的。`value` 的值如果是布尔类型,值为"0"或者"1",代表打开/关闭;枚举类型对应枚举项的键值(例如 "1",代表中速档位);数组类型是以英文逗号分隔的字符串。
 # id      标识符,产品详情中查看物模型,对应物模型的标识符
 # value   值,对应物模型中定义,以字符串类型传递
 # remark  可以直接使用订阅到的备注信息,设备日志信息中查看到该备注
 ​
 [{
     "id": "gear",
     "value": "1",
     "remark": "档位设置成功"
 }, {
     "id": "switch",
     "value": "0",
     "remark": "开关已关闭"
 }]

MQTT设备接入详细可看

回到Node-RED拉入MQTT节点配置通信按照MQTT连接参数填写服务端信息,设备发布数据到云平台的主题

img

img

img

部署后显示已连接

img

迅通云平台也显示在线

img

配置数据上传格式,拉入函数节点将仿真设备数据转化成设备发布数据到云平台的格式

img

img

img

迅通云->设备数据下发格式(控制设备)

设备订阅云平台下发消息的主题为

 /{productId}/{deviceNum}/function/get   平台订阅指令

云平台下发的格式为

  • 订阅平台指令,对应主题:/{productId}/{deviceNum}/function/get

解释# 描述:属性、功能、事件都属于物模型,Json定义是一样的。例如都订阅到消息打开开关,设备的处理都是把开关打开。   
 # id      标识符,产品详情中查看物模型,对应物模型的标识符
 # value   值,对应物模型中定义,以字符串类型传递
 # remark  平台中告警、场景联动和定时下发的指令有备注信息
 ​
 [{
     "id": "gear",
     "value": "1",
     "remark": "设备定时"
 },{
     "id": "switch",
     "value": "0",
     "remark": "场景联动触发"
 }]

网迅通物联网虚拟仿真系统控制格式

{"设备名":{"value":数值}}

 例如
 {
 "fan":{"value":1}  
 }

拉入MQTT订阅主题,选择相同的通信服务端,订阅对应主题:/{productId}/{deviceNum}/function/get

img

MQTT节点

img

函数节点

img

HTTP节点

img

img

演示效果

标签:仿真,平台,编程,迅通云,value,MQTT,可视化,数据,设备
From: https://blog.csdn.net/lin_yu_cheng/article/details/141685131

相关文章

  • 【愚公系列】《AIGC辅助软件开发》002-AI智能化编程助手:GitHub Copilot
    ......
  • 【愚公系列】《AIGC辅助软件开发》002-AI智能化编程助手:GitHub Copilot
    ......
  • 从匿名内部类到Lambda表达式:Java编程的优雅进化
    匿名内部类首先我们先来介绍一下什么是匿名内部类匿名内部类:java中一种特殊的类定义方式,它允许你在需要实现一个接口或继承一个类的地方直接定义一个该接口或类的匿名子类。若想创建一个派生类的对象,并且对象只创建一次,可以设计为匿名内部类,可以大大简化代码注意:匿名内部类......
  • 《C++模板元编程:编程世界的魔法艺术》
    在C++的广阔编程领域中,模板元编程犹如一种神秘而强大的魔法艺术,为开发者打开了一扇通往极致性能与高度灵活性的大门。那么,究竟什么是模板元编程?又该如何在C++中进行模板元编程呢?首先,让我们来理解一下模板元编程的概念。模板元编程是一种在编译期进行计算和代码生成的技术......
  • Linux学习(15)-网络编程:滑动窗口、拥塞控制、udp
    本节学习内容1.滑动窗口(1.滑动窗口的作用2.如果如果接收端填充的接收窗口为0,发送端接下来怎么处理3.糊涂窗口综合征4.tcp中nagle算法是什么)2.拥塞控制3.udp协议特点及编程流程本节可能会用到的指令ifconfig查看自己的ip地址ping+ip地址验证通信是否连接netstat-natp显......
  • 雅思口语与写作模版-编程话题 All In One
    雅思口语与写作模版-编程话题AllInOneIELTSWhatisProgramming?Programmingisacollaborationbetweenhumansandcomputers.编程是人与计算机之间的协作。CONCLUSIONAsprogrammingbecomesalargerpartofourlives,it’svitalthateveryonehasanunders......
  • Python可控制线程与TCP服务单元编程
    大家好,我之前在我的CSDN博客上面发了一条《C++可控制线程》的文章,里面介绍了在线程中植入类似状态机的东西,进而将多线程编程进化为“服务单元”编程的技术。接下来我们来看一个基于此项目的Python的TCP服务单元代码。------------------------------------------------------......
  • CUDA编程结构、存储管理、线程管理杂谈
    CUDA编程结构、存储管理、线程管理杂谈CUDA编程结构一个异构环境,通常有多个CPU多个GPU,他们都通过PCIe总线相互通信,也是通过PCIe总线分隔开的。所以要区分一下两种设备的内存:1)主机:CPU及其内存2)设备:GPU及其内存这两个内存从硬件到软件都是隔离的(CUDA6.0以后支持统一寻址),目前先......
  • MISRA-C编程规范
    1MISRA-C概述1.1背景与目的MISRA-C全称MotorIndustrySoftwareReliabilityAssociation(汽车工业软件可靠性协会),是由汽车制造商、零部件供应商、工程咨询师代表组成的联盟,旨在"推动开发安全相关的嵌入式软件在车辆及其他嵌入式系统中的最佳实践"。MISRAC起源于汽车制造......
  • 终于!我找到了开发的得力助手!阿里云天池云原生编程挑战赛参赛攻略
    作者:ysevenk_7参赛准备我是机缘巧合在 6月底了解到了天池云原生编程挑战赛,于是乎搜了一下,之前本人对于比赛并没有太多经验,看了大赛介绍之后莫名兴奋,果断拉了队友报名,完成认证、起队名、下载插件注册等准备任务,然后根据官方给出的赛题进行选择,由于我对开源的经验非常少,束手束脚......