MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的"轻量级"通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。
介绍
MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。官网链接
MQTT是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件,以解决当前繁重的资料传输协议,如:HTTP。
MQTT作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

特性
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合。
- 对负载内容屏蔽的消息传输。
- 使用TCP/IP提供网络连接。
- 有三种消息发布服务质量:
“至多一次”,消息发布完全依赖底层TCP/IP网络。会发生消息丢失或重复。
“至少一次”,确保消息到达,但消息重复可能会发生。
“只有一次”,确保消息到达一次。在一些要求比较严格的计费系统中,可以使用此级别。 - 小型传输,开销很小(固定长度的头部是2字节),协议交换最小化,以降低网络流量。
- 使用Last Will和Testament特性通知有关各方客户端异常中断的机制。
Last Will:即遗言机制,用于通知同一主题下的其他设备发送遗言的设备已经断开了连接。
Testament:遗嘱机制,功能类似于Last Will。
实现方式
实现MQTT协议需要客户端和服务器端通讯完成,在通讯过程中,MQTT协议中有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。
其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。
MQTT传输的消息分为:主题(Topic)和负载(payload)两部分:
- Topic,可以理解为消息的类型,订阅者订阅(Subscribe)后,就会收到该主题的消息内容(payload);
- payload,可以理解为消息的内容,是指订阅者具体要使用的内容。
客户端可以建立与服务器的连接,订阅主题、接受消息、发布消息等
服务器可以是一个应用程序或一台设备。用于接受来自客户端的网络连接,接受发布的消息、转发订阅相关主题的客户端的消息、等
应用
应用首先需要 MQTT服务器,其次需要客户端
然后要客户端跟服务器进行连接
连接之后就可以 订阅主题 收到该主题发布的信息 ,向特定主题发布信息
MQTT服务器安装
EMQ 是国人开发的 也挺好用的,能够支持连接量比较大的服务
mosquitto 是一个轻量级的服务器 比较小,但是学习也足够了
mqtt服务器 EMQ
(开源物联网 MQTT消息服务器)
EMQ提供了一个后端Web控制台,用户可通过 Web 控制台,查看服务器运行状态、统计数据、客户端(Client)、会话(Session)、主题(Topic)、订阅(Subscription)、插件(Plugin)。
链接
EMQ服务器在Windows搭建
到官网下载好相应版本 然后解压
使用命令行进入到解压路径下 输入
binemqttd.cmd start

然后在浏览器中输入 http://127.0.0.1:18083 即可打开 (默认用户名admin 密码 public)

在安装好服务器端之后,我们使用MQTT的客户端对MQTT服务器的基本功能进行相关的测试。MQTT客户端有不少,比如mosquito提供了命令行,通过命令行工具可以方便地进行测试;最简单的方式可能还是通过可视化的界面对其进行测试,比如MQTTBox
mqtt服务器 mosquitto
一款实现了消息推送协议 MQTT v3.1 的开源消息代理软件,提供轻量级的,支持可发布/可订阅的的消息推送模式
下载地址 http://mosquitto.org/download/
选择win64 版本
安装好之后再安装目录下 打开命令行输入
mosquitto.exe -v 开始运行
订阅主题 新建命令行窗口 输入命令
mosquitto_sub -v -t topicTest #-t后面是主题名称
发布信息 新建命令行窗口 输入命令
mosquitto_pub -t topicTest -m TEset # -m 后面是消息内容 -t 后面是发往的主题名
当发布信息后 订阅的主题将能够显示出来发布的内容

如果关闭最先打开的窗口 则无法发布消息

Ubuntu端 安装使用mosquitto
打开mosquitto服务 sudo service mosquitto start
停止服务 sudo service mosquitto stop
本地的mqtt服务 订阅主题 mosquitto_sub -h localhost -t “mqtt” -v
发布消息 mosquitto_pub -h localhost -t “mqtt” -m “Hello2 MQTT”
公网的mqtt服务 如 test.mosquitto.org
订阅主题 mosquitto_sub -h test.mosquitto.org -t “msg_only_from_me” -v
发布消息到这个主题 mosquitto_pub -h test.mosquitto.org -t “msg_only_from_me” -m “My cat is Luna”
局域网内的mqtt服务器 (设备在同一WiFi下也是在同一局域网 Windows查ip命令 ipconfig Ubuntu查ip命令 ifconfig 可以使用ping ip的方法查看是否在同一局域网)
订阅主题 mosquitto_sub -h 192.168.43.211 -t ‘mqtt’ -v
发布消息 mosquitto_pub -h 192.168.43.211 -t ‘mqtt’ -m ‘hellddo’

(同一局域网内 通过ip加端口可以访问到 该ip设备的服务)
客户端MQTTBox

打开之后如果没有创建主题 会有一个create MQTT Client按钮
指定连接相关信息,包括连接名称(可以随意输入)、协议(选择mqtt/tcp)和主机地址(安装在本地,MQTT缺省端口为1883,所以输入127.0.0.1:1883)没有设置用户名密码 可以不填,然后单击“Save”保存

下面就可以来测试消息发布和订阅了


相应的服务器端也会发生变化
如果使用的不是本地服务器 在host输入服务器的地址
如果服务器需要用户名密码 就在username输入用户名 password输入密码

项目参考代码在下方
更多学习教程
ESP开发学习基础知识
基础知识包括对esp模块的认识与了解 mqtt协议的了解,arduino IDE运用代码编写等等。
- arduino基础学习
- esp系列模块的介绍
- mqtt协议的介绍与使用
- 利用mqtt esp模块 基于arduino IDE开发方法
- esp模块的AT指令 刷固件
- esp模块睡眠模式使用
- esp8266-01s介绍与使用
- esp8266-12f介绍与使用
- NodeMcu介绍与使用
esp开发IOT应用
基于esp8266的模块以及其他模块根据实际的应用场景与需求制作的物联网应用
- 基于FRID arduino 继电器 电磁锁开发的FRID门禁系统
- esp32-cam获取视频流图像处理
- 基于步进电机 esp8266 mqtt开发的自动窗帘控制
- 基于DHT11 Esp8266 mqtt获取室内温湿度
- 基于CCS811 esp8266 mqtt 获取室内空气质量
- 基于红外模块 esp8266 mqtt开发的智能遥控控制
- 基于ws2812 esp8266 mqtt开发的智能多级照明灯
- 基于ws2812 esp8266 mqtt开发的智能多模式氛围灯
- 基于mp3player esp8266 mqtt开发的智能语音播报系统
- IOT综合应用之智慧教室项目开发
如果以上内容对你有帮助或是对IOT开发感兴趣,欢迎关注我。
本人接下来一段时间承接人脸图像处理,IOT开发等相关项目(毕设 比赛等)
有需要可联系qq:1639206518
如果文章有帮助到你,关注 点赞 收藏!
格式化是我们在日常使用电脑时可能会用到的一种操作,无论是清理磁盘空间、安装新系统,还是解决磁盘读写错误,都可能需要格式化。不过,对于一些不熟悉电脑操作的用户来说,格式化听起来可能有些复杂。其实,只要掌握正确的方法,格式化并没有那么困难。本文将带您了解什么是格式化,并一步步讲解如何格式化电脑。
什么是格式化?为什么需要格式化?在开始操作之前,我们需要明确格式化的概念。简单来说,格式化是一种初始化磁盘的过程,它会清空磁盘上的所有数据,同时重新分配存储空间。格式化的主要目的是清除磁盘上的旧数据,或者为新的文件系统做好准备。
![]()
常见格式化场景有哪些呢?首先,大部分情况是为了清空磁盘数据。当磁盘存储空间不足的时候,可以格式化,一键清空所有数据;其次,格式化还是装系统的必要步骤。安装系统的时候会将系统盘(通常是C盘)格式化,然后再写入操作系统。另外,格式化还可以帮助我们修复损坏的文件系统,比如当分区出现错误无法正常访问的时候,我们可以通过格式化将错误修复。最后,格式化还可以改变文件系统类型,比如将磁盘从FAT32格式化为exFAT,或是从NTFS格式化成EXT4。
![]()
接下来为大家演示一下格式化的详细步骤。根据实际需求,格式化可以分为两种:格式化单个磁盘分区(如D盘、E盘)和格式化整个电脑。以下将分别介绍这两种情况的操作步骤。
(一)格式化单个磁盘分区
如果您只是想清理某个分区(如D盘或E盘),操作相对简单。以下是具体步骤:
步骤1,打开“此电脑”或“我的电脑”。在桌面找到“此电脑”图标并双击打开。如果没有该图标,可以按键盘上的 Win + E 快捷键直接打开文件资源管理器。
步骤2,选择需要格式化的磁盘分区。找到您要格式化的磁盘分区(例如D盘),右键单击该磁盘,选择“格式化”选项。
步骤3,设置格式化选项。弹出的格式化窗口中,可以看到以下选项:
- 文件系统: 一般选择NTFS(适合Windows系统),如果是外接设备,也可以选择exFAT或FAT32。
- 分配单元大小: 默认即可,不需要更改。
- 快速格式化: 勾选此选项可以节省时间,但无法彻底清除数据。如果是敏感数据建议取消勾选。
步骤4,确认设置无误后,点击“开始”按钮。系统会提示您格式化将清空所有数据,确认后继续。格式化完成后,系统会弹出提示,点击“确定”即可。
![]()
注意,如果需要将大于32GB的分区格式化为FAT32格式,或是想要在Windows系统下将分区格式化为ext4格式,那么可以使用分区工具免费版进行格式化。
![]()
(二)格式化整个电脑并重装系统
如果您需要对整个电脑进行格式化(包括C盘),通常是为了重装操作系统。以下为具体步骤:
注意:备份重要数据。格式化电脑会删除所有数据,包括个人文件和软件。因此,建议提前备份重要文件到外接硬盘或云存储。
步骤1,准备系统安装介质。您需要准备一个系统安装盘或可启动的U盘安装介质。如果没有,可以通过微软官网工具制作。下载工具后插入U盘并按照提示操作。
步骤2,进入BIOS设置。重启电脑后立即按下快捷键(如 F2、F12 或 Delete,不同品牌有所不同)进入BIOS界面。设置启动顺序为从U盘或光盘启动。启动系统安装程序。插入U盘或光盘后,选择从该设备启动,电脑会自动进入Windows安装界面。
步骤3,格式化硬盘分区。在安装界面中,选择“自定义(高级)安装”。在这里会看到所有分区的列表,选择C盘,点击“格式化”按钮。
如果要删除所有分区,可以依次删除后重新分区。完成系统安装。按照提示完成Windows的安装流程。
总结:格式化不难,关键在细节。无论是清理磁盘空间,还是为安装新系统做准备,格式化都是一种常用且有效的操作方法。通过本文的详细讲解,相信您已经对格式化的步骤和注意事项有了更清晰的认识。最后提醒大家,格式化是不可逆的操作,务必提前备份重要数据。如果您对某些操作不太熟悉,可以寻求专业人士的帮助,确保整个过程安全无误。
评论记录:
回复评论: