固件说明
重启模块
//tx
AT+RESET
//rx
AT+RESET
OK
^boot.rom'v'!\n
RDY
^MODE: 17,17
+E_UTRAN Service
+CGEV: ME PDN ACT 1
+NITZ: 2024/07/10,08:33:44+0,0
查询模块版本信息
//tx
AT+CGMR
//rx
AT+CGMR
+CGMR: "AirM2M_780E_V1161_LTE_AT"
OK
基本流程
4G模块支持MQTT和MQTT SSl协议, MQTT应用的基本流程如下:
1、如果要支持SSL,配置SSL参数
2、通过TCP连接到MQTT服务器
3、发送MQTT CONNECT到服务器,打开会话连接
4、订阅或者发布消息
5、关闭连接
指令
发布消息示例
//1.查询PIN码锁状态 //查询sim卡是否正常
//tx
AT+CPIN?
//rx
AT+CPIN?
+CPIN: READY
OK
//2.查询是否附着上数据网络,如果返回+CGATT: 0表示未附着上
//tx
AT+CGATT?
//rx
AT+CGATT?
+CGATT: 1
OK
//3.设置 MQTT 相关参数
//tx
AT+MCONFIG="866289037465624","user","password"
//rx
AT+MCONFIG="866289037465624","user","password"
OK
//4.建立 TCP 连接
//tx
AT+MIPSTART="lbsmqtt.airm2m.com","1884"
//rx
AT+MIPSTART="lbsmqtt.airm2m.com","1884"
OK
CONNECT OK
或者如果已经连接的情况下,再次连接则返回
//rx
T+MIPSTART="lbsmqtt.airm2m.com","1884"
OK
ALREADY CONNECT
//5.客户端向服务器请求会话连接 keepalive 建议取值在 300s 以上
//tx
AT+MCONNECT=1,600
//rx
AT+MCONNECT=1,600
OK
CONNACK OK
再次发送此指令,接收提示错误如下
//rx
AT+MCONNECT=1,600
+CME ERROR: 767
//6.订阅主题 可选
//tx
AT+MSUB="mqtt/sub_topic",0
//rx
AT+MSUB="mqtt/sub_topic",0
OK
SUBACK
//7. 发布消息 可选
//tx qos=0
AT+MPUB="mqtt/pub_topic",0,0,"publish 0 payload"
//rx
AT+MPUB="mqtt/pub_topic",0,0,"publish 0 payload"
OK
//tx qos=1
AT+MPUB="mqtt/pub_topic",1,0,"publish 1 payload"
//rx
AT+MPUB="mqtt/pub_topic",1,0,"publish 1 payload"
OK
PUBACK
//tx qos=2
AT+MPUB="mqtt/pub_topic",2,0,"publish 2 payload"
//rx
AT+MPUB="mqtt/pub_topic",2,0,"publish 2 payload"
OK
PUBREC
PUBCOMP
//8. 模块先关闭MQTT连接
//tx
AT+MDISCONNECT
//rx
AT+MDISCONNECT
OK
//9. 关闭TCP链接
//tx
AT+MIPCLOSE
// rx
AT+MIPCLOSE
OK
在这个过程中,注意事项如下:
1、发送MIPSTART命令后,收到OK仅仅表示4G模块开始处理这条命令,并不表示TCP已经连接成功;只有收到CONNECT OK才是成功的应答(其余错误应答,参考AT手册)
2、发送MCONNECT命令后,收到OK仅仅表示4G模块开始处理这条命令,并不表示MQTT已经连接成功;只有收到CONNACK OK才是成功的应答(其余错误应答,参考AT手册)
3、发送MSUB命令后,收到OK仅仅表示4G模块开始处理这条命令,并不表示MQTT已经订阅成功;只有收到SUBACK才是成功的应答(其余错误应答,参考AT手册)
4、发送MPUB命令后,如果QOS不是0,则收到OK仅仅表示4G模块开始处理这条命令,并不表示MQTT已经发布成功;只有收到PUBACK(QOS为1时)或者PUBCOMP(QOS为2时)才是成功的应答(其余错误应答,参考AT手册)
MPUB命令中,payload 包含 " 时数据如何发送?
消息中内嵌的双引号请用\22 表达;控制字符 \r(0x0D)请用\0D 表达;控制字符\n(0x0A) 请用\0A 表达 如果是 MCU 发消息,请用\\22,\\0D,\\0A 来 表达,即\需要转义成\\
参考:
https://doc.openluat.com/wiki/37?wiki_page_id=4501#_20
https://doc.openluat.com/article/4985
https://doc.openluat.com/article/4922