项目简介
这是一个基于ESP32平台的示例程序,可通过MQTT协议连接AWS IoT平台,实现消息的发布和订阅功能。此项目旨在助力开发者快速上手AWS IoT服务,理解如何在ESP32设备上运用MQTT协议进行通信。
项目的主要特性和功能
- 以ESP32平台作为设备端,连接AWS IoT MQTT服务器。
- 具备MQTT的发布(Publish)和订阅(Subscribe)功能,涵盖QoS0和QoS1的发布流程。
- 展示了在设备上使用的内存优化策略,如记录堆栈使用情况。
- 拥有自动重连功能,可处理可能出现的连接中断。
安装使用步骤
假设用户已经下载了本项目的源码文件:
1. 保证已安装ESP32开发环境,包含ESP-IDF和相应的编译工具链。
2. 打开终端,进入项目源码所在文件夹。
3. 运行 menuconfig
来配置WiFi和AWS IoT端点,操作路径为 PlatformIO Icon -> Project Tasks -> Platform -> Run Menoconfig。配置完成后按ESC键退出,保存更改的设置:
- Example configuration:配置 WiFi SSID 和 WiFi Password。
- Component config:配置 Amazon web services IoT Platofrm 下的 AWS IoT Endpoint Hostname。
4. 在AWS IoT控制台创建策略:
- 登录 AWS 控制台,搜索并打开 IoT Core 服务。
- 在左侧导航窗格依次点击 Secure -> Policies -> Create policy,输入 Policy name,使用以下策略作为 Policy document:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iot:Connect",
"iot:Receive",
"iot:Publish",
"iot:Subscribe"
],
"Resource": "*"
}
]
}
5. 在AWS IoT控制台创建证书:
- 若不在AWS IoT控制台,登录该控制台;若未使用 IoT Core 服务,搜索并使用。
- 在左侧导航窗格依次点击 Security -> Certificates -> Add certificate -> Create certificate。
- 选择 Auto-generate new certificate (recommended),设置 Certificate status 为 Active,下载所有证书和密钥,尤其要保存 Device certificate 和 Private key file。
- 点击创建的证书,附加之前创建的策略。
6. 在VS Code中更改设备证书和密钥文件:项目加载到VS Code后,在 src -> certs 文件夹下操作:
- aws-root-ca.pem 无需更改。
- 打开 certificate.pem.crt,将其内容替换为下载的 Device certificate 的内容。
- 打开 private.pem.key,将其内容替换为下载的 Private key file 的内容。
7. 使用ESP-IDF工具链编译项目,生成可烧录到ESP32设备的固件。
8. 将生成的固件烧录到ESP32设备上。
9. 运行设备上的程序,在IoT核心控制台点击 Test -> MQTT test client,项目代码会向主题 test_topic/esp32 发布MQTT数据,可使用该客户端进行发布和订阅操作。
注意事项
- 需正确配置AWS IoT MQTT服务器地址、端口、证书路径等参数。
- 确保设备的Wi-Fi连接正常,以便与AWS IoT服务器通信。
- 使用MQTT时,注意QoS级别和服务质量,满足不同数据传输需求。
- 开发过程中,可使用ESP-IDF提供的工具进行调试和日志输出,分析和优化程序。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】