對MQTT協議的認識(一)

一、什麼是MQTT

MQTT(消息隊列遙測傳輸) 是一個基於客戶端-服務器的消息發佈/訂閱傳輸協議。它工作在TCP/IP協議族上,是爲硬件性能低下的遠程設備以及網絡狀況糟糕的情況下而設計的發佈/訂閱型消息協議,爲此,它需要一個消息中間件。

二、MQTT的特點

1、使用發佈/訂閱消息模式,提供一對多的消息發佈,解除應用程序耦合;
2、對負載內容屏蔽的消息傳輸;
3、使用 TCP/IP 提供網絡連接;
4、有三種消息發佈服務質量:

    “至多一次”,消息發佈完全依賴底層 TCP/IP 網絡。會發生消息丟失或重複。這一級別可用於如下情況,環境傳感器數據,丟失一次讀記錄無所謂,因爲不久後還會有第二次發送。
    “至少一次”,確保消息到達,但消息重複可能會發生。
    “只有一次”,確保消息到達一次。這一級別可用於如下情況,在計費系統中,消息重複或丟失會導致不正確的結果。

5、小型傳輸,開銷很小(固定長度的頭部是 2 字節),協議交換最小化,以降低網絡流量;
6、使用 Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。 [1]

三、MQTT可以做什麼

應用一、 國內很多企業都廣泛使用MQTT作爲Android手機客戶端與服務器端推送消息的協議。
應用二、 St. Jude醫療中心設計了一個叫做Merlin@home的心臟裝置,該產品利用MQTT把病人的即時更新信息傳給醫生/醫院,然後醫院進行保存。

四、爲什麼要學習MQTT

MQTT協議是物聯網中非常主流的協議之一,要想在嵌入式開發這條路上越走越遠,越走越好,那麼學習MQTT也是必經之路

五、 通過什麼樣的方式來學習

由於工作需要所以學習一下MQTT,先說下手上現有的資源,有一塊STM32F103ZET6開發板,板載了W5500模塊,初步看了下W5500官方的一些例程,裏面有關於STM32+W550_MQTT連接阿里雲的源代碼,所以我準備通過完成一個實例來達到學習MQTT的目的。該實例可以實現通過阿里雲平臺可以下發控制指令,控制開發板上的小燈,溫溼度傳感器產的的數據能夠實時的傳輸到服務器上,並通過一些手段顯示,目前先這麼打算,大致分爲如下幾步完成:
1.先寫DHT11(溫溼度傳感器)驅動,並且驗證該驅動的正確性
2.寫板載的RGB三原色小燈的驅動,並且驗證該驅動的正確性
3.STM32移植MQTT協議
4.以MQTT的協議連接阿里雲服務器
5.綜合整個環境,測試該系統的可行性,穩定性

以上內容僅是本人學習筆記,如有錯誤請大家指出,共同學習,一起進步,旨在分享

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章