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

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

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

【技術(shù)分享】以利爾達MB960/860模組為例,教你快速接入MQTT協(xié)議(下)

利爾達科技集團 ? 2022-02-18 09:37 ? 次閱讀

LIERDA

隨著 5G 時代的來臨,萬物互聯(lián)的偉大構(gòu)想正在成為現(xiàn)實。2021年全球智能物聯(lián)網(wǎng)處于爆發(fā)式增長通道,設(shè)備數(shù)量超過250億臺。海量的設(shè)備接入和設(shè)備管理對網(wǎng)絡(luò)帶寬、通信協(xié)議以及平臺服務(wù)架構(gòu)都帶來了很大挑戰(zhàn)。

通信協(xié)議作為聯(lián)通物與物的橋梁,在物聯(lián)網(wǎng)架構(gòu)中起著關(guān)鍵作用。上周我們已經(jīng)在《【技術(shù)分享】以利爾達MB960/860模組為例,教你快速接入MQTT協(xié)議(上)》一文中介紹了MQTT協(xié)議的基礎(chǔ)知識,本周將介紹接入阿里云平臺MQTT協(xié)議的具體步驟,幫助大家快速上手。

MQTT AT指令接入

1、設(shè)置服務(wù)端IP或域名

AT+MQTTCFG="host",0,"host_name",1883

:服務(wù)端的IP或域名:1~2000字節(jié)字符串。阿里云公共實例接入:a1oGs******.iot-as-mqtt.cn-shanghai.aliyuncs.com

a1oGs******為本示例產(chǎn)品的productKey。

cn-shanghai為本示例所在地域。

示例

AT+MQTTCFG="host",0,"gg0*******.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883

實現(xiàn)說明

●如果設(shè)置IP無需任何操作,只需IP滿足地址格式。

●如果設(shè)置域名,需先使用AT+CFUN=0和AT+NCONFIG=PCO_IE_TYPE,PCO這兩條AT命令開啟DNS服務(wù)器,再次重啟,之后才能使用域名連接。

2、設(shè)置客戶端標識

AT+MQTTCFG="clientid",,

< Link_ID >連接ID:取值0~2。

客戶端標識符:字符串類型,1~128字節(jié)字符串。

示例

AT+MQTTCFG="clientid",0,"8677**********|securemode=2,signmethod=hmacsha1|"

實現(xiàn)說明

如果連接NB-IOT平臺,則需根據(jù)平臺規(guī)則來設(shè)置客戶端標識。

3、連接服務(wù)端

AT+MQTTCONN=,,,,

< Link_ID >連接ID:取值0~2。

SSL TCP連接使能:

0:不采用;

1:采用SSL TCP連接。

will_flag 遺囑標志,取值0或1:

0:不帶遺囑;

1:CONNECT報文帶有遺囑。

用戶名:0~512字節(jié)的字符串。

密碼:0~512字節(jié)的字符串。

:阿里云平臺用戶名及密碼需用三元組生成,生成方式請參考阿里云平臺提供的密碼生成文檔。

示例

AT+MQTTCONN=0,0,0,"8677******&gg0*******","91C3E702***************************755*****"

實現(xiàn)說明

在連接前需要設(shè)置服務(wù)端ip和clientid,不同的平臺連接使用的用戶名和密碼需要根據(jù)平臺要求進行設(shè)置。如果是加密連接還需要設(shè)置證書,并使ssl_enable為1。設(shè)置will_flag為1時,還需要設(shè)置遺囑。

連接失敗時的錯誤碼如下:

● 0:返回正確;

● 1:未知錯誤;

● 2:申請內(nèi)存失?。?/p>

● 3:參數(shù)檢查錯誤;

● 80:網(wǎng)絡(luò)連接狀態(tài)錯誤(可是未撥號/時間不對/服務(wù)器關(guān)閉);

● 81:MQTT設(shè)置版本錯誤;

● 82:clientid錯誤;

● 83:服務(wù)器拒絕客戶端連接;

● 84:用戶名或者密碼錯誤;

● 85:訂閱失敗#訂閱失敗會導致斷連;

● 86:取消訂閱失??;

● 87:發(fā)布失敗;

● 88:當前未連接;

● 89:當前已有連接又再次發(fā)起連接;

● 90:創(chuàng)建客戶端失??;

● 91:該linkid已創(chuàng)建客戶端又再次發(fā)起創(chuàng)建;

● 92:該linkid未創(chuàng)建客戶端;

● 93:當前MQTT狀態(tài)不允許執(zhí)行該操作。

查詢連接時的狀態(tài)如下:

● state=1 MQTT is initial(未配置)

● state=2 MQTT is connecting

● state=3 MQTT is connected

● state=4 MQTT is disconnected

說明:需要注意,MQTT內(nèi)部實現(xiàn)是先使用設(shè)置的MQTT版本連接,失敗之后會使用MQTT3.1版本來連接。

4、訂閱MQTT消息

AT+MQTTSUB=,,,[,,][,,]

< Link_ID >連接ID:取值0~2。

報文標識符:取值1~65535。

主題名:0~512字節(jié)字符串。一次最多可訂閱3個主題。

訂閱消息QOS等級:取值0~2。

示例

AT+MQTTSUB=0,1,"/gg0*******/867********/user/test",1

收←◆+MQTTSUBACK: 0,1,0

OK

收←◆+MQTTRECV: 0,0,0,0,/gg0*********/867*********/user/test,qtwtewtytweyt

實現(xiàn)說明

訂閱異常包括:

● 報文處理異常,包括非連接、網(wǎng)絡(luò)異常狀態(tài)下收到上位機下發(fā)該AT命令、報文參

數(shù)異常等。

● 超時未收到服務(wù)端回復,包括服務(wù)端回復的報文異常。

● 返回85訂閱失敗,斷連。

5、發(fā)布一個消息

AT+MQTTPUB=,,,,,

< Link_ID >連接ID:取值0~2。

報文標識符:取值1~65535。

發(fā)布消息QOS等級:取值0~2。

保留標志:取值0~1。

主題名:0~512字節(jié)字符串。

有效載荷:0~1500字節(jié)字符串。

示例AT+MQTTPUB=0,1,0,0,"/gg0*******/8677*********/user/test","this is a test"

收←◆+MQTTPUBACK: 0,1,0

OK

收←◆+MQTTRECV: 0,0,0,0,/gg0********/8677*********/user/test,this is a test

實現(xiàn)說明

●該命令用于發(fā)布時,如果在timeout時間內(nèi)沒有收到報文確認,則會打印ERROR。在收到一個QOS大于0的報文確認消息時,會打印+MQTTPUBACK_MSGID:,其中msgid為PUB報文的信息id。當查詢發(fā)布消息時,查詢的結(jié)果為發(fā)布的次數(shù)。當MQTT服務(wù)器不支持topic為0字節(jié)的字符串時,如果發(fā)送0字節(jié)的topic消息,則會導致斷連。

●該命令最多允許2個發(fā)布消息在重傳隊列中,超過2個發(fā)布消息會直接返回ERROR,不會發(fā)送。重傳隊列會嘗試5次重傳,之后就會清除重傳隊列里的發(fā)布消息。

●在斷連之后計數(shù)會清零。計數(shù)達到最大值建議反轉(zhuǎn),最大值4294967295(unsigned int)。在NB-IoT場景下最大的發(fā)包長度不能超過SEND_MAX_LEN(1358)字節(jié),如果超出長度則會發(fā)送失敗。失敗時會打印實際的發(fā)送長度,用戶需要保證發(fā)包長度不能超過SEND_MAX_LEN(1358)字節(jié)長度。

例如:用戶在非加密連接的情況下發(fā)送1500字節(jié)內(nèi)容,實際包長度為包頭長度和包體長度之和,為1505字節(jié)。包頭長度為1505-1500=5字節(jié),根據(jù)SEND_MAX_LEN(1358)長度限制,可以發(fā)送的包體的長度為SEND_MAX_LEN-包頭長度=1358-5=1353字節(jié).

[1541.451]→◇AT+MQTTPUB=0,1,0,0,"","adebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbade

bcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabad

bceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbe

bebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbd

badbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabb

dbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbab

cbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbb

ebfadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbad

babadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdb

befbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcb

dbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbeb

fbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadeb

cbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadb

ceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfadebcbcbabcbdb

dbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfb

babbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcb

cbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbce

ebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebeb

dbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbad

babadbceebbbebfbbabbdbbefbbebebdbadebcbcbabcbdbdbdbadbabadbceebbbebfbbabbdb

befbbebebd"

[1541.461]收←◆

[Error]:Please don't send a message longer than 1358 bytes. Message length which

contains header and payload is 1505 bytes.

[1541.969]收←◆

+MQTTCLOSE=0,128

ERROR: 0,1,110

ERROR

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

    評論

    相關(guān)推薦

    模組Locator應(yīng)用指導——以NT26U

    Locator是一種高效定位技術(shù),該功能通過移動網(wǎng)絡(luò)小區(qū)的信息實現(xiàn)定位功能。本文將以利爾達NT26U模組,詳細介紹Locator相關(guān)的A
    的頭像 發(fā)表于 11-29 01:02 ?287次閱讀
    <b class='flag-5'>模組</b>Locator應(yīng)用指導——以NT26U<b class='flag-5'>為</b><b class='flag-5'>例</b>

    Air780E模組AT指令MQTT應(yīng)用:技術(shù)指南

    今天我要講的是Air780E模組AT指令MQTT應(yīng)用,希望對大家有所幫助。
    的頭像 發(fā)表于 11-07 14:02 ?419次閱讀
    Air780E<b class='flag-5'>模組</b>AT指令<b class='flag-5'>下</b>的<b class='flag-5'>MQTT</b>應(yīng)用:<b class='flag-5'>技術(shù)</b>指南

    白嫖篇:4G 模組 MQTT 通信功能!

    今天我們白嫖的是4G 模組 MQTT 通信功能!以AIR708E開發(fā)板MQTT介紹,演示功能概述,準備硬件環(huán)境,準備軟件環(huán)境,
    的頭像 發(fā)表于 10-30 14:53 ?1341次閱讀
    白嫖篇:4G <b class='flag-5'>模組</b> <b class='flag-5'>MQTT</b> 通信功能!

    【教程】設(shè)備通過MQTT協(xié)議接入OneNET平臺,建立可視化界面

    在物聯(lián)網(wǎng)領(lǐng)域,傳感器與服務(wù)器的通信、信息的收集以及MQTT協(xié)議都是可以考慮的方案之一。MQTT通常用于需要低功耗和低帶寬的場景,如物聯(lián)網(wǎng)設(shè)備、傳感器網(wǎng)絡(luò)、移動應(yīng)用等。它的輕量級和高效特性使其非常適合
    的頭像 發(fā)表于 10-25 08:06 ?1014次閱讀
    【教程】設(shè)備通過<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b><b class='flag-5'>接入</b>OneNET平臺,建立可視化界面

    MQTT.fx 連接Onenet 多協(xié)議接入平臺 MQTT協(xié)議(舊版)詳解

    此文檔可以作為中間態(tài)MQTT版本,默認參數(shù)獲取教程 多協(xié)議接入地址 td {white-space:nowrap;border:1px solid #dee0e3;font-size:10pt
    的頭像 發(fā)表于 09-30 15:20 ?909次閱讀
    <b class='flag-5'>MQTT</b>.fx 連接Onenet 多<b class='flag-5'>協(xié)議</b><b class='flag-5'>接入</b>平臺 <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>(舊版)詳解

    MQTT協(xié)議網(wǎng)關(guān)的工作原理及功能特性

    在物聯(lián)網(wǎng)的快速發(fā)展中,MQTT協(xié)議網(wǎng)關(guān)作為連接物聯(lián)網(wǎng)設(shè)備與消息代理服務(wù)器的重要橋梁,扮演著不可或缺的角色。MQTT是一種基于發(fā)布/訂閱模式的輕量級通信
    的頭像 發(fā)表于 09-18 17:00 ?559次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>網(wǎng)關(guān)的工作原理及功能特性

    鋇錸PLC網(wǎng)關(guān)快速實現(xiàn)三菱、西門子PLC轉(zhuǎn)MQTT協(xié)議

    PLC轉(zhuǎn)MQTT網(wǎng)關(guān)BL102是一款專為PLC聯(lián)網(wǎng)和遠程PLC程序上傳下載調(diào)試而研發(fā)的,下行采集協(xié)議支持三菱、西門子、歐姆龍、臺達、施耐德等PLC協(xié)議,上行傳輸協(xié)議支持
    的頭像 發(fā)表于 07-31 17:00 ?501次閱讀
    鋇錸PLC網(wǎng)關(guān)<b class='flag-5'>快速</b>實現(xiàn)三菱、西門子PLC轉(zhuǎn)<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    鋇錸技術(shù)Modbus轉(zhuǎn)MQTT網(wǎng)關(guān):橋接Modbus協(xié)議MQTT協(xié)議

    在現(xiàn)今的工業(yè)物聯(lián)網(wǎng)時代,如何高效地將傳統(tǒng)工業(yè)設(shè)備與云端平臺連接起來,實現(xiàn)數(shù)據(jù)的實時監(jiān)控與分析,成為了許多企業(yè)關(guān)注的焦點問題。鋇錸技術(shù)推出的Modbus轉(zhuǎn)MQTT網(wǎng)關(guān)BL101,正是針對這一需求,
    的頭像 發(fā)表于 07-30 16:28 ?418次閱讀
    鋇錸<b class='flag-5'>技術(shù)</b>Modbus轉(zhuǎn)<b class='flag-5'>MQTT</b>網(wǎng)關(guān):橋接Modbus<b class='flag-5'>協(xié)議</b>與<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>

    利爾達NB模組搜網(wǎng)機制,看這一篇就夠了!

    本文檔主要介紹了利爾達NB860&MB960&MB260模組搜網(wǎng)策略及相關(guān)的AT命令,并給出了網(wǎng)絡(luò)搜索和注冊流程,旨在幫助客戶了解
    的頭像 發(fā)表于 07-12 08:14 ?2057次閱讀
    <b class='flag-5'>利爾達</b>NB<b class='flag-5'>模組</b>搜網(wǎng)機制,看這一篇就夠了!

    打卡智能家居之旅(2):設(shè)備接入HomeAssistant的方法

    (Ai-WB2 或者Ai-M6x等模組接入服務(wù)器必定要使用網(wǎng)絡(luò)協(xié)議,而MQTT 是這些網(wǎng)絡(luò)協(xié)議中最常用的。例如:阿里云的物聯(lián)網(wǎng)平臺,例如米
    的頭像 發(fā)表于 06-07 09:36 ?1596次閱讀
    打卡智能家居之旅(2):設(shè)備<b class='flag-5'>接入</b>HomeAssistant的方法

    如何在AT COMMAND的方式快速的完成Lierda NB861/MB961/MB261模組與OneNET平臺的對接工作?

    在AT COMMAND的方式快速的完成Lierda NB861/MB961/MB261模組與OneNET平臺的對接工作
    發(fā)表于 06-04 07:17

    如何使用NB860/MB960/MB260模組實現(xiàn)用戶設(shè)備與OneNET(Studio)平臺的連接?

    如何使用NB860/MB960/MB260模組實現(xiàn)用戶設(shè)備與OneNET(Studio)平臺的連接
    發(fā)表于 06-04 07:15

    以太網(wǎng)設(shè)備如何接入標準MQTT協(xié)議

    本次展示億佰特以太網(wǎng)類產(chǎn)品接入標準MQTT協(xié)議教程,以E90-DTU(900SL30)E,其他產(chǎn)品可參照本教程?!咀ⅰ窟B接前需要得到服務(wù)
    的頭像 發(fā)表于 05-24 08:20 ?488次閱讀
    以太網(wǎng)設(shè)備如何<b class='flag-5'>接入</b>標準<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>?

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    MQTT協(xié)議和TCP協(xié)議在設(shè)計和應(yīng)用上存在以下主要區(qū)別: 1. 起源與設(shè)計:MQTT協(xié)議誕生于1999年互聯(lián)網(wǎng)初期,而TCP
    的頭像 發(fā)表于 04-01 09:15 ?1680次閱讀

    MQTT協(xié)議網(wǎng)關(guān)解決方案設(shè)計與實施

    的主要功能包括協(xié)議轉(zhuǎn)換、消息過濾、安全認證、負載均衡等,以確保消息的可靠傳輸和系統(tǒng)的穩(wěn)定運行。隨著物聯(lián)網(wǎng)技術(shù)快速發(fā)展,MQTT協(xié)議作為一種
    的頭像 發(fā)表于 03-11 14:07 ?533次閱讀