BC26&BC20 MQTT
应用指导
NB-IoT 模块系列
版本:BC26&BC20_MQTT_应用指导_V1.0
日期:2020-01-17
状态:受控文件
www.quectel.com
BC26&BC20 MQTT 应用指导
上海移远通信技术股份有限公司始终以为客户提供最及时、最全面的服务为宗旨。如需任何帮助,请随时
联系我司上海总部,联系方式如下:
上海移远通信技术股份有限公司
上海市闵行区田林路 1016 号科技绿洲 3 期(B 区)5 号楼 邮编:200233
电话:+86 21 51086236 邮箱:info@quectel.com
或联系我司当地办事处,详情请登录:
http://www.quectel.com/cn/support/sales.htm
如需技术支持或反馈我司技术文档中的问题,可随时登陆如下网址:
http://www.quectel.com/cn/support/technical.htm
或发送邮件至:support@quectel.com
前言
上海移远通信技术股份有限公司提供该文档内容用以支持其客户的产品设计。客户须按照文档中提供的规
范、参数来设计其产品。由于客户操作不当而造成的人身伤害或财产损失,本公司不承担任何责任。在未
声明前,上海移远通信技术股份有限公司有权对该文档进行更新。
版权申明
本文档版权属于上海移远通信技术股份有限公司,任何人未经我司允许而复制转载该文档将承担法律责任。
版权所有 ©上海移远通信技术股份有限公司 2020,保留一切权利。
Copyright © Quectel Wireless Solutions Co., Ltd. 2020.
上海移远通信技术股份有限公司 1 / 25
BC26&BC20 MQTT 应用指导
文档历史
修订记录
版本 日期
作者
变更表述
1.0
2020-01-17
顾根全/
王瑞/
刘飞彪
初始版本
上海移远通信技术股份有限公司 2 / 25
BC26&BC20 MQTT 应用指导
目录
文档历史 ....................................................................................................................................................... 2
目录 .............................................................................................................................................................. 3
表格索引 ....................................................................................................................................................... 4
1 引言 ....................................................................................................................................................... 5
2 MQTT 数据交互 ..................................................................................................................................... 6
3 MQTT 相关 AT 命令 .............................................................................................................................. 7
3.1. AT 命令类型 ................................................................................................................................ 7
3.2. MQTT 相关 AT 命令描述 ............................................................................................................ 8
3.2.1. AT+QMTCFG 配置 MQTT 可选参数 ............................................................................. 8
3.2.2. AT+QMTOPEN 打开 MQTT 客户端网络 .................................................................... 12
3.2.3. AT+QMTCLOSE 关闭 MQTT 客户端网络 .................................................................. 13
3.2.4. AT+QMTCONN 连接客户端至 MQTT 服务器 ............................................................. 14
3.2.5. AT+QMTDISC 从 MQTT 服务器断开客户端连接 ....................................................... 15
3.2.6. AT+QMTSUB 订阅主题 .............................................................................................. 16
3.2.7. AT+QMTUNS 退订主题 .............................................................................................. 17
3.2.8. AT+QMTPUB 发布消息 .............................................................................................. 18
4 MQTT 相关 URC ................................................................................................................................. 20
4.1. +QMTSTAT: 指示 MQTT 链路层状态变化的 URC ................................................................. 20
4.2. +QMTRECV: 通知 MCU 读取 MQTT 数据包的 URC ............................................................ 21
5 举例 ..................................................................................................................................................... 22
6 附录 A 参考文档 .................................................................................................................................. 25
上海移远通信技术股份有限公司 3 / 25
BC26&BC20 MQTT 应用指导
表格索引
表 1:AT 命令类型及响应 ............................................................................................................................. 7
表 2:MQTT 相关的 URC ........................................................................................................................... 20
表 3:URC 中的错误代码 ........................................................................................................................... 20
表 4:参考文档 ........................................................................................................................................... 25
表 5:术语及缩写 ....................................................................................................................................... 25
上海移远通信技术股份有限公司 4 / 25
BC26&BC20 MQTT 应用指导
1 引言
MQTT 是基于发布/订阅范式的消息协议,具有开放、简单、轻量级且易于实施等特点。MQTT 最大优
势在于,可以以极少的代码和有限的网络带宽,为远程设备连接提供实时可靠的消息服务。
本文档介绍如何通过 AT 命令应用移远 BC26 和 BC20 模块的 MQTT 功能。
上海移远通信技术股份有限公司 5 / 25
BC26&BC20 MQTT 应用指导
2 MQTT 数据交互
本章节介绍了用于实现 MQTT 功能的数据交互机制,具体如下图所示:
图 1:MQTT 数据交互机制
上海移远通信技术股份有限公司 6 / 25
模块MQTT服务器MCUAT+QMTCFG=“KEEPALIVE”,...AT+QMTCFG=“TIMEOUT”,...…AT+QMTOPEN=...链路层 TCP-REQ TCP SYN TCP SYN+ACKTCP established+QMTOPEN:
,AT+QMTCONN=...CONN-REQ发送连接数据包服务器收到连接数据包并返回ACKCONN ACK-IND+QMTCONN: ,[,]Stop T1 or handle Excep1AT+QMTSUB=...SUB-REQ ()Start timer T1, T2发送订阅数据包SUB ACK-IND ()服务器收到订阅数据包并返回ACK+QMTSUB: ,,[,]Start timer T1AT+QMTUNS=...UNS-REQ ()发送退订数据包UNS ACK-IND ()服务器收到退订数据包并返回ACK+QMTUNS: ,,Start timer T1AT+QMTPUB=...PUB-REQ ()发送发布数据包PUB ACK-IND ()服务器收到发布数据包并返回ACK+QMTPUB: ,,[,]Start timer T1AT+QMTPUB=tcpidx,topic,qos=0...PUB-REQ发送发布数据包Stop T1 or handle Excep2Stop T1 or handle Excep2Stop T1 or handle Excep2AT+QMTPUB=...PUB-REQ ()发送发布数据包PUB REC-IND )服务器收到发布数据包Start timer T1Stop T1 or handle Excep2PUB REL-REQ ()发送释放发布数据包Start timer T1服务器收到释放发布数据包Stop T1 or handle Excep2PUB COMP-IND ()AT+QMTDISC=...DISC-REQ发送断开连接数据包AT+QMTCLOSE=... TCP-REQTCP断开请求...TCP disconnected+QMTCLOSE: ,服务器收到发布数据包Reply according to PUB-IND ()+QMTRECV: ,,,PUB ACK/REC-REQ (msgId). . .发送发布答复数据包Excep1: 断开TCP连接Excep2: 重发数据包,除非达到允许重发次数上限;允许重复次数可通过命令 AT+QMTCFG来设置。T1是数据包传输超时时间.T2 是keep alive定时器.在T2超时时间内若没有数据相关信息传输,客户端会发送心跳请求包。 TCP ACK收到URC格式的PUBLISH信息数据上报类型 (非URC):+QMT***: ,,…更多信息请参考第 3章。AT+QMTCONNAT+QMTSUBAT+QMTUNSAT+QMTPUB(=1)AT+QMTPUB (=2)命令AT+QMTCFG可以配置是否上报超时信息。OKOKOKOKOKOKOKOKOKReceive+QMTDISC: ,+QMTPUB: ,,[,] BC26&BC20 MQTT 应用指导
3 MQTT 相关 AT 命令
本章节介绍了与 MQTT 操作相关的 AT 命令。
3.1. AT 命令类型
AT 命令的类型及响应如下表所示:
表 1:AT 命令类型及响应
测试命令
AT+
=?
返回相应设置命令或内部程序可支持的参数取值
列表或范围。
查询命令
AT+?
返回相应设置命令的当前参数设置值。
设置命令
AT+=[,[,[...]]] 设置用户可自定义的参数值。
执行命令
AT+
主动执行内部程序实现的功能集。
AT 命令相关定义如下:
:回车符;
:换行符;
<...>:参数名称,实际命令行中不包括尖括号< >;添加下划线“_”的参数取值为默认值;
[...]:可选参数,实际命令行中不包括方括号[ ];若无特别说明,可选参数省略时将采用默认值。
备注
若无特别说明,本文档中的 AT 命令默认立即生效。
上海移远通信技术股份有限公司 7 / 25