GM5 Cat-1通讯模组 MQTT通讯流程

GM5 Cat-1通讯模组 MQTT通讯

目前有人模组支持MQTT的有:GM401TF、GM5

进入cmd模式

AT+WKMOD=CMD

AT+S

手动驻网

AT+CPIN?   #检测SIM卡状态,Ready为正常

AT+CREG?   #检测GSM状态,电信SIM不支持

AT+CGATT=1 #设置网络附着

AT+CFGDFTPDN=3,0,"CMNET","","" #设置APN参数,普卡可跳过,APN卡必设

AT+CGDCONT=1,"IPV4V6","CMNET"  #设置PDP上下文,普卡可跳过,APN卡必设

APNAT+CSTT#启用当前

AT+CGACT=1,n  #激活第N路网络,N范围:1-6,

AT+CIICR  #激活应用场景

注意:以上网络流程按照先后顺序执行,如果颠倒将有可能导致无法正常连接网络。
AT+CGACT=1,n 该指令中n取值1,取其他值可能会报错

连接平台

创立MQTT连接

AT+MQTTCONN=<host>,<port>,<clientid>,<keepalive>,<cleansession>,[<username>,<password>] #创立MQTT连接

格式:
AT+MQTTCONN="<host>",<port>,"<clientid>",<keepalive>,<cleansession>,"<username>","<password>"

参数项:
<host> MQTT 服务器域名。
<port> MQTT 服务器端口。
<clientid> 客户端 ID 编号。
<keepalive>MQTT 连接保活时间,参数范围[1-3600],以秒为单位。【用户在实际使用时,不要低于 30s,否则可能频繁掉线;一般建议设置为 60~120s。】
<cleansession> 对话清理标志,0 为关闭,1 为开启。(开启状态下当客户端再次上线时,将不再关心之前所有的订阅关系以及离线消息;关闭状态下客户端再次上线时,还需要处理之前的离线消息,而之前的订阅关系也会持续生效。)
<username>用户名。
<password> 密码。

返回:
• 连接成功:OK
• 连接失败:+CME ERROR:<error code>
• 连接超时:+MQTTDISCONNECTED:<num>

订阅或退订一个 MQTT 主题

AT+MQTTSUBUNSUB=<topic>,<sub flag>,<qos> #订阅或退订一个 MQTT 主题

举例:
AT+MQTTSUBUNSUB="test",1,1 #订阅test主题

参数项:
<topic> MQTT 主题
<sub flag> 订阅标志,当参数为:1,执行订阅;0,执行退订。
<qos> 消息服务质量,可设定参数包含 0, 1, 2。.

返回:
• 成功:OK
• 失败: +CME ERROR:<error code>

向主题发布一条 MQTT 消息

AT+MQTTPUB=<topic>,<message>,<qos>,<duplicate>,<retain> # 向主题发布一条 MQTT 消息

举例:
AT+MQTTPUB="topic","123456",1,0,0 #推送数据给topic主题

参数项:
<topic> MQTT 主题,请注意参考下文注解。
<message> 要发布的消息,请注意参考下文注解。
<qos> 消息服务质量,可设定参数包含 0, 1, 2。
<duplicate> 消息重复标志,可设定参数包含 0, 1。本参数用在 publish 中 qos 为 1, 2 的情况,用来表明该消息是否为一条重复的消息。
<retain> MQTT 消息保留标志,用于告知 broker 是否要将消息持久化,以供后来的订阅者消费。

返回:
• 成功:OK
• 失败: +CME ERROR:<error code>

关闭 MQTT 连接

AT+MQTTDISCONN #关闭 MQTT 连接

参数项:
无

返回:
• 成功:OK
• 失败: +CME ERROR:<error code>

补充:

73b2a26e9944c03f9c2ee5ed11e9dd8.png

案例

连接到 Eclipse Mosquitto

#创建 MQTT 连接
AT+MQTTCONN=”test.mosquitto.org”,1883,”rdatest”,90,0

#订阅一个 MQTT 主题
AT+MQTTSUBUNSUB=”/rda/test_topic”,1,1

#在主题上发布一条 MQTT 消息
AT+MQTTPUB=”/rda/test_topic”,”hello mqtt message published by RDA”,1,0,0

#退订一个 MQTT 主题
AT+MQTTSUBUNSUB=”/rda/test_topic”,0

#关闭 MQTT 连接
AT+MQTTDISCONN

连接到 OneNET

在连接到 OneNET 平台之前,我们首先需要在下列网址注册一个账户,并重建产品与设备,然后我们会得到一个产品 ID<product id >, 设备 ID<device id>以及授权信息<auth_info>; 我们需要用得到的<device id>对应指令中<clientid>,用<produce id>去对应指令中的<username>, 以及用<auth_info>去对应指令中的<password>。

#创建一个 MQTT 连接
AT+MQTTCONN=”183.230.40.39”,6002,”23036025”,120,0,”112333”,”ABC123RDA”

#订阅一个 MQTT 主题
AT+MQTTSUBUNSUB=”RDATEST_TOPIC”,1,1

#在主题上发布一条 MQTT 消息
AT+MQTTPUB=”RDATEST_TOPIC”,”hello mqtt published by rda”,1,0,0

#退订一个 MQTT 主题
AT+MQTTSUBUNSUB=”RDATEST_TOPIC”,0

#关闭 MQTT 连接
AT+MQTTDISCONN

来自:https://www.usr.cn/

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容