DGIOT实战教程——MQTT接入
[小 迪 导读]:
本教程通过全链路虚拟环境讲述如何用DG-IoT开源工业物联网平台完成MQTT的接入,在掌握基础概念和业务流程之后,通过模拟软件来进行模拟演练。
系统需要使用的一个软件:
- MQTT X:MQTT X 是EMQ 开源的一款跨平台 MQTT 5.0 客户端工具,它支持 macOS, Linux, Windows,并且支持 MQTT 消息格式转换。
系统架构逻辑图如下,包括设备模拟,通道通信,模型设置,应用显示部分
操作步骤:
本次连接先介绍平台产品及物模型的配置再介绍MQTTX。
[小 迪 提醒]:
- 平台将MQTT融合到dgiot的DLink协议中,可以不进行创建通道,直接使用默认的MQTT通道即可。
1.创建产品
1.要连接MQTT,创建一种产品即可
2.创建产品
mqtt
[小 迪 提醒]:
- 产品添加通道后需对相应的通道进行重启
- 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
        }
    ]
}- 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
        }
    ]
}也可以新增自定义物模型
4.如何复制物模型
在产品管理-配置-物模型-查看物模型处
将物模型代码复制粘贴即可
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协议的设备接入,方便没有真实设备的用户尝试并进行模拟设备接入演练。
 
                    
                















 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号