[小 迪 导读]:
本教程通过全链路虚拟环境讲述如何用 DG-IoT 开源工业物联网平台实现 MQTT 的接入, 在把握根底概念和业务流程之后,通过模仿软件来进行模仿演练。
零碎须要应用的一个软件:
- MQTT X:MQTT X 是 EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它反对 macOS, Linux, Windows,并且反对 MQTT 音讯格局转换。
零碎架构逻辑图如下,包含设施模仿,通道通信,模型设置,利用显示局部
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404142329.png” >
操作步骤:
本次连贯先介绍平台产品及物模型的配置再介绍 MQTTX。
[小 迪 揭示]:
- 平台将 MQTT 交融到 dgiot 的 DLink 协定中,能够不进行创立通道,间接应用默认的 MQTT 通道即可。
1. 创立产品
1. 要连贯 MQTT,创立一种产品即可
2. 创立产品
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404144055.png” >
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404145793.png” >
mqtt
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/202208240430345.png” >
[小 迪 揭示]:
- 产品增加通道后需对相应的通道进行重启
3. 产品物模型配置
进入产品详情
将以下物模型代码间接复制即可
- MQTT 物模型范例(不抉择 DLink 协定)
{
"properties": [
{
"accessMode": "r",
"dataForm": {
"address": "0X10",
"collection": "%s",
"control": "%d",
"countcollection": "%s",
"countround": "all",
"countstrategy": 20,
"data": "null",
"iscount": "0",
"offset": 0,
"operatetype": "readCoils",
"order": 0,
"originaltype": "short16_AB",
"protocol": "","rate": 1,"round":"all","slaveid":"0X10","strategy":" 被动上报 "},"dataSource": {"": []
},
"dataType": {"das": [],
"specs": {
"max": 100,
"min": 0,
"precision": 3,
"step": 0,
"unit": "℃"
},
"type": "float"
},
"devicetype": "温度",
"identifier": "temp",
"isaccumulate": false,
"isshow": true,
"isstorage": true,
"moduleType": "properties",
"name": "温度",
"required": true,
"updateAt": "1661313208982",
"index": 0
}
]
}
也能够新增自定义物模型
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404171513.png” >
- MQTT 物模型范例(抉择 DLink 协定)
{
"properties": [
{
"accessMode": "r",
"dataForm": {
"address": "0X10",
"afn": "","byteType":"",
"bytelen": "","collection":"%s","control":"%d","countcollection":"%s","countround":"all","countstrategy": 20,"da":"",
"data": "null",
"dt": "","iscount":"0","offset": 0,"operatetype":"readCoils","order": 0,"originaltype":"short16_AB","protocol":"DLINK","rate": 1,"round":"all","slaveid":"0X10","strategy":" 被动上报 "},"dataSource": {"_dlinkindex":"",
"dis": [
{
"data": "2",
"key": "temperature",
"undefined": "2"
}
]
},
"dataType": {"das": [],
"specs": {
"max": 100,
"min": 0,
"precision": 3,
"step": 0,
"unit": "℃"
},
"type": "float"
},
"devicetype": "温度",
"identifier": "temp",
"isaccumulate": false,
"isshow": true,
"isstorage": true,
"moduleType": "properties",
"name": "温度",
"required": true,
"updateAt": "1661313524032",
"index": 0
}
]
}
也能够新增自定义物模型
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404173487.png” >
4. 如何复制物模型
在产品治理 - 配置 - 物模型 - 查看物模型处
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404174837.png” >
将物模型代码复制粘贴即可
<img width=”80%” src=”https://www.dgiotcloud.cn/wp-content/uploads/2022082404175839.png” >
2.MQTTX 下载配置
1)、下载安装 MQTTX。
2)、配置连贯参数。
参数 | 解释 |
---|---|
名称 | 任取即可 |
Client ID | {DeviceAddr}也即设施编号 |
服务器地址 | 服务器地址 |
端口 | 填写 1883 |
用户名 | 产品 id(地位见下图) |
明码 | 产品密钥(地位见下图) |
填写实现后抉择连贯。则会在对应产品下主动创立咱们定义的设施,可在设施治理中查看:
3)、发送信息。
在 MQTTX 中向平台发送信息,报文格式抉择为 JSON。
Topic:
$dg/thing/{productid}/{deviceAddr}/properties/report
报文内容:
{
“标识符”: 值
“标识符”: 值
····
“标识符”: 值
}
topic 中需明确发送信息对应的产品和设施,其中 {productid} 为产品 id,与连贯阶段输出的用户名为同一个,{deviceAddr}为设施地址,也即自定义的设施名。
由 topic 确认了产品与设施后在报文的具体内容中传递属性值。由标识符确认要传递那个属性,并应用””扩起,在: 后填写属性的具体数值。随后抉择发送即可查看到产品的实时数据。
[小 迪 点评]
- dgiot 反对 MQTT 协定的设施接入,不便没有实在设施的用户尝试并进行模仿设施接入演练。
想理解更多 dgiot 的具体细节,欢送大家在 GitHub 上查看相干源代码。