移远NB-IOT模组BC26使用MQTT连接阿里云调试记录
硬件形态为MCU+模组上云主要可以通过两种方式,一种方式是使用支持TCP/IP协议的模组,在MCU集成SDK;另一种是直接使用集成了MQTT协议的模组,推荐使用第二种方式,可以缩短研发周期有助于产品快速推向市场,很多厂家的模组已经集成了阿里云的SDK,本次调试主要对已认证模组移远的NB模组BC26进行评估。
一、在阿里云物联网平台新建产品和添加设备
在后面接入设备时需要用到三要素:ProductKey,DeviceName,DeviceSecret
ProductKey会在新建产品时生成,DeviceName可以自己定义,应该是只支持英文和数字,DeviceSecret会在添加设备完成后自动生成。
二、定义topic类型
topic可以设置发布和订阅的权限,
发布权限即设备可以针对该topic发布消息
订阅权限即设备可以通过订阅该topic来获取消息
topic同一时刻只能容许一个终端操作。
新建产品后会有默认的topic
调试中用自定义Topic:/{ProductKey}/NBtestboard/user/update作为发布消息的topic
{ProductKey}/a1PWF40mB42/NBtestboard/user/get作为接收消息的topic
三、模组调试
首先接好天线,插好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