MQTT 是什么以及它的工作原理

news/2024/11/15 21:34:54/文章来源:https://www.cnblogs.com/cj94/p/18411695
平时学习MQTT或调试设备,推荐一款MQTT工具:MQTT Assistant

MQTT 是什么以及它的工作原理 #

本文介绍了 MQTT 协议。MQTT 代表消息队列遥测传输(Message Queuing Telemetry Transport),是一种适用于物联网设备之间通信的简单消息传递协议。

什么是 MQTT? #

MQTT 代表消息队列遥测传输。MQTT 是一种简单的消息传递协议,专为带宽受限的设备而设计。因此,它是在多个 IoT 设备之间交换数据的完美解决方案。

MQTT 通信作为发布和订阅系统工作。设备发布有关特定主题的消息。订阅该主题的所有设备都会收到该消息。

其主要应用包括发送消息来控制输出、从传感器节点读取和发布数据等等。

MQTT 基本概念 #

在 MQTT 中,您需要了解一些基本概念:

  • 发布/订阅
  • 消息
  • 主题
  • 代理

发布/订阅 #

第一个概念是发布和订阅系统。在发布和订阅系统中,设备可以发布关于某个主题的消息,也可以订阅某个特定主题以接收消息

  • 例如,设备 1 发布某个主题。
  • 设备 2 订阅了设备 1 发布内容的同一主题。
  • 因此,设备 2 接收该消息。

消息 #

消息是您想要在设备之间交换的信息。例如,它可以是命令之类的消息,也可以是传感器读数之类的数据。

主题 #

另一个重要概念是主题。主题是您注册对传入消息的兴趣的方式,或指定要发布消息的位置的方式。

主题用正斜杠分隔的字符串表示。每个正斜杠表示一个主题级别。以下是为您家庭办公室中的灯创建主题的示例:

注意:主题区分大小写,这使得这两个主题有所不同:

如果您想使用 MQTT 打开家庭办公室的灯,您可以想象以下场景:

  1. 设备在 home/office/lamp 主题上发布“开”和“关”消息。
  2. 您有一个控制灯的设备(可以是 ESP32、ESP8266 或任何其他电路板或设备)。控制灯的 ESP32 订阅了同一主题:home/office/lamp。
  3. 因此,当在该主题上发布新消息时,ESP32 会收到“开”或“关”消息并打开或关闭灯。

发布消息的设备可以是 ESP32、ESP8266 或支持 MQTT 的家庭自动化控制器平台,例如 Node-RED、Home Assistant、Domoticz 或 OpenHAB。

代理(Broker) #

最后,另一个重要概念是代理。

MQTT 代理负责接收所有消息、过滤消息、决定谁对它们感兴趣,然后将消息发布给所有订阅的客户端。

您可以使用多种代理。在家庭自动化项目中,我们使用安装在 Raspberry Pi 上的 Mosquitto 代理(https://mosquitto.org/)。您也可以在 PC 上安装 Mosquitto 代理(这不如使用 Raspberry Pi 板那么方便,因为您必须让计算机始终保持运行才能保持设备之间的 MQTT 连接)。

在本地网络上的 Raspberry Pi 上安装 Mosquitto 代理后,您可以在连接到同一网络的 IoT 设备之间交换数据。

您还可以在云中运行 Mosquitto MQTT 代理。在云中运行 MQTT Mosquitto 代理后,您可以使用不同的网络从任何地方连接多个 IoT 设备,只要它们有互联网连接即可。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 原文链接:https://blog.redisant.cn/

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PbootCMS常用标签大全

PbootCMS 提供了一系列标签来方便地调用网站的各种信息。这些标签分为几个类别,包括公司信息、站点信息、当前栏目标签、指定栏目标签、内容详情页标签和指定内容标签。下面是对这些标签的总结和示例用法。 1. 公司信息标签 这些标签用于调取公司的基本信息。{pboot:companyna…

pbootcms授权码怎么获取

获取 PbootCMS 授权码的过程相对简单,以下是详细的步骤: 1. 上传源码将 PbootCMS 的源码上传到你的服务器,并通过域名访问你的网站。2. 访问授权页面当你首次访问网站时,如果没有授权码,系统会提示你进行授权。3. 获取授权码访问授权页面:根据提示,前往 PbootCMS 官方网…

【Nacos】下载和启动

官网说明文档地址:https://nacos.io/docs/latest/quickstart/quick-start/ Nacos 是“易于构建的云原生平台、配置管理和服务管理平台”。这句话,依据我的理解就是:有部署一个分布式环境很复杂,自己搭建框架对技术和能力要求高。所以,站在巨人肩膀上,你只要知道:如何下载…

Docker 之虚悬镜像

虚悬镜像:仓库名、标签都是 虚悬镜像:仓库名、标签都是 <none>​ 的镜像,俗称 dangling image。 在日常工作中,有很小的概率会出现该类镜像,原因可能是 Dockerfile 有问题,或者构建和删除镜像的时候,出现一些错误。 出现了该种镜像后,为了避免造成影响,建议删除…

如何升级用 Helm 安装的极狐GitLab Runner?

本分分享如何对 Helm 安装的 Runner 进行升级。整个过程分为三步:1、确定 Runner 最新版本或者想要升级的版本是否存在;2、用 Helm upgrade 命令进行升级;3、升级确认。 极狐GitLab 为 GitLab 的中国发行版,中文版本对中国用户更友好,可以一键私有化部署,安装升级详情可以…

InfluxDB UI 设置保留策略

InfluxDB UI 设置保留策略 创建Bucket时设置保留策略 在InfluxDB 2.x的UI中创建Bucket时,你可以直接设置其保留策略。以下是一个基本的步骤指南:登录到InfluxDB UI:使用你的凭据登录到InfluxDB 2.x的Web界面。导航到Buckets页面:在左侧菜单中,找到并点击“Buckets”选项。…

Zabbix-Scheduled reports - Cannot connect to web service

最近使用zabbix创建SchedulReport,完成相关配置进行测试时,总是提示创建失败:Cannot connect to web service: couldnt connect to server Cannot connect to web service: couldnt connect to server而且执行cat /var/log/zabbix/zabbix_web_service.log查看zabbix_web_…

PCB设计过程中过孔

按常规过孔 内径12mil 外径24mil计算 计算过流能力kicad:温升5大约1.0A

PbootCMS无缝sqlite数据库转mysql数据库

将 PbootCMS 的 SQLite 数据库无缝转换为 MySQL 数据库,可以遵循以下步骤。请注意,这里所说的“无缝”转换是指尽可能减少数据丢失和格式错误,但仍然需要确保转换后的数据能够正常工作。以下是详细的转换步骤: 1. 导出 SQLite 数据库打开 SQLiteStudio 或类似工具:使用 SQ…

PbootCMS网站模板如何做好防护

为了保护 PbootCMS 网站模板免受攻击和未经授权的访问,可以采取一系列措施来增强其安全性。以下是根据提供的信息整理的一些推荐做法: 1. 更改敏感文件夹名称更改 data 文件夹名称:将 data 文件夹重命名,例如改为 mubanbaba@data。 修改 config/database.php 文件中相应的地…

PbootCMS用户密码重置工具

1、工具作用: 此工具用于忘记PbootCMS后台用户账号密码时进行重置。 2、使用方法: 1)下载重置工具解压包,解压后将resetpw.php文件直接上传到网站根目录下; 2)在浏览器直接访问访问该文件地址,然后按照页面提示输入相关信息进行重置,此处填写的“数据库配置文件”用于重…

小工具:windows测试自己的网络类型

介绍 NatTypeTester是一款NAT路由类型检测工具,测试NAT类型的小工具,方便与各位玩家判断自己网络是否适用于使用STUN内网穿透。 NAT类型一般分成下列4种: 网络类型1. Full Cone NAT (彻底圆锥型)2. Restricted Cone NAT (详细地址限定圆锥型)3. Port Restricted Cone NA…