MQTT协议基础学习

MQTT物联网 MQTT物联网简介 阅读详情
AI摘要

本文详细介绍了MQTT协议的工作原理,包括服务端和客户端的角色、主题的管理、QoS服务质量等级、发布/订阅过程、以及遗嘱和心跳机制的应用。

MQTT是什么

MQTT是一个客户端服务端架构的发布/订阅模式的消息传输协议。

MQTT基本原理

在这里插入图片描述

MQTT服务端

  • MQTT服务端通常是一台服务器,可对MQTT信息的接收、储存、处理和发送。
  • 负责将MQTT客户端发送来的信息传递给其他MQTT客户端(需要客户端订阅)。确保客户端之间的通讯顺畅,保证MQTT消息得以正确接收和准确投递。
  • 负责管理MQTT客户端。

MQTT客户端

  • 发布行为——向服务端发布信息。
  • 接收行为——从服务端收取信息。需要先要向服务端“订阅”信息(即告诉服务端需要哪些信息)。
  • 既可以作为信息发布者也可以同时作为信息订阅者。

MQTT主题

  • MQTT服务端在管理MQTT信息通讯时,就是使用“主题”来控制的。
  • 当某客户端向主题发送信息后,服务端会首先检查都有哪些客户端订阅了这一主题,再将信息转发给订阅了该主题的客户端。

主题基本形式

  • 主题是区分大小写的。motor_speed和Motor_speed是两个完全不同的主题。
  • 主题可以使用空格。如current time,虽然有空格分隔current和time这两个词,但这实际是一个MQTT主题。
  • 大部分MQTT服务端是不支持中文主题的。应使用英文字符或ASCII字符来作为MQTT主题。

主题分级

  • MQTT主题可以是一个简单的字符串,比如motor_speed,myTopic。这些都是单一级别的主题。
  • 为了更好的对主题进行管理和分类,可对主题进行分级处理。MQTT主题各个级别之间可以使用”/”来分隔。
单级通配符:+
  • 单级通配符可以代替一个主题级别。
    • 示例:home/sensor/+/temperature,可以收到home/sensor/kitchen/temperature、home/sensor/bedroom/temperature主题的信息内容。
多级通配符:#
  • 多级通配符”#”可以涵盖任意数量的主题级别。应放在最后

主题应用注意事项

  • 以$开始的主题是MQTT服务端系统保留的特殊主题,我们不能随意订阅或者向其发布信息。
    • $SYS/broker/clients/connected
    • $SYS/broker/clients/disconnected
    • $SYS/broker/clients/total
    • $SYS/broker/messages/sent
    • $SYS/broker/uptime
  • 不要用 “/” 作为主题开头
  • 主题中不要使用空格
  • 保持主题简洁明了
  • 主题中尽量使用ASCII字符
  • 在主题中嵌入客户端ID:通过主题中的客户端ID内容,我们可以很容易的了解该主题信息是由哪一台设备所发布的

MQTT 发布/订阅 特性

  • 相互可独立。MQTT客户端是一个个独立的个体,它们无需了解彼此的存在,依然可以实现信息交流。
  • 空间可分离。MQTT客户端在通讯必要条件是连接到了同一个MQTT通讯网络。这个网络可以是互联网或者局域网。只要客户端联网,无论他们远在天边还是近在眼前,都可以实现彼此间的通讯交流。
  • 时间可异步。MQTT客户端在发送和接收信息时无需同步。当客户端离线后,MQTT服务端可以将主题的新信息保存,待客户端再次上线后,服务端再将信息推送给客户端。

连接MQTT服务端

第一步:发送连接请求

MQTT客户端要想连接服务端,首先要向服务端发送CONNECT报文。如果此CONNECT报文的格式或内容不符合MQTT规范,则服务器会拒绝客户端的连接请求
CONNECT报文所包含的信息内容

  • CONNECT数据报文的作用:告诉服务端,客户端与服务端通信的模式。
    • clientId:客户端ID。同一个服务端不可重复,客户端身份标识
    • cleanSession:清除会话。true,告诉客户端不要保存任何会话内容;false,告诉客户端需要保存会话内容。客户端收到信息后需向服务端反馈“我已收到”,若客户端未反馈,服务端会保存会话内容并重复发送。
      • 请注意,如果需要服务端保存重要报文,光设置cleanSession 为false是不够的,还需要传递的MQTT信息QoS级别大于0。
    • keepAlive:心跳时间间隔(单位秒)。定期告诉服务端客户端的连接状态。

第二步:连接确认

MQTT服务端收到客户端连接请求后,会向客户端发送连接确认
CONNACK报文所包含的信息内容

  • CONNACK数据报文的作用:向客户端发送连接确。
    • returnCode:连接返回码。说明连接情况。数字0,表示成功连接。
      状态码
    • sessionPresent:当前会话。客户端与服务端cleanSession为false时,服务端会保存客户端未确认收到的信息。true:服务端告诉客户端有未确认的消息;false:表示客户端所有消息都已正常发送并接收。

发布、订阅、取消订阅

发布

  • MQTT客户端一旦连接到服务端,便可以发布消息。
  • 每条发布的MQTT消息必须包含一个主题。
  • MQTT服务器可以通过主题确定将消息转发给哪些客户端。
    在这里插入图片描述
  • MQTT客户端发布消息时,会向服务端发送PUBLISH报文。
    • topicName:主题名称。用于识别此信息应发布到哪一个主题。
    • qos:服务质量等级。QoS有三个级别:0、1和2(重要性一次增高)。QoS决定MQTT通讯有什么样的服务保证。
    • packetId:报文标识符。同的MQTT报文所拥有的标识符不同。MQTT设备可以通过该标识符对MQTT报文进行甄别和管理。请注意:报文标识符的内容与QoS级别有密不可分的关系。只有QoS级别大于0时,报文标识符才是非零数值。如果QoS等于0,报文标识符为0。
    • retainFlag :保留标志。false:发布非保留消息。当客户端订阅了某一主题后,并不会马上接收到该主题的信息。只有在客户端订阅该主题后,服务端接收到该主题的新信息时,服务端才会将最新接收到的该主题信息推送给客户端。true:发布保留消息。客户端在订阅了某一主题后马上接收到一条该主题的信息(因为服务端保留了最新的payload)。
    • payload:有效载荷。通过MQTT所发送的实际内容。可以发送文本,图像等格式的内容。
    • dupFlag :重复标志。true:接收方没有及时确认收到报文时,发送方会重复发送MQTT报文。请注意,重发标志只在QoS级别大于0时使用。

订阅

  • 客户端是通过向服务端发送SUBSCRIBE报文来实现主题订阅。
  • 请留意,一个SUBSCRIBE报文可以包含有单个或者多个订阅主题名。
  • 客户端在订阅主题时也可以明确QoS。服务端会根据SUBSCRIBE中的QoS来提供相应的服务保证。
  • 每一个SUBSCRIBE报文还包含有“报文标识符”。

订阅确认

  • 服务端接收到客户端的订阅报文后,会向客户端发送SUBACK报文确认订阅。
    • packetId:报文标识符。
    • returnCode :订阅返回码。服务端会针对SUBSCRIBE报文中的所有订阅主题来逐一回复给客户端一个返回码。针对不同的主题订阅QoS,服务端的返回码会有所不同。
      在这里插入图片描述

取消订阅

  • 客户端向服务端发送UNSUBSCRIBE报文取消订阅。
    在这里插入图片描述
  • 同一个UNSUBSCRIBE报文可以同时包含多个取消订阅的主题名称。
  • UNSUBSCRIBE报文也包含“报文标识符”,MQTT设备可以通过该标识符对报文进行管理。

取消订阅确认

  • 服务端接收到UNSUBSCRIBE报文后,会向客户端发送取消订阅确认报文 – UNSUBACK报文。该报文含有客户端所发送的“取消订阅报文标识符”。客户端接收到UNSUBACK报文后就可以确认取消主题订阅已经成功完成了。

Qos 服务质量等级

  • 告知物联网系统,哪些信息是重要信息需要准确无误的传输,而哪些信息不那么重要,即使丢失也没有问题。

Qos三种服务质量级别

Qos=数字0,最多发一次

  • MQTT服务端和客户端不会对消息传输是否成功进行确认和检查。消息能否成功传输全看网络环境是否稳定。
  • 也就是说,在QoS为0时。发送端一旦发送完消息后,就完成任务了。发送端不会检查发出的消息能否被正确接收到。

Qos=数字1,最少发一次(可能重复接收)

  • 发送端将消息发送给接收端后,会等待接收端的确认。接收端成功接收消息后,会发送一条确认报文PUBACK给发送端。如果发送端收到了这条PUBACK确认报文,那么它就知道消息已经成功接收。
  • 若发送端没有收到PUBACK报文,那么发送端会再次发送消息,然后再次等待接收端的PUBACK确认报文。因此,当QoS=1时,发送端在没有收到接收端的PUBACK确认报文以前,会重复发送同一条消息。
  • 当发送端重复发送一条消息时,PUBLISH报文中的dupFlag会被设置为True。这是为了告诉接收端,此消息为重复发送的消息。

Qos=数字2,保证只收一次

  • 发送端需要接收端进行两次消息确认。①发送端发送Qos=2的PUBLISH报文给接收端。②接收端收到QoS为2的消息后,会返回PUBREC报文作为应答。③发送端收到PUBREC报文后,会把此报文进行存储,并且返回PUBREL报文作为应答。④当接收端收到PUBREL报文后,会应答发送端一条PUBCOMP报文。

设置Qos

Qos=1

  • 接收端连接服务端时需将CONNECT报文中cleanSession设置为false
  • 接收端订阅主题时SUBSCRIBE数据包中QoS=1
  • 发布端发布消息时PUBLISH数据包中QoS=1

Qos=2

  • 接收端连接服务端时需将CONNECT报文中cleanSession设置为false
  • 接收端订阅主题时SUBSCRIBE数据包中QoS=2
  • 发布端发布消息时PUBLISH数据包中QoS=2

服务质量降级(最低级原则)

  • 假如客户端在发布和订阅信息时使用不同级别的QoS,服务端会主动采用较低级别的QoS来实现消息传输。
  • 情况一:发布端发布消息时PUBLISH数据包中QoS=2,接收端订阅主题时SUBSCRIBE数据包中QoS=1。此时,服务端向接收端发送消息时,采用的Qos为1。
  • 情况二:发布端发布消息时PUBLISH数据包中QoS=0,接收端订阅主题时SUBSCRIBE数据包中QoS=1。此时,服务端向接收端发送消息时,采用的Qos为0。

小结

  • 若想实现QoS>0,订阅端连接服务端时cleanSession需要设置为false,订阅端订阅主题时QoS>0,发布端发布消息时的QoS>0。
  • 服务端会选择发布消息和订阅消息中较低的QoS来实现消息传输,这也被称作“服务降级”。
  • QoS = 0, 占用的网络资源最低,但是接收端可能会出现无法接收消息的情况,所以适用于传输重要性较低的信息。
  • QoS = 1, MQTT会确保接收端能够接收到消息,但是有可能出现接收端反复接收同一消息的情况。
  • QoS = 2, MQTT会确保接收端只接收到一次消息。但是QoS为2时消息传输最慢,另外消息传输需要多次确认,因此所占用的网络资源也是最多的。此类服务等级适用于重要消息传输。
  • 由于QoS1和QoS2都能确保客户端接收到消息,但是QoS1所占用的资源较QoS2占用资源更小。因此建议使用QoS1来实现网络资源较为珍贵的环境下传输重要信息。

心跳机制

在这里插入图片描述

  • 服务端可以使用类似心跳检测的方法,来判断客户端是否在线。
  • 客户端在没有向服务端发送信息时,可以定时向服务端发送一条消息。这条用于心跳机制的消息也被称作心跳请求(PINGREQ)。
  • 服务端在收到客户端的心跳请求后,会回复一条消息。这条回复消息被称作心跳响应(PINGRESP)。
  • 由于心跳请求是客户端定时发送的,一旦服务端发现客户端停止发送请求信息,那么服务端就会知道,这台客户端已经断开了连接。同时,也可用于客户端判断自己与服务端是否保持连接。

设置心跳间隔

  • 在客户端连接服务端时,会将心跳时间间隔信息放入CONNECT报文中keepAlive字段(单位秒)。

心跳机制详情

  • 客户端在心跳时间间隔内发布了消息给服务端,那么服务端不需要客户端发送心跳请求也可以确定该客户端肯定在线。
  • 客户端在心跳间隔内没有发布消息给服务端,这时客户端会主动发送一个心跳请求消息给服务端。以表明自己仍让在线。
  • 在实际运行中,如果服务端没有在1.5倍心跳时间间隔内收到客户端发布消息(PUBLISH)或发来心跳请求(PINGREQ),那么服务端就会认为这个客户端已经掉线。举例来说,如果心跳时间间隔是60秒。那么服务端在90秒内没有收到客户端发布的消息也没有收到PINGREQ请求,那么它就会认为客户端已经掉线。

MQTT遗嘱

  • MQTT协议允许客户端在“活着”的时候就写好遗嘱,这样一旦客户端意外断线,服务端就可以将客户端的遗嘱公之于众。客户端的遗嘱只在意外断线时才会发布,如果客户端正常的断开了与服务端的连接,这个遗嘱机制是不会启动的,服务端也不会将客户端的遗嘱公布。
  • 服务端在没有收到DISCONNECT报文的情况下,发现客户端“心跳”停止了,这时服务端就知道客户端是意外断线了。
  • 客户端正常断开连接时,会向服务端发送DISCONNECT报文,服务端接收到该报文后,就知道,客户端是正常断开连接,而并非意外断开连接。
    在这里插入图片描述

客户端如何将遗嘱消息发送给服务端

在这里插入图片描述

  • 在上图的CONNECT报文中,使用红色对一系列信息进行了标注。客户端正是在连接服务端时,利用这一系列信息将遗嘱消息发送给服务端。
  • lastWillTopic :遗嘱主题。遗嘱消息和普通MQTT消息很相似,也有主题和正文内容。
  • lastWillMessage :遗嘱消息(遗嘱正文)。只有那些订阅了遗嘱主题的客户端才会收到本客户端的遗嘱消息。
  • lastWillQoS :遗嘱QoS。使用服务质量来控制遗嘱消息的传递和接收。(与普通MQTT消息的服务质量是一样0、1、2三个级别)
  • lastWillRetain :遗嘱保留。设置遗嘱消息是否需要进行保留处理。

遗嘱操作注意事项

  • 假设我们现在有一台MQTT客户端。它的client id是 client-1。它的遗嘱主题是“client-1-will”
  • 当client-1连接服务端时,CONNECT报文中的遗嘱消息是“offline”。并且它的遗嘱保留设置为true。
  • 当client-1成功连接服务端后,立即向遗嘱主题“client-1-will”发布一条消息“online”。同时在发布此消息时,保留标志设置为true。这样,只要client-1在线,那么任何设备一订阅“client-1-will”就能收到设备在线的消息“online”。
  • 如果client-1发生意外离线。那么任何设备一订阅“client-1-will”就会收到设备离线的消息”offline”。
  • 如果client-1恢复连接,那么它会将遗嘱主题“client-1-will”的保留消息更改为“online”,这样任何设备一订阅“client-1-will”就能收到设备在线的消息“online”。

特别感谢
教程来源: 太极创客

物联网常用协议mqtt之QoS 在具体使用中,需要根据实际需求选择合适的QoS级别。例如,如果对消息传递的可靠性要求较高,可以选择QoS 1或QoS 2级别。在发布/订阅模型中,发布者向某个主题发布消息,订阅者订阅这个主题接收消息。QoS在发布者和订阅者之间起作用,决定消息传递的质量。假设我们有一个发布者,它需要向主题"topic"发布消息,并且希望QoS级别为1。在物联网开发中,MQTT的QoS(质量服务)协议被用来保证消息传递的质量。对象,并设置了它的QoS级别为1。以下是一个使用MQTT协议的QoS级别的具体例子。 阅读详情

相关推荐

MQTT-主题(Topic)

MQTT-Topic主题详细介绍以及单、多层通配方法使用实践保姆级教程 Demo

问天丶天问 1585

MQTT QoS(服务质量)介绍

服务质量 MQTT协议中规定了消息服务质量(Quality of Service),它保证了在不同的网络环境下消息传递的可靠性,QoS 的设计是 MQTT 协议里的重点。作为专为物联网场景设计的协议,MQTT 的运行场景不仅仅是 PC,而是更广泛的窄带宽网络和低功耗设备,如果能在协议层解决传输质量的问题,将为物联网应用的开发提供极大便利。 QoS值 Bit 2 Bit 1 描述 0...

emqx_broker的博客 3759

MQTT协议学习心得

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、pandas是什么? 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决.

qq_26991051的博客 881

MQTT Qos详解(一)

MQTT Qos的理解

m0_50668851的博客 2万+

物联网开发学习笔记——MQTT协议学习

物联网开发学习笔记——MQTT协议学习 最近开始接触物联网这一块,写下此篇作为备忘录。 MQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在 TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议,为此,它需要一个消息中间件 。MQTT是一个基于客户端-服务器的消息发布/订阅传输协议。MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛。在很多情况下,包括受限的环境中,如:机

secretboys的博客 1285

HTTP协议与MQTT协议的对比:选择哪个更适合编程学习?

在编程学习的过程中,选择合适的通信协议对于实现特定功能至关重要。在本文中,我们将比较HTTP协议和MQTT协议,以确定哪个更适合编程学习的需求。我们将探讨它们的特点、适用场景和提供相应的源代码示例。

CqppDeveloper的博客 256

用10步学习法学习mqtt协议(一)

学习mqtt协议(一)介绍1--6步内容第一步 了解全局第二步 确定范围第三步 定义目标第四步 寻找资源第五步 创建学习计划第六步 筛选资源总结 介绍 采用10步学习法学习mqtt协议,根据学习法的内容,先制定1–6步,第一次运行10步学习法,也是第一次接触MQTT协议。制定计划可能不够完善,不过万事开头第一步,加油。 1–6步内容 第一步 了解全局 MQTT(消息队列遥测传输)是ISO标准下基于发布/订阅范式的消息协议,它是基于tcp/ip协议族上,是为硬件性能低下和网络状况糟糕情况下设计的消息协议。 M

红叶知秋的博客 436

mqtt协议学习之连接报文代码示例

【代码】mqtt协议学习之连接报文代码示例。

我不是码农的博客~~~ 128

QT开发MQTT学习资源:快速掌握QT环境下MQTT协议应用

QT开发MQTT学习资源:快速掌握QT环境下MQTT协议应用 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 在现代物联网(IoT)和实时数据通信领域,MQTT协议以其轻量级和低功耗的特性,成为事实上的标准。QT开发MQTT学习资源项目,专为QT开发者量身打造,提供了一系列易于理解的例程和应用示例,帮助开发者快速学习并应用MQTT协议于QT开发环境中。 项目技术分析 Q...

gitblog_06786的博客 381

三轴加速度传感器计步算法优化:动态阈值与滤波技术的实践应用

本文深入探讨了三轴加速度传感器计步算法的优化实践,重点分析了动态阈值调整与高效滤波技术如何协同提升计步精度与鲁棒性。通过对比均值滤波的局限,引入向量模长计算、多级自适应阈值以及状态机判决逻辑,并结合代码示例,为嵌入式及移动应用开发者提供了应对复杂运动场景的实用解决方案。

cherry的博客 499

Matlab:imageDatastore() 高效读取图像数据集的实战技巧

本文详细介绍了Matlab中imageDatastore()函数的高效使用技巧,帮助用户从繁琐的手动读取图像数据集中解放出来。通过核心语法、关键参数(如IncludeSubfolders、LabelSource、ReadSize)的解析,以及数据集分割、打乱等进阶实战操作,指导读者构建稳定、高效的图像数据读取管道,特别适用于大型图像数据集处理和机器学习项目。

hill8的博客 1100

MQTT协议学习

对于mqtt协议的初步探索

c123_c的博客 1033

开发者体验度量:构建DevEx评估体系的方法论与工具

在深入讨论度量方法前,我们需要明确什么是开发者体验(DevEx)。许多人将其简化为"开发工具好不好用",这是一个危险的误解。开发者体验是指开发者在完成工作过程中的整体感受和效率,它由三大核心维度组成:工具与基础设施:开发、测试、部署工具链的效能流程与协作:工作流程的顺畅度和团队协作的效率文化与成长:支持实验、学习和专业发展的环境这三个维度相互作用,共同决定了开发者能否高效且愉悦地完成工作。开发者体验不是一个目的地,而是一段持续的旅程。

2401_88760782的博客 1428

MQTT协议学习总结

随着 5G 时代的来临,万物物联的伟大构想正在成为现实。联网的物联网设备在 2018 年已经达到了 70 亿, 在未来两年,仅智能水电气表就将超过10亿 。

一切总会归于平淡 2379

Ubuntu 26.04 本地安装 GitLab CE 完整教程(非 Docker 方式)

本文详细介绍了在Ubuntu 26.04系统上通过Omnibus包安装GitLab CE的完整流程。主要内容包括:环境准备(系统要求、依赖安装)、配置清华镜像源、执行安装命令、修改配置文件、服务管理命令以及常见问题解决方法。文章特别强调了内存要求(建议4GB以上)、首次登录密码获取、HTTPS安全配置等关键点,并提供了性能优化建议和安全设置指导。相比Docker方式,Omnibus安装具有性能更好、管理方便等优势,适合需要私有化部署GitLab的场景。

1369

FCTA/FCTB 前方交通穿行预警/制动系统技术规范

FCTA&FCTB前方交叉路口预警制动系统是针对十字路口和停车场等"鬼探头"场景设计的驾驶辅助系统。系统在自车速度0-40km/h范围内工作,通过角雷达和摄像头检测侧向来车.

未知艺术家的博客 737

用mqtt.fx 和 wireshark 深入学习MQTT 协议

有时候协议制定者想把协议写的很清楚很明白,但看文档可能看的没有头绪,更好的办法就是结合协议文档和协议内容来学习 ,先看协议文档 https://mcxiaoke.gitbooks.io/mqtt-cn/content/mqtt/02-ControlPacketFormat.html 配置maqq.fx 和 wireshark  可

jackhu专栏 1772

一种低照度目标检测新策略:IAT集成YOLOv8实现暗光与雾霾环境下的性能优化【附核心实战代码】

随着深度学习和计算机视觉的快速发展,目标检测模型在各个领域中的应用不断扩展,特别是在低照度环境下的视觉任务。YOLOv8作为当前最先进的目标检测模型之一,在高亮度和良好照明条件下表现出色,但在低照度环境下的性能存在一定的不足。为了解决这一问题,我们提出了一种轻量级的低照度图像增强网络(IAT)来改进YOLOv8的暗光检测能力。本篇文章将深入探讨这一创新改进,并附带代码实现,帮助大家更好地理解这一技术的应用和效果。

一键难忘的博客 3495

MQTT协议实现Eclipse Paho学习总结

MQTT协议实现Eclipse Paho学习总结摘自:https://www.cnblogs.com/yfliufei/p/4383852.html2015-04-01 14:57 by 辣椒酱,4278阅读,0评论,收藏,编辑转载自:http://xiaoxinzhou.blog.163.com/blog/static/20704538620145411306821/一、概述遥测传...

weixin_30482181的博客 251

极验验证码: 一点即过验证(鼠标轨迹分析)

2、第一个验证接口分析(第一个w值还原) 3、第二个验证接口(第二个w值还原)这里定位w生成跟上篇文章一样,就不展开了;主要分析tt值(鼠标轨迹)的生成逻辑

qq_49268524的博客 1009

统信UOS丨开机无法进入系统 无法打开控制台访问权限,root账号被锁定(cannot open access to console, the root account is locked)

步骤四:分别打开文件发现Roota下的fstab就是我们要找的文件,打开查看Roota的属性发现其为挂载的磁盘nvme0n1p3。步骤三:按Win+E打开文件管理器在分区中查找/etc/fstab文件,发现Roota和Rootb下都有该文件。步骤二:按键盘Ctrl+Alt+F4,进入终端控制台,如下图所示输入startx回车,进入桌面。步骤一:找到UOS系统安装的U盘,选择U盘启动进入安装界面,如下图所示。步骤七:关机,拔出U盘,启动电脑,OK,问题解决。

Reyn_观极 1万+

MQTT协议学习_mqtt protocol

你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新如果你觉得这些内容对你有帮助,可以+V:Vip1104z获取!!!(备注:嵌入式)你的支持,我的动力;祝各位前程似锦,offer不断,步步高升!!!更多资料点击此处获qu!!

2301_82242251的博客 1087

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【MQTT】MQTT协议学习

MQTT协议学习,附有链接,中文文档

夏日掠影的博客 4131

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

MQTT协议学习报告

topic是一个UTF-8字符串,是发布/订阅消息的传输中介,可以向topic发布或订阅消息。客户端异常断开时,Broker 会自动发布事先设置的遗嘱消息,通知订阅者设备的状态变化。MQTT协议支持一对多,多对多的应用场景,所以发布者也可以是订阅者。模式进行数据传输,适合资源受限设备或低带宽、高延迟的网络环境。**远程监控:**如智能家居、环境监测。**消息推送:**如即时通讯、在线报警。**设备互联:**如车联网、工业控制。减少频繁的单条消息发布,降低网络开销。设计层级清晰的主题,减少通配符滥用。

WWHHJJ 1409

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: JAVA环境搭建
下一篇: 物联网常见协议基础学习
松林羊
博客等级 码龄11年 43粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值