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

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

乐新 ESP32-S2 入门

重要

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

注意

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

本教程向你展示了如何开始使用 Espressif ESP32-S2 SoC 和 esp32-s2-Saola-1 开发板。

概览

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

  1. 将主板连接到主机。

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

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

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

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

先决条件

在你开始在乐鑫开发板上使用 FreeRTOS 之前,你必须设置Amazon账户和权限。

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

要向您的账户添加Amazon Identity and Access Management (IAM) 用户,请参阅 IAM 用户指南中的添加用户。要授予您的 IAM 用户访问Amazon IoT和 FreeRTOS 的权限,请将以下 IAM 托管策略附加到您的 IAM 用户:

  • AmazonFreeRTOSFullAccess— 允许完全访问您的 IAM 用户的所有 FreeRTOS 资源 (freertos:*)。

  • AWSIoTFullAccess— 允许完全访问您的 IAM 用户的所有 IAMAmazon IoT 资源 (iot:*)。

AmazonFreeRTOSFullAccess策略挂载到您的 IAM 用户
  1. 导航到 IAM 控制台

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

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

  4. 选择 Add permissions(添加权限)。

  5. 选择 Attach existing policies directly(直接附上现有策略)。

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

  7. 选择 Add permissions(添加权限)。

AWSIoTFullAccess策略挂载到您的 IAM 用户
  1. 导航到 IAM 控制台

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

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

  4. 选择 Add permissions(添加权限)。

  5. 选择 Attach existing policies directly(直接附上现有策略)。

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

  7. 选择 Add permissions(添加权限)。

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

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

开始使用

注意

本教程中的 Linux 命令要求你使用 Bash 外壳。

  1. 设置乐鑫硬件。

    有关设置 ESP32-S2 开发板硬件的信息,请参阅 esp32-s2-Saola-1 入门指南

    重要

    当您到达 Espressif 指南的 “入门” 部分时,停下来,然后返回本页上的说明。

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

  3. 设置您的开发环境

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

    Windows

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

    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 Commmmmmmand Interface (CLInterfAmazon IoT ace (C 如果你运行的是 Windows,请使用easy_install awscliAmazon命令在 “Command” 或 “ESP-IDF 4.x CMD” 应用程序中安装 CLI。

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

  4. Run(运行)

    aws configure

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

  5. 使用以下命令安装Amazon适用于 Python (bot3):

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

      easy_install boto3
    • 在 macOS 或 Linuuuuux

      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” 或 “Command” 应用程序。

  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中的。

在 Amazon 云上监控 MQTT 消息

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

使用 Amazon IoT MQTT 客户端订阅 MQTT 主题
  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脚本生成项目并将二进制文件刷新到您的设备上。

注意

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

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” 应用程序)

    (当你打开应用程序时,这已经完成了。)

    Linuuuuux/
    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 SDK 提供的idf.py脚本来构建和运行您的代码外,您还可以使用 CMake 构建项目。目前它支持 Unix Makefile 和 Ninja 编译系统。

生成和刷新项目
  1. 在命令行窗口中,导航到 FreeRTOS 下载目录的根目录。

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

    • Windows

      vendors\espressif\esp-idf\export.bat
    • Linuuuuux/

      source vendors/espressif/esp-idf/export.sh
  3. 输入以下命令以生成生成文件。

    • 使用 Unix 生成文件

      cmake -DVENDOR=espressif -DBOARD=esp32s2_saola_1 -DCOMPILER=xtensa-esp32s2 -S . -B ./YOUR_BUILD_DIRECTORY -DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0
    • 和忍者在一起

      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 生成文件

      make -C ./YOUR_BUILD_DIRECTORY -j8
    • 和忍者在一起

      ninja -C ./YOUR_BUILD_DIRECTORY -j8
  5. 擦除闪光灯,然后刷新电路板。

    • 使用 Unix 生成文件

      make -C ./YOUR_BUILD_DIRECTORY erase_flash
      make -C ./YOUR_BUILD_DIRECTORY flash
    • 和忍者在一起

      ninja -C ./YOUR_BUILD_DIRECTORY erase_flash
      ninja -C ./YOUR_BUILD_DIRECTORY flash

其他信息

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