SIM7600CE模块MQTT协议的AT指令流程

     最近在做一个采用SIM7600模块,做一个MQTT协议传输数据到服务器,这里我先简单介绍一下关于AT指令的流程,后面有时间我会详细介绍自己移植的底层MQTT协议在单片机上面的实现(用于某些模块没有内置关于MQTT的AT指令),这里我给大家推荐一个链接是中国移动的onenet平台的MQTT相关源码,他们给出了单片机的应用代码,需要的话可以自己去参考。还有就是别去相信网上和淘宝的什么开发板说什么实现了MQTT协议上传服务器,他就是抄的中国移动onene的代码,黑心商家啊(拿别人的开源成果来卖钱)。

   下面介绍下关于SIM7600CE模块实现AT指令上传服务器的流程。关于HTTP、TCP/TP、以及UDP我就不介绍了,卖家的资料里都有详细的说明。

AT+CRESET                  //复位

OK                       

                          //开机输出信息
RDY
+CPIN: READY
SMS DONE
PB DONE

注意在进行复位后,大约需要15s时间的等待时间。等到完全输出开机信息后,向模块发送AT指令才会有效果。

//查询是否检测到卡
AT+CPIN?

+CPIN: READY

OK


//查询信号质量
AT+CSQ

+CSQ: 26,99

OK


//检测联网
AT+CREG? 

+CREG: 0,1

OK


//检测4G网
AT+CGREG? 

+CGREG: 0,1

OK
//设置 APN 
AT+CGDCONT=1,"IP","CMNET" 

OK

//确保第一个PDP上下文获取IP地址
AT+CGPADDR

+CGPADDR: 1,10.114.29.137
+CGPADDR: 2,0.0.0.0,0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
+CGPADDR: 3,0.0.0.0,0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0

OK
//启动MQTT服务,激活PDP上下文
AT+CMQTTSTART 

OK

+CMQTTSTART: 0

//获取客户
AT+CMQTTACCQ=0,"client test0"

OK

注意启动MQTT服务时,不能反复启动后,再启动。否则会报错。

//"tcp://116.247.119.165:5141”必须以“tcp://”开头。如果不包括端口,默认端口为1883。
//第3个参数是从客户机接收到的两条消息之间的时间间隔。当长时间没有消息发送到服务器时,客户端将发送一个保持活动的数据包。范围是从60s至64800s(18小时)。
//第4个参数清除会话标志。值的范围是从0到1,默认值是0。
0-服务器断开连接后必须存储客户端的订阅。这包括继续存储QoS1和QoS2个订阅主题的消息,以便在客户端重新连接时可以传递这些主题。服务器还必须在连接丢失时保持正在传输的飞行中消息的状态。必须保留此信息,直到客户端重新连接。
1-服务器必须放弃以前维护的有关客户端的任何信息,并将连接视为“干净”。当客户端断开连接。
//第5,6个参数分别为服务器的名字和密码
//MQTT连接服务器
AT+CMQTTCONNECT=0,"tcp://120.76.100.197:18831",60,1,"TEST","TEST" 

OK

+CMQTTCONNECT: 0,0

这里也需要注意的是,连接到服务器后再次连接,会报错。

//订阅一个主题
AT+CMQTTSUB=0,3,1
>ISC                        //输入的主题
OK

+CMQTTSUB: 0,0

//发布一个主题
AT+CMQTTTOPIC=0,3
>ISC                        //发布的主题
OK

//发布消息
AT+CMQTTPAYLOAD=0,12
>youlangtest1               //发布的消息
OK

//发送服务器
AT+CMQTTPUB=0,1,60

OK

+CMQTTPUB: 0,0

//以下是订阅后的回执信息
+CMQTTRXSTART: 0,3,12
+CMQTTRXTOPIC: 0,3
ISC
+CMQTTRXPAYLOAD: 0,12
youlangtest1
+CMQTTRXEND: 0

//取消订阅主题
AT+CMQTTUNSUB=0,4,0
>ISC1
OK

+CMQTTUNSUB: 0,0

这里我使用了通信猫中的MQTT的调试软件的服务器通信猫调试助手。我测试的时候,不知道为什么有点小BUG,在调试软件那边只能显示接收一次推送,但是实际上每次都是推送成功了的。所以在测试中,我采用了先订阅主题,再发布自己的主题,来实现自发自收的效果进而测试。

你可能感兴趣的:(通信,嵌入式,MQTT,SIM7600CE,MQTT协议,AT指令)