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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MQTT 是什么?

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

之后 IBM 一直將 MQTT 作為一個(gè)內(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é)議的重點(diǎn)也不再只是嵌入式系統(tǒng),而是更廣泛的物聯(lián)網(wǎng)(Internet of Things)世界了。

MQTT 的優(yōu)點(diǎn)

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

1. 實(shí)現(xiàn)簡(jiǎn)單

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

3. 輕量、占用帶寬低

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

5. 可保持的會(huì)話(session)

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

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

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

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

簡(jiǎn)單來(lái)說是因?yàn)?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 兩個(gè)詞,但是它并不是一個(gè)像 RabbitMQ 那樣的一個(gè)消息隊(duì)列,這是初學(xué)者最容易搞混的一個(gè)問題。MQTT 跟傳統(tǒng)的消息隊(duì)列相比,有以下一些區(qū)別:

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

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

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

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

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

同時(shí),我在社區(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,要么是單獨(dú)實(shí)現(xiàn)某一個(gè)功能的教程。只教其然,未教其所以然。

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

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

    關(guān)注

    2551

    文章

    51106

    瀏覽量

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

    關(guān)注

    2909

    文章

    44640

    瀏覽量

    373441
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    651

    瀏覽量

    22512

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

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

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    聯(lián)網(wǎng)學(xué)習(xí)路線來(lái)啦!

    聯(lián)網(wǎng)學(xué)習(xí)路線來(lái)啦! 聯(lián)網(wǎng)方向作為目前一個(gè)熱門的技術(shù)發(fā)展方向,有大量的人才需求,小白的學(xué)習(xí)
    發(fā)表于 11-11 16:03

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

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

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

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

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

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

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

    的消息發(fā)布/訂閱傳輸協(xié)議。MQTT協(xié)議是輕量、簡(jiǎn)單、開放和易于實(shí)現(xiàn)的,這些特點(diǎ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è)備了,先頭部隊(duì)已經(jīng)完整的移植了MQTT協(xié)議到我們的開發(fā)板上了,既然應(yīng)用端已經(jīng)實(shí)現(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è)備了,先頭部隊(duì)已經(jīng)完整的移植了MQTT協(xié)議到我們的開發(fā)板上了,既然應(yīng)用端已經(jīng)實(shí)現(xiàn),作為作
    發(fā)表于 12-02 16:56

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

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

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

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

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

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

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

    到OneNET聯(lián)網(wǎng)平臺(tái)》《NodeMCU學(xué)習(xí)(九)--連接OneNET聯(lián)網(wǎng)平臺(tái)》《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

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

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

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

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