模拟设备MQTT协议接入ONENET最新物联网开发平台操作

2023-12-31 13:18:29

????????Onenet官网提供的帮助文档很多,存在好几种MQTT服务接口,但是阅读起来很容易混乱,有点不方便。官方回复是历史遗留问题,后续接入以最新物联网开发平台为推荐,为此本文用一篇讲述最新ONENET的物联网开发平台MQTT基于物理模型的接入方式。如何在平台上创建产品,并且使用客户端MQTT.x上传数据,通过平台下发设置等操作。

ONENET添加产品操作

一、打开此链接中移坤灵 - 中国移动物联网开放平台注册/登陆一个OneNET账号,来到OneNET首页;

二、登录后点击页面右上角开发者中心,进入操作页面;

三、进入开发者中心后台,把鼠标移动到页面左上角全部产品服务,在下拉菜单栏里点击物联网开放平台

四、进入平台后,点击左侧菜单栏产品开发,进入界面后再点击右侧创建产品

五、选择一个产品品类,列表中的列表时平台对已有对象做了基本的物理模型构建,提供了一个标准模板,这里按需要自己选择,比如我们选择一个温湿度传感器;

六、因为我手上的产品采用的是4G通信,Mqtt协议,JSON自定义格式,所以我们如下这么选择;

七、创建好了,选择产品开发;

八、创建一个物理模型,也可以快递导入已经创建好的模型。物理模型简单理解就是对产品上报的Json格式做的一个解析,通过创建一个物理模型能快速面板化产品数据,以及下发指令。

九、添加一个自定义功能点,功能点类型有3种,属性(解析上报的信息),服务(相当于结构体),事件(特殊数据包,如告警);标识符就是Json关键字,这里我们创建一个温度属性,各一个可读可写的权限,编辑好保存。

十、回到产品开发,点击设备管理,进入到下面这个界面,添加一个设备。

十一、设备名称用于区分设备,建议使用唯一ID。

十二、进入到详情,复制设备密钥与产品ID,这两个参数是用来生成MQTT三要素的。

ONENET相关MQTT参数

? ? ? ?下载工具生成Password?https://open.iot.10086.cn/doc/iot_platform/images/tools/token.exe?,根据设备密钥(Key)与产品ID,生成Password,其中method按需求选择,这里选sha1。

到这里我们获取到了的信息有:

MQTT版本:V3.1.1

IP地址:mqtts.heclouds.com:1883? , Clientid:123456? , Username:jgds5kmEYx

Password:version=2018-10-31&res=products%2Fjgds5kmEYx%2Fdevices%2F123456&et=1703999380&method=sha1&sign=1OGdLg%2BhaJda3xLY1LZ%2B7icC9rY%3D

MQTT.x工具模拟接入数据

免费下载工具链接:MQTTX 下载,把上述参数填入下面这个界面,点击Connect。此时平台显示在线。

如何上报数据?

1.获取相应主题,2.获取报文内容格式,3.上报操作设置。

第一步,获取相应主题,我们回到产品开发,点击下一步。

????????在Topic管理里面有个基于物理模型的界面,其中直连上报属性的订阅与发布主题,就是我们上报需要用到的上报主题,其中直连设备获取期望值的订阅与发布主题,就是我们下发设置需要用到的主题。把题主按格式拼接好如下:

直连设备上报属性:? ? ? ? ? $sys/jgds5kmEYx/123456/thing/property/post

直连设备上报属性响应:? ?$sys/jgds5kmEYx/123456/thing/property/post/reply

第二步,获取报文内容格式。

参数类型说明
idString消息id号,用户自定义,String类型的数字,长度限制13位。
versionString物模型版本号,可选字段,不填默认为1.0
paramsJsonObject请求参数,用户自定义,标准json格式。如以上示例中,设备上报属性TEMP。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。
timeLong属性值生成时间。该参数为可选字段,到豪秒级。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。
valueObject上报的属性值
{
    "id": "1",
    "version": "1.0",
    "params": {
        "TEMP": {
            "value": 21.6,
            "time": 1703995343000
        }   
    }
}

第三步,上报操作设置。?

填入相应的主题内容,收到属性响应Code:200;表示上报数据成功。

我们去到设备管理,属性就能看到数据了。

如何下发数据?

一样的,1.获取相应主题,2.获取报文内容格式,3.下发操作设置。

第一步,相同的方法获取到以下几个主题:

直连设备获取期望值:? ? ? ?$sys/jgds5kmEYx/123456/thing/property/desired/get

直连设备获取期望值响应:$sys/jgds5kmEYx/123456/thing/property/desired/get/reply

第二步,获取报文内容格式。?

{
    "id" : "2",
    "version":"1.0",
    "params" : [
        "TEMP"
    ]
}
参数类型说明
idString消息id号,用户自定义,String类型的数字,长度限制13位。
versionString物模型版本号,可选字段,不填默认为1.0
paramsJsonObject获取属性期望的标识符列表。

第三步,下发操作设置。?

按下图操作,填写一个下发值以后,点击下面有个属性期望值设置的按键。那么平台将会在设置发布获取期望值的主题内容时,就会推送这个消息给设备。

回到MQTT.x工具,把发布主题换成$sys/jgds5kmEYx/123456/thing/property/desired/get,就能收到平台发布我们刚设置的值啦。

?

?????????当然平台还有很多实现其他功能的相应主题,我们可以看这个官方链接了解使用,?查看此链接获取OneNET - 中国移动物联网开放平台 (10086.cn),这里就不多讲了。好了,如果我的文章帮助到你,请点个赞吧,感谢(●'?'●)。

文章来源:https://blog.csdn.net/u014330253/article/details/135216494
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。