MQTTfx连接oneNET

2023-10-23 22:30
文章标签 连接 onenet mqttfx

本文主要是介绍MQTTfx连接oneNET,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MQTTfx连接OneNET

一、背景介绍

1. MQTT协议简介:

MQTT(Message Queuing Telemetry Transport)是一种轻量级的发布/订阅协议,该协议构建于TCP/IP协议之上,专门设计用于在低带宽、高延迟或不稳定网络环境下进行消息传递。它适用于物联网(IoT)应用、传感器网络和各种需要实时通信的场景。MQTT 协议的设计目标是简单、轻量级和高效,以便在资源受限的设备上使用。工作原理如下:

  • 发布者Pubilsh:发布者是负责发布消息的设备或应用程序。发布者将消息发送到特定的主题(Topic),然后消息代理(Broker)负责将这些消息传递给已订阅该主题的订阅者。发布者负责确定发布消息的主题以及消息内容。

  • 订阅者Subscribe:订阅者是希望接收特定主题下消息的设备或应用程序。订阅者通过订阅一个或多个主题来表示它们对某些消息感兴趣。当消息代理接收到发布者发布的消息时,它会将消息传递给所有已订阅该主题的订阅者。

2. 写此篇文章的目的:

相信很多小伙伴刚接触物联网云平台的时候。和我一样,一头雾水,不知从何下手,而且很多时候,我们是需要利用单片机(STM32、ESP32等)编程,或者开发一些软件来实现与物联网云平台的连接,进行数据的传输,其中我们可能就会使用到一些连接云平台的协议,比如HTTP、MQTT、CoAp、LwM2M等,其中最为常见的就是利用MQTT协议来连接云平台。但是对于新手来说,直接进行开发,很容易产生一些细节上的错误,而且不容易发现错误的原因,这样只会事倍功半,因此再进行实际开发之前,很有必要了解一下其中的工作细节,因此,本篇文章的主要目的是通过简单完整的OneNET云平台产品的创建,以及使用MQTTfx工具来连接oneNET云平台,进行数据的发布,并在云平台上实时显示上传的数据。

二、基本流程

1. OneNET云平台产品创建

  • 注册并登录OneNET云平台
  • 创建产品
  • 配置产品
  • 创建设备
  • 获取产品信息(产品ID、设备名称、设备密钥)

2. MQTTfx连接OneNET云平台

  • 工具准备(MQTTfx、token)
  • 连接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中就可以正常使用这个工具了。

  • 将下面信息填写完整即可,Licence Type选择三个月免费

在这里插入图片描述

  • 复制粘贴licence key,就可以啦
    在这里插入图片描述

(2)点击设置进入MQTT连接设置
在这里插入图片描述

(3)参数设置如下

  • 对于OneNET云平台的MQTT服务器地址,按照下图②填写就好,也可以去官网获取:OneNET - 中国移动物联网开放平台 (10086.cn)

  • Client ID需要填写你自己的设备名称

  • User Name也要填写你自己的产品ID

  • Password填写由设备密钥经过转换而来的token
    在这里插入图片描述

  • Password的转换步骤

    • 为便于开发者开发,OneNET平台提供Token生成工具,下载连接:https://linklab.tinylink.cn/static/teacherResources/dai/selfExps/v354/v354.html?time=1693525801531

在这里插入图片描述

  • token由多个参数构成,如下表所示:

在这里插入图片描述

  • token参数填写如下:时间戳转换工具地址:https://tool.lu/timestamp/
    • 这里填写的时间戳,其实就是限制了通过这个密钥可以连接产品的时间范围,列如下图所示的时间范围就是2025-08-31之前

在这里插入图片描述

  • 具体填写内容如下
    • token计算工具参数填写,分别填写以下信息即可,填写完参数之后点击Generate即可获得我们想要的token(序号⑤),此时将序号⑤中的内容复制粘贴到MQTTfx的密码中即可完成参数配置

在这里插入图片描述

(4)连接云平台

  • 点击connect连接云平台

在这里插入图片描述

(5)将数据发布到云平台

  • 连接正常之后,右上角的圆圈变绿
  • 将数据发布到云平台之前,可以先进行设备属性上报响应订阅,在Subscribe中输入订阅命令$sys/{pid}/{device-name}/thing/property/post/reply,其中的产品ID以及设备名称填写自己的,订阅成功之后,会显示Mute,
  • 详细的介绍以及数据格式建议大家去OneNET官网查看,OneNET - 中国移动物联网开放平台 (10086.cn)

在这里插入图片描述

  • 发布数据:

  • 发布主题格式:$sys/{pid}/{device-name}/thing/property/post

  • JSON数据格式填写

    {
    "id": "123",
    "version": "1.0",
    "params": {
    "currentHumidity": {
    "value": 99,
    "time": 1695349821000
    },
    "currentTemperature": {
    "value": 79,
    "time": 1695349821000
    }
    }
    }
    

在这里插入图片描述

  • 在Subscribe中可以查看发布成功与否的状态,“msg”后跟“success”表示成功,如果不成功,可以根据响应信息进行修改,这也是在正式开始编程之前,我们需要先使用这个工具来熟悉MQTT连接oneNET云平台的原因

在这里插入图片描述

  • 此时,我们就可以在云平台看到刚才发布的数据了

在这里插入图片描述

四、总结

  • 经过以上的流程,我们已经大致了解了通过MQTT连接OneNET云平台的基本流程,知道了MQTT连接云平台时需要获取哪些信息,以及发布数据所需要的JSON格式如何书写,在以后我们需要使用WiFi模块,或者NB模块,4G模块等来连接OneNET云平台时,我们就知道该给这些模块发送什么样的指令来连接云平台,数据需要封装成什么样式才能被云平台接收,并解析出来。

  • 遇到问题没法解决的时候多看官方文档

这篇关于MQTTfx连接oneNET的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/270866

相关文章

W外链微信推广短连接怎么做?

制作微信推广链接的难点分析 一、内容创作难度 制作微信推广链接时,首先需要创作有吸引力的内容。这不仅要求内容本身有趣、有价值,还要能够激起人们的分享欲望。对于许多企业和个人来说,尤其是那些缺乏创意和写作能力的人来说,这是制作微信推广链接的一大难点。 二、精准定位难度 微信用户群体庞大,不同用户的需求和兴趣各异。因此,制作推广链接时需要精准定位目标受众,以便更有效地吸引他们点击并分享链接

Java 连接Sql sever 2008

Java 连接Sql sever 2008 /Sql sever 2008 R2 import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class TestJDBC

实例:如何统计当前主机的连接状态和连接数

统计当前主机的连接状态和连接数 在 Linux 中,可使用 ss 命令来查看主机的网络连接状态。以下是统计当前主机连接状态和连接主机数量的具体操作。 1. 统计当前主机的连接状态 使用 ss 命令结合 grep、cut、sort 和 uniq 命令来统计当前主机的 TCP 连接状态。 ss -nta | grep -v '^State' | cut -d " " -f 1 | sort |

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

nginx长连接的问题

转自: http://www.360doc.com/content/12/1108/17/1073512_246644318.shtml

NGINX轻松管理10万长连接 --- 基于2GB内存的CentOS 6.5 x86-64

转自:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=190176&id=4234854 一 前言 当管理大量连接时,特别是只有少量活跃连接,NGINX有比较好的CPU和RAM利用率,如今是多终端保持在线的时代,更能让NGINX发挥这个优点。本文做一个简单测试,NGINX在一个普通PC虚拟机上维护100k的HTTP

TL-Tomcat中长连接的底层源码原理实现

长连接:浏览器告诉tomcat不要将请求关掉。  如果不是长连接,tomcat响应后会告诉浏览器把这个连接关掉。    tomcat中有一个缓冲区  如果发送大批量数据后 又不处理  那么会堆积缓冲区 后面的请求会越来越慢。

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed

DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed 文章目录 DBeaver 连接 MySQL 报错 Public Key Retrieval is not allowed问题解决办法 问题 使用 DBeaver 连接 MySQL 数据库的时候, 一直报错下面的错误 Public Key Retrieval is

Github连接方式

打开Linux中git的配置文件: /home/username/git/MyRepository/.git/config [core]repositoryformatversion = 0filemode = truebare = falselogallrefupdates = true[remote "origin"]fetch = +refs/heads/*:refs/remot

ora-01017 ora-02063 database link,oracle11.2g通过dblink连接oracle11.2g

错误图示: 问题解决 All database links, whether public or private, need username/password of the remote/target database. Public db links are accessible by all accounts on the local database, while private