0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

入門物聯(lián)網(wǎng),學(xué)習(xí)和了解MQTT協(xié)議是非常必要的

8g3K_AI_Thinker ? 來源:未知 ? 作者:李倩 ? 2018-11-23 09:19 ? 次閱讀

物聯(lián)網(wǎng)曾被認(rèn)為是繼計算機(jī)、互聯(lián)網(wǎng)之后,信息技術(shù)行業(yè)的第三次浪潮。隨著基礎(chǔ)通訊設(shè)施的不斷完善,尤其是 5G 的出現(xiàn),進(jìn)一步降低了萬物互聯(lián)的門檻和成本。

物聯(lián)網(wǎng)本身也是 AI區(qū)塊鏈應(yīng)用很好的落地場景之一,各大云服務(wù)商也在紛紛上架物聯(lián)網(wǎng)平臺和服務(wù)。

在 AI 和區(qū)塊鏈的熱潮過去之后,物聯(lián)網(wǎng)很有可能成為下一個風(fēng)口,在風(fēng)口到來之前,提前進(jìn)行一些知識儲備,是很有必要的。

縱觀人工智能的發(fā)展路線我們可以看到,人工智能近年來之所以能夠突飛猛進(jìn)。

第一個原因是硬件的發(fā)展,使得深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)時間迅速縮短;

第二就是數(shù)據(jù),在我們這個大數(shù)據(jù)的時代,獲取大量數(shù)據(jù)的成本已經(jīng)很低了。

再來說物聯(lián)網(wǎng),像傳感器、智能家電、可穿戴設(shè)備等,每天也都在產(chǎn)生著巨量的數(shù)據(jù),這也是反饋給深度學(xué)習(xí)良好的訓(xùn)練數(shù)據(jù)。

同時,學(xué)習(xí)的結(jié)果又可以再應(yīng)用到物聯(lián)網(wǎng)的終端,形成一個良性的循環(huán)。舉個例子:

從交通探頭我們可以采集到大量的交通實時圖片,經(jīng)過處理之后,喂給神經(jīng)網(wǎng)絡(luò),比如 SSD。

SSD 學(xué)會在圖片中標(biāo)注出人和汽車的位置,然后再把模型部署到探頭端,探頭就可以利用深度學(xué)習(xí)的接口,來實時地分析人流和車流情況了。

所以我認(rèn)為物聯(lián)網(wǎng)是 AI 落地的一個非常好的應(yīng)用場景,隨著 AI 的迅速發(fā)展,物聯(lián)網(wǎng)這個同樣在很多年前就提出的理論和技術(shù),也會迎來新的春天。

如果想入門物聯(lián)網(wǎng),學(xué)習(xí)和了解 MQTT 協(xié)議是非常必要的,它解決了物聯(lián)網(wǎng)中的一個最基礎(chǔ)的問題,設(shè)備和設(shè)備之間,設(shè)備和云端服務(wù)之間,是怎么通訊的。

MQTT 之于物聯(lián)網(wǎng),就好像 HTTP 之于 Web 那么重要。目前基本所有開放云平臺比如阿里云、騰訊云、青云等都支持 MQTT 的接入。

MQTT 是什么?

MQTT,全稱為 Message Queue Telemetry Transport。在 1999 年,由 IBM 的 Andy Stanford-Clark 和 Arcom 的 Arlen Nipper 為了一個通過衛(wèi)星網(wǎng)絡(luò)連接輸油管道的項目開發(fā)的。

之后 IBM 一直將 MQTT 作為一個內(nèi)部協(xié)議在其產(chǎn)品中使用,直到 2010 年,IBM 公開發(fā)布了 MQTT 3.1 版本。在 2014 年,MQTT 協(xié)議正式成為了 OASIS(結(jié)構(gòu)化信息標(biāo)準(zhǔn)促進(jìn)組織)的標(biāo)準(zhǔn)協(xié)議。

隨著多年的發(fā)展,MQTT 協(xié)議的重點也不再只是嵌入式系統(tǒng),而是更廣泛的物聯(lián)網(wǎng)(Internet of Things)世界了。

MQTT 的優(yōu)點

為了滿足低電量消耗和低網(wǎng)絡(luò)帶寬的需求,MQTT 協(xié)議在設(shè)計之初就包含了以下一些特點:

1. 實現(xiàn)簡單

2. 提供數(shù)據(jù)傳輸?shù)?QoS

3. 輕量、占用帶寬低

4. 可傳輸任意類型的數(shù)據(jù)

5. 可保持的會話(session)

MQTT 協(xié)議可以為大量的低功率、工作網(wǎng)絡(luò)環(huán)境不可靠的物聯(lián)網(wǎng)設(shè)備提供通訊保障。

而它的應(yīng)用范圍也不僅如此,在移動互聯(lián)網(wǎng)領(lǐng)域也大有作為:很多 Android App 的推送功能,都是基于 MQTT 實現(xiàn)的,也有一些 IM 的實現(xiàn),是基于 MQTT 的。

MQTT 為什么如此輕量且靈活?

MQTT 發(fā)布和訂閱模型

簡單來說是因為 MQTT 協(xié)議有以下特性:

基于 TCP 協(xié)議的應(yīng)用層協(xié)議;

采用 C/S 架構(gòu);

使用訂閱/發(fā)布模式,將消息的發(fā)送方和接受方解耦;

提供 3 種消息的 QoS(Quality of Service): 至多一次,最少一次,只有一次;

收發(fā)消息都是異步的,發(fā)送方不需要等待接收方應(yīng)答。

雖然 MQTT 協(xié)議名稱有 Message Queue 兩個詞,但是它并不是一個像 RabbitMQ 那樣的一個消息隊列,這是初學(xué)者最容易搞混的一個問題。MQTT 跟傳統(tǒng)的消息隊列相比,有以下一些區(qū)別:

1. 在傳統(tǒng)消息隊列中,在發(fā)送消息之前,必須先創(chuàng)建相應(yīng)的隊列;在 MQTT 中,不需要預(yù)先創(chuàng)建要發(fā)布的主題(可訂閱的 Topic);

2. 在傳統(tǒng)消息隊列中,未被消費的消息總是會被保存在某個隊列中,直到有一個消費者將其消費;在 MQTT 中,如果發(fā)布一個沒有被任何客戶端訂閱的消息,這個消息將被直接扔掉;

3. 在傳統(tǒng)消息隊列中,一個消息只能被一個客戶端獲取,在 MQTT 中,一個消息可以被多個訂閱者獲取,MQTT 協(xié)議也不支持指定消息被單一的客戶端獲取。

一個物聯(lián)網(wǎng)老兵的經(jīng)驗之談

我從 2015 年開始帶領(lǐng)團(tuán)隊在物聯(lián)網(wǎng)領(lǐng)域創(chuàng)業(yè),從物聯(lián)網(wǎng)軟硬件平臺的架構(gòu)到實現(xiàn),從上線運營到盈利,中間走過一些彎路,也踩過一些坑。

同時,我在社區(qū)、論壇、QQ 群里面也經(jīng)??匆娨恍﹦倓偨佑| MQTT 的同學(xué)在問各種問題。

我曾經(jīng)在網(wǎng)絡(luò)上面也搜索過 MQTT 相關(guān)的內(nèi)容,發(fā)現(xiàn)系統(tǒng)介紹 MQTT 協(xié)議的內(nèi)容很少,要么是翻譯協(xié)議的 Specification,要么是單獨實現(xiàn)某一個功能的教程。只教其然,未教其所以然。

所以我總結(jié)了自己的實踐經(jīng)驗,以及我看到的大家常遇到的問題,寫了這一門課程,系統(tǒng)地介紹 MQTT 協(xié)議,希望對學(xué)習(xí) MQTT 的同學(xué)有所幫助。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2545

    文章

    50445

    瀏覽量

    751044
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2900

    文章

    44062

    瀏覽量

    370223
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    647

    瀏覽量

    22392

原文標(biāo)題:MQTT,物聯(lián)網(wǎng)圈的 HTTP,萬物互聯(lián)第一步

文章出處:【微信號:AI_Thinker,微信公眾號:人工智能頭條】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    聯(lián)網(wǎng)傳輸協(xié)議MQTT到底是個什么?

    MQTT是什么?MQTT是一個聯(lián)網(wǎng)傳輸協(xié)議,它被設(shè)計用于輕量級的發(fā)布/訂閱式消息傳輸,旨在為低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中的
    發(fā)表于 01-08 11:27

    工業(yè)無線MQTT聯(lián)網(wǎng)網(wǎng)關(guān)

    通信)和非常少的開銷(較之 HTTP 等協(xié)議)。 在 3G 網(wǎng)絡(luò)中,MQTT 的吞吐量速度是使用 HTTP 的表述性狀態(tài)轉(zhuǎn)移 (REST) 的 93 倍。工業(yè)無線MQTT
    發(fā)表于 02-07 14:00

    【HarmonyOS】 MQTT 協(xié)議開發(fā)入門

    的即時通訊協(xié)議,使其在聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議
    發(fā)表于 11-03 17:38

    MQTT 協(xié)議開發(fā)入門

    的即時通訊協(xié)議,使其在聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。MQTT是一個基于客戶端-服務(wù)器的消息發(fā)布/訂閱傳輸協(xié)議。
    發(fā)表于 11-05 09:38

    MQTT 協(xié)議 開發(fā)入門

    的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,如:機(jī)器與機(jī)器(M2M)通信和
    發(fā)表于 11-07 15:51

    萌新闖關(guān)之聯(lián)網(wǎng)MQTT協(xié)議梳理

    目前大家的進(jìn)度已經(jīng)推進(jìn)到使用聯(lián)網(wǎng)協(xié)議進(jìn)行控制終端設(shè)備了,先頭部隊已經(jīng)完整的移植了MQTT協(xié)議到我們的開發(fā)板上了,既然應(yīng)用端已經(jīng)實現(xiàn),作為作
    發(fā)表于 11-27 00:23

    萌新闖關(guān)之聯(lián)網(wǎng)MQTT協(xié)議梳理

    目前大家的進(jìn)度已經(jīng)推進(jìn)到使用聯(lián)網(wǎng)協(xié)議進(jìn)行控制終端設(shè)備了,先頭部隊已經(jīng)完整的移植了MQTT協(xié)議到我們的開發(fā)板上了,既然應(yīng)用端已經(jīng)實現(xiàn),作為作
    發(fā)表于 12-02 16:56

    聯(lián)網(wǎng)的基石-MQTT協(xié)議初識

    1、聯(lián)網(wǎng)的基石-mqtt協(xié)議初識隨著 5G 時代的來臨,萬互聯(lián)的偉大構(gòu)想正在成為現(xiàn)實。聯(lián)網(wǎng)
    發(fā)表于 09-08 16:03

    如何采用mqtt協(xié)議實現(xiàn)聯(lián)網(wǎng)模塊消息推送?

    如何采用mqtt協(xié)議實現(xiàn)聯(lián)網(wǎng)模塊消息推送
    發(fā)表于 11-03 06:55

    聯(lián)網(wǎng)傳輸協(xié)議MQTT的優(yōu)勢

    聯(lián)網(wǎng)傳輸協(xié)議為什么首選MQTT?
    的頭像 發(fā)表于 01-09 14:46 ?4045次閱讀

    NodeMCU學(xué)習(xí)(十一)--MQTT的訂閱與發(fā)布

    到OneNET聯(lián)網(wǎng)平臺》《NodeMCU學(xué)習(xí)(九)--連接OneNET聯(lián)網(wǎng)平臺》《OneNET
    發(fā)表于 10-26 13:05 ?29次下載
    NodeMCU<b class='flag-5'>學(xué)習(xí)</b>(十一)--<b class='flag-5'>MQTT</b>的訂閱與發(fā)布

    聯(lián)網(wǎng)協(xié)議MQTT

    的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環(huán)境中,作為一種低開銷、低帶寬占用的即時通訊協(xié)議,使其在聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有較廣泛的應(yīng)用。如:機(jī)器與機(jī)器(M2M
    的頭像 發(fā)表于 11-22 09:53 ?1466次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>MQTT</b>

    聯(lián)網(wǎng)應(yīng)用中,為什么MQTT干掉了HTTP?

    HTTP作為當(dāng)下使用最為廣泛的協(xié)議之一,但隨著聯(lián)網(wǎng)行業(yè)的發(fā)展,MQTT在過去的幾年也受到了大量聯(lián)網(wǎng)
    的頭像 發(fā)表于 04-27 09:33 ?650次閱讀
    <b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b>應(yīng)用中,為什么<b class='flag-5'>MQTT</b>干掉了HTTP?

    智聯(lián)聯(lián)分享之聯(lián)網(wǎng)協(xié)議MQTT簡述,MQTT協(xié)議特點

    )基于客戶端/服務(wù)器的信息發(fā)布/訂閱的聯(lián)網(wǎng)常用傳輸協(xié)議。1999年由開發(fā)商IBM發(fā)布,MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點
    的頭像 發(fā)表于 03-28 18:10 ?1223次閱讀
    智聯(lián)<b class='flag-5'>物</b>聯(lián)分享之<b class='flag-5'>物</b><b class='flag-5'>聯(lián)網(wǎng)</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>MQTT</b>簡述,<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>特點

    聯(lián)網(wǎng)中的MQTT協(xié)議概述

    MQTT協(xié)議已經(jīng)成了聯(lián)網(wǎng)通信中的一個熱詞,今天我們一起來學(xué)習(xí)一下關(guān)于MQTT
    的頭像 發(fā)表于 11-25 14:09 ?1257次閱讀