前言
移远的CAT1模块EC200S连接MQTT大致流程 ,经过测试,完全有效
A:开机
就是对模块进行断电2S在上电.
B:基础配置
这部分跟连TCP服务器一样
(1):发送AT,确认模块是否正常
"AT\r\n"
模块返回:OK
(2):取消模块回显
"ATE0\r\n"
模块返回:OK
(3)检查SIM是否正常
"AT+CPIN?\r\n"
模块返回:+CPIN: READY
(4):检查信号是否正常
"AT+CSQ\r\n"
模块返回:+CSQ: 25,99 注:主要25这个字段小于31就行
(5)查询模组是否注册上GSM网络
"AT+CREG?\r\n"
模块返回:+CREG: 0,1 注:1或者5为正常
(6)关闭移动场景
"AT+QIDEACT=1\r\n"
模块返回:OK
(7)打开移动场景
"AT+QIACT=1\r\n"
模块返回:OK
C:连接mqtt服务器
(1)设置MQTT心跳
"AT+QMTCFG=\"qmtping\",0,30\r\n"
模块返回:OK
(2)设置接收数据的模式
"AT+QMTCFG=\"recv/mode\",0,0,1\r\n"
模块返回:OK
(3)为模块打开一个网络
sprintf(tx,"AT+QMTOPEN=0,\"%s\",%d\r\n",_ec800n_date.IP,_ec800n_date.port);
模块返回:+QMTOPEN: 0,0
(4)连接到mqtt服务器
sprintf(tx,"AT+QMTCONN=0,\"%s\",\"%s\",\"%s\"\r\n",_ec800n_date.clientid,_ec800n_date.username,_ec800n_date.password);
模块返回:+QMTCONN: 0,0,0
D:订阅主题以及发布
(1)订阅主题
sprintf(tx,"AT+QMTSUB=0,1,\"%s\",0,\"%s\",0\r\n",QMTSUB_ADDR,QMTSUB_ADDR1);
模块返回:+QMTSUB: 0,1,0,1,1 注:这里订阅了两个主题
(2):发布
sprintf(sendBuf," AT+QMTPUBEX=0,0,0,0,\"%s\",%d\r\n",str,len);
模块返回>后接着写入数据
返回+QMTPUBEX: 0,0,0为发送成功