消息隊列遙測傳輸(MQTT)是一種ISO標準消息傳遞協議,旨在通過不可靠的網絡連接傳感器。它在TCP/IP互聯網協議之上工作。
兩位工程師Andy Stanford-Clark和Arlen Nipper在1999年創建了協議。他們正在開發一個系統來監控不可靠衛星上的遠程石油管道網絡,并且需要低功耗,易于實現且非常可靠的消息傳遞系統。
自開發以來,MQTT已發展成為許多物聯網系統中使用的關鍵消息傳遞協議,是家庭自動化,水培或遠程氣象站的理想選擇。
MQTT的主要優勢
效率
MQTT消息帶寬小,設計合理在低功率系統上實施。這使其成為任何電池供電傳感器的理想選擇。使用MQTT作為消息傳遞協議可以延長項目的電池壽命。
輕松實現
實現MQTT非常簡單遠程傳感器系統上的消息。由于大部分復雜工作都是在中央服務器上實現的,因此遠程系統可以在其他地方使用其資源。
可靠性
MQTT用于任務關鍵型傳感器系統,其中發送的任何消息都得到確認和接收至關重要。 MQTT允許您通過聲明其服務質量(QOS)級別來定義消息的重要性。在項目中使用MQTT可以讓您高枕無憂,即可以收到所有重要信息。
數據不可知
此協議允許您以消息,數字,單詞,甚至可擴展標記語言(XML)或JavaScript對象表示法(JSON)發送任何類型的文本數據。
MQTT如何工作
MQTT遵循發布/訂閱原則,由兩個元素組成:經紀人和客戶。
MQTT包含兩個元素:經紀人和客戶。
任何MQTT系統的核心都是一個名為broker的應用程序,它可以接收和傳輸MQTT消息。當代理從客戶端收到消息時,它可以將消息發送到訂閱該消息主題的任何其他客戶端。常用的MQTT代理是Mosquitto,可用于許多平臺,如Windows,Linux或Raspberry Pi。甚至還有一個可供任何人使用的在線經紀人。
MQTT系統的第二個組件是客戶端,它連接到代理并可以發布或訂閱MQTT消息。對于基于ESP8266的項目,PubSubClient經常被用作MQTT客戶端的基礎。
MQTT消息按主題分類,主題是編碼到每個消息中的字符串??蛻舳擞嗛喼黝},當代理收到消息時,它會將其傳輸給訂閱它的任何客戶端。 MQTT主題具有與文件系統類似的結構,并使用/字符作為分隔符。一些示例主題是:
home/kitchen/light
home/lounge/lamp
home/lounge/light
通配符(#)可用于訂閱級別上的所有消息。例如,訂閱home/lounge/#的客戶將收到家庭/休息室/燈和家庭/休息室/燈光消息。訂閱home/#的客戶將收到以上所有訂閱。
MQTT提供簡易消息系統
MQTT可以為制造商提供強大的功能,易于實現,可靠的消息系統。它適用于需要在設備之間進行通信的任何項目,例如家庭監控系統,并且可以在以后階段輕松調整以合并其他傳感器。
有關基于MQTT的系統的示例ESP8266客戶端和運行Mosquitto代理的Raspberry Pi,請查看如何在Raspberry Pi上安裝Mosquitto MQTT Broker。
-
MQTT
+關注
關注
5文章
650瀏覽量
22487
發布評論請先 登錄
相關推薦
評論