在當今的技術世界中,您一定聽說過“物聯網”這個詞。物聯網簡稱物聯網,是通過互聯網與其他設備交換數據的物理對象網絡。數據通過軟件和其他技術共享。
IoT 消息傳遞的標準是 MQTT,即消息隊列遙測傳輸。很多人可能會問什么是MQTT,MQTT是如何工作的?在本文中,我將告訴您什么是 MQTT,為什么 MQTT 很重要以及 MQTT 的一些用例。
MQTT 是開放的 OASIS 和 ISO (ISO/IEC 20922) 標準輕量級消息傳遞協議。它是一種發布/訂閱網絡協議,用于在設備之間傳輸消息。1999 年,由于需要通過衛星連接石油管道遙測系統,因此 MQTT 由 Andy Stanford-Clark (IBM) 和 Arlen Nipper 設計。它非常適合連接具有最小網絡帶寬的遠程設備,處理不可靠的網絡,易于實施,因此非常適合機器對機器 (M2M) 通信。該協議在 TCP/IP 上運行。MQTT 用于多個行業,包括汽車、物流、消費品、電信、石油和天然氣等。
MQTT 協議有兩個主體:客戶端和代理。服務器是 MQTT 代理,而連接的設備是客戶端。當客戶端想要向代理發送數據時,它被稱為 publish。當 broker 想要向客戶端發送數據時,它被稱為 subscribe。
讓我們以溫度傳感器設備為例。它想將其讀數發送給經紀人,這是一個電話或桌面應用程序。手機或桌面應用程序期待接收此溫度值。因此,會有雙向通信:
溫度設備定義了它想要發布的地方,例如:“temp”。它發布消息“溫度值”。
應用程序訂閱主題“temp”。然后它接收溫度值。
如果訂閱客戶端和代理之間的連接斷開,代理將緩存消息并在訂閱者重新上線時將它們推送給訂閱者。但是,如果是發布客戶端和代理的情況,并且連接在沒有注意到的情況下斷開連接,則代理向訂閱者發送帶有發布者指令的緩存消息。
· 輕巧高效
MQTT 客戶端非常小,需要的資源最少,因此可以在小型微控制器上使用。MQTT 的代碼占用空間小,因此可以優化網絡帶寬。
· 雙向通信
MQTT 允許在設備到云和云到設備之間進行消息傳遞。此功能可以輕松地向一組事物廣播消息并有效地分發數據。
· 擴展到數以百萬計的事物
MQTT 具有 ISO 消息標準,使其能夠連接數百萬個物聯網設備。
· 可靠的消息傳遞
消息傳遞的可靠性對于許多物聯網用例很重要。這就是 MQTT 具有 3 個定義的服務質量級別的原因:
最多一次 - 一條消息只發送一次。沒有跟進確認客戶是否收到消息。
至少一次 ——發送消息后,客戶端發送響應以確認已收到消息。代理將繼續重新發送消息,直到收到確認。
Exactly once – 經紀人和客戶確認消息被接收并且只發送一次。
· 支持不可靠的網絡
許多物聯網設備通過不可靠的蜂窩網絡連接。MQTT 具有持久會話,可減少客戶端與代理重新連接的時間。
· 安全啟用
MQTT 使用 TLS/SSL 來加密消息和現代身份驗證協議。
· MQTT 使用最小化數據包,導致網絡使用率低
· MQTT 耗電量小,有利于連接的設備
· 汽車
BMW Mobility Services(汽車共享應用)已經使用 HiveMQ 和 MQTT 超過 4 年。HiveMQ 支持超過 80,000 個并發連接的軟件客戶端,每分鐘生成超過 90,000 條消息。BMW Mobility Services 使用 HiveMQ 作為內部消息總線,在后端微服務之間移動數據。
· 后勤
Matternet 正在制造無人機,以減少在醫院和測試實驗室之間運輸醫療樣本所需的時間。通過使用 HiveMQ,Matternet 可以實時跟蹤航班狀態。MQTT 消息通過運行在 Matternet 平臺上的 HiveMQ 傳輸。這些消息在飛行期間在無人機之間發送到著陸站。
· 制造業
MQTTRoute 是一個傳輸消息的平臺,Celikler Holding 使用它來監控多個發電廠的發電量。MQTT 的使用提供了發電廠之間的安全通信。
· 消費產品
CASO Design 打造智能廚房電器。例如,CASCO WineComfort Smart,一款酒柜,保證了葡萄酒的品質。該應用程序會在幾秒鐘內監控并報告任何錯誤消息,例如,如果溫度發生任何變化,您將收到通知。通過這種方式,它可以確保葡萄酒儲存在合適的條件下。