0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

NBIoT与MQTT传输与接收

jf_cVC5iyAO 来源:易心Microbit编程 作者:易心Microbit编程 2022-11-18 11:26 次阅读

NBIoT可以大幅降低企业布署设备的WiFi需求,也可避免因为场域WiFi不稳定所造成的问题,那么NBIoT要如何实做?

本文将会以NBIoT传输MQTT,并以计算机的MQTTLens进行接收为例,说明整个传输接收流程。

首先我们必须准备NBIoT的模块,以笔者所开发的ESP32开发整合版就有留NBIoT接口,我们的NBIoT使用的芯片是基于联发科(MTK-2526)的BC26模块,虽然他是USB外型,但并非USB传输格式,只是我们帅气的黄董认为做成USB外型比较坚固耐用,并且可以后续进行串接。

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

关于上面的扩充版,详细规格数据可以参考附件:

一、NBIoT基础设定:

目前NBIoT大多采用ATCommand通讯,若读者已经取得上面的扩充版及任何的NBIoT SIM卡,那就可以开始下面的流程。

1. 在ESP32上安装ATCommand沟通程序:

此程序会将ESP32的序列通讯输入转至NBIoT(Serial2 RX:16、TX:17)中,这样我们就可以手动来下达AT命令

2. ATI:ATI是查询系统版本,不过我们会用来测试BC26是否正常,输入ATI后,会得到BC26的回复如下图。若无响应,那就必须检查模块是否有插好。另外就是ESP32 1.0.6的版本也会造成无法响应,因此先选择1.0.4。

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

3. AT+QCCID :此指令用于检查SIM卡状态,一般来说,会列出该SIM卡的卡号,如下图,若SIM卡未安装,则会显示ERROR

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

4.AT+QCGDEFCONT?:询问APN设定方式,由于不同系统商会有不同的APN(APN, Access Point Name)设定,例如下图就是以中华电信或远传电信为例,两者都采用"IPV4V6","internet.iot"为APN,当我们利用这个指令查询时,就会得到这个结果,下一步就是利用这个指令来设定这张NBIoT模块的APN。要注意的是这里的「?」一定要使用半角「?」不可使用全角「?」。

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

5.AT+QCGDEFCONT=<>:上一步询问SIM卡的APN后,我们将APN名称放到指令最后,例如以远传NBIoT为例,其指令如下「AT+QCGDEFCONT="IPV4V6","internet.iot" 」,

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

到此为止,就完成NBIoT的设定工作,以上五个步骤只须做一次,以后NBIoT模块只要开机会就自动以APN寻找当地有服务的基地头,并完成网络注册(上网)。

二、NBIoT数据传输:

当NBIoT完成APN设定后,就可以准备传输资料了,请依照以下步骤。

1. AT+CEREG? :询问基地台注册状态,也就是否有找到服务的基地台,若响应为「+CEREG: 0,1 」代表注册完成,可以准备传输资料,若是「+CEREG: 0, 0」或「+CEREG: 0,2 」都是代表无法上网,可能是讯号不佳,或者当地无服务等问题。

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

2.AT+CESQ:询问网络状态,也就是询问网络讯号强弱,以下图而言,第一个数字为39,代表网络讯号还不错,数字为0~63之间,越大代表网络讯号越好,10以下就必须注意传输可能会很不稳定,建议更换布置地点或增加天线强度,还有就是「99」则是故障的意思。

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

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

到这里我们已经确认NBIoT已经完成联机,下一步我们以MQTT联机到免注册的Broker:mqtt.eclipseprojects.io,进行一次的推播为例。

3. AT+QMTOPEN=0,"<>",<>:NBIoT开启MQTT服务器,若是使用「eclipseprojects」的话,指令全部为「AT+QMTOPEN=0,"mqtt.eclipseprojects.io",1883」,此时响应除了OK之外,再等候几秒就会得到服务器的响应「+QMTOPEN: 0,0」,代表服务器已经收到要求,正在等候联机。

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

4.AT+QMTCONN=0,"<>":联机到MQTT服务器,这里的ClientID用随机数即可,例如本例为「AT+QMTCONN=0,"ESP32-1234567890"」,如果两个装置使用相同的ClientID就会无法联机,不过这里要注意,从步骤3的AT+QMTOPEN到 AT+QMTCONN,时间不可超过60秒(没有详细计算),若时间太久,服务器会关闭,联机就会失败。若服务器的回应是「+QMTCONN: 0,0,0 」代表联机成功,可以推播主题了。

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

5.AT+QMTPUB=0,0,<>,<>,"<<你的主题>>","<<内容>>":将内容推播到你的主题内,例如我要将温度「28」推播到主题「yourTopic/class205/temp」时,我的指令为「AT+QMTPUB=0,0,0,0,"yourTopic/class205/temp","28"」,代表我要用qos=0,不要retain传送28到主题「yourTopic/class205/temp」内,若服务器回复为「+QMTPUB:0,0,0」就代表服务器已经收到数据。

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

6. 到MQTTLens查看订阅主题:此时到计算机的MQTTLens(或手机MQTTDash等APP)查看是否有收到订阅的资料

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

用NodeRed接收,并用Dashboard的Gauge呈现

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

7. AT+QMTCLOSE=0:关闭MQTT服务器联机,当传输完毕后,若短期内不会再使用,可以关闭与MQTT的联机,节省电源

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

到此为止,我们就完成一次的MQTT推播,当然啦,这次我们是手动传输,目的是让读者了解MQTT的传输流程,未来系统要实际使用时,要写一个自动传输的程序,这部份后续再分享。

除了用MQTTLens来接收之外,也可以利用NodeRed来接收并储存数据,并可以利用Dashboard来呈现,Nodered可以说是搭配MQTT最好用的工具了。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • WIFI
    +关注

    关注

    81

    文章

    5160

    浏览量

    199420
  • MQTT
    +关注

    关注

    5

    文章

    537

    浏览量

    21974
  • nbiot
    +关注

    关注

    7

    文章

    62

    浏览量

    22446

原文标题:NBIoT与MQTT传输与接收

文章出处:【微信号:易心Microbit编程,微信公众号:易心Microbit编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    stm32l053r8使用空闲中断接收消息,连在nbiot-bc26上就收不到消息的原因?

    stm32l053r8使用空闲中断接收消息,可以收到串口调试助手的消息,但是连在nbiot-bc26上就收不到消息。
    发表于 04-18 07:49

    物联网传输协议MQTT到底是个什么?

    MQTT是什么?MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。
    发表于 01-08 11:27

    nbiot和lora的优缺点

    `从技术上看nbiot和lora之间其实并没有太大的优劣式之分,从应用范围上来看,两者其实很多都是一样的。区别在于,NB-IOT采用的是运营商统一部署覆盖全国的网络进行收费运营的方式,而LoRa可以
    发表于 09-04 17:54

    简单介绍NBIOT的定义及特点

    什么是NBIOTNBIOT的省电技术有哪几种模式?NBIOT是如何工作的?
    发表于 10-08 06:28

    NBIOT的相关资料推荐

    文章目录1 简介2 NBIOT 简介2.1 NBIOT 的特点2.2 NBIOT 的优点2.3 NBIOT能做什么NBIOT 模块使用4 实
    发表于 12-02 08:02

    请问nbiot怎么接线stm32?

    nbiot怎么接线stm32?
    发表于 10-19 06:00

    物联网传输协议MQTT的优势

    物联网传输协议为什么首选MQTT
    的头像 发表于 01-09 14:46 3724次阅读

    物联网传输协议MQTT的优势有哪些

    MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。
    发表于 11-26 14:23 2740次阅读

    中移M5311型号NBIoT模组MQTT开发记

    由于公司项目需求,需要NBIoT模组,采用MQTT协议连接自有服务器,之前挑选的是使用安信可的N92模块,但因为开发到最后发现有负载字节长度限制,不满足我们现有数据的长度,所以又重新选了这个模组
    发表于 12-03 17:21 8次下载
    中移M5311型号<b class='flag-5'>NBIoT</b>模组<b class='flag-5'>MQTT</b>开发记

    零基础开发NBIOT

    shineblink core 开发板(简称Core)的库函数支持NBIOT通信功能,所以只用几行代码即可实现基于M5311 NB模块的联网通信(TCP, UDP, MQTT...
    发表于 01-25 19:58 8次下载
    零基础开发<b class='flag-5'>NBIOT</b>

    NBIoT是什么 要怎么用

    NBIoT是什么?似乎这几年常常听到,不知道是作什么用的?要怎么用?今天就一起来说明。
    发表于 10-20 10:38 1.1w次阅读

    如何实现MQTT协议数据传输

    如何实现MQTT协议数据传输? 随着物联网技术的不断发展,越来越多的设备和应用需要实现互联互通。而MQTT作为一种轻量级的发布/订阅消息传输协议,在物联网领域应用广泛,成为了许多设备之
    的头像 发表于 11-15 17:23 609次阅读

    NBIOT无线通信模块可以传输多远?

    NBIOT无线通信模块可以传输多远? NBIOT是一种低功耗、广域覆盖的无线通信技术,专门用于物联网设备之间的通信。NBIOT无线通信模块的传输
    的头像 发表于 02-01 10:52 1294次阅读

    MQTT协议网关解决方案设计与实施

    MQTT协议网关是一个中间件,负责接收来自不同MQTT客户端的消息,并将这些消息转发到MQTT服务器;同时,也能接收来自
    的头像 发表于 03-11 14:07 135次阅读

    MQTT网关是什么?MQTT网关的功能

    MQTT网关是支持MQTT协议的物联网网关,是一种用于连接不同设备和云端平台之间的中间件。它充当了设备和云端服务之间的数据传输桥梁。MQTT网关能够
    的头像 发表于 03-18 17:10 206次阅读