MQTT.fx实现(MQTT Client)连接物联网平台(ThingsCloud )

news2024/12/31 5:50:34

目录

概述

1 ThingsCloud平台介绍

2 ThingsCloud创建项目

2.1 创建项目

2.2 创建数据类型

2.3 创建设备类型

3 发布和订阅主题

3.1 发布Topic

3.2 订阅主题Topic

4 使用MQTT.fx 测试ThingsClond

4.1 使用MQTT.fx连接ThingsClond

4.2 MQTT.fx 订阅ThingsCloud Message

4.2.1 订阅下发属性

4.2.2 使用MQTT.fx接收属性数据

4.3 MQTT.fx 发布messge至ThingsCloud

4.3.1 定义属性数据

4.3.2 使用MQTT.fx发布属性数据


概述

本文介绍了一个可以攻开发者免费试用的物联网平台ThingsCloud,并通过案例介绍使用这个平台创建项目,然后使用MQTT.fx工具实现订阅和发布数据。

1 ThingsCloud平台介绍

ThingsCloud 是新一代物联网设备统一接入平台,帮助企业在极短的时间内搭建个性化的物联网平台和应用,并适应不断变化的发展需求。目前广泛应用于制造、电力、能源、环境、农业、楼宇、家居、教育、交通、物流、自动化等领域。

ThingsCloud 可接入各类网关,传感器、执行器、控制器、通信模组、智能硬件等,实现数据采集、远程控制,数据分析、告警通知、智能联动。还可以零代码生成项目应用 SaaS 和用户应用 App,并开放 API 和实时消息,便于业务系统集成和扩展开发。

ThingsCloud 官网地址:

https://www.thingscloud.xyz/

进入官网地址后,点击"进入控制台"按钮,就可以创建自己的项目了

2 ThingsCloud创建项目

2.1 创建项目

ThingsCloud提供两种版本可供用户选择: 免费版付费版 。但对于仅用于测试或者评估的开发者而言,免费版功能已经够用了。

免费版包含较少的设备数和消息量,以及部分高级功能的限制,但完全不影响您对物联网平台基本功能的评估和体验,以及硬件原型的开发,或少量设备的个人使用。一个用户账号下只可以创建一个免费版项目

首次登录ThingsCloud后,需要创建自己的项目,才能使用它提供的服务。进入控制台后。看见如下页面,点击“创建项目” button就可以创建项目了。

下面我创建测试项目,实现功能:基于MQTT.fx测试平台搭建一个物联网项目,连接TingsCloud。通信协议:MQTT;实现功能:数据的发布和订阅。

具体操作步骤如下:

Step-1: 填写项目信息

2.2 创建数据类型

创建设备类型,定义订阅数据和发布数据的类型,这里我选择使用ThingsCloud标准协议,当然还有其他协议可供选择。

选择如下选项后,点击保存,数据类型定义完成

2.3 创建设备类型

在 ThingsCloud 中,设备代表一个物理设备在云平台对应的一个实体,这个物理设备可以是一个光照传感器或智能开关,也可以是一个智能水表或网关。

创建设备时,必须填写设备名称,并选择数据类型。

创建完毕之后,可以在如下页面中看见创建设备的信息

3 发布和订阅主题

3.1 发布Topic

以下主题用于 设备向云平台发布消息。 请注意,以下主题只能用于设备端发布消息,不能订阅。

消息类型主题
设备上报属性值attributes
设备获取当前属性值attributes/get/
设备上报事件event/report/
设备回复命令command/reply/
设备自定义数据上报data/

3.2 订阅主题Topic

以下主题用于 设备接收云平台下发的消息

消息类型主题注释
接收属性上报的响应attributes/response
接收属性获取的响应attributes/get/response/+
接收下发的属性attributes/push
接收事件上报的响应event/response/+
接收下发的命令command/send/+
接收命令回复的响应command/reply/response/+
接收自定义数据下发data/< identifier>/set自定义数据相关主题中的 identifier,是指自定义数据流的标识符

4 使用MQTT.fx 测试ThingsClond

4.1 使用MQTT.fx连接ThingsClond

在ThingsClond上创建设备类型完毕之后,就可以使用MQTT.fx来连接ThingsClond平台,具体连接方法如下:

step-1: 在MQTT.fx上配置Broker address

step-2: 在MQTT.fx上配置用户认证信息

step-3: 确认参数配置后,点击connect连接平台,指示灯变成绿色说明,连接平台成功,这时可以使用MQTT.fx工具订阅或者发布message。

4.2 MQTT.fx 订阅ThingsCloud Message

4.2.1 订阅下发属性

在MQTT.fx 上订阅这种类型的数据,其定义如下:

attributes/push

ThingsCloud下发的数据类型如下:

{
    "switch": false
}

4.2.2 使用MQTT.fx接收属性数据

首先在MQTT.fx订阅下图标号为1的属性,订阅成功后,窗口会列出标号为2的信息,此时说明订阅属性成功。接下来可以在ThingsCloud平台上发布属性数据了。

在ThinsCloud平台上已经定义两个Relay类型的设备,现在使用期发布message。

使用Relay-1发布消息

使用Relay-2发布消息

4.3 MQTT.fx 发布messge至ThingsCloud

4.3.1 定义属性数据

发布如下属性的数据至ThingsCloud,属性规则如下:

attributes

消息内容必须是 JSON 格式,如果不是 JSON 格式的消息,设备会被云平台主动断开连接。 该属性对应的上报消息如下:

{
    "temperature": 28.5,
    "light": 2000,
    "switch": true
}
 

4.3.2 使用MQTT.fx发布属性数据

在MQTT.fx的publish页面填写属性信息和要发布的数据,点击Publish后,MQTT.fx立即发布了数据。

在ThingsCloud平台上,可以看见页面上显示的数据,和MQTT.fx发布的数据一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1517819.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity资源热更新----AssetBundle

13.1 资源热更新——AssetBundle1-1_哔哩哔哩_bilibili Resources 性能消耗较大 Resources文件夹大小不能超过2个G 获取AssetBundle中的资源 打包流程 选择图片后点击 创建文件夹&#xff0c;Editor优先编译 打包文件夹位置 using UnityEditor; using UnityEngine; public cla…

探索编程新纪元:Code GeeX、Copilot与通义灵码的智能辅助之旅

在人工智能技术日新月异的今天&#xff0c;编程领域的革新也正以前所未有的速度推进。新一代的编程辅助工具&#xff0c;如Code GeeX、Copilot和通义灵码&#xff0c;正在重塑开发者的工作流程&#xff0c;提升编程效率&#xff0c;并推动编程教育的普及。本文将深入探讨这三款…

已解决Keil报错unknown type name “u8“或/u16/u32

出现问题如下所示&#xff0c;提示错误unknown type name “u8“ 解决方法&#xff1a; 在头文件中加入如下即可解决 typedef uint8_t u8; 这个错误通常表示编译器无法识别“u8”这个类型名。在C/C中&#xff0c;通常使用“uint8_t”来表示8位无符号整数类型。如果代码中…

django-q轻量级定时任务制定

django-q ,celery&#xff0c;apschedule都可以作为python的选型&#xff0c;但是django-q更轻量级&#xff0c;可以定制想要的任务&#xff0c;通过消息中间件&#xff0c;来实现不太高并发的实现 官网介绍地址 django-q官网地址 本次测试的是python3.12版本 首先需要安装dja…

ELK日志管理实现的3种常见方法

ELK日志管理实现的3种常见方法 1. 日志收集方法 1.1 使用DaemonSet方式日志收集 通过将node节点的/var/log/pods目录挂载给以DaemonSet方式部署的logstash来读取容器日志,并将日志吐给kafka并分布写入Zookeeper数据库.再使用logstash将Zookeeper中的数据写入ES,并通过kibana…

C语言函数—递归

这方面内容涉及到栈的使用&#xff0c;我们的递归函数如果被执行那么系统将会自动的去创建一个栈&#xff0c;相关内容有机会单独写文章讲解 什么是递归&#xff1f; 程序调用自身的编程技巧称为递归&#xff08; recursion&#xff09;。 递归做为一种算法在程序设计语言中广泛…

基于单片机的恒压供水控制器设计

摘 要 随着我国现代化的进程不断加快&#xff0c;城市居民生活水平不断提高&#xff0c;随之而来的是房屋的翻新和重建&#xff0c;但建筑层数的不断增高&#xff0c;使得供水所需压力不断提高&#xff0c;若建筑设计时对压力判断不足&#xff0c;会导致供水时无法供应到高楼层…

643.子数组最大平均数

题目&#xff1a;给你一个由 n 个元素组成的整数数组 nums 和一个整数k。 找出平均数最大且长度为 k 的连续子数组&#xff0c;并输出该最大平均数。 任何误差小于10^-5 的答案都将被视为正确答案。 解题思路&#xff1a;规定了子数组的长度为k&#xff0c;因此可以通过寻找子…

新冠疫情仍处流行期,防疫不松懈

2024年2月北京市法定传染病疫情概况已公布&#xff0c;全市共报告了21种法定传染病&#xff0c;累计病例数达到88971例&#xff0c;不幸有12人因疾病离世。这些病例主要集中在病毒性肝炎、肺结核、百日咳、梅毒、新型冠状病毒感染、流行性感冒以及其他感染性腹泻病等。 值得一提…

概率论与数理统计(随机事件与概率)

1随机事件与概率 1.1随机事件及其运算规律 1.1.1运算 交换律结合律分配律德摩根律 1.2概率的定义及其确定方法 1.2.1概率的统计定义 频率 设在 n 次试验中&#xff0c;事件 A 发生了(A)次&#xff0c;则称为事件 A 发生的频率。 1.2.2概率的统计定义 在一组恒定不变的条…

Mybatis(搭建,CRUD,方法参数,XML映射文件,动态SQL)【详解】

目录 一.准备基础代码 Mybatis的通用配置 二. 基本CURD操作 1.查询-根据id查询一条 2.查询-查询数量 3.删除 4.新增 获取主键值 5.修改 6.查询-模糊查询 预编译SQL #{}与${}的区别【面试题】 三. Mybatis的方法参数与结果集 1.SQL里取方法参数的值 2.查询结果集…

react native常用插件

react-native-async-storage/async-storage 说明&#xff1a;AsyncStorage 是一个在 react-native 中轻量存储的库&#xff1b;跟 localStorage 类似&#xff0c;API 也几乎一样&#xff1b;存储的时候需要将存储内容转成字符串存储。 react-navigation/material-bottom-tabs …

Ubuntu Flask 运行 gunicorn+Nginx 部署

linux Ubuntu 下运行python 程序出现killed 原因&#xff1a;CPU或内存限制&#xff1a;在华为云上&#xff0c;你可能有CPU或内存使用的限制。例如&#xff0c;如果你使用的是一个固定大小的实例&#xff0c;那么超过该实例的CPU或内存限制可能会导致进程被杀死。 参考&am…

Gateway网关在url参数带有特殊字符的情况下转发失败(响应400)

本文主要分享了&#xff0c;SpringCloud Gateway网关在url参数带有空格或者特殊字符的情况下&#xff0c;转发失败导致响应错误码400的解决方案。 响应400错误码的2种场景&#xff1a; 1.参数带空格&#xff0c;Gateway会误认为该空格是切割符&#xff0c;如?phone 135****6…

基于单片机的公交车IC卡操作系统的设计

目 录 摘 要 III Abstract IV 前 言 1 第一章 绪论 2 1.1 设计的背景和意义 2 1.2 设计的现状和发展 2 1.3 设计的目的与意义 2 第二章 总体设计 4 2.1 总体方案的设计与实现 4 2.1.1 主要设计的内容 4 2.1.2 系统的总体设计 4 2.2 系统方案论证 5 2.2.1 单片机的选择 6 2.2.2…

Java基于微信小程序的电影推荐系统的实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

机器学习 Python库 乱记录

MLFlow—模型实验和跟踪 MLflow是一个平台&#xff0c;帮助你从头到尾管理你的机器学习实验&#xff0c;确保可追溯性和可重复性。它提供了一个集中的存储库&#xff0c;用于存储你的代码、数据和模型工件&#xff0c;以及一个跟踪系统&#xff0c;记录你所有的实验&#xff0c…

【Node.js从基础到高级运用】十一、构建RESTful API

在本篇博客中&#xff0c;我们将综合之前讨论的内容&#xff0c;深入探索如何使用Node.js构建一个RESTful API。我们将重点讨论设计合理的API端点&#xff0c;展示如何通过代码实现这些端点&#xff0c;并指导如何使用Postman测试我们的API&#xff0c;确保其按预期工作。 前提…

Python-sklearn-diabetes项目实战

目录 1 下载数据集和预处理 1.1 加载/下载数据集 1.2 数据可视化 1.3 数据清洗 1.4 特征工程 1.5 构建特征集和标签集 1.6 拆分训练集和测试集 2 训练模型 2.1 选择算法和确定模型 2.2 训练拟合模型 3 评估并优化模型性能 本文以糖尿病数据集diabetes为基础进行线性…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用&#xff1a; 金融市场中的熔断机制&#xff1a;在金融交易系统中&#xff0c;熔断机制&#xff08;Circuit Breaker&#xff09;是一种市场保护措施&#xff0c;旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…