NB-IOT(二)BC26通过MQTT与电信物联网平台连接
在之前的实验中,实现了通过串口 1 发送 AT 命令,由 STM32 透传到串口 2,并传输到 BC26 模块,之前使用他进行了 NBIOT 协议的实验,这里我们用这个来实现 BC26 通过 MQTT 协议与电信物联网平台的连接,并实践 发布订阅模型.
电信 IOT 平台配置
创建产品
如图配置
属性及服务定义
添加设备
BC26 入网状态检查
AT+CIMI //检查SIM卡是否读卡成功。
AT+CESQ //查看信号强度 终端将提供 0 到 99 的信号强度指示。通常,数值越大,强度越高。
测试命令返回支持的参数值。
AT+CGATT? //查看入网状态:
+CGATT:1 //返回0为入网失败,返回1为入网成功。
AT+CGSN=1// 请求 IMEI
配置 BC26 的 MQTT 协议版本
配置模组 MQTT 协议版本(BC28/26 支持 MQTT V3.1 和 V3.1.1 两个版本的协议)
AT+QMTCFG="version",0,4
MQTT 协议版本。
3 MQTT v3.1
4 MQTT v3.1.1
BC26 打开 MQTT 连接
因为我们要连接的是电信的 IOT 平台,这里我们要将电信 IOT 平台的地址和端口号发送到 BC26
电信 iot 平台文档:https://www.ctwing.cn/sbjr/39#see
根据电信文档,地址为:mqtt.ctwing.com,端口号为 1883
查阅 BC26 文档得
AT+QMTOPEN=0,"mqtt.ctwing.cn",1883
结果
出现 ok 后,会出现
此时需要在数秒内完成下一步,否则连接会被关闭,需再次打开
BC26 开启 MQTT 连接
查阅 BC26 的 AT 命令文档得
MQTT 相关命令如下
AT+QMTCONN=<TCP_connectID>,"<clientID>","<username>","<password>"
在电信 IOT 平台中,相关参数如下
是 0~5 的整数,这里一般写 0 是电信平台中的设备号 是 Master-API-Key 是设备认证信息中的特征串
结果
此时,电信 IOT 平台将会显示设备上线
BC26 订阅消息
代码示例
AT+QMTSUB=<TCP_connectID>,<msgID>,"<topic1>",<qos1>[,"<topic2>",<qos2>…]
AT+QMTSUB=0,1,”run_flag”,0
结果
BC26 发布消息
查阅 MQTT 文档
客户端通过该命令向服务器发布消息,再由服务器分配到感兴趣的订阅者。每一个 PUBLISH 消息都关 联一个主题名称;若一个客户端订阅了一个或者多个主题,服务器会将发布到这些主题的所有消息作为 PUBLISH 消息发送到客户端。
AT+QMTPUB=<TCP_connectID>,<msgID>,<qos>,<retain>,"<topic>","<msg>"
结果
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小周の代码之路!
评论