说明
测试服务器如下:
IP地址: 47.92.31.46
端口号:1883
MQTT用户名:yang
MQTT密码:11223344
指令发送步骤
关于指令的详细意义请用户打开文档自行查阅
1. 关闭回显
ATE0 (返回OK,再执行下一条)
2.读取SIM卡是否工作正常
AT CPIN? (返回 CPIN: READY,再执行下一条)
3.检测GPRS注册状态
AT CEREG? (返回 CEREG: 0,1 或 CEREG: 0,5 ,再执行下一条)
4.是否附着GPRS
AT CGATT? (返回 CGATT: 1 ,再执行下一条)
5.连接TCP服务器(MQTT服务器)
所以我的是:
AT ECMTOPEN=0,"47.92.31.46",1883 (返回 ECMTOPEN: 0,0 ,再执行下一条)
如果返回 ECMTOPEN: 0,-1 可以尝试重复再发送一次命令
6.发送连接MQTT协议
提示:clientID需要保证每个客户端不一样,一般使用模组的IMEI号码代替,模组上面有写,可以使用AT CGSN=1 指令获取
如果服务器规定了clientID,那么按照服务器规定的
当然测试的时候可以先随意规定.
所以我的是:(我随意规定clientID是000000)
AT ECMTCONN=0,"000000","yang","11223344" (返回 ECMTCONN: 0,0,0 ,再执行下一条)
提示: [,“<username>”[,“<password>”]] 代表可以不写(有些MQTT服务器没有用户名和密码的时候可以不写)
AT ECMTCONN=0,"000000"
7.订阅主题
msgID设置的什么就返回什么,执行不同订阅的主题的时候可以作为区分
假设我订阅的主题为:qqqqq 消息等级0
所有我的是:
AT ECMTSUB=0,1,"qqqqq",0 (订阅成功返回 ECMTSUB: 0,1,0,1 )
使用串口调试助手测试
1.连接开发板
2.安装好手机卡和天线
3.打开串口调试助手,依次发送指令
发送的指令 期望返回 描述 ATE0 OK 关闭回显 AT CPIN? CPIN: READY AT CEREG? CEREG: 0,1 或 CEREG: 0,5 查询GPRS注册状态 AT CGATT? CGATT: 1 检测GPRS附着状态 AT ECMTOPEN=0,"47.92.31.46",1883 ECMTOPEN: 0,0 连接TCP服务器(MQTT服务器) AT ECMTCONN=0,"000000","yang","11223344" ECMTCONN: 0,0,0 发送连接MQTT协议 AT ECMTSUB=0,1,"qqqqq",0 ECMTSUB: 0,1,0,1 订阅主题
4.打开MQTT调试助手
5.发送数据给模组
6.使用MQTT调试助手订阅主题:wwwwww
7.控制模组发送信息给MQTT调试助手
因为mqtt调试助手订阅了wwwwww,所以发布的主题topic为: wwwwww
假设发布的消息为: 11223344
所以
AT ECMTPUB=0,0,0,0,"wwwwww","11223344"