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

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

开始使用 Epressif ESP32-S2

本教程介绍如何开始使用 Epressif ESP32-S2 SoC 和ESP32-s2-saola-1开发板。

概览

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

  1. 将主板连接到主机。

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

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

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

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

先决条件

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

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

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

  • AmazonFreeRTOSFullAccess— 允许对 IAM 用户的所有 FreeRTOS 资源 (freertos:*)。

  • AWSIoTFullAccess— 允许对所有 IAM 用户的完全访问Amazon 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 中的权限和策略.

开始使用 ESP-IDF v4.2

注意

本教程中的 Linux 命令需要您使用 Bash shell。

  1. 设置乐鑫硬件。

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

    重要

    当您到达开始使用在乐心指南的部分中,停止,然后执行以下步骤。

  2. 设置开发环境。

    要与您的主板进行通信,您必须下载并安装工具链。按照适用于您的主机操作系统的说明操作:

    重要

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

  3. 完成安装(Linux /macOS)。

    ESP-IDF Windows 安装程序安装所有必要的工具。Linux 和 mac OS X 平台需要额外的步骤才能完成安装。在您之后,请按以下步骤操作。下载并配置 FreeRTOS.

    1. 打开命令行窗口,导航到 FreeRTOS 下载目录,然后运行以下脚本为您的平台下载并安装 espressif 工具链。

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

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

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

    2. 按以下步骤操作使用 ESP32-S2 建立串行连接.

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

下载并配置 FreeRTOS

设置环境后,您可以从以下任一项下载 FreeRTOS

  • GitHub(有关说明,请参阅Readme.md文件。)

  • FreeRTOS 控制台(选择正确的配置硬件平台例如,与你的设备匹配”连接到Amazon IoT-ESP32s2-saola-1“。)

配置 FreeRTOS 演示应用程序

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

  2. 要验证您已安装 Python 3,请运行以下命令:

    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,请参阅安装AmazonCLI.

  4. Run(运行)

    aws configure

    然后配置Amazon用你的 CLIAmazon访问密钥 ID、私有访问密钥和默认Amazon区域。有关更多信息,请参阅 。配置AmazonCLI.

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

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

      easy_install boto3
    • 在 macOS 或 Linux 上,运行

      pip install tornado nose --user

      然后运行

      pip install boto3 --user

FreeRTOS 包括SetupAWS.py脚本,可以更轻松地设置您的 Esif 主板以连接到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事物。

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

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

    注意

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

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

在 Amazon 云上监控 MQTT 消息

在运行 FreeRTOS 演示项目之前,您可以在Amazon IoT控制台,可监控您的设备发送到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 演示项目

您可以使用 Esif 的 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” 应用程序)

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

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

    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.pyIDF SDK 提供的用于构建和运行代码的脚本,你也可以使用 CMake 构建项目。目前它支持 Unix Makefile 和忍者构建系统。

构建和刷写项目

  1. 在命令行窗口中,导航到 FreeRTOS 下载目录的根目录。

  2. 运行以下脚本将 ESP-IDF 工具添加到命令行管理程序的 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
    • 随着忍者

      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 -C ./YOUR_BUILD_DIRECTORY -j8
  5. 擦掉闪光灯,然后闪烁电路板。

    • 使用 Unix Makefiles

      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

其他信息

有关 Esif ESP32 主板的使用和故障排除其故障的更多信息,请参阅以下主题: