关于前端:DGIOT实战教程MQTT接入

[小 迪 导读]
本教程通过全链路虚拟环境讲述如何用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上查看相干源代码。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理