本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Espressif ESP32-WROOM-32SE 入门
按照本教程开始使用 Espressif ESP32-WROOM-32SE。要从 AWS 合作伙伴设备目录上的合作伙伴处购买,请参阅 ESP32-WROOM-32SE
ESP32-WROOM-32SE 的 FreeRTOS 端口不支持对称多处理 (SMP)。
Overview
该教程将指导您完成以下步骤:
-
将主板连接到主机。
-
在您的主机上安装软件,以开发和调试微控制器主板的嵌入式应用程序。
-
将 FreeRTOS 演示应用程序交叉编译为二进制映像。
-
将应用程序二进制映像加载到您的主板中,然后运行该应用程序。
-
使用串行连接监控和调试正在运行的应用程序。
Prerequisites
在 Espressif 主板上开始使用 FreeRTOS 之前,您需要设置您的 AWS 账户和权限。
要创建 AWS 账户,请参阅创建和激活 AWS 账户
要将 IAM 用户添加到您的 AWS 账户,请参阅 https://docs.amazonaws.cn/IAM/latest/UserGuide/id_users_create.html 中的添加用户IAM 用户指南。要向您的 IAM 用户授予 AWS IoT 和 FreeRTOS 的权限,请将以下 IAM 托管策略附加到您的 IAM 用户:
-
AmazonFreeRTOSFullAccess
允许对 IAM 用户的所有 FreeRTOS 资源 (
freertos:*
) 进行完全访问。 -
AWSIoTFullAccess
允许对 IAM 用户的所有 IoT 资源 (
iot:*
) 进行完全访问。
将 AmazonFreeRTOSFullAccess
策略附加到您的 IAM 用户
-
导航到 IAM 控制台
. -
在导航窗格中,选择 Users (用户)
-
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions (添加权限).
-
选择直接附加现有策略.
-
在搜索框中,输入
AmazonFreeRTOSFullAccess
,从列表中选择,然后选择下一步: 审核. -
选择 Add permissions (添加权限).
将 AWSIoTFullAccess 策略附加到您的 IAM 用户
-
导航到 IAM 控制台
. -
在导航窗格中,选择 Users (用户).
-
在搜索文本框中输入您的用户名,然后从列表中选择该名称。
-
选择 Add permissions (添加权限).
-
选择直接附加现有策略.
-
在搜索框中,输入
AWSIoTFullAccess
,从列表中选择,然后选择下一步: 审核. -
选择 Add permissions (添加权限).
有关 IAM 的更多信息,请参阅 IAM 用户指南.
有关策略的更多信息,请参阅 IAM 权限和策略.
设置 Espressif 硬件
有关设置 ESP32-WROOM-32SE 开发主板硬件的信息,请参阅 ESP32-DevKitC 入门指南
当您到达 Espressif 指南 STOP 的 Get Started 部分时,请执行以下步骤。
设置开发环境
要与您的主板进行通信,您需要下载并安装工具链。
设置工具链
4.2 版的 ESP-IDF(FreeRTOS 所使用的版本)不支持最新版本的 ESP32 计算机。如果您已安装 ESP32 编译器,则可能需要卸载它并使用工具链安装中包含的编译器的兼容版本。请参阅此部分中的链接。如果要检查编译器的版本,请运行以下命令。
xtensa-esp32-elf-gcc --version
要设置工具链,请按照适用于您的主机操作系统的说明操作:
当您到达 Next Steps (后续步骤) 下的“Get ESP-IDF”说明时,停止并返回到此页面上的说明。
请确保已从系统中清除 IDF_PATH
环境变量,然后再继续操作。如果您已按照 Next Steps (后续步骤). 下的“Get ESP-IDF (获取 ESP-IDF)”说明执行操作,则会自动设置此环境变量。
安装CMake
构建系统是构建此设备的 CMake 演示和测试应用程序所必需的。FreeRTOS 支持版本 3.13 及更高版本。FreeRTOS
您可以从 CMake 下载最新版本的 CMake.org。
有关将 CMake 与 FreeRTOS 结合使用的更多详细信息,请参阅使用 CMake 配 FreeRTOS。
建立串行连接
-
要在您的主机和 ESP32-WROOM-32SE 之间建立串行连接,请安装 CP210x USB to UART Bridge VCP 驱动程序。您可以从 Silicon Labs
. 下载这些驱动程序。 -
按照建立与 ESP32 的串行连接
.中的步骤操作。 -
建立串行连接后,记下主板连接的串行端口。在构建演示时需要用到它。
下载并配置 FreeRTOS
设置环境后,您可以从 FreeRTOSGitHub
ATECC608A 设备具有一次性初始化功能,该功能在首次运行项目时(在调用 C_InitToken
期间)被锁定到设备上。但是,FreeRTOS 演示项目和测试项目的配置不同。如果设备在演示项目配置期间被锁定,则并非测试项目中的所有测试都会成功。
请确保已从系统中清除 IDF_PATH
环境变量,然后再继续操作。如果您已按照 Next Steps (后续步骤). 下的“Get ESP-IDF (获取 ESP-IDF)”说明执行操作,则会自动设置此环境变量。
-
按照 FreeRTOS 中的步骤配置 配置 FreeRTOS 演示. 演示项目。跳过最后一个步骤设置 AWS IoT 凭证格式并改为执行以下步骤。
-
Microchip 提供了多种脚本工具来帮助设置 ATECC608A 部件。导航到
目录并打开freertos
/vendors/microchip/secure_elements/app/example_trust_chain_toolREADME.md
文件。请按照
README.md
文件中的说明预置您的设备。这些步骤包括:-
创建证书颁发机构并将其注册到 AWS.
-
在 ATECC608A 上生成您的密钥,并导出公有密钥和设备序列号。
-
为设备生成证书并将该证书注册到 AWS.
-
-
按照 的说明,将 CA 证书和设备证书加载到设备上。开发人员模式密钥预置.
构建、刷写和运行 FreeRTOS 演示项目
您可以使用 Espressif 的 IDF 实用程序生成构建文件、构建应用程序二进制文件并刷写主板。
在 Linux 或 FreeRTOS 上构建MacOS
如果您使用的是 Windows,则可以跳至 在 Windows 上构建 FreeRTOS.
使用“idf.py”脚本构建项目并将二进制文件刷写到您的设备上。
构建项目
-
导航到 FreeRTOS 下载目录的根目录。
-
在命令行窗口中,输入以下命令以生成构建文件。
idf.py 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 文件。
在 Windows 上构建 FreeRTOS
在 Windows 上,您必须为 CMake 指定生成生成器。 否则,CMake 默认为 Visual Studio。Espressif 正式推荐使用 Ninja 生成系统,因为它适用于 Windows、Linux 和 MacOS。 您必须在本机 Windows 环境(如 cmd 或 CMake)中运行 PowerShell 命令。 不支持在虚拟 Linux 环境(如 MSYS2 或 WSL)中运行 CMake 命令。
使用 CMake 生成构建文件,然后使用 Make 构建应用程序。
使用 CMake 生成演示应用程序的构建文件
-
导航到 FreeRTOS 下载目录的根目录。
-
在命令行窗口中,输入以下命令以生成构建文件。
cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -GNinja -S . -B
your-build-directory
注意 要构建用于调试的应用程序,请添加
-DCMAKE_BUILD_TYPE=Debug
标志。要生成测试应用程序构建文件,请添加
-DAFR_ENABLE_TESTS=1
标志。Espressif 提供的代码使用轻型 IP (lwIP) 堆栈作为默认网络堆栈。要改用 FreeRTOS+TCP 网络堆栈,请将
–DAFR_ESP_FREERTOS_TCP
标志添加到 CMake 命令。要为非供应商提供的代码添加 lwIP 依赖项,请将以下行添加到您的自定义 CMake 组件的
CMakeLists.txt
依赖项文件 WiFi。# Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
构建应用程序
-
导航到
build
目录。 -
在命令行窗口中,输入以下命令以调用 Ninja 来构建应用程序。
ninja
或者,使用通用 CMake 接口来构建应用程序。
cmake --build
your-build-directory
注意 每当您在 cmake 项目和
aws_demos
项目之间切换时,都必须使用aws_tests
命令构建生成文件。
刷写并运行 FreeRTOS
使用 Espressif 的 IDF 实用程序 (
) 刷写您的主板、运行应用程序并查看日志。
freertos
/vendors/espressif/esp-idf/tools/idf.py
要开始,您必须擦除主板的闪存。转到
目录并使用以下命令:
freertos
./vendors/espressif/esp-idf/tools/idf.py erase_flash -B
build-directory
使用 IDF 脚本刷写主板。
./vendors/espressif/esp-idf/tools/idf.py flash -B
build-directory
如需监控,请使用以下命令:
./vendors/espressif/esp-idf/tools/idf.py monitor -p /dev/ttyUSB1 -B
build-directory
您也可以组合使用这些命令。
./vendors/espressif/esp-idf/tools/idf.py erase_flash flash monitor -p /dev/ttyUSB1 -B
build-directory
在 AWS 云上监控 MQTT 消息
您可以使用 AWS IoT 控制台中的 MQTT 客户端监控您的设备发送到 AWS 云的消息。
使用 AWS IoT MQTT 客户端订阅 MQTT 主题
-
登录到 AWS IoT 控制台
. -
在导航窗格中,选择 Test (测试) 以打开 MQTT 客户端。
-
在 Subscription topic (订阅主题)中,输入
iotdemo/#
,然后选择 Subscribe to topic (订阅主题).