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

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

OneNet平台创建MQTT产品与设备(OneNet平台功能好多啊啊啊啊啊!)
添加产品
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第1张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第2张图片

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第3张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第4张图片
添加设备
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第5张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第6张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第7张图片
记录几个重要数据:
产品ID:
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第8张图片

设备名称:
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第9张图片点击详情
设备KEY:
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第10张图片
我这里分别为
产品ID:490968
设备名称:Car1
设备的KEY:3mq9UGgK39bNoUQHq/AW/ocDW9rPNP35+b08h8riuzY=
接下来要使用这些数据

模拟软件下载设置:

MQTT客户端1.7.1下载:MQTT客户端1.7.1下载地址
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第11张图片
下载完成,点击安装(可一路默认即可,也可以选择更换路径,这里不在赘述)
完成安装,打开
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第12张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第13张图片
这里的Client ID应为Car1(手误填写错误)
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第14张图片

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

Broker Address:183.230.40.96
Broker Address连接地址也可以是域名:mqtts.heclouds.com
Broker Prot(端口):1883 (8883需要证书)
这里用的是非加密接口,加密接口需要下载安装证书。
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第15张图片
还差个password ,需要用token算法获取
OneNET提供token生成工具(点击下载)token生成工具

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第16张图片

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

2、填入时间戳

在线时间戳:时间戳

只要比当前时间大即可

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

填到MQTT.fx的密码处
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第17张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第18张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第19张图片

在OneNet设备处即可看到设备已上线
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第20张图片
模拟收发命令
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 订阅
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第21张图片

设备数据点上传

选择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,上传数据点至平台
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第22张图片

完成后,可以通过 Subscribe可以接收到平台下发的上传结果通知,若通过…/accepted topic接收到消息,则表明平台处理消息成功
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第23张图片

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第24张图片

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

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第25张图片

同步命令
通过 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/#

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

OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第26张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第27张图片

订阅收到的平台下发的命令
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第28张图片
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第29张图片

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

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

$sys/490968/Car1/cmd/response/17ddc21d-ee90-4b6f-9b07-a97144ee74e9
注意是response
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第30张图片

返回成功,完成!
OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令_第31张图片

参考

你可能感兴趣的:(云平台,学习,物联网,iot)