物联网虚拟仿真系统工作准备
进入物联网虚拟仿真系统,拉入传感器并正确接好线后,双击配置仿真设备的随机值。
打开物联网虚拟仿真系统本地工具,开启HTTP Server的服务于HTTP端口后,即可看到数据存入客户端
在网页上搜索本地IP:8000
的网址,即可看到JSON格式的仿真设备数据。
进入可视化编程
Node-RED作为数据传输中转站,处理数据将数据最后通过MQTT上传至迅通云平台。
如有网迅通GW56网关,即可直接进入Node-Red可视化编程。 如果没有要去官网下载本地Node-Red
本次案例实验使用的是网迅通GW56网关的可视化编程
首先进入Node-RED,通过HTTP进行GET请求读取仿真数据
拉入时间戳节点作为触发,HTTP节点读取,将数值打印出来。
双击HTTP节点进行配置
部署后即可看到仿真数值在调试窗口中打印出来。
迅通云工作准备
创建产品
导入通用物模型
模型类别
属性:大部分适用于只可读的传感器设备。设定整数或小数数据类型即为仪表盘展示。
功能:适用于控制设备,设定整数或小数数据类型即为滑杆发送数据。
模型特征
图表展示:设备详细中以图表方式显示
实时监测:实时显示监测数据,但是不会存储到数据库
只读数据:设备上报数据,但是平台不能下发指令
历史存储:设备上报的数据会存储到数据库作为历史数据
分享权限:设备分享时需要指定是否拥有该权限
导入完通用物模型后,发布产品。
创建设备
根据上一节创建完产品后,我们可以创建设备。进入到产品管理,找到创建的产品点击查看设备。
创建产品详细操作可查看:创建产品
新增完后是未激活状态,当MQTT连接上后,就能自动激活
通信连接
设备->迅通云数据上报格式(读取设备)
在 MQTT
接入方式中,设备需要和云平台建立 TCP
长连接,并通过 MQTT
协议特有的方式完成身份认证。当设备成功连接到云平台后,通过 发布
和 订阅
相应的 主题(Topic)
,来完成和云平台的消息通信。
已数据上报为例,如果采用 MQTT
方式上报,设备首先要和云平台建立MQTT
连接,创建好设备后查看设备详情页,点击认证信息即可知道用户名
、密码
以及client ID
。
点击认证信息,查看MQTT连接参数
{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连接参数填写服务端信息,设备发布数据到云平台的主题
部署后显示已连接
迅通云平台也显示在线
配置数据上传格式,拉入函数节点将仿真设备数据转化成设备发布数据到云平台的格式
迅通云->设备数据下发格式(控制设备)
设备订阅云平台下发消息的主题为
/{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
MQTT节点
函数节点
HTTP节点