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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

开始使用 Espressif ESP32-WROOM-32SE

重要

该参考集成托管在已弃用的 Amazon-FreeRTOS 存储库中。当您创建新项目时,我们建议从此处开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅 Amazon-FreeRTOS Github 存储库迁移指南

注意
  • 要探索如何将 FreeRTOS 模块化库和演示集成到您自己的 Espressif IDF 项目中,请参阅我们适用于 ESP32-C3 平台的精选参考集成

  • 目前,ESP32-WROOM-32SE 的 FreeRTOS 移植不支持对称多处理 (SMP) 功能。

本教程介绍如何开始使用 Espressif ESP32-WROOM-32SE。要在 Amazon 合作伙伴设备目录中从我们的合作伙伴购买一个,请参阅 ESP32-WROOM-32SE

概述

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

  1. 将主板连接到主机。

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

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

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

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

先决条件

在 Espressif 主板上开始使用 FreeRTOS 之前,您必须设置 Amazon 账户和权限。

注册 Amazon Web Services 账户

如果您还没有 Amazon Web Services 账户,请完成以下步骤来创建一个。

注册 Amazon Web Services 账户
  1. 打开 https://portal.aws.amazon.com/billing/signup

  2. 按照屏幕上的说明进行操作。

    在注册时,将接到一通电话,要求使用电话键盘输入一个验证码。

    当您注册 Amazon Web Services 账户时,系统将会创建一个 Amazon Web Services 账户根用户。根用户有权访问该账户中的所有 Amazon Web Services 和资源。作为安全最佳实践,请为管理用户分配管理访问权限,并且只使用根用户执行需要根用户访问权限的任务

注册过程完成后,Amazon 会向您发送一封确认电子邮件。在任何时候,您都可以通过转至 https://aws.amazon.com/ 并选择我的账户来查看当前的账户活动并管理您的账户。

保护 IAM 用户

注册 Amazon Web Services 账户 后,启用多重身份验证 (MFA) 保护您的管理用户。有关说明,请参阅《IAM 用户指南》中的为 IAM 用户启用虚拟 MFA 设备(控制台)

要授予其他用户访问您的 Amazon Web Services 账户资源的权限,请创建 IAM 用户。为了保护您的 IAM 用户,请启用 MFA 并仅向 IAM 用户授予执行任务所需的权限。

有关创建和保护 IAM 用户的更多信息,请参阅《IAM 用户指南》中的以下主题:

要提供访问权限,请为您的用户、组或角色添加权限:

开始使用

注意

本教程中的 Linux 命令要求您使用 Bash Shell。

  1. 设置 Espressif 硬件。

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

    重要

    在该指南的分步安装部分,请按照步骤进行操作,直到完成步骤 4(设置环境变量)。完成步骤 4 后,请暂停,然后按照此处的其余步骤进行操作。

  2. 从以下网址下载亚马逊 FreeRTOS。GitHub(有关说明,请参阅 README.md 文件。)

  3. 设置开发环境

    要与您的主板通信,必须安装工具链。Espressif 提供了 ESP-IDF 来为主板开发软件。由于 ESP-IDF 将其 FreeRTOS 内核版本集成为组件,因此,Amazon FreeRTOS 包含删除了 FreeRTOS 内核的 ESP-IDF v4.2 自定义版本。这修复了编译时重复文件的问题。要使用 Amazon FreeRTOS 附带的 ESP-IDF v4.2 的自定义版本,请按照以下主机操作系统的说明进行操作。

    Windows

    1. 下载 ESP-IDF 的 Windows 版通用在线安装程序

    2. 运行通用在线安装程序

    3. 下载或使用 ESP-IDF步骤,请选择使用现有 ESP-IDF 目录并将选择现有 ESP-IDF 目录设置为 freertos/vendors/espressif/esp-idf

    4. 完成安装。

    macOS

    1. 按照适用于 macOS 的工具链标准设置先决条件 (ESP-IDF v4.2) 中的说明进行操作。

      重要

      后续步骤下的“获取 ESP-IDF”说明部分,请暂停并返回到此页面上的说明。

    2. 打开一个命令行窗口。

    3. 转到 FreeRTOS 下载目录,然后运行以下脚本来下载并安装适用于您平台的 espressif 工具链。

      vendors/espressif/esp-idf/install.sh
    4. 使用以下命令以将 ESP-IDF 工具链工具添加到终端路径中。

      source vendors/espressif/esp-idf/export.sh

    Linux

    1. 按照适用于 Linux 的工具链标准设置先决条件 (ESP-IDF v4.2) 中的说明进行操作。

      重要

      后续步骤下的“获取 ESP-IDF”说明部分,请暂停并返回到此页面上的说明。

    2. 打开一个命令行窗口。

    3. 转到 FreeRTOS 下载目录,然后运行以下脚本来下载并安装适用于您平台的 Espressif 工具链。

      vendors/espressif/esp-idf/install.sh
    4. 使用以下命令以将 ESP-IDF 工具链工具添加到终端路径中。

      source vendors/espressif/esp-idf/export.sh
  4. 建立串行连接。

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

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

    3. 建立串行连接后,记下主板连接的串行端口。您需要它来刷写演示。

配置 FreeRTOS 演示应用程序

在本教程中,FreeRTOS 配置文件位于以下文件中:freertos/vendors/espressif/boards/board-name/aws_demos/config_files/FreeRTOSConfig.h。(例如,如果选择 AFR_BOARD espressif.esp32_devkitc,则配置文件位于以下文件中:freertos/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h。)

重要

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

  1. 按照配置 FreeRTOS 演示中的步骤配置 FreeRTOS 演示项目。在对 Amazon IoT 凭证进行格式化的最后一步,请暂停并执行以下步骤。

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

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

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

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

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

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

在 Amazon 云上监控 MQTT 消息

在运行 FreeRTOS 演示项目之前,您可以在 Amazon IoT 控制台中设置 MQTT 客户端来监控您的设备发送到 Amazon 云的消息。

使用 Amazon IoT MQTT 客户端订阅 MQTT 主题
  1. 登录 Amazon IoT 控制台

  2. 在导航窗格中,选择测试,然后选择 MQTT 测试客户端

  3. 订阅主题中,输入 your-thing-name/example/topic,然后选择订阅主题

使用 idf.py 脚本构建、刷写和运行 FreeRTOS 演示项目

您可以使用 Espressif 的 IDF (idf.py) 生成构建文件,构建应用程序二进制文件,将二进制文件刷写到设备。

注意

某些设置可能需要您使用在 idf.py 中使用端口选项“-p port-name”来指定正确的端口,如以下示例所示。

idf.py -p /dev/cu.usbserial-00101301B flash
在 Windows、Linux 和 macOS 上构建和刷写 FreeRTOS (ESP-IDF v4.2)
  1. 转到 FreeRTOS 下载目录的根目录。

  2. 在命令行窗口中输入以下命令以将 ESP-IDF 工具添加到终端 PATH 中:

    Windows(“命令”应用程序)
    vendors\espressif\esp-idf\export.bat
    Windows(“ESP-IDF 4.x CMD”应用程序)

    (打开应用程序时就已经完成此操作。)

    Linux / macOS
    source vendors/espressif/esp-idf/export.sh
  3. build 目录中配置 cmake 并使用以下命令构建固件映像。

    idf.py -DVENDOR=espressif -DBOARD=esp32_ecc608a_devkitc -DCOMPILER=xtensa-esp32 build

    您应该会看到以下示例的输出。

    Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja --warn-uninitialized /path/to/hello_world"... Warn about uninitialized values. -- Found Git: /usr/bin/git (found version "2.17.0") -- Building empty aws_iot component due to configuration -- Component names: ... -- Component paths: ... ... (more lines of build system output) [527/527] Generating hello-world.bin esptool.py v2.3.1 Project build complete. To flash, run this command: ../../../components/esptool_py/esptool/esptool.py -p (PORT) -b 921600 write_flash --flash_mode dio --flash_size detect --flash_freq 40m 0x10000 build/hello-world.bin build 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin or run 'idf.py -p PORT flash'

    如果没有错误,构建会生成固件二进制 .bin 文件。

  4. 使用以下命令擦除开发主板的闪存。

    idf.py erase_flash
  5. 使用 idf.py 脚本将应用程序二进制文件刷写到主板。

    idf.py flash
  6. 使用以下命令监控主板串行端口的输出。

    idf.py monitor
    注意
    • 您可以合并这些命令,如以下示例所示。

      idf.py erase_flash flash monitor
    • 对于某些主机设置,您必须在刷写主板时指定端口,如以下示例所示。

      idf.py erase_flash flash monitor -p /dev/ttyUSB1

使用 CMake 构建和刷写 FreeRTOS

除了使用 IDF 开发工具包提供的 idf.py 脚本来构建和运行代码外,您还可以使用 CMake 构建项目。目前,它支持 Unix Makefile 和 Ninja 构建系统。

构建和刷写项目
  1. 在命令行窗口中,转到 FreeRTOS 下载目录的根目录。

  2. 运行以下脚本,将 ESP-IDF 工具添加到 Shell 的 PATH 中。

    Windows
    vendors\espressif\esp-idf\export.bat
    Linux / macOS
    source vendors/espressif/esp-idf/export.sh
  3. 使用以下命令来生成构建文件。

    对于 Unix Makefiles
    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
    对于 Ninja
    cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
  4. 擦除闪存,然后刷写主板。

    对于 Unix Makefiles
    make -C ./YOUR_BUILD_DIRECTORY erase_flash
    make -C ./YOUR_BUILD_DIRECTORY flash
    对于 Ninja
    ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
    ninja -C ./YOUR_BUILD_DIRECTORY flash

其他信息

有关 Espressif ESP32 主板的更多信息,请参阅以下主题: