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

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

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

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

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

产品数据格式推荐使用:ICA 标准数据格式 (Alink JSON)

移远NB-IOT模组BC26使用MQTT连接阿里云调试记录_第1张图片

二、定义topic类型

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

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

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

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

新建产品后会有默认的topic

通过自定义topic上报的数据,不会保存到数据存储里,

调试中用物模型通信Topic:

移远NB-IOT模组BC26使用MQTT连接阿里云调试记录_第2张图片

向/sys/a1a5PGBURb2/${deviceName}/thing/event/property/post 发布消息后(使用Alink JSON发布消息)

如果订阅了/sys/a1a5PGBURb2/${deviceName}/thing/event/property/post_reply则会收到云端的响应数据

事件和服务的发布和订阅类似。

三、模组调试

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

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

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

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

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

AT+QMTCFG="aliauth", ectID>[,""," name>",""]
 
打开MQTT客户端网络,也就是建立TCP/lP连接
 
AT+QMTOPEN=,"< host_name>",
 
这里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,"/sys/a1a5PGBURb2/NBtestboard3/thing/event/property/post" 输入需要发送的数据后以Ctrl+Z发送数据
2使用设置命令
AT+QMTPUB=0,0,0,0,"topic/pub","hello MQTT."
 
值得注意的是:通过MQTT协议透传的数据为16进制格式
这里使用ICA标准数据格式 (Alink JSON)的数据上报方式
 
订阅消息
AT+QMTSUB=0,1,"/sys/a1a5PGBURb2/NBtestboard3/thing/event/property/post_reply",1
 
断开MQTT服务器与客户端的连接 AT+QMTDISC=0
 
 
log:
[2020-03-26_16:16:07:667]+QMTDISC: 0,0
[2020-03-26_16:16:19:613]AT+QMTOPEN=0,"a1a5PGBURb2.iot-as-mqtt.cn-shanghai.aliyuncs.com",1883
[2020-03-26_16:16:19:634]OK
[2020-03-26_16:16:20:554]
[2020-03-26_16:16:20:554]+QMTOPEN: 0,0
[2020-03-26_16:16:24:419]AT+QMTCONN=0,"clientExample"
[2020-03-26_16:16:24:467]OK
[2020-03-26_16:16:25:030]
[2020-03-26_16:16:25:030]+QMTCONN: 0,0,0
[2020-03-26_16:16:41:302]AT+QMTSUB=0,1,"/sys/a1a5PGBURb2/NBtestboard3/thing/event/property/post_reply",1
[2020-03-26_16:16:41:339]OK
[2020-03-26_16:16:41:889]
[2020-03-26_16:16:41:889]+QMTSUB: 0,1,0,1
[2020-03-26_16:17:01:968]AT+QMTPUB=0,0,0,1,"/sys/a1a5PGBURb2/NBtestboard3/thing/event/property/post"
[2020-03-26_16:17:01:987]>
[2020-03-26_16:17:03:749]{
[2020-03-26_16:17:03:749]  "id": "123",
[2020-03-26_16:17:03:749]  "version": "1.0",
[2020-03-26_16:17:03:749]  "params": {
[2020-03-26_16:17:03:749]    "Temperature": 25,
[2020-03-26_16:17:03:749]    "WatchDogSwitch":0,
[2020-03-26_16:17:03:749]    "visial":888
[2020-03-26_16:17:03:749]  },
[2020-03-26_16:17:03:749]  "method": "thing.event.property.post"
[2020-03-26_16:17:03:749]}
[2020-03-26_16:17:06:032]
[2020-03-26_16:17:06:032]OK
[2020-03-26_16:17:06:053]
[2020-03-26_16:17:06:053]+QMTPUB: 0,0,0 
[2020-03-26_16:17:06:884]
[2020-03-26_16:17:06:884]+QMTRECV: 0,0,"/sys/a1a5PGBURb2/NBtestboard3/thing/event/property/post_reply","{"code":200,"data":{},"id":"123","message":"success","method":"thing.event.property.post","version":"1.0"}"
[2020-03-26_16:17:31:677]AT+QMTDISC=0
[2020-03-26_16:17:31:706]OK
[2020-03-26_16:17:31:710]
[2020-03-26_16:17:31:710]+QMTDISC: 0,0
 

你可能感兴趣的:(学习心得)