本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
乐新 ESP32-S2 入门
此参考集成托管在 Amazon-FreeRTOS 存储库中,该存储库已过时。建议您在创建新项目时从这里开始。如果您已经有一个基于现已弃用的 Amazon-FreeRTOS 存储库的 FreeRTOS 项目,请参阅亚马逊 FreeRTOS Github 存储库迁移指南。
要了解如何将 FreeRTOS 模块化库和演示集成到您自己的 Espressif IDF 项目中,请参阅我们的 ESP32-C3 平台精选参考集成
本教程向你展示了如何开始使用 Espressif ESP32-S2 SoC 和 esp32-s2-Saola-1
概览
该教程将指导您完成以下步骤:
-
将主板连接到主机。
-
在您的主机上安装软件,以开发和调试微控制器主板的嵌入式应用程序。
-
将 FreeRTOS 演示应用程序交叉编译为二进制映像。
-
将应用程序二进制映像加载到您的主板中,然后运行该应用程序。
-
使用串行连接监控和调试正在运行的应用程序。
先决条件
在你开始在乐鑫开发板上使用 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 用户
-
导航到 IAM 控制台
。 -
在导航窗格中,选择 Users(用户)。
-
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions(添加权限)。
-
选择 Attach existing policies directly(直接附上现有策略)。
-
在搜索框中,输入
AmazonFreeRTOSFullAccess
,从列表中选择,然后选择下一步: 审核。 -
选择 Add permissions(添加权限)。
将AWSIoTFullAccess
策略挂载到您的 IAM 用户
-
导航到 IAM 控制台
。 -
在导航窗格中,选择 Users(用户)。
-
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions(添加权限)。
-
选择 Attach existing policies directly(直接附上现有策略)。
-
在搜索框中,输入
AWSIoTFullAccess
,从列表中选择,然后选择下一步: 审核。 -
选择 Add permissions(添加权限)。
有关 IAM 的更多信息,请参阅 IAM 用户指南。
有关策略的更多信息,请参阅 IAM 中的权限和策略。
开始使用
本教程中的 Linux 命令要求你使用 Bash 外壳。
-
设置乐鑫硬件。
有关设置 ESP32-S2 开发板硬件的信息,请参阅 esp32-s2-Saola-1 入门指南
。 重要 当您到达 Espressif 指南的 “入门” 部分时,停下来,然后返回本页上的说明。
-
设置您的开发环境。
要与您的开发板通信,您必须安装工具链。乐鑫提供 ESP-IDF 来为他们的开发板开发软件。由于 ESP-IDF 有自己的集成版本的 FreeRTOS 内核作为组件,Amazon FreeRTOS 包含删除了 FreeRTOS 内核的 ESP-IDF v4.2 的自定义版本。这修复了编译时出现的重复文件问题。要使用Amazon FreeRTOS 附带的 ESP-IDF v4.2 的自定义版本,请按照以下主机操作系统的说明进行操作。
Windows
-
下载适用于 Windows 的 ESP-IDF 通用在线安装程序
。 -
运行通用在线安装程序。
-
当你进入下载或使用 ESP-IDF 步骤时,选择使用现有 ESP-IDF 目录并将选择现有 ESP-IDF 目录设置为
。freertos
/vendors/espressif/esp-idf -
完成安装。
macOS
-
按照 macOS 工具链先决条件标准设置(ESP-IDF v4.2)中的说明进行
操作。 重要 当你看到 “后续步骤” 下的 “获取 ESP-IDF” 说明时,停下来,然后返回此页面上的说明。
-
打开一个命令行窗口。
-
导航到 FreeRTOS 下载目录,然后运行以下脚本下载并安装适用于您的平台的 espressif 工具链。
vendors/espressif/esp-idf/install.sh
-
使用以下命令将 ESP-IDF 工具链工具添加到您的终端路径中。
source vendors/espressif/esp-idf/export.sh
Linux
-
按照 Linux 工具链先决条件标准设置(ESP-IDF v4.2)中的说明进行
操作。 重要 当你看到 “后续步骤” 下的 “获取 ESP-IDF” 说明时,停下来,然后返回此页面上的说明。
-
打开一个命令行窗口。
-
导航到 FreeRTOS 下载目录,然后运行以下脚本下载并安装适用于您的平台的 Espressif 工具链。
vendors/espressif/esp-idf/install.sh
-
使用以下命令将 ESP-IDF 工具链工具添加到您的终端路径中。
source vendors/espressif/esp-idf/export.sh
-
-
建立串行连接。
-
要在主机和 ESP32-DevKit C 之间建立串行连接,请安装 cp210x USB 转 UART Bridge VCP 驱动程序。您可以从 Silicon Labs
下载这些驱动程序。 -
按照建立与 ESP32 的串行连接
中的步骤操作。 -
建立串行连接后,记下主板连接的串行端口。你需要它来刷新演示。
-
配置 FreeRTOS 演示应用程序
在本教程中,FreeRTOS 配置文件位于
。(例如,如果选择freertos
/vendors/espressif/boards/board-name
/aws_demos/config_files/FreeRTOSConfig.hAFR_BOARD espressif.esp32_devkitc
了,则配置文件位于
。) freertos
/vendors/espressif/boards/esp32/aws_demos/config_files/FreeRTOSConfig.h
-
如果你运行的是 macOS 或 Linux,请打开终端提示符。如果你运行的是 Windows,请打开 “ESP-IDF 4.x CMD” 应用程序(如果你在安装 ESP-IDF 工具链时包含了这个选项),否则打开 “命令提示符” 应用程序。
-
要验证您是否已安装 Python3,请运行以下命令:
python --version
此时显示已安装的版本。如果你没有安装 Python 3.0.1 或更高版本,你可以从 Python
网站进行安装。 -
您需要使用Amazon Commmmmmmand Interface (CLInterfAmazon IoT ace (C 如果你运行的是 Windows,请使用
easy_install awscli
Amazon命令在 “Command” 或 “ESP-IDF 4.x CMD” 应用程序中安装 CLI。如果你运行的是 macOS 或 Linux,请参阅安装Amazon CLI。
-
Run(运行)
aws configure
并使用您的Amazon访问密钥 ID、私有访问密钥和默认Amazon区域配置Amazon CLine。有关更多信息,请参阅配置Amazon CLine。
-
使用以下命令安装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。
运行配置脚本
-
要配置此脚本,请打开
并设置以下属性:freertos
/tools/aws_config_quick_start/configure.jsonafr_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 安全性)
-
-
如果你运行的是 macOS 或 Linux,请打开终端提示符。如果你运行的是 Windows,请打开 “ESP-IDF 4.x CMD” 或 “Command” 应用程序。
-
导航到该
目录并运行freertos
/tools/aws_config_quick_startpython 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_startREADME.md
中的。 -
在 Amazon 云上监控 MQTT 消息
在运行 FreeRTOS 演示项目之前,可以在Amazon IoT控制台中设置 MQTT 客户端以监控您的设备发送到Amazon云端的消息。
使用 Amazon IoT MQTT 客户端订阅 MQTT 主题
-
登录到 Amazon IoT 控制台
。 -
在导航窗格中,选择 “测试”,然后选择 “MQTT 测试客户端”。
-
在 Subscription topic (订阅主题)中,输入
,然后选择 Subscribe to topic (订阅主题)。your-thing-name
/example/topic
当演示项目在您的设备上成功运行时,您会看到 “Hello World!” 多次向您订阅的主题发送。
使用 idf.py 脚本构建、刷新和运行 FreeRTOS 演示项目
您可以使用 Espressif 的 IDF 实用程序生成编译文件、构建应用程序二进制文件并刷新开发板。
在 Windows、Linux 和 macOS 上构建和刷新 FreeRTOS (ESP-IDF v4.2)
使用idf.py
脚本生成项目并将二进制文件刷新到您的设备上。
某些设置可能需要您使用端口选项-p port-name
idf.py
来指定正确的端口,如以下示例所示。
idf.py -p /dev/cu.usbserial-00101301B flash
生成和刷新项目
-
导航到 FreeRTOS 下载目录的根目录。
-
在命令行窗口中,输入以下命令将 ESP-IDF 工具添加到终端的 PATH:
- Windows(“命令” 应用程序)
-
vendors\espressif\esp-idf\export.bat
- Windows(“ESP-IDF 4.x CMD” 应用程序)
-
(当你打开应用程序时,这已经完成了。)
- Linuuuuux/
-
source vendors/espressif/esp-idf/export.sh
-
在
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 文件。
-
使用以下命令清除开发板的闪存。
idf.py erase_flash
-
使用该
idf.py
脚本将应用程序二进制文件刷新到您的开发板上。idf.py flash
-
使用以下命令监控主板串行端口的输出内容。
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 编译系统。
生成和刷新项目
-
在命令行窗口中,导航到 FreeRTOS 下载目录的根目录。
-
运行以下脚本将 ESP-IDF 工具添加到外壳的 PATH 中。
-
Windows
vendors\espressif\esp-idf\export.bat
-
Linuuuuux/
source vendors/espressif/esp-idf/export.sh
-
-
输入以下命令以生成生成文件。
-
使用 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
-
-
构建 项目。
-
使用 Unix 生成文件
make -C ./
YOUR_BUILD_DIRECTORY
-j8 -
和忍者在一起
ninja -C ./
YOUR_BUILD_DIRECTORY
-j8
-
-
擦除闪光灯,然后刷新电路板。
-
使用 Unix 生成文件
make -C ./
YOUR_BUILD_DIRECTORY
erase_flashmake -C ./
YOUR_BUILD_DIRECTORY
flash -
和忍者在一起
ninja -C ./
YOUR_BUILD_DIRECTORY
erase_flashninja -C ./
YOUR_BUILD_DIRECTORY
flash
-
其他信息
有关 Espresif ESP32 主板的更多信息,请参见以下主题: