MQTT指令集

AT+MQTTUSERCFG:设置 MQTT 用户属性

执行命令

命令:

AT+MQTTUSERCFG=<LinkID>,<scheme>,<"client_id">,<"username">,<"password">,<cert_key_ID>,<CA_ID>,<"path">

返回:

OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <scheme>:

    • 1: MQTT over TCP

    • 2: MQTT over TLS(PSK加密)

  • <client_id>:MQTT 客户端 ID,最大长度:256 字节。

  • <username>:用户名,用于登陆 MQTT broker,最大长度:64 字节。

  • <password>:密码,用于登陆 MQTT broker,最大长度:64 字节。

  • <cert_key_ID>:证书 ID,目前 暂不支持cert 证书,参数为 0。

  • <CA_ID>:CA ID,目前暂不支持CA 证书,参数为 0。

  • <path>:资源路径,最大长度:32 字节。

说明

  • 每条 AT 命令的总长度不能超过 256 字节。

AT+ MQTTCONNCFG:设置 MQTT连接属性

执行命令

命令:

AT+MQTTCONNCFG=<LinkID>,<keepalive>,<disable_clean_session>,<"lwt_topic">,<"lwt_msg">,<lwt_qos>,<lwt_retain>

返回:

OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <keepalive>:MQTT ping 超时时间,单位:秒。范围:[0,7200]。默认值:0,会被强制改为 120 秒。

  • <disable_clean_session>:设置 MQTT 清理会话标志。

    • 0: 使能清理会话

    • 1: 禁用清理会话

  • <lwt_topic>:遗嘱 topic,最大长度:128 字节。

  • <lwt_msg>:遗嘱 message,最大长度:64 字节。

  • <lwt_qos>:遗嘱 QoS,参数可选 0、1、2,默认值:0。

  • <lwt_retain>:遗嘱 retain,参数可选 0 或 1,默认值:0。

示例

AT+MQTTCONNCFG=0,180,0,"test/aaa","good bye",1,0

AT+MQTTCONN:设置 MQTT连接属性

查询命令

命令:

AT+MQTTCONN?

返回:

+MQTTCONN:<LinkID>,<state>,<scheme>,<"host">,<port>,<reconnect>
OK

执行命令

命令:

AT+MQTTCONN=<LinkID>,<host>,<port>,<reconnect>

返回:

OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <host>:MQTT broker 域名或IP,最大长度:64 字节。

  • <port>:MQTT broker 端口,最大端口:65535。

  • <reconnect>:

    • 0: MQTT 不自动重连

    • 1: MQTT 自动重连

  • <state>:MQTT 状态:

    • connected:连接成功

    • disconnect:连接失败

  • <scheme>:

    • 1: MQTT over TCP

    • 2: MQTT over TLS(PSK加密)

示例

AT+MQTTCONN=0,192.168.0.102,8883,1

AT+MQTTPUB:发布 MQTT 消息

执行命令

命令:

AT+MQTTPUB=<linkID>,<"topic">,<"data">,<qos>,<retain>

返回:

OK

参数

  • <LinkID>:当前仅支持 LinkID 0。

  • <topic>:MQTT topic,最大长度:128字节。

  • <data>:MQTT字符串消息。

  • <qos>:发布消息的 QoS,参数可选0、1、或2。

  • <retain>:发布 retain(0或1)。

示例

//通过主题test/abc发布字串“987654321”消息
AT+MQTTPUB=0,test/abc,987654321,1,0

AT+ MQTTPUBRAW:发布 MQTT 消息(二进制)

执行命令

命令:

AT+MQTTPUBRAW=<linkid>,<"topic">,<length>,<qos>,<retain>

返回:

OK
>

符号 > 表示 AT 准备好接收串口数据,此时您可以输入数据,当数据长度达到参数 <length> 的值时,数据传输开始。 若传输成功,则 AT 返回:

+MQTTPUBRAW:OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <topic>:MQTT topic,最大长度:128 字节。

  • <length>:MQTT 消息长度,最大长度为512字节。

  • <qos>:发布消息的 QoS,参数可选 0、1、或 2,默认值:0。

  • <retain>:发布 retain。

AT+ MQTTSUB:订阅 MQTT Topic

查询命令

命令:

AT+MQTTSUB?

返回:

+MQTTSUB:<linkid>,<status>,<topic1>,<“qos”>
+MQTTSUB: <linkid>,<status>,<topic2>,<“qos”>
OK

执行命令

命令:

AT+MQTTSUB=<linkid>,<"topic">,<qos>

返回:

OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <topic>:订阅的 topic。

  • <qos>:订阅的 QoS。

说明

当 AT 接收到已订阅的 topic 的 MQTT 消息时,返回:

+MQTTSUBRECV:<LinkID>,<"topic">,<data_length>,data

若已订阅过该 topic,则返回:

ALREADY SUBSCRIBE

AT+ MQTTUNSUB:取消订阅 MQTT Topic

执行命令

命令:

AT+MQTTUNSUB=<linkID>,<”topic”>

返回:

OK

若未订阅过该 topic,或未创建MQTT连接则返回:

NO UNSUBSCRIBE
OK

参数

  • <LinkID>:当前仅支持 link ID 0。

  • <topic>:MQTT topic,最大长度:128 字节。

AT+ MQTTCLEAN:断开 MQTT 连接

执行命令

命令:

AT+MQTTCLEAN=<LinkID>

返回:

OK

参数

  • <LinkID>:当前仅支持 link ID 0。