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

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

Espressif ESP32-S2 入门

重要

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

注意

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

本教程介绍如何开始使用 乐新 Espressif ESP32-S2 SoC 和 ESP32-S2-Saola-1 开发主板。

概述

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

  1. 将主板连接到主机。

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

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

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

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

先决条件

在开始在乐鑫看板上使用 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-S2 开发主板硬件的信息,请参阅 ESP32-S2-Saola-1 入门指南

    重要

    当您阅读到 Espressif 手册的入门 部分时,请暂停并返回到此页面上的说明部分。

  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-DevKit C 之间建立串行连接,请安装 CP210x USB 到 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。)

  1. 如果您运行的是 macOS 或 Linux,请打开终端提示符。如果您运行的是 Windows,请打开“ESP-IDF 4.x CMD”应用程序(如果您在安装 ESP-IDF 工具链时包含了此选项),否则打开“命令提示符”应用程序。

  2. 要验证您是否已安装 Python3,请运行以下命令:

    python --version

    此时显示已安装的版本。如果您未安装 Python 3.0.1 或更高版本,可以从 Python 网站进行安装。

  3. 您需要 Amazon 命令行界面 (CLI) 才能运行 Amazon IoT 命令。如果你运行的是 Windows,请使用该easy_install awscli Amazon 命令在 “命令” 或 “ESP-IDF 4.x CMD” 应用程序中安装 CLI。

    如果你运行的是 macOS 或 Linux,请参阅安装 CLI Amazon

  4. 运行

    aws configure

    并使用您的 Amazon 访问密钥 ID、私有访问密钥和默认 Amazon 区域配置 Amazon CLI。有关更多信息,请参阅配置 Amazon CLI

  5. 使用以下命令安装适用于 Python 的 Amazon 开发工具包 (boto3):

    • 在 Windows 上,在“命令”或“ESP-IDF 4.x CMD”应用程序中,运行

      easy_install boto3
    • 在 macOS 或 Linux 上,运行

      pip install tornado nose --user

      然后运行

      pip install boto3 --user

FreeRTOS 包含 SetupAWS.py 脚本,可以更轻松地设置您的 Espressif 主板以连接到 Amazon IoT。

运行配置脚本
  1. 要配置此脚本,请打开 freertos/tools/aws_config_quick_start/configure.json 并设置以下属性:

    afr_source_dir

    计算机上的 freertos 目录的完整路径。确保您使用正斜杠来指定此路径。

    thing_name

    您要为代表您的看板 Amazon IoT 的事物分配的名称。

    wifi_ssid

    Wi-Fi 网络的 SSID。

    wifi_password

    Wi-Fi 网络的密码。

    wifi_security

    Wi-Fi 网络的安全类型。下面是有效的安全类型:

    • eWiFiSecurityOpen(开放,不安全)

    • eWiFiSecurityWEP(WEP 安全性)

    • eWiFiSecurityWPA(WPA 安全性)

    • eWiFiSecurityWPA2(WPA2 安全性)

  2. 如果您运行的是 macOS 或 Linux,请打开终端提示符。如果您运行的是 Windows,请打开“ESP-IDF 4.x CMD”或“命令”应用程序。

  3. 导航到 freertos/tools/aws_config_quick_start 目录运行

    python SetupAWS.py setup

    脚本执行以下操作:

    • 创建 Amazon IoT 事物、证书和策略。

    • 将 Amazon IoT 策略附加到证书,将证书附加到 Amazon IoT 事物。

    • 使用您的 Amazon IoT 终端节点、Wi-Fi SSID 和凭证填充 aws_clientcredential.h 文件

    • 设置您的证书和私有密钥格式,然后将其写入 aws_clientcredential_keys.h 标头文件

    注意

    出于演示目的,对该证书进行了硬编码。生产级应用程序应将这些文件存储在安全位置。

    有关 SetupAWS.py 的更多信息,请参阅 freertos/tools/aws_config_quick_start 目录中的 README.md 文件。

监控云端上的 MQTT 消息 Amazon

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

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

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

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

当演示项目在您的设备上成功运行时,您会多次看到“Hello World!” 发送到您订阅的主题。

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

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

在 Windows、Linux 和 macOS 上构建和刷写 FreeRTOS (ESP-IDF v4.2)

使用 idf.py 脚本构建项目并将二进制文件刷写到设备上。

注意

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

idf.py -p /dev/cu.usbserial-00101301B flash
构建和刷写项目
  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=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 build

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

    Executing action: all (aliases: build) Running cmake in directory /path/to/hello_world/build Executing "cmake -G Ninja -DPYTHON_DEPS_CHECKED=1 -DESP_PLATFORM=1 -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -DCCACHE_ENABLE=0 /path/to/hello_world"... -- The C compiler identification is GNU 8.4.0 -- The CXX compiler identification is GNU 8.4.0 -- The ASM compiler identification is GNU ... (more lines of build system output) [1628/1628] Generating binary image from built executable esptool.py v3.0 Generated /path/to/hello_world/build/aws_demos.bin Project build complete. To flash, run this command: esptool.py -p (PORT) -b 460800 --before default_reset --after hard_reset --chip esp32s2 write_flash --flash_mode dio --flash_size detect --flash_freq 80m 0x1000 build/bootloader/bootloader.bin 0x8000 build/partition_table/partition-table.bin 0x16000 build/ota_data_initial.bin 0x20000 build/aws_demos.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=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
    • 对于 Ninja

      cmake -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja
  4. 构建 项目。

    • 对于 Unix Makefiles

      make -C ./YOUR_BUILD_DIRECTORY -j8
    • 对于 Ninja

      ninja -C ./YOUR_BUILD_DIRECTORY -j8
  5. 擦除闪存,然后刷写主板。

    • 对于 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 主板的更多信息,请参阅以下主题: