MQTT AT 命令集

介绍

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

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ESP8266是一个低成本、易于使用的Wi-Fi模块,具有强大的处理能力和丰富的通信接口。ESP8266AT指令集是一组与ESP8266通信模块进行交互的指令集合。 MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,采用发布/订阅模式,广泛应用于物联网、传感器和嵌入式系统等领域。它非常适合低带宽和不稳定网络环境下的数据传输。 通过ESP8266AT指令集,我们可以使用ESP8266模块连接到MQTT服务器,并实现与服务器之间的通信。 首先,我们需要设置ESP8266模块的无线局域网连接参数,包括Wi-Fi网络名称和密码等。使用AT+CWMODE指令设置模块为STA模式,AT+CWJAP指令连接到指定的Wi-Fi网络。 接下来,我们需要通过AT+CIPSTART指令建立与MQTT服务器的TCP连接。在建立连接后,使用AT+CIPSEND指令发送MQTT协议格式的数据,包括连接请求、发布消息、订阅主题等。通过AT+CIPSEND指令发送的数据必须符合MQTT协议规定的格式。 如果需要接收来自MQTT服务器的数据,我们可以使用AT+CIPRECV指令接收服务器发送过来的消息。 除了基本的连接和通信功能,ESP8266AT指令集还支持设置心跳包、断开连接、保持持久连接等高级功能。例如,使用AT+CIPSTATUS指令可以查询当前连接状态,使用AT+CIPCLOSE指令可以断开与MQTT服务器的连接。 总之,通过ESP8266AT指令集,我们可以方便地与MQTT服务器进行通信,实现物联网和嵌入式系统中的数据传输和远程控制等功能。 ### 回答2: ESP8266是一款集成了Wi-Fi模块的芯片,AT指令集是用于控制ESP8266芯片的一套指令。而MQTT是一种轻量级的消息协议,适用于物联网设备之间的通信。 ESP8266芯片通过AT指令集来与外部设备通信。AT指令集包括一系列的指令,可以用于设置Wi-Fi连接、接收和发送数据等功能。而MQTT协议可以通过ESP8266芯片来实现设备与设备之间的通信。通过使用MQTT协议,设备可以发布和订阅主题,实现消息的传输。 mqtt指令是ESP8266芯片配合MQTT协议使用的一些指令。在使用ESP8266芯片进行MQTT通信时,可以使用相应的mqtt指令来连接MQTT服务器,发布消息和订阅消息。通过发送特定的mqtt指令,可以实现设备与设备之间的即时通信,以及与云平台的实时数据交换。 总而言之,ESP8266AT指令集与MQTT协议结合使用,可以帮助实现设备之间的通信。通过使用ESP8266芯片,可以轻松地实现MQTT协议的功能,从而实现物联网设备之间的数据传输和交互。 ### 回答3: ESP8266是一款流行的Wi-Fi模块,可以通过AT指令集控制。MQTT是一种轻量级的消息传输协议,适用于物联网应用。ESP8266AT指令MQTT是通过ESP8266的AT指令集实现MQTT通信。 在使用ESP8266AT指令MQTT时,首先需要将ESP8266模块连接到Wi-Fi网络。通过AT指令,我们可以设置ESP8266的Wi-Fi连接参数,包括SSID和密码。一旦连接成功,可以通过AT指令控制ESP8266与MQTT服务器进行通信。 在ESP8266AT指令集中,有一些特定的指令用于MQTT通信。例如,AT+CIPSTART指令可以用来建立与MQTT服务器之间的TCP连接。通过指定MQTT服务器的IP地址和端口号,ESP8266可以与服务器建立连接。 建立连接后,我们可以使用AT指令来订阅和发布MQTT主题。AT+CIPSEND指令可以用来发送MQTT消息,包括订阅和发布主题以及相应的消息内容。AT+CIPRECV指令则可以用来接收来自MQTT服务器的消息。 除了基本的MQTT通信功能,ESP8266AT指令集还提供了一些其他的功能。例如,可以使用AT指令来查询ESP8266模块的状态,包括Wi-Fi连接状态和MQTT连接状态。通过这些状态查询指令,我们可以及时了解到模块的工作状态,以便进行相应的处理。 总之,ESP8266AT指令MQTT为开发者提供了非常方便的方式来控制ESP8266模块与MQTT服务器之间的通信。无论是在物联网应用还是其他相关的项目中,这个组合都可以帮助我们实现稳定可靠的无线通信。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值