赞
踩
MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅协议,该协议构建于TCP/IP协议之上,专门设计用于在低带宽、高延迟或不稳定网络环境下进行消息传递。它适用于物联网(IoT)应用、传感器网络和各种需要实时通信的场景。MQTT 协议的设计目标是简单、轻量级和高效,以便在资源受限的设备上使用。工作原理如下:
发布者Pubilsh:发布者是负责发布消息的设备或应用程序。发布者将消息发送到特定的主题(Topic),然后消息代理(Broker)负责将这些消息传递给已订阅该主题的订阅者。发布者负责确定发布消息的主题以及消息内容。
订阅者Subscribe:订阅者是希望接收特定主题下消息的设备或应用程序。订阅者通过订阅一个或多个主题来表示它们对某些消息感兴趣。当消息代理接收到发布者发布的消息时,它会将消息传递给所有已订阅该主题的订阅者。
相信很多小伙伴刚接触物联网云平台的时候。和我一样,一头雾水,不知从何下手,而且很多时候,我们是需要利用单片机(STM32、ESP32等)编程,或者开发一些软件来实现与物联网云平台的连接,进行数据的传输,其中我们可能就会使用到一些连接云平台的协议,比如HTTP、MQTT、CoAp、LwM2M等,其中最为常见的就是利用MQTT协议来连接云平台。但是对于新手来说,直接进行开发,很容易产生一些细节上的错误,而且不容易发现错误的原因,这样只会事倍功半,因此再进行实际开发之前,很有必要了解一下其中的工作细节,因此,本篇文章的主要目的是通过简单完整的OneNET云平台产品的创建,以及使用MQTTfx工具来连接oneNET云平台,进行数据的发布,并在云平台上实时显示上传的数据。
1、注册并登录OneNET云平台,进入开发者中心
2、创建产品
(1)首先找到产品开发,然后点击创建产品
(2)创建产品,参数大致如下,填写完成之后点击确定即可
3、配置产品
(1)创建完产品之后,点击产品开发,开始创建物模型
(2)点击设置物模型
(3)首先点击“添加自定义功能点”,然后开始填写物模型的相关信息,大致参数信息填写如下,(注意:读写类型设置为读写),按照此方法继续添加当前湿度的物模型
(4)模型创建完之后点击下一步进入设备开发。记住下图中的标识符,这是在发布JSON消息时数据发布的重要依据。
(5)点击前往设备开发
(6)选择基于模组开发,任意选择一个模组就行,然后点击确定
(7)上一步完成之后,可跳过设备调试,直接点击发布量产,然后点击发布,发布成功之后点击设备管理,添加设备
4、创建设备
(1)点击添加设备,然后输入设备名称即可
(2)设备添加成功之后,可以看到当前显示未在线, 因为我们还没有使用设备去连接它,然后点击“详情”查看设备的相关信息,设备端通过MQTT连接云平台的时候需要这些信息
5、获取产品信息
(1)记录设备名称、设备秘钥以及产品ID、以便后续使用
6、下载安装MQTTfx工具
(1)工具下载,也可以自行去官网下载,正版的MQTTfx软件需要身份认证,需要购买licence key,但是也可以通过在官网申请三个月的免费试用licence key。没有licence key的MQTTfx工具如下图所示。
官网下载地址:Download – Softblade
百度网盘链接:链接:https://pan.baidu.com/s/1IMiC_HAWYxU-4HAGoldc0Q?pwd=kra2
提取码:kra2
(2)在官网获取免费使用licence key,并将官方发给你的文档(在你填写的邮箱中)中的内容复制到工具中的Licence key中就可以正常使用这个工具了。
(2)点击设置进入MQTT连接设置
(3)参数设置如下
对于OneNET云平台的MQTT服务器地址,按照下图②填写就好,也可以去官网获取:OneNET - 中国移动物联网开放平台 (10086.cn)
Client ID需要填写你自己的设备名称
User Name也要填写你自己的产品ID
Password填写由设备密钥经过转换而来的token
Password的转换步骤
(4)连接云平台
(5)将数据发布到云平台
发布数据:
发布主题格式:$sys/{pid}/{device-name}/thing/property/post
JSON数据格式填写
{
"id": "123",
"version": "1.0",
"params": {
"currentHumidity": {
"value": 99,
"time": 1695349821000
},
"currentTemperature": {
"value": 79,
"time": 1695349821000
}
}
}
经过以上的流程,我们已经大致了解了通过MQTT连接OneNET云平台的基本流程,知道了MQTT连接云平台时需要获取哪些信息,以及发布数据所需要的JSON格式如何书写,在以后我们需要使用WiFi模块,或者NB模块,4G模块等来连接OneNET云平台时,我们就知道该给这些模块发送什么样的指令来连接云平台,数据需要封装成什么样式才能被云平台接收,并解析出来。
遇到问题没法解决的时候多看官方文档
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。