文章目錄

1.前言

在ESP8266學習系列中,博主一直使用HTTP協議。HTTP連接屬於短連接,而在物聯網應用中,廣泛應用的卻是MQTT協議。所以,本篇我們將學習Arduino平臺上的MQTT實現庫 —— PubSubClient。

2.MQTT協議

2.1 簡介

MQTT協議(Message Queuing Telemetry Transport),翻譯過來就是遙信消息隊列傳輸,是IBM公司於1999年提出的,現在最新版本是3.1.1。MQTT是一個基於TCP的發佈訂閱協議,設計的初始目的是爲了極有限的內存設備和網絡帶寬很低的網絡不可靠的通信,非常適合物聯網通信。

MQTT屬於應用層協議,基於TCP協議,確保了可靠性。博主在這裏不會去詳細講述MQTT協議(網上講解MQTT協議內容很多,不需要重複),希望有興趣的讀者自行去閱讀,可參考 MQTT中文文檔。

MQTT通信模型如下:

2.2 MQTT消息的QOS

MQTT消息支持三種QOS等級:

2.3 MQTT控制報文格式

MQTT控制報文由三部分組成: