概述
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、填入时间戳
在线时间戳:时间戳
只要比当前时间大即可
将获取的结果
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/device−name/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
返回成功,完成!
参考
最后
以上就是拼搏蚂蚁为你收集整理的OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令的全部内容,希望文章能够帮你解决OneNet学习——MQTT.fx模拟连接与上传数据点和接收命令所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复