开始使用 Espressif ESP32-WROOM-32SE(预览版) - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

开始使用 Espressif ESP32-WROOM-32SE(预览版)

按照本教程的说明开始使用 Espressif ESP32-WROOM-32SE。仅在预览版中支持 ESP32-WROOM-32SE(带有 Microchip ATECC608A 安全元件),它不属于官方发布的 FreeRTOS。ESP32-WROOM-32SE 目前可供购买的可能性有限。请联系 sales@espressif.com 以获取主板。

注意

ESP32-WROOM-32SE 的 FreeRTOS 端口不支持以下功能:

  • 对称多处理 (SMP)

  • 在线配置向导 (OCW)

概览

该教程将指导您完成以下步骤:

  1. 将主板连接到主机。

  2. 在您的主机上安装软件,以开发和调试微控制器主板的嵌入式应用程序。

  3. 将 FreeRTOS 演示应用程序交叉编译为二进制映像。

  4. 将应用程序二进制映像加载到您的主板中,然后运行该应用程序。

  5. 使用串行连接监控和调试正在运行的应用程序。

先决条件

在 Espressif 主板上开始使用 FreeRTOS 之前,您需要设置您的 AWS 账户和权限。

要创建 AWS 账户,请参阅创建和激活 AWS 账户

要将 IAM 用户添加到您的 AWS 账户,请参阅 IAM 用户指南 中的添加用户。要向您的 IAM 用户授予 AWS IoT 和 FreeRTOS 的权限,请将以下 IAM 托管策略附加到您的 IAM 用户:

  • AmazonFreeRTOSFullAccess

    允许对 IAM 用户的所有 FreeRTOS 资源 (freertos:*) 进行完全访问。

  • AWSIoTFullAccess

    允许对 IAM 用户的所有 IoT 资源 (iot:*) 进行完全访问。

AmazonFreeRTOSFullAccess 策略附加到您的 IAM 用户

  1. 导航到 IAM 控制台

  2. 在导航窗格中,选择 Users (用户)

  3. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  4. 选择 Add permissions

  5. 选择直接附加现有策略

  6. 在搜索框中,输入 AmazonFreeRTOSFullAccess,从列表中选择,然后选择下一步: 审核

  7. 选择 Add permissions

将 AWSIoTFullAccess 策略附加到您的 IAM 用户

  1. 导航到 IAM 控制台

  2. 在导航窗格中,选择 Users (用户)

  3. 在搜索文本框中输入您的用户名,然后从列表中选择该名称。

  4. 选择 Add permissions

  5. 选择直接附加现有策略

  6. 在搜索框中,输入 AWSIoTFullAccess,从列表中选择,然后选择下一步: 审核

  7. 选择 Add permissions

有关 IAM 的更多信息,请参阅 IAM 用户指南

有关策略的更多信息,请参阅 IAM 权限和策略

设置 Espressif 硬件

有关设置 ESP32-WROOM-32SE 开发主板硬件的信息,请参阅 ESP32-DevKitC 入门指南

注意

请勿按照 Espressif 指南的入门部分进行操作。改为按以下步骤操作。

设置开发环境

要与您的主板进行通信,您需要下载并安装工具链。

设置工具链

要设置工具链,请按照适用于您的主机操作系统的说明操作:

重要

当您到达 Next Steps (后续步骤) 下的“Get ESP-IDF”说明时,停止并返回到此页面上的说明。

请确保已从系统中清除 IDF_PATH 环境变量,然后再继续操作。如果您已按照 Next Steps (后续步骤) 下的“Get ESP-IDF (获取 ESP-IDF)”说明执行操作,则会自动设置此环境变量。

注意

3.3 版的 ESP-IDF(FreeRTOS 所使用的版本)不支持最新版本的 ESP32 计算机。您必须使用与 3.3 版的 ESP-IDF 兼容的编译器。请参阅前面的链接。要检查编译器版本,请运行以下命令。

xtensa-esp32-elf-gcc --version

安装 CMake

需要 CMake 生成系统来为此设备生成 FreeRTOS 演示和测试应用程序。FreeRTOS 支持版本 3.13 及更高版本。

您可以从 CMake.org 下载最新版本的 CMake。提供源代码和二进制分发。

有关将 CMake 与 FreeRTOS 结合使用的详细信息,请参阅将 CMake 与 FreeRTOS 结合使用

建立串行连接

  1. 要在您的主机和 ESP32-WROOM-32SE 之间建立串行连接,请安装 CP210x USB to UART Bridge VCP 驱动程序。您可以从 Silicon Labs 下载这些驱动程序。

  2. 按照建立与 ESP32 的串行连接中的步骤操作。

  3. 建立串行连接后,记下主板连接的串行端口。在构建演示时需要用到它。

下载并配置 FreeRTOS

设置您的环境后,您可以从 GitHub 下载 FreeRTOS。有关说明,请参阅 README.md 文件。ESP32-WROOM32-SE 的代码只能在 GitHub 上的开发分支 feature/esp32-wroom-32se 上提供。

重要

ATECC608A 设备具有一次性初始化功能,该功能在首次运行项目时(在调用 C_InitToken 期间)被锁定到设备上。但是,FreeRTOS 演示项目和测试项目的配置不同。如果设备在演示项目配置期间被锁定,则并非测试项目中的所有测试都会成功。

  1. 按照 配置 FreeRTOS 演示 中的步骤配置 FreeRTOS 演示项目。跳过最后一步格式化您的 AWS IoT 凭证,然后改为执行以下步骤。

  2. Microchip 提供了多种脚本工具来帮助设置 ATECC608A 部件。导航到 freertos/vendors/microchip/secure_elements/app/example_trust_chain_tool 目录并打开 README.md 文件。

    请按照 README.md 文件中的说明预置您的设备。这些步骤包括:

    1. 创建证书颁发机构并将其注册到 AWS。

    2. 在 ATECC608A 上生成您的密钥,并导出公有密钥和设备序列号。

    3. 为设备生成证书并将该证书注册到 AWS。

  3. 按照 开发人员模式密钥预置 的说明,将 CA 证书和设备证书加载到设备上。

构建、刷写和运行 FreeRTOS 演示项目

您可以使用 CMake 生成构建文件,使用 Make 构建应用程序二进制文件,使用 Espressif 的 IDF 实用程序刷写主板。

在 Linux 或 macOS 上构建 FreeRTOS

如果您使用的是 Windows,则可以跳至 在 Windows 上构建 FreeRTOS

使用 CMake 生成构建文件,然后使用 Make 构建应用程序。

使用 CMake 生成演示应用程序的构建文件

  1. 导航到 FreeRTOS 下载目录的根目录。

  2. 在命令行窗口中,输入以下命令以生成构建文件。

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B your-build-directory
    注意

    要构建用于调试的应用程序,请添加 -DCMAKE_BUILD_TYPE=Debug 标志。

    要生成测试应用程序构建文件,请添加 -DAFR_ENABLE_TESTS=1 标志。

    Espressif 提供的代码使用轻型 IP (lwIP) 堆栈作为默认网络堆栈。要改用 FreeRTOS+TCP 网络堆栈,请将 –DAFR_ESP_FREERTOS_TCP 标记添加到 CMake 命令。

    要为非供应商提供的代码添加 lwIP 依赖项,请将以下行添加到您的自定义 WiFi 组件的 CMake 依赖性文件 CMakeLists.txt 中。

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)

使用 Make 构建应用程序

  1. 导航到 build 目录。

  2. 在命令行窗口中,输入以下命令以通过 Make 构建应用程序。

    make all -j4
    注意

    每当您在 aws_demos 项目和 aws_tests 项目之间切换时,都必须使用 cmake 命令构建生成文件。

在 Windows 上构建 FreeRTOS

在 Windows 上,必须为 CMake 指定构建生成器。否则,CMake 默认为 Visual Studio。Espressif 正式推荐使用 Ninja 构建系统,因为它适用于 Windows、Linux 和 MacOS。您必须在本机 Windows 环境(如 cmd 或 PowerShell)中运行 CMake 命令。不支持在虚拟 Linux 环境(如 MSYS2 或 WSL)中运行 CMake 命令。

使用 CMake 生成构建文件,然后使用 Make 构建应用程序。

使用 CMake 生成演示应用程序的构建文件

  1. 导航到 FreeRTOS 下载目录的根目录。

  2. 在命令行窗口中,输入以下命令以生成构建文件。

    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -GNinja -S . -B your-build-directory
    注意

    要构建用于调试的应用程序,请添加 -DCMAKE_BUILD_TYPE=Debug 标志。

    要生成测试应用程序构建文件,请添加 -DAFR_ENABLE_TESTS=1 标志。

    Espressif 提供的代码使用轻型 IP (lwIP) 堆栈作为默认网络堆栈。要改用 FreeRTOS+TCP 网络堆栈,请将 –DAFR_ESP_FREERTOS_TCP 标记添加到 CMake 命令。

    要为非供应商提供的代码添加 lwIP 依赖项,请将以下行添加到您的自定义 WiFi 组件的 CMake 依赖性文件 CMakeLists.txt 中。

    # Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)

构建应用程序

  1. 导航到 build 目录。

  2. 在命令行窗口中,输入以下命令以调用 Ninja 来构建应用程序。

    ninja

    或者,使用通用 CMake 接口来构建应用程序。

    cmake --build your-build-directory
    注意

    每当您在 aws_demos 项目和 aws_tests 项目之间切换时,都必须使用 cmake 命令构建生成文件。

刷写并运行 FreeRTOS

使用 Espressif 的 IDF 实用程序 (freertos/vendors/espressif/esp-idf/tools/idf.py) 刷写您的主板、运行应用程序并查看日志。

要擦除主板的闪存,请导航到 freertos 目录并输入以下命令。

./vendors/espressif/esp-idf/tools/idf.py erase_flash -B build-directory

要将应用程序二进制文件刷写到您的主板,请使用 make

make flash

您也可以使用 IDF 脚本以刷写主板。

./vendors/espressif/esp-idf/tools/idf.py flash -B build-directory

如需监控,请使用以下命令:

./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B build-directory
提示

您也可以组合使用这些命令。

./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B build-directory

在 AWS 云上监控 MQTT 消息

您可以使用 AWS IoT 控制台中的 MQTT 客户端监控您的设备发送到 AWS 云的消息。

使用 AWS IoT MQTT 客户端订阅 MQTT 主题

  1. 登录 AWS IoT 控制台

  2. 在导航窗格中,选择测试以打开 MQTT 客户端。

  3. Subscription topic (订阅主题)中,输入 iotdemo/#,然后选择 Subscribe to topic (订阅主题)