移远NB-IOT模组BC26使用MQTT连接阿里云调试记录

硬件形态为MCU+模组上云主要可以通过两种方式,一种方式是使用支持TCP/IP协议的模组,在MCU集成SDK;另一种是直接使用集成了MQTT协议的模组,推荐使用第二种方式,可以缩短研发周期有助于产品快速推向市场,很多厂家的模组已经集成了阿里云的SDK,本次调试主要对已认证模组移远的NB模组BC26进行评估。

一、在阿里云物联网平台新建产品和添加设备

在后面接入设备时需要用到三要素:ProductKey,DeviceName,DeviceSecret

ProductKey会在新建产品时生成,DeviceName可以自己定义,应该是只支持英文和数字,DeviceSecret会在添加设备完成后自动生成。

移远NB-IOT模组BC26使用MQTT连接阿里云调试记录

二、定义topic类型

topic可以设置发布和订阅的权限,

发布权限即设备可以针对该topic发布消息

订阅权限即设备可以通过订阅该topic来获取消息

topic同一时刻只能容许一个终端操作。

新建产品后会有默认的topic

调试中用自定义Topic:/{ProductKey}/NBtestboard/user/update作为发布消息的topic

{ProductKey}/a1PWF40mB42/NBtestboard/user/get作为接收消息的topic

移远NB-IOT模组BC26使用MQTT连接阿里云调试记录

三、模组调试

首先接好天线,插好NB的SIM卡,对模组进行上电

确保SIM卡的PIN码已经解开,AT+CPIN?

配置休眠模式,AT+QSCLK,轻休眠模式下,模块的串口不工作,因此当AT+QSCLK=1或2时,需要先发送AT以确保串口被唤醒。

模组会自动加入运营商网络,可以用AT+CEREG?查询网络注册状态

配置阿里云设备信息,即前面提到的三要素

AT+QMTCFG="aliauth",<TCP_connectID>[,"<product_key>","<device_ name>","<device_secret>"]
 
打开MQTT客户端网络,也就是建立TCP/lP连接
 
AT+QMTOPEN=<TCP_connectID>,"< host_name>",<port>
 
这里host_name是服务器地址,阿里云提供两个公共实例,这里使用{product_key}.iot-as-mqtt.cn-shanghai.aliyuncs.com,端口默认是1883.
 
打开MQTT客户端网络成功后需要尽快连接MQTT服务器,否则会自动关闭网络
 
连接MQTT服务器:AT+QMTCONN=0,"clientExample"
 
发布消息可以通过两种方式 :
1进入数据模式
AT+QMTPUB=0,0,0,1,"/a1LS1PA3XlH/NBtestboard2/user/update" 输入需要发送的数据后以Ctrl+Z发送数据
2使用设置命令
AT+QMTPUB=0,0,0,1,"/a1LS1PA3XlH/NBtestboard2/user/update","hello MQTT."
 
订阅消息
AT+QMTSUB=0,1,"/a1LS1PA3XlH/NBtestboard2/user/get",1
 
断开MQTT服务器与客户端的连接AT+QMTDISC=0
 
移远NB-IOT模组BC26使用MQTT连接阿里云调试记录