littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于C语言和ESP32平台的AWS IoT MQTT发布订阅系统

项目简介

这是一个基于ESP32平台的示例程序,可通过MQTT协议连接AWS IoT平台,实现消息的发布和订阅功能。此项目旨在助力开发者快速上手AWS IoT服务,理解如何在ESP32设备上运用MQTT协议进行通信。

项目的主要特性和功能

  1. 以ESP32平台作为设备端,连接AWS IoT MQTT服务器。
  2. 具备MQTT的发布(Publish)和订阅(Subscribe)功能,涵盖QoS0和QoS1的发布流程。
  3. 展示了在设备上使用的内存优化策略,如记录堆栈使用情况。
  4. 拥有自动重连功能,可处理可能出现的连接中断。

安装使用步骤

假设用户已经下载了本项目的源码文件: 1. 保证已安装ESP32开发环境,包含ESP-IDF和相应的编译工具链。 2. 打开终端,进入项目源码所在文件夹。 3. 运行 menuconfig 来配置WiFi和AWS IoT端点,操作路径为 PlatformIO Icon -> Project Tasks -> Platform -> Run Menoconfig。配置完成后按ESC键退出,保存更改的设置: - Example configuration:配置 WiFi SSIDWiFi 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 statusActive,下载所有证书和密钥,尤其要保存 Device certificatePrivate 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数据,可使用该客户端进行发布和订阅操作。

注意事项

  1. 需正确配置AWS IoT MQTT服务器地址、端口、证书路径等参数。
  2. 确保设备的Wi-Fi连接正常,以便与AWS IoT服务器通信。
  3. 使用MQTT时,注意QoS级别和服务质量,满足不同数据传输需求。
  4. 开发过程中,可使用ESP-IDF提供的工具进行调试和日志输出,分析和优化程序。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】