MQTT AT 连接云示例
本文档主要介绍您的设备如何通过 AT 命令对接 AWS IoT。
重要
有关如何使用 MQTT AT 命令的详细信息,请参阅 MQTT AT 命令集。 您需要通过阅读 AWS IoT 开发指南 来熟悉 AWS IoT。
请按照以下步骤使用 ESP-AT 将您的 ESP32-C6 设备连接到 AWS IoT。
从 AWS IoT 获取证书以及 endpoint
登录您的 AWS IoT 控制台帐号,以及切换至 IoT Core services。
按照 创建 AWS IoT 资源 中的说明创建 AWS IoT 策略、事物和证书。
确保您已获得以下证书和密钥文件:
device.pem.crt(设备证书)
private.pem.key(私有密钥)
Amazon-root-CA-1.pem(根 CA 证书)
根据文档 设置策略 获取端点 (endpoint) 以及了解如何通过证书将事物绑定到策略。
端点的格式为 “xxx-ats.iot.us-east-2.amazonaws.com”。
备注
强烈建议您熟悉 AWS IoT 开发人员指南 以下是本指南中值得注意的一些要点。
AWS IoT 需要所有设备必须有事物证书、事物私钥、和根证书。
有关如何激活证书。
区域建议选择俄亥俄州 (Ohio)。
使用 MQTT AT 命令基于双向认证连接 AWS IoT
配置证书
有三种方式可以替换 MQTT 证书:
方式一:重新编译固件
打开本地 ESP-AT 工程,并执行如下操作:
使用
Amazon-root-CA-1.pem替换 mqtt_ca.crt 。使用
device.pem.crt替换 mqtt_client.crt 。使用
private.pem.key替换 mqtt_client.key 。
然后编译 ESP-AT 项目以构建 AT 固件,并将固件烧录到您的 ESP32-C6 设备。欲了解更多信息,请参阅 本地编译 ESP-AT 工程。
方式二:运行时更新证书
如果不想重新编译固件,可以直接使用 AT+SYSMFG 命令在运行时更新 MQTT 证书。具体操作步骤请参考 AT+SYSMFG 命令示例中的 PKI 配置,证书配置方法与 SSL 证书相同,仅需将命名空间修改为 mqtt_cert、mqtt_key、mqtt_ca 即可。
方式三:仅更新证书 bin 文件
如果您已有 AT 固件,只需预烧录自己的证书,可以直接更新 mfg_nvs.bin 文件。具体操作步骤请参阅 如何更新 PKI 配置。
使用 AT 命令连接到 AWS IoT
设置 Wi-Fi 模式为 station。
命令:
AT+CWMODE=1
响应:
OK
连接 AP。
命令:
AT+CWJAP=<"ssid">,<"password">
响应:
OK
设置 SNTP Server。
命令:
AT+CIPSNTPCFG=1,8,"pool.ntp.org"
响应:
OK
查询 SNTP 时间。
命令:
AT+CIPSNTPTIME?
响应:
+CIPSNTPTIME:<asctime style time> OK
说明:
此时获得的 <asctime style time> 必须是设置时区的实时时间,否则会因为证书有效期而导致连接失败。
设置 MQTT 用户属性。
命令:
AT+MQTTUSERCFG=0,5,"esp32","espressif","1234567890",0,0,""
响应:
OK
说明:
AT+MQTTUSERCFG 中第二参数为 5,即双向认证,不可更改。
连接 AWS IoT。
命令:
AT+MQTTCONN=0,"<endpoint>",8883,1
响应:
+MQTTCONNECTED:0,5,<endpoint>,"8883","",1 OK
说明:
请在 <endpoint> 参数中填写您的 <endpoint> 值。
无法更改端口 8883。
订阅消息。
命令:
AT+MQTTSUB=0,"topic/esp32at",1
响应:
OK
发布消息。
命令:
AT+MQTTPUB=0,"topic/esp32at","hello aws!",1,0
响应:
+MQTTSUBRECV:0,"topic/esp32at",10,hello aws! OK
示例日志
正常交互日志如下:

