在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MQTT是什么?

汽車電子技術 ? 來源:程序猿Aki ? 作者: 程序猿Aki ? 2023-01-20 11:46 ? 次閱讀

前言

本文簡單介紹了MQTT的基礎知識和使用方法,以藍牙WIFI雙模芯片W801作為硬件設備,接入到華為云。


一、MQTT是什么?

MQTT(消息隊列遙測傳輸協議),是一種基于 發布/訂閱 (publish/subscribe)模式的"輕量級"通訊協議, 該協議構建于TCP/IP協議上 。MQTT最大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。

好了,以上都是一些文縐縐的說辭,了解一下即可。然后我們要知道,它是如何實現通信的??

MQTT協議中有三種身份:發布者(Publish)、服務器(Broker)、訂閱者(Subscribe)。

如下圖,每個設備之間都已經建立了MQTT連接。某手機和某電腦訂閱了“溫度”主題,充當訂閱者,溫度計充當發布者。當溫度計向“溫度”主題發布一條消息時,那么訂閱了“溫度”主題的訂閱者都會收到這條消息。而服務器只是充當轉發的角色

微信截圖_20230105161930.png

下面是在MQTT中的一些操作:

  • Connect:與服務器進行MQTT連接;
  • Disconnect:與服務器斷開MQTT連接;
  • Subscribe:訂閱某個主題;
  • UnSubscribe:取消訂閱某個主題;
  • Publish:發布消息;

以下是通信過程中使用到的報文,在下文中會使用到。

微信截圖_20230105161930.png

二、接入物聯網平臺(以華為云為例)

下面是物聯網應用的一個典型的示意圖。現在舉一個例子加以說明:假設設計一個溫度監測的應用。設備端(溫度傳感器+可以聯網的芯片)進行數據采集,將數據通過MQTT協議傳輸到物聯網平臺(服務器、Broker)。與此同時,應用端(手機APP、小程序或電腦網頁等)從物聯網平臺接收數據進行顯示監測。應用端和物聯網平臺之間的通信協議并非只限于MQTT,也可能是HTTP、AMQP等。

微信截圖_20230105161930.png

1.創建產品和新增設備

首先我們需要在物聯網平臺上新建一個產品并新增一個測試設備,具體設置如下:

微信截圖_20230105161930.png

微信截圖_20230105161930.png

微信截圖_20230105161930.png

2.建立TCP連接

因為MQTT是建立在TCP連接上的。因此,在建立MQTT連接之前需要建立TCP連接。具體一般是使用套接字進行建立TCP連接,需要的參數包括 域名(解析出IP地址),端口(一般是1883)

從騰訊云的文檔中找到域名和端口:

  • 域名(中國大陸):

    productid.iotcloud.tencentdevices.com,其中productid更換為產品ID

  • 端口:1883

調用函數建立TCP連接

static int mqtt_init_socket(mqtt_broker_handle_t *broker, const char *hostname, short port);
//broker:MQTT信息的結構體
//hostname:域名
//port:端口

3.建立MQTT連接

設備端與服務器建立MQTT連接的步驟如下:1、發送CONNECT報文;2、接收CONNACK報文;3、定時發送心跳包。

1、CONNECT報文

CONNECT報文的內容如下:

  • client id:客戶端id
  • username:用戶名
  • password:密碼
  • clean session:清除會話
  • keepalive:心跳時間

其中前三個參數可以在華為云提供的工具中獲取(如下圖):華為云MQTT報文內容生成工具。填入上圖生成的設備ID和密鑰即可生成。

微信截圖_20230105161930.png

參數clean session與Qos(服務質量)有關,保持默認即可;心跳時間的設置建議60-300,單位是s。

2、接收CONNACK報文

發送CONNECT報文后會接收到連接確認報文CONNACK。

3、發送心跳包

Keepalive指定連接最大空閑時間T,當客戶端檢測到連接空閑時間超過T時,必須向Broker發送心跳報文PINGREQ,Broker收到心跳請求后返回心跳響應PINGRESP。若Broker超過1.5T時間沒收到心跳請求則斷開連接,并且投遞遺囑消息到訂閱方;同樣,若客戶端超過一定時間仍沒收到心跳響應PINGRESP則斷開連接。 簡單來說,心跳包是讓對方知道設備還在線,沒有斷開連接

完成上述步驟后,即可激活設備。

微信截圖_20230105161930.png

微信截圖_20230105161930.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 藍牙
    +關注

    關注

    115

    文章

    5974

    瀏覽量

    172683
  • WIFI
    +關注

    關注

    81

    文章

    5356

    瀏覽量

    206865
  • MQTT
    +關注

    關注

    5

    文章

    662

    瀏覽量

    23339
收藏 人收藏

    評論

    相關推薦

    都有MQTT了,為什么還用TCP?#物聯#mqtt #tcp

    MQTT
    電子學習
    發布于 :2023年02月08日 12:00:49

    什么是MQTTMQTT功能介紹

    RT-ThreadMQTT客戶端功能特點MQTT簡述MQTT功能介紹MQTT客戶端MQTT協議中的方法
    發表于 03-30 07:06

    MQTT是什么?MQTT協議的特點有哪些

    MQTT是什么?MQTT協議的特點有哪些?MQTT協議有幾種消息發布服務質量啊?
    發表于 09-29 07:43

    MQTT物聯網網關的常見類型

    PPI轉MQTT網關, Modbus轉MQTT網關, profinet轉MQTT網關, 支持S7-1200數據采集的MQTT網關, 支持S7-1500數據采集的
    發表于 05-23 10:33 ?31次下載

    MQTT的概述與MQTT的代碼編程理解

    圖1為MQTT通信模型圖,我們針對此圖進行理解MQTT的通信過程。
    的頭像 發表于 03-23 15:58 ?3784次閱讀
    <b class='flag-5'>MQTT</b>的概述與<b class='flag-5'>MQTT</b>的代碼編程理解

    Zigbee2mqtt將Zigbee轉化成MQTT

    zigbee2mqtt.zip
    發表于 04-20 10:51 ?4次下載
    Zigbee2<b class='flag-5'>mqtt</b>將Zigbee轉化成<b class='flag-5'>MQTT</b>

    smart-mqtt MQTT Broker服務

    gitee-smart-mqtt.zip
    發表于 04-20 10:46 ?2次下載
    smart-<b class='flag-5'>mqtt</b> <b class='flag-5'>MQTT</b> Broker服務

    MQTT.Chat開源的MQTT消息傳遞代理

    gitee-MQTT.Chat.zip
    發表于 04-20 09:58 ?2次下載
    <b class='flag-5'>MQTT</b>.Chat開源的<b class='flag-5'>MQTT</b>消息傳遞代理

    MQTT 5協議你知道多少?

    MQTT協議是當今世界上最流行、接受度最高的物聯網協議。自推出以來,MQTT協議在各行業應用廣泛。本文帶大家了解MQTT協議演進歷史以及最新規范MQTT 5的特點。
    的頭像 發表于 02-23 13:14 ?950次閱讀

    什么是MQTT網關?

    Modbus轉MQTT網關
    的頭像 發表于 10-25 12:28 ?1227次閱讀
    什么是<b class='flag-5'>MQTT</b>網關?

    MQTT發布特性有哪些

    MQTT 發布/訂閱特性 從以上實例我們可以看到,MQTT 通信的核心樞紐是 MQTT 服務端,它負責將 MQTT 客戶端發送來的信息傳遞給 MQT
    的頭像 發表于 07-30 15:16 ?810次閱讀

    如何使用OneNET平臺的MQTT功能?

    MQTT是一種輕量級的通信協議,適用于物聯網設備之間的可靠通信。本教程將介紹如何使用OneNET平臺的MQTT功能,實現設備間的數據傳輸和控制。我們將使用"串口服務器NB114"
    的頭像 發表于 10-20 08:21 ?1465次閱讀
    如何使用OneNET平臺的<b class='flag-5'>MQTT</b>功能?

    MQTT是什么 MQTT特點

    MQTT 是 Message Queuing Telemetry Transport 的縮寫,是一種輕量級的、基于發布/訂閱模式的物聯網通信協議。 它具有以下特點: ?簡單易用:MQTT 的協議規范
    的頭像 發表于 11-09 15:20 ?2762次閱讀

    MQTT網關是什么?MQTT網關的功能

    MQTT網關是支持MQTT協議的物聯網網關,是一種用于連接不同設備和云端平臺之間的中間件。它充當了設備和云端服務之間的數據傳輸橋梁。MQTT網關能夠接收來自各種設備的數據,并將其發送到云端平臺,同時
    的頭像 發表于 03-18 17:10 ?1044次閱讀

    為什么使用MQTT而不是HTTP?

    MQTT協議通過TCP/IP運行,基于無損通信的雙向發布-訂閱模型,確保MQTT消息高效無損地傳遞。
    發表于 04-28 11:07 ?1194次閱讀
    為什么使用<b class='flag-5'>MQTT</b>而不是HTTP?
    主站蜘蛛池模板: 黄色大片a级 | 欧美黑人5o厘米全进去 | 国产精品漂亮美女在线观看 | 天堂电影免费在线资源 | 香蕉蕉亚亚洲aav综合 | 手机在线精品视频 | 欧美日韩中文字幕 | 日本一区二区三区不卡在线看 | 免费国产h视频在线观看 | 午夜操| 3344成年在线视频免费播放男男 | 夜夜狠| 免看一级a毛片一片成人不卡 | 日本免费大黄 | 国产一级真人毛爱做毛片 | 又色又污又爽又黄的网站 | 亚洲色图欧美在线 | 色偷偷av男人的天堂 | 欧美黄色成人 | 福利色视频| 在线观看亚洲免费视频 | 1v1高h肉爽文bl | 激情五月在线 | 91啦中文在线观看 | 亚洲精品资源 | 在线观看高清视频 | 亚洲韩国在线一卡二卡 | 四虎最新紧急入口 | 91p0rn永久备用地址二 | 男女激情做爰叫床声视频偷拍 | 亚洲二区在线 | 色婷婷亚洲综合五月 | 就去色综合 | 色老久久精品偷偷鲁一区 | 国产精品天天影视久久综合网 | 亚洲人成电影在线小说网色 | 国产精品情人露脸在线观看 | 国产一级特黄高清在线大片 | 成人5252色 | 在线观看黄a | h视频免费 |