MQTT协议(新版)接入OneNET平台
工具准备
- MQTT.fx (用于模拟设备接入)
- token (计算密钥工具)
添加产品
首先我们先进入到中移物联官方网站:https://open.iot.10086.cn/
点击左上角产品服务→基础服务→MQTT物联网套件,然后点击屏幕上方【立即使用】,进入MQTT协议平台
接下来点击屏幕上【添加产品】,如下图添加一个产品,可参考:官方创建产品文档
添加完后,系统会分配一个产品ID,请记住,后面会用上
添加设备
添加完产品之后点击屏幕前【立即添加设备】,点击添加设备,这里的设备名称为:mqtt_001,详细可参考:官方创建设备文档,添加成功后,系统会随机分配一个设备ID,请记住设备ID与设备名称,后面会用到
计算密钥
我们用软件模拟设备登陆OneNET平台,需要用到一个密码,而这个密码需要经过复杂运算获取,密码可以使用工具生成,OneNET官方token算法工具下载链接:token算法工具
打开后,按下图填写生成密码
注意:这些是我个人的信息,不同人操作完后得到的信息均不同,除了设备名称外
个人收集到信息如下:
- 产品ID:534601
- 设备ID:968791073
- 设备名称:mqtt_001
- 设备的key:EzORQcVhnnxPp2SolaHhHdCcmnNWl11KVqykuSAuW30= (可以在设备列表详情查看)
使用MQTT.fx模拟一个设备
MQTT.fx是一款基于Eclipse Paho,使用Java语言编写的MQTT客户端工具。支持通过Topic订阅和发布消息,用来前期和物理云平台调试非常方便
MQTT.fx官方下载链接
下载完成后打开如下图所示:
单击齿轮按钮打开后如下图,并填写如下信息
说明:查找服务器接入地址与端口:https://open.iot.10086.cn/doc/v5/develop/detail/248
单击 【User Credentials】填入登录的用户名与密码
最后单击【OK】按钮完成设置,然后单击【Connect】连接服务器
我们在OneNET平台查看设备状态,可以看到设备显示 “在线”,说明我们已经连接成功
订阅与发布消息
MQTTS物联网套件中设备相关服务(存储、命令等)的面向设备的接口,均以 topic 的形式提供,设备可以通过 publish 消息到系统 topic 调用服务接口,也可以订阅系统 topic 用于接收服务消息通知,服务提供的系统 topic 的集合形成了 topic 簇
MQTTS物联网套件目前包含:数据点topic簇、命令topic簇、子设备topic簇、设备影子topic簇
订阅消息
我们可以给OneNET平台发布与订阅消息,首先我们先订阅消息,然后才能发布消息
设备上传数据点的命名规则如下:
$sys/{pid}/{device-name}/dp/post/json/+
- {pid} 为: 产品ID
- {device-name} 为:设备名称
连接成功后,点击【Subscrube】按钮打开订阅界面面板,按如下图所以填写
发布消息
接下来我们向设备上传数据点,向平台发布一条数据点上传的消息,订阅这条消息的设备将会收到此消息.
发布数据点topic命名规则如下:
$sys/{pid}/{device-name}/dp/post/json
点击【Publish】按钮进入发布界面面板,按如下图所示
{ "id": 001, "dp": { "temperatrue": [{ "v": 30, }], "power": [{ "v": 4.5, }], }}
然后点击【Subscrube】按钮打开订阅面板,如下图所示
可以上传多条数据点,更改ID号与温度:
{ "id": 002, "dp": { "temperatrue": [{ "v": 25, }], "power": [{ "v": 4, }], }}
{ "id": 003, "dp": { "temperatrue": [{ "v": 20, }], "power": [{ "v": 3.5, }], }}查看订阅面板,是否成功上传消息
点击【Log】按钮打开日志消息界面,查看发布消息
在OneNET平台查看上传的数据点
打开设备列表,找到设备名称 ‘mqtt_001’,单击数据流按钮,打开数据流界面面板,如下图:
我们可以看到,我们上传的数据包含有两个类型,一个是temperatrue,另一个是power
点击查看temperatrue数据点
注意:最后三个点是我刚才上传的数据,power也是一样,这里就不演示出来了
来源地址:https://blog.csdn.net/xiaolinmiao0/article/details/125701316
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341