介绍
AT+MQTTUSERCFG:设置 MQTT 用户属性
AT+MQTTLONGCLIENTID:设置 MQTT 客户端 ID
AT+MQTTLONGUSERNAME:设置 MQTT 登陆用户名
AT+MQTTLONGPASSWORD:设置 MQTT 登陆密码
AT+MQTTCONNCFG:设置 MQTT 连接属性
AT+MQTTALPN:设置 MQTT 应用层协议协商(ALPN)
介绍
重要
默认的 AT 固件支持此页面下的所有 AT 命令。如果您不需要 ESP32 支持 MQTT 命令,请自行 编译 ESP-AT 工程,在第五步配置工程里选择:
禁用 Component config -> AT -> AT MQTT command support
AT+MQTTUSERCFG:设置 MQTT 用户属性
设置命令
功能:
配置 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(不校验证书);
3: MQTT over TLS(校验 server 证书);
4: MQTT over TLS(提供 client 证书);
5: MQTT over TLS(校验 server 证书并且提供 client 证书);
6: MQTT over WebSocket(基于 TCP);
7: MQTT over WebSocket Secure(基于 TLS,不校验证书);
8: MQTT over WebSocket Secure(基于 TLS,校验 server 证书);
9: MQTT over WebSocket Secure(基于 TLS,提供 client 证书);
10: MQTT over WebSocket Secure(基于 TLS,校验 server 证书并且提供 client 证书)。
<client_id>:MQTT 客户端 ID,最大长度:256 字节。
<username>:用户名,用于登陆 MQTT broker,最大长度:64 字节。
<password>:密码,用于登陆 MQTT broker,最大长度:64 字节。
<cert_key_ID>:证书 ID,目前 ESP-AT 仅支持一套 cert 证书,参数为 0。
<CA_ID>:CA ID,目前 ESP-AT 仅支持一套 CA 证书,参数为 0。
<path>:资源路径,最大长度:32 字节。
说明
每条 AT 命令的总长度不能超过 256 字节。
如果 <scheme> 配置为 3、5、8、10,为了校验服务器的证书有效期,请在发送 AT+MQTTCONN 命令前确保 ESP32 已获取到当前时间。(您可以发送 AT+CIPSNTPCFG 命令来配置 SNTP,获取当前时间,发送 AT+CIPSNTPTIME? 命令查询当前时间。)
AT+MQTTLONGCLIENTID:设置 MQTT 客户端 ID
设置命令
功能:
设置 MQTT 客户端 ID
命令:
AT+MQTTLONGCLIENTID=<LinkID>,<length>
响应:
OK
>
上述响应表示 AT 已准备好接收 MQTT 客户端 ID,此时您可以输入客户端 ID,当 AT 接收到的客户端 ID 长度达到 <length> 后,返回:
OK
参数
<LinkID>:当前仅支持 link ID 0。
<length>:MQTT 客户端 ID 长度。范围:[1,1024]。
说明
AT+MQTTUSERCFG 命令也可以设置 MQTT 客户端 ID,二者之间的差别包括:
AT+MQTTLONGCLIENTID 命令可以用来设置相对较长的客户端 ID,因为 AT+MQTTUSERCFG 命令的长度受限;
应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTLONGCLIENTID。
AT+MQTTLONGUSERNAME:设置 MQTT 登陆用户名
设置命令
功能:
设置 MQTT 用户名
命令:
AT+MQTTLONGUSERNAME=<LinkID>,<length>
响应:
OK
>
上述响应表示 AT 已准备好接收 MQTT 用户名,此时您可以输入 MQTT 用户名,当 AT 接收到的 MQTT 用户名长度达到 <length> 后,返回:
OK
参数
<LinkID>:当前仅支持 link ID 0。
<length>:MQTT 用户名长度。范围:[1,1024]。
说明
AT+MQTTUSERCFG 命令也可以设置 MQTT 用户名,二者之间的差别包括:
AT+MQTTLONGUSERNAME 命令可以用来设置相对较长的用户名,因为 AT+MQTTUSERCFG 命令的长度受限。
应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTLONGUSERNAME。
AT+MQTTLONGPASSWORD:设置 MQTT 登陆密码
设置命令
功能:
设置 MQTT 密码
命令:
AT+MQTTLONGPASSWORD=<LinkID>,<length>
响应:
OK
>
上述响应表示 AT 已准备好接收 MQTT 密码,此时您可以输入 MQTT 密码,当 AT 接收到的 MQTT 密码长度达到 <length> 后,返回:
OK
参数
<LinkID>:当前仅支持 link ID 0。
<length>:MQTT 密码长度。范围:[1,1024]。
说明
AT+MQTTUSERCFG 命令也可以设置 MQTT 密码,二者之间的差别包括:
AT+MQTTLONGPASSWORD 可以用来设置相对较长的密码,因为 AT+MQTTUSERCFG 命令的长度受限;
应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTLONGPASSWORD。
AT+MQTTCONNCFG:设置 MQTT 连接属性
设置命令
功能:
设置 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 清理会话标志,有关该参数的更多信息请参考 MQTT 3.1.1 协议中的 Clean Session 章节。
0: 使能清理会话
1: 禁用清理会话
<lwt_topic>:遗嘱 topic,最大长度:128 字节。
<lwt_msg>:遗嘱 message,最大长度:64 字节。
<lwt_qos>:遗嘱 QoS,参数可选 0、1、2,默认值:0。
<lwt_retain>:遗嘱 retain,参数可选 0 或 1,默认值:0。
AT+MQTTALPN:设置 MQTT 应用层协议协商(ALPN)
设置命令
功能:
设置 MQTT 应用层协议协商(ALPN)
命令:
AT+MQTTALPN=<LinkID>,<alpn_counts>[,<"alpn">][,<"alpn">][,<"alpn">]
响应:
OK
参数
<LinkID>:当前仅支持 link ID 0。
<alpn_counts>:<”alpn”> 参数个数。范围:[0,5]。
0:清除 MQTT ALPN 配置
[1,5]:设置 MQTT ALPN 配置
<”alpn”>:字符串参数,表示 ClientHello 中的 ALPN,用户可以发送多个 ALPN 字段到服务器。
说明
整条 AT 命令长度应小于 256 字节。
只有在 MQTT 基于 TLS 或 WSS 时,MQTT ALPN 字段才会生效。
应在设置 AT+MQTTUSERCFG 后再使用 AT+MQTTALPN。
示例
AT+CWMODE=1AT+CWJAP="ssid","password"AT+CIPSNTPCFG=1,8,"ntp1.aliyun.com","ntp2.aliyun.com"AT+MQTTUSERCFG=0,5,"ESP32","espressif","1234567890",0,0,""AT+MQTTALPN=0,2,"mqtt-ca.cn","mqtt-ca.us"AT+MQTTCONN=0,"192.168.200.2",8883,1