OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令

OneNet平台创建MQTT产品与设备(OneNet平台功能好多啊啊啊啊啊!)
添加产品
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
添加设备
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记录几个重要数据:
产品ID:
在这里插入图片描述

设备名称:
在这里插入图片描述点击详情
设备KEY:
在这里插入图片描述
我这里分别为
产品ID:490968
设备名称:Car1
设备的KEY:3mq9UGgK39bNoUQHq/AW/ocDW9rPNP35+b08h8riuzY=
接下来要使用这些数据

模拟软件下载设置:

MQTT客户端1.7.1下载:MQTT客户端1.7.1下载地址
在这里插入图片描述
下载完成,点击安装(可一路默认即可,也可以选择更换路径,这里不在赘述)
完成安装,打开
在这里插入图片描述
在这里插入图片描述
这里的Client ID应为Car1(手误填写错误)
在这里插入图片描述

Client ID: 设备名称 (刚刚的设备名Car1)
User Name:产品的ID 490968

Broker Address:183.230.40.96
Broker Address连接地址也可以是域名:mqtts.heclouds.com
Broker Prot(端口):1883 (8883需要证书)
这里用的是非加密接口,加密接口需要下载安装证书。
在这里插入图片描述
还差个password ,需要用token算法获取
OneNET提供token生成工具(点击下载)token生成工具

在这里插入图片描述

1、填入products/产品ID/devices/设备名称

2、填入时间戳

扫描二维码关注公众号,回复: 15451700 查看本文章

在线时间戳:时间戳

只要比当前时间大即可

将获取的结果
version=2018-10-31&res=products%2F490968%2Fdevices%2FCar1&et=1745931967&method=md5&sign=qI5jZR0Qu0MqntWog3p87w%3D%3D

填到MQTT.fx的密码处
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在OneNet设备处即可看到设备已上线
在这里插入图片描述
模拟收发命令
OneNet平台提供的流程
为了确保设备上传消息确实被平台所接受处理,设备可以订阅系统 topic 获取上传数据点结果消息;(就是说,先订阅平台这个主题($sys/{pid}/{device-name}/dp/post/json/+),当有其他结点发送给平台关于这个主题的消息时,其他订阅该主题的用户及现在创建的订阅可以查看到此消息)
选择Subscribe项,输入订阅topic名称

topic 命名规则如下:

$sys/{pid}/{device-name}/dp/post/json/+

本例中,订阅topic为:

$sys/490968/Car1/dp/post/json/+

点击 Subscribe,完成 topic 订阅
在这里插入图片描述

设备数据点上传

选择Publish项,输入发布 topic

topic 命名规则如下:
$sys/{pid}/{device-name}/dp/post/json
本例中,发布 topic 名称为:
$sys/490968/Car1/dp/post/json

payload示例如下:
此处节点id为123
{
“id”: 123,
“dp”: {
“temperatrue”: [{
“v”: 30,
}],
“power”: [{
“v”: 4.5,
}]
}
}

点击 Publish,上传数据点至平台
在这里插入图片描述

完成后,可以通过 Subscribe可以接收到平台下发的上传结果通知,若通过…/accepted topic接收到消息,则表明平台处理消息成功
在这里插入图片描述

在这里插入图片描述

控制台查看数据
上传数据成功后,可以通过控制台 设备列表 -> 数据流,查看设备上传的数据点

在这里插入图片描述

同步命令
通过 MQTT.fx 实例,介绍如何通过设备同步命令下发命令与获取设备应答

订阅设备命令topic
建立设备连接之后,获取设备命令前,必须先订阅系统命令topic:$sys/{pid}/{device-name}/cmd/request/{cmdid}

topic中{cmdid}为变量,为每条命令的唯一id,可通过通配符的方式进行订阅,比如: s y s / p i d / d e v i c e − n a m e / c m d / r e q u e s t / + , 或 者 sys/{pid}/{device-name}/cmd/request/+,或者 sys/pid/devicename/cmd/request/+sys/{pid}/{device-name}/cmd/#

我这里是:

$sys/490968/Car1/cmd/#

控制台下发命令
通过设备列表 -> 更多操作 -> 下发命令,打开命令调试工具

在这里插入图片描述
在这里插入图片描述

订阅收到的平台下发的命令
在这里插入图片描述
在这里插入图片描述

使用MQTT.fx发布消息至对应topic,模拟设备应答(应答内容为abcd)(当平台下发命令给设备时,为了确保命令下发成功,设备会回复给平台该topic下的一条回复信息)(如果不模拟应答,其实设备已经接收到了平台下发的命令,其实我们的目的已经达到了,但是,平台却不确定你有没有收到,因此,需要回复一条信息。),如下图所示:

本例中,应答对应的topic为:

$sys/490968/Car1/cmd/response/17ddc21d-ee90-4b6f-9b07-a97144ee74e9
注意是response
在这里插入图片描述

返回成功,完成!
在这里插入图片描述

参考

猜你喜欢

转载自blog.csdn.net/qq_47128755/article/details/123161178