NBIOT模块 BC28通过MQTT协议连接到EMQX
命令说明
基础AT指令ATI显示MT的ID信息AT+CIMI查询IMSIAT+CGSN查询产品序列号AT+CGATT?查询当前PS域状态AT+QBAND查询或设置移动波段操作AT+CSQ查询信号强度AT+CEREG查询网络注册状态AT+CGPADDR查询PDP地址MQTT配置指令AT+QMTCFG配置MQTT可选参数AT+QMTOPEN打开MQTT客户端网络AT+QMTCLOSE关闭MQTT客户端网络AT+QMTCONN连接客户端到MQTT服务器.AT+QMTDISC客户端断开与MQTT服务器的连接AT+QMTSUB订阅主题AT+QMTUNS退订主题AT+QMTPUB发布消息
2.流程
第一步:搭建EMQX
访问下载页面:免费试用 EMQX Cloud 或 EMQX Enterprise | 下载 EMQX,根据需求选择对应版本下载
将下载的压缩包上传至服务器(推荐存放于C盘根目录,便于后续操作),并解压至指定路径(例如:C:\\emqx)。
按住Win+R键,输入cmd后按回车,打开Windows命令行界面。
输入cd C:\\emqx\\bin(若解压路径不同,请替换为实际路径),按回车进入bin文件夹。
输入emqx start,按回车执行启动命令。
打开浏览器,输入服务器公网 IP 及管理端口:http://公网IP:18083
登录系统:默认用户名:admin默认密码:public
部署在公网服务器后,可通过任意设备访问该 IP 地址,实现远程管理。
第二步:NB模块接线
NB模块 ----- USB转TTLVCC ----- 5VGND ----- GNDTX ----- RXRX ----- TX
实物接线
第三步:连接EMQX平台
将USB转TTL模块接入设备,打开串口调试助手,选定对应通信端口,设置波特率为115200。之后通过发送AT指令,即可实现设备与EMQX平台的连接,完成数据的上传与数据下发操作。
AT命令流程及命令结果:
1. 查询模块信息
发送指令:ATI
说明:查询模块型号、固件版本等基础信息。
预期响应:Quectel
BC28-CNV
Revision:BC28CNVBAR02A03
2. 查询国际移动用户识别码(IMSI)
发送指令:AT+CIMI
说明:获取SIM卡的IMSI号码,用于识别移动用户。
预期响应:460083001406189 OK
3. 查询产品序列号
发送指令:AT+CGSN
说明:获取设备的国际移动设备识别码。
预期响应:MPY24CD0A035759
4.查询GPRS附着状态
发送指令:AT+CGATT?
说明:检查模块是否已附着到GPRS网络(1=已附着,0=未附着)。
预期响应:+CGATT: 1 OK
5.查询信号强度
发送指令:AT+CSQ
说明:检查当前网络信号质量(0-31,值越大信号越强)。
预期响应:+CSQ:12,99 OK
6.查询信号强度
发送指令:AT+CGPADDR
说明:查询PDP对应的IP地址,PDP用于建立数据连接。
预期响应:+CGPADDR:0,10.128.101.187,2409:8D34:2C:4BC8:1855:6FC7:BAA9:B5B4 OK
7.配置MQTT协议版本
发送指令:AT+QMTCFG=\"version\",0,4
说明:设置MQTT客户端(ID=0)使用MQTT v3.1.1协议。
预期响应:OK
8.打开MQTT连接
发送指令:AT+QMTOPEN=0,\"101.200.212.234\",1883
说明:建立服务器连接,MQTT客户端标识符为0。\"a101.200.212.234\"为MQTT服务器,1883为服务器端口号域名。
预期响应:OK +QMTOPEN: 0,0
9.连接客户端到MQTT服务器
发送指令:AT+QMTCONN=0,\"NB\",\"admin\",\"public\"
说明:参数0为MQTT客户端标识符,\"NB\"为MQTT客户端ID,自拟,\"admin\"为用户名,
\"public\"为密钥。
预期响应:OK +QMTCONN: 0,0,0
10.订阅MQTT主题
发送指令:AT+QMTSUB=0,1,\"test\",2
说明:订阅平台下发属性设置的主题,0为MQTT客户端标识符,1为数据包标识符,\"test\"为订阅的主题名称,2为QoS级别。
预期响应:OK +QMTSUB: 0,1,0,2
11.发布MQTT消息
发送指令:AT+QMTPUB=0,0,0,0,\"test4G\",15
说明:准备发布MQTT消息到指定主题,参数依次为客户端ID、QoS 等级、保留标志、消息主题(\"test4G\")、数据长度为15。
预期响应:>(表示发布请求已发送)
此时发送数据:{\"temp\":\"23.5\"}
最终响应:OK +QMTPUB: 0,0,0
EMQX平台数据交互操作:
在左侧导航栏中依次选择 「工具」→「WebSocket」,进入 WebSocket 交互页面。
输入目标服务器的 IP 地址,填写 WebSocket 服务端口,输入需要监听的主题,完成后点击「订阅」按钮,建立主题监听。输入数据上报的目标主题,用于后续发送消息。
在[订阅消息列表]中可实时查看上报的数据内容。
平台数据下发操作
在消息输入框中,输入需要下发的指令内容,确认发布主题为设备订阅的目标主题,点击[发送]按钮,平台将通过WebSocket向设备推送指令。
在串口调试助手中,可实时监控设备接收数据的状态:
总结命令流程
ATIAT+CIMIAT+CGSN=1AT+CGATT?AT+CSQAT+CGPADDR=1AT+QMTCFG=\"version\",0,4AT+QMTOPEN=0,\"101.200.212.234\",1883AT+QMTCONN=0,\"NB\",\"admin\",\"public\"AT+QMTSUB=0,1,\"test\",2AT+QMTPUB=0,0,0,0,\"test4G\",15{\"temp\":\"23.5\"}