物聯網IoT系列之MQTT協議基礎知識

文章目錄

    • 物聯網IoT系列之MQTT協議基礎知識
      • 物聯網IoT是什么?
      • 什么是MQTT?
      • 為什么說MQTT是適用于物聯網的協議?
      • MQTT工作原理
        • 核心組件
        • 核心機制
      • MQTT工作流程
        • 1. 建立連接
        • 2. 發布和訂閱
        • 3. 消息確認
        • 4. 斷開連接
      • MQTT工作流程圖
      • MQTT在物聯網中的應用

物聯網IoT系列之MQTT協議基礎知識

物聯網IoT是什么?

物聯網(Internet of Things,簡稱IoT)是一個由互聯網、傳統電信網、傳感器網絡等組成的龐大網絡,它通過嵌入式傳感器、設備和軟件,將物理世界中的物體連接起來,實現物與物、物與人、物與網絡之間的智能化交互。簡單來說,物聯網就是讓“萬物互聯”,讓設備能夠自主地感知、傳輸和處理數據,從而為人類生活和工業生產帶來更高的效率和便利。

什么是MQTT?

MQTT(Message Quelemetry Transport)是一種輕量級的、基于發布訂閱模式的網絡傳輸協議,適用于資源受限的設備和低帶寬、高延遲或不穩定的網絡環境。它在物聯網環境中應用廣泛,能夠實現傳感器、執行器和其他設備之間的高效通信。

為什么說MQTT是適用于物聯網的協議?

  • 輕量級設計:MQTT協議頭部最小僅2字節,網絡傳輸開銷極小,適合在窄帶網絡(如NB-IoT)中使用。
  • 低功耗:使用異步傳輸機制和較小的數據包傳輸,使得設備在通信過程中的能耗更低。
  • 高可靠性:提供3種QoS級別(0/1/2),確保消息必達。
  • 靈活擴展:通過主題(Topic)和通配符機制,設備可以靈活訂閱和發布消息,支持大規模設備接入。
  • 適應不穩定網絡:心跳機制和會話恢復功能,確保設備在斷網后能夠快速恢復連接并獲取未讀消息。

MQTT工作原理

核心組件
  • 發布者(Publisher):將消息發布到指定的主題(Topic),例如溫度傳感器、智能開關等。
  • 消息代理(Broker):作為中間節點,負責接收發布者的消息并轉發給訂閱者,例如EMQX、Mosquitto、AWS IoT等。
  • 訂閱者(Subscriber):訂閱特定Topic的消息,例如手機App、云端控制臺等。
核心機制
  • Topic通配符
    • 示例:home/floor1/#,訂閱floor1下所有子主題的消息。
  • QoS機制
    • QoS是MQTT中用于控制信息傳輸質量的機制,MQTT定義了三種不同的QoS等級:QoS 0、QoS 1和QoS 2。
QoS等級傳輸過程適用場景
0最多發送一次(無需確認)實時性高但允許丟失數據的場景
1至少一次(Broker確認)設備控制指令
2精確一次(四次握手確保唯一性)支付、安全告警

MQTT工作流程

1. 建立連接

客戶端向Broker發送CONNECT報文,包含客戶端ID、用戶名和密碼等認證信息。Broker驗證后返回CONNACK報文,表示連接成功。

2. 發布和訂閱
  • 發布:發布者將消息通過PUBLISH報文發送到Broker指定的主題(Topic),Broker根據訂閱關系將消息發送給指定的訂閱者。
  • 訂閱:訂閱者發送SUBSCRIBE報文,指定要訂閱的主題(Topic)和QoS級別。
3. 消息確認

根據QoS級別,消息可能需要確認:

  • QoS 0:消息“最多發送一次”,無需確認。
  • QoS 1:消息“至少發送一次”,需要確認。
  • QoS 2:消息“僅發送一次”,需要復雜的確認流程。
4. 斷開連接

客戶端發送DISCONNECT報文,通知Broker主動斷開連接。

MQTT工作流程圖

以下是文字描述的流程圖結構:

客戶端|v
[建立連接] -> [發送CONNECT報文] -> [接收CONNACK報文]|v
[發布消息] -> [發送PUBLISH報文] -> [Broker轉發消息]|v
[訂閱消息] -> [發送SUBSCRIBE報文] -> [接收消息]|v
[消息確認] -> [根據QoS級別確認消息]|v
[斷開連接] -> [發送DISCONNECT報文]

MQTT工作流程圖:
在這里插入圖片描述

MQTT在物聯網中的應用

MQTT廣泛應用于設備監控、車聯網、智能家居等領域。例如:

  • 工業設備監控:通過MQTT實現設備狀態的實時傳輸。
  • 智慧城市:用于環境傳感器實時傳輸溫度、濕度等數據。
  • 智能家居:通過MQTT連接智能設備,實現遠程控制和自動化管理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/72039.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/72039.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/72039.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

第27周JavaSpringboot電商進階開發 1.企業級用戶驗證

課程筆記:注冊郵箱驗證 一、概述 從本小節開始,將學習如何進行注冊郵箱驗證。主要任務是給項目配置一個公共郵箱(可自己注冊或由公司提供),用于向用戶發送驗證碼,幫助用戶完成注冊流程。課程中以QQ郵箱為…

數據庫---sqlite3

數據庫: 數據庫文件與普通文件區別: 1.普通文件對數據管理(增刪改查)效率低 2.數據庫對數據管理效率高,使用方便 常用數據庫: 1.關系型數據庫: 將復雜的數據結構簡化為二維表格形式 大型:Oracle、DB2 中型:MySql、SQLServer …

音視頻軟件工程師面試題

一、基礎知識 編解碼相關 H.264 和 H.265(HEVC)的主要區別是什么?視頻編解碼的基本流程是什么?關鍵技術有哪些?音頻編解碼(如 AAC、MP3、Opus)的區別和應用場景?什么是 B 幀、P 幀、I 幀?它們的作用是什么? 流媒體協議RTMP、HTTP-FLV、HLS、WebRTC 的區別和應用場景…

【系統架構設計師】測試方法

目錄 1. 說明2. 靜態測試3. 動態測試4. 黑盒測試5. 白盒測試6. 灰盒測試7. 自動化測試8.例題8.1 例題1 1. 說明 1.軟件測試方法的分類有很多種,以測試過程中程序執行狀態為依據可分為靜態測試(Static Testing,ST)和動態測試&…

tomcat配置應用----server.xml文件具體配置

1.tomcat項目目錄 默認項目目錄:tomcat安裝目錄/webapps目錄 如上圖所示,在tomcat的項目目錄下有很多子文件夾,這些子文件夾中都有一個項目首頁。 如上圖所示,將來我們去使用IP加端口號的方式去訪問tomcat的時候,默認是…

Spring Boot 調用DeepSeek API的詳細教程

目錄 前置準備步驟1:創建Spring Boot項目步驟2:配置API參數步驟3:創建請求/響應DTO步驟4:實現API客戶端步驟5:創建控制器步驟6:異常處理步驟7:測試驗證單元測試示例Postman測試請求 常見問題排查…

多維數據聚合方案:SQL GROUPING SETS深度解析

一、什么是GROUPING SETS? GROUPING SETS是SQL標準中的多維聚合運算符,允許在單個查詢中實現多維度組合的分組統計。相較于傳統UNION ALL方案,性能可提升3-10倍(TPC-DS基準測試)。 二、核心語法解析 SELECT column1,…

Excel中國式排名,3種方法!

大家好,我是小魚。 什么是中國式排名呢? 舉個例子比如說公司一共有10名員工進行成績考核,如果9個人考核成績都是90分,你是89分,按照國際慣用的排名法則:9 個人考核成績并列第一,你第10名&…

哪些業務場景更適合用MongoDB?何時比MySQL/PostgreSQL好用?

哪些業務場景更適合用MongoDB?何時比MySQL/PostgreSQL好用? 就像淘寶的個性化推薦需要靈活調整商品標簽,MongoDB這種"變形金剛"式的數據庫,在處理以下三類中國特色業務場景時更具優勢: 一、動態數據就像&q…

深度解讀:OpenAI發布GPT-5的技術突破與商業影響

引言 2025年2月,OpenAI正式發布GPT-5,這一被譽為“AI新紀元開篇之作”的模型,不僅實現了技術架構的顛覆性創新,更以免費開放策略引發行業地震。本文將從技術突破、商業影響、行業競爭格局及未來挑戰四個維度,全面解析…

網絡防火墻是什么有什么用_網絡防火墻:守護信息安全的重要屏障

網絡防火墻的基本概念 網絡防火墻是網絡安全領域的重要組成部分,它充當著內部網絡和外部網絡之間的安全防護層。防火墻能夠監控和控制進出網絡的數據流,只允許符合安全策略的信息通過,從而有效阻止潛在威脅的入侵。簡而言之,網絡…

C# WPF 串口通信

C# WPF 串口通信 安裝依賴庫 安裝依賴庫 System.IO.Ports using System.Diagnostics; using System.IO.Ports; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windo…

【玩轉23種Java設計模式】結構型模式篇:組合模式

軟件設計模式(Design pattern),又稱設計模式,是一套被反復使用、多數人知曉的、經過分類編目的、代碼設計經驗的總結。使用設計模式是為了可重用代碼、讓代碼更容易被他人理解、保證代碼可靠性、程序的重用性。 匯總目錄鏈接&…

如何選取合適的 NewRatio 值來優化 JVM 的垃圾回收策略

目錄 一、垃圾回收模型簡介 (一)新生代(Young Generation) (二)老年代(Old Generation) (三)NewRatio 的作用與影響 (四)圖解&am…

Element Plus中的樹組件的具體用法(持續更新!)

const defaultProps {//子樹為節點對象的childrenchildren: children,//節點標簽為節點對象的name屬性label: name, } 屬性 以下是樹組件中的常用屬性以及作用: data:展示的數據(數據源) show-checkbox:節點是否可…

第十一屆藍橋杯單片機國賽

什么?4T模擬賽和省賽做起來輕輕松松?不妨來挑戰一下第十一屆國賽,這一屆的國賽居然沒考超聲波、串口通信!只要你正確地理解了題目的意思,規避出題人挖的坑,拿個國一輕輕松松。 附件:第十一屆藍橋…

大彩串口屏開發 —— MODBUS通信

目 錄 Modbus通信方式 1 使用變量與協議設置方式 2 使用LUA腳本方式 3 兩者結合 Modbus通信 大彩串口屏可以采用三種方式實現與其它設備進行modbus通信和邏輯處理。 方式 1 使用變量與協議設置 步驟1 在協議設置里進行設置,包括開啟modbus協議,屏做為主…

【Linux docker】關于docker啟動出錯的解決方法。

無論遇到什么docker啟動不了的問題 就是 查看docker狀態sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三個配置文件(可能是配置的時候格式錯誤):/etc/docker/daemon.json(如果存在&#xf…

怎么實現: 大語言模型微調案例

怎么實現: 大語言模型微調案例 目錄 怎么實現: 大語言模型微調案例輸入一個反常識的問題:首都在北京天安門之后對輸出模型進行測試:首都在北京天安門微調代碼:測試微調模型代碼:微調輸出模型結構輸出模型參數大小對比Qwen 2.5_0.5:53MB輸出模型:951MB 是一樣的,沒有進行…