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

LSTM预测股票数据---数据预处理

# 导入相应的模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt import tensorflow as tf # 获取训练集 def get_train_data(data,batch_size = 60 ,time_step = 20,train_begin = 0,train_end = 58...

qq_35358021的博客 3359

如何用ggplot2绘制专业级双侧柱状图展示GO富集结果(附完整代码)

本文详细介绍了如何使用R语言的ggplot2包绘制专业级双侧柱状图展示GO富集结果,包括数据预处理、基础图形构建、高级样式定制和出版级细节调整。通过完整的代码示例和实用技巧,帮助生物信息学研究人员高效可视化高通量数据,提升学术图表的质量和可读性。

weixin_30342209的博客 75

MQTT协议学习

对于mqtt协议的初步探索

c123_c的博客 1033

ArcGIS Pro 拓扑编辑实战:从‘地图拓扑’到‘共享编辑’,手把手教你批量修改要素

本文详细介绍了ArcGIS Pro中的拓扑编辑功能,从地图拓扑配置到共享编辑技巧,手把手教你如何批量修改要素。通过实战案例展示拓扑编辑在城市规划、地籍管理等场景中的应用,显著提升编辑效率并减少拓扑错误,是现代GIS技术的重要生产力工具。

weixin_30500473的博客 505

MQTT协议学习总结

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

一切总会归于平淡 2379

【AlphaFold2】深入浅出,讲解Evoformer|学习笔记

本篇博客是围绕youtube德国博主Kilian Mandon()的《从头实现AlphaFold2:AlphaFold Decoded》的第五期视频讲解和note-book内容写成的笔记,加上了自己的理解和对相关概念的解释。上期我们讲解了AlphaFold2的特征提前的部分【AlphaFold2】Feature extraction:提取特征,为模型输入做准备|Datapipeline讲解。本期,我们将介绍AlphaFold2中最为庞大且最为重要的部分——Evoformer。

Yaoyao2024的博客 2013

【LLM数据篇】预训练数据集+指令生成sft数据集

在《Aligning Large Language Models with Human: A Survey》综述中对LLM数据分类为典型的人工标注数据、self-instruct数据集等 优秀的开源sft数据集:alpaca_data、belle、千言数据集、firefly、moss-003-sft-data多轮对话数据集等 文章目录 note 构造指令实例的3种方式 sft:Aligning Large Language Models with Human: A Survey Alpaca 1. self

发现问题,并解决问题,批判性思维 1万+

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

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

jackhu专栏 1772

一文速学数模-K-means聚类算法实战:信用卡用户画像聚类分析

该项目算是非常经典的金融业务用户画像的基础分析了,主要根据用户信用卡使用行为数据进行分析,根据收集到的不同字段信息,对每个用户划分类别。这里需要说明一下的是,聚类模型只是将具有相似行为的大部分用户聚集到一个类别里面,这点并不会考虑到每个字段的含义,也就是分成的类别并不是用户价值等级,此类别仅仅是这个类别大体相同的信用卡用户行为对象,并不能给每个用户价值打上标签,那是评价模型做的事,这里要注意不要搞混淆了,用户价值评价是评价模型决定的,而画像是聚类模型分析的。

master_hunter的博客 1万+

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

1.DJI-payload SDK负载开发准备和硬件连接及运行示例代码

大疆psdk开发环境

哒宰的博客 1441

109. 使用 SAP UI5 FileUploader 控件上传本地文件

我们可以使用SAPUI5提供的控件,将本地文件上传到远端服务器进行存储。远端服务器负责接收上传的文件的逻辑,可以采取Java,Node.js或者ABAP等任意的编程语言实现。本地文件上传也是最终用户同文件服务器交互的重要手段之一,因此文件上传这个主题,本教程会通过若干篇文章连续进行介绍。笔者还另外实现了一个不通过SAPUI5FileUploader控件,而是直接用HTML原生的input。先看本步骤完成后实现的场景。本步骤完整的源代码位置。进入目录109,运行命令行。...

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 2235

MQTT协议学习_mqtt protocol

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

2301_82242251的博客 1087

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【MQTT】MQTT协议学习

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

夏日掠影的博客 4131

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

MQTT协议学习报告

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

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

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值