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

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

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

NBIoT與MQTT傳輸與接收

jf_cVC5iyAO ? 來源:易心Microbit編程 ? 作者:易心Microbit編程 ? 2022-11-18 11:26 ? 次閱讀

NBIoT可以大幅降低企業(yè)布署設(shè)備的WiFi需求,也可避免因?yàn)閳鲇騑iFi不穩(wěn)定所造成的問題,那么NBIoT要如何實(shí)做?

本文將會以NBIoT傳輸MQTT,并以計算機(jī)的MQTTLens進(jìn)行接收為例,說明整個傳輸接收流程。

首先我們必須準(zhǔn)備NBIoT的模塊,以筆者所開發(fā)的ESP32開發(fā)整合版就有留NBIoT接口,我們的NBIoT使用的芯片是基于聯(lián)發(fā)科(MTK-2526)的BC26模塊,雖然他是USB外型,但并非USB傳輸格式,只是我們帥氣的黃董認(rèn)為做成USB外型比較堅(jiān)固耐用,并且可以后續(xù)進(jìn)行串接。

9a1404fe-664e-11ed-8abf-dac502259ad0.jpg

關(guān)于上面的擴(kuò)充版,詳細(xì)規(guī)格數(shù)據(jù)可以參考附件:

一、NBIoT基礎(chǔ)設(shè)定:

目前NBIoT大多采用ATCommand通訊,若讀者已經(jīng)取得上面的擴(kuò)充版及任何的NBIoT SIM卡,那就可以開始下面的流程。

1. 在ESP32上安裝ATCommand溝通程序:

此程序會將ESP32的序列通訊輸入轉(zhuǎn)至NBIoT(Serial2 RX:16、TX:17)中,這樣我們就可以手動來下達(dá)AT命令

2. ATI:ATI是查詢系統(tǒng)版本,不過我們會用來測試BC26是否正常,輸入ATI后,會得到BC26的回復(fù)如下圖。若無響應(yīng),那就必須檢查模塊是否有插好。另外就是ESP32 1.0.6的版本也會造成無法響應(yīng),因此先選擇1.0.4。

9a39fe98-664e-11ed-8abf-dac502259ad0.png

3. AT+QCCID :此指令用于檢查SIM卡狀態(tài),一般來說,會列出該SIM卡的卡號,如下圖,若SIM卡未安裝,則會顯示ERROR

9a66b672-664e-11ed-8abf-dac502259ad0.png

4.AT+QCGDEFCONT?:詢問APN設(shè)定方式,由于不同系統(tǒng)商會有不同的APN(APN, Access Point Name)設(shè)定,例如下圖就是以中華電信或遠(yuǎn)傳電信為例,兩者都采用"IPV4V6","internet.iot"為APN,當(dāng)我們利用這個指令查詢時,就會得到這個結(jié)果,下一步就是利用這個指令來設(shè)定這張NBIoT模塊的APN。要注意的是這里的「?」一定要使用半角「?」不可使用全角「?」。

9a88b7b8-664e-11ed-8abf-dac502259ad0.png

5.AT+QCGDEFCONT=<>:上一步詢問SIM卡的APN后,我們將APN名稱放到指令最后,例如以遠(yuǎn)傳NBIoT為例,其指令如下「AT+QCGDEFCONT="IPV4V6","internet.iot" 」,

9aa84a92-664e-11ed-8abf-dac502259ad0.png

到此為止,就完成NBIoT的設(shè)定工作,以上五個步驟只須做一次,以后NBIoT模塊只要開機(jī)會就自動以APN尋找當(dāng)?shù)赜蟹?wù)的基地頭,并完成網(wǎng)絡(luò)注冊(上網(wǎng))。

二、NBIoT數(shù)據(jù)傳輸:

當(dāng)NBIoT完成APN設(shè)定后,就可以準(zhǔn)備傳輸資料了,請依照以下步驟。

1. AT+CEREG? :詢問基地臺注冊狀態(tài),也就是否有找到服務(wù)的基地臺,若響應(yīng)為「+CEREG: 0,1 」代表注冊完成,可以準(zhǔn)備傳輸資料,若是「+CEREG: 0, 0」或「+CEREG: 0,2 」都是代表無法上網(wǎng),可能是訊號不佳,或者當(dāng)?shù)責(zé)o服務(wù)等問題。

9acb145a-664e-11ed-8abf-dac502259ad0.png

2.AT+CESQ:詢問網(wǎng)絡(luò)狀態(tài),也就是詢問網(wǎng)絡(luò)訊號強(qiáng)弱,以下圖而言,第一個數(shù)字為39,代表網(wǎng)絡(luò)訊號還不錯,數(shù)字為0~63之間,越大代表網(wǎng)絡(luò)訊號越好,10以下就必須注意傳輸可能會很不穩(wěn)定,建議更換布置地點(diǎn)或增加天線強(qiáng)度,還有就是「99」則是故障的意思。

9ae863d4-664e-11ed-8abf-dac502259ad0.png

9b101c58-664e-11ed-8abf-dac502259ad0.png

到這里我們已經(jīng)確認(rèn)NBIoT已經(jīng)完成聯(lián)機(jī),下一步我們以MQTT聯(lián)機(jī)到免注冊的Broker:mqtt.eclipseprojects.io,進(jìn)行一次的推播為例。

3. AT+QMTOPEN=0,"<>",<>:NBIoT開啟MQTT服務(wù)器,若是使用「eclipseprojects」的話,指令全部為「AT+QMTOPEN=0,"mqtt.eclipseprojects.io",1883」,此時響應(yīng)除了OK之外,再等候幾秒就會得到服務(wù)器的響應(yīng)「+QMTOPEN: 0,0」,代表服務(wù)器已經(jīng)收到要求,正在等候聯(lián)機(jī)。

9b32541c-664e-11ed-8abf-dac502259ad0.png

4.AT+QMTCONN=0,"<>":聯(lián)機(jī)到MQTT服務(wù)器,這里的ClientID用隨機(jī)數(shù)即可,例如本例為「AT+QMTCONN=0,"ESP32-1234567890"」,如果兩個裝置使用相同的ClientID就會無法聯(lián)機(jī),不過這里要注意,從步驟3的AT+QMTOPEN到 AT+QMTCONN,時間不可超過60秒(沒有詳細(xì)計算),若時間太久,服務(wù)器會關(guān)閉,聯(lián)機(jī)就會失敗。若服務(wù)器的回應(yīng)是「+QMTCONN: 0,0,0 」代表聯(lián)機(jī)成功,可以推播主題了。

9b4dc134-664e-11ed-8abf-dac502259ad0.png

5.AT+QMTPUB=0,0,<>,<>,"<<你的主題>>","<<內(nèi)容>>":將內(nèi)容推播到你的主題內(nèi),例如我要將溫度「28」推播到主題「yourTopic/class205/temp」時,我的指令為「AT+QMTPUB=0,0,0,0,"yourTopic/class205/temp","28"」,代表我要用qos=0,不要retain傳送28到主題「yourTopic/class205/temp」內(nèi),若服務(wù)器回復(fù)為「+QMTPUB:0,0,0」就代表服務(wù)器已經(jīng)收到數(shù)據(jù)。

9b6b9d3a-664e-11ed-8abf-dac502259ad0.png

6. 到MQTTLens查看訂閱主題:此時到計算機(jī)的MQTTLens(或手機(jī)MQTTDash等APP)查看是否有收到訂閱的資料

9b95df64-664e-11ed-8abf-dac502259ad0.png

用NodeRed接收,并用Dashboard的Gauge呈現(xiàn)

9bc75bf2-664e-11ed-8abf-dac502259ad0.png

7. AT+QMTCLOSE=0:關(guān)閉MQTT服務(wù)器聯(lián)機(jī),當(dāng)傳輸完畢后,若短期內(nèi)不會再使用,可以關(guān)閉與MQTT的聯(lián)機(jī),節(jié)省電源。

9be512f0-664e-11ed-8abf-dac502259ad0.png

到此為止,我們就完成一次的MQTT推播,當(dāng)然啦,這次我們是手動傳輸,目的是讓讀者了解MQTT的傳輸流程,未來系統(tǒng)要實(shí)際使用時,要寫一個自動傳輸?shù)某绦?,這部份后續(xù)再分享。

除了用MQTTLens來接收之外,也可以利用NodeRed來接收并儲存數(shù)據(jù),并可以利用Dashboard來呈現(xiàn),Nodered可以說是搭配MQTT最好用的工具了。

審核編輯:湯梓紅

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

    關(guān)注

    81

    文章

    5269

    瀏覽量

    202800
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    640

    瀏覽量

    22360
  • nbiot
    +關(guān)注

    關(guān)注

    8

    文章

    62

    瀏覽量

    22623

原文標(biāo)題:NBIoT與MQTT傳輸與接收

文章出處:【微信號:易心Microbit編程,微信公眾號:易心Microbit編程】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    stm32l053r8使用空閑中斷接收消息,連在nbiot-bc26上就收不到消息的原因?

    stm32l053r8使用空閑中斷接收消息,可以收到串口調(diào)試助手的消息,但是連在nbiot-bc26上就收不到消息。
    發(fā)表于 04-18 07:49

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

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

    nbiot和lora的優(yōu)缺點(diǎn)

    `從技術(shù)上看nbiot和lora之間其實(shí)并沒有太大的優(yōu)劣式之分,從應(yīng)用范圍上來看,兩者其實(shí)很多都是一樣的。區(qū)別在于,NB-IOT采用的是運(yùn)營商統(tǒng)一部署覆蓋全國的網(wǎng)絡(luò)進(jìn)行收費(fèi)運(yùn)營的方式,而LoRa可以
    發(fā)表于 09-04 17:54

    簡單介紹NBIOT的定義及特點(diǎn)

    什么是NBIOT?NBIOT的省電技術(shù)有哪幾種模式?NBIOT是如何工作的?
    發(fā)表于 10-08 06:28

    NBIOT的相關(guān)資料推薦

    文章目錄1 簡介2 NBIOT 簡介2.1 NBIOT 的特點(diǎn)2.2 NBIOT 的優(yōu)點(diǎn)2.3 NBIOT能做什么NBIOT 模塊使用4 實(shí)
    發(fā)表于 12-02 08:02

    請問nbiot怎么接線stm32?

    nbiot怎么接線stm32?
    發(fā)表于 10-19 06:00

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

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

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

    MQTT是一個物聯(lián)網(wǎng)傳輸協(xié)議,它被設(shè)計用于輕量級的發(fā)布/訂閱式消息傳輸,旨在為低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中的物聯(lián)網(wǎng)設(shè)備提供可靠的網(wǎng)絡(luò)服務(wù)。
    發(fā)表于 11-26 14:23 ?2934次閱讀

    中移M5311型號NBIoT模組MQTT開發(fā)記

    由于公司項(xiàng)目需求,需要NBIoT模組,采用MQTT協(xié)議連接自有服務(wù)器,之前挑選的是使用安信可的N92模塊,但因?yàn)殚_發(fā)到最后發(fā)現(xiàn)有負(fù)載字節(jié)長度限制,不滿足我們現(xiàn)有數(shù)據(jù)的長度,所以又重新選了這個模組來
    發(fā)表于 12-03 17:21 ?8次下載
    中移M5311型號<b class='flag-5'>NBIoT</b>模組<b class='flag-5'>MQTT</b>開發(fā)記

    零基礎(chǔ)開發(fā)NBIOT

    shineblink core 開發(fā)板(簡稱Core)的庫函數(shù)支持NBIOT通信功能,所以只用幾行代碼即可實(shí)現(xiàn)基于M5311 NB模塊的聯(lián)網(wǎng)通信(TCP, UDP, MQTT...
    發(fā)表于 01-25 19:58 ?8次下載
    零基礎(chǔ)開發(fā)<b class='flag-5'>NBIOT</b>

    強(qiáng)大的MQTT! 關(guān)于它你應(yīng)該知道什么

    MQTT指消息隊(duì)列遙測傳輸,是物聯(lián)網(wǎng)的機(jī)器對機(jī)器(M2M,machine-to-machine)連接協(xié)議。MQTT是一個輕量級的發(fā)布和訂閱協(xié)議,通過它可以在低帶寬環(huán)境中發(fā)送和接收機(jī)器對
    的頭像 發(fā)表于 08-03 11:15 ?1210次閱讀
    強(qiáng)大的<b class='flag-5'>MQTT</b>! 關(guān)于它你應(yīng)該知道什么

    如何實(shí)現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸?

    如何實(shí)現(xiàn)MQTT協(xié)議數(shù)據(jù)傳輸? 隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的設(shè)備和應(yīng)用需要實(shí)現(xiàn)互聯(lián)互通。而MQTT作為一種輕量級的發(fā)布/訂閱消息傳輸協(xié)議,在物聯(lián)網(wǎng)領(lǐng)域應(yīng)用廣泛,成為了許多設(shè)備之
    的頭像 發(fā)表于 11-15 17:23 ?1057次閱讀

    NBIOT無線通信模塊可以傳輸多遠(yuǎn)?

    NBIOT無線通信模塊可以傳輸多遠(yuǎn)? NBIOT是一種低功耗、廣域覆蓋的無線通信技術(shù),專門用于物聯(lián)網(wǎng)設(shè)備之間的通信。NBIOT無線通信模塊的傳輸
    的頭像 發(fā)表于 02-01 10:52 ?3067次閱讀

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

    MQTT協(xié)議網(wǎng)關(guān)是一個中間件,負(fù)責(zé)接收來自不同MQTT客戶端的消息,并將這些消息轉(zhuǎn)發(fā)到MQTT服務(wù)器;同時,也能接收來自
    的頭像 發(fā)表于 03-11 14:07 ?418次閱讀

    MQTT網(wǎng)關(guān)是什么?MQTT網(wǎng)關(guān)的功能

    MQTT網(wǎng)關(guān)是支持MQTT協(xié)議的物聯(lián)網(wǎng)網(wǎng)關(guān),是一種用于連接不同設(shè)備和云端平臺之間的中間件。它充當(dāng)了設(shè)備和云端服務(wù)之間的數(shù)據(jù)傳輸橋梁。MQTT網(wǎng)關(guān)能夠
    的頭像 發(fā)表于 03-18 17:10 ?684次閱讀