本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Espressif ESP32-WROOM-32SE 入門
重要
這是 FreeRTOS 使用者指南的封存版本,可與 FreeRTOS 版本 202012.00 搭配使用。如需本文件的最新版本,請參閱 FreeRTOS 使用者指南。
請按照本教學課程進行,以開始使用 Espressif ESP32-WROOM-32SE。若要從合作夥伴裝置目錄中的 AWS 合作夥伴購買,請參閱 ESP32-WROOM-32SE
注意
目前,ESP32-WROOM-32SE 的 FreeRTOS 連接埠不支援對稱多處理 (SMP) 功能。
概觀
本教學課程將指引您完成下列步驟:
-
將電路板連接至主機
-
在主機機器上安裝軟體,以開發和偵錯微型控制器主機板的內嵌應用程式
-
將 FreeRTOS 示範應用程式跨編譯至二進位映像
-
將應用程式二進位映像載入您的主機板,然後執行應用程式
-
使用序列連線監控和偵錯執行中的應用程式
先決條件
在 Espressif 電路板上開始使用 FreeRTOS 之前,您必須設定 AWS 您的帳戶和許可。
註冊 AWS 帳戶
如果您沒有 AWS 帳戶,請完成下列步驟來建立一個。
註冊 AWS 帳戶
請遵循線上指示進行。
註冊程序的一部分包括接聽電話或文字訊息,並在電話鍵盤上輸入驗證碼。
當您註冊 時 AWS 帳戶,AWS 帳戶根使用者會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務,請將管理存取權指派給使用者,並且僅使用根使用者來執行需要根使用者存取權的任務。
AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 https://aws.amazon.com/
建立具有管理存取權的使用者
註冊 後 AWS 帳戶,請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者,以免將根使用者用於日常任務。
保護您的 AWS 帳戶根使用者
-
選擇根使用者並輸入 AWS 帳戶 您的電子郵件地址,以帳戶擁有者AWS Management Console
身分登入 。在下一頁中,輸入您的密碼。 如需使用根使用者登入的說明,請參閱 AWS 登入 使用者指南中的以根使用者身分登入。
-
若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。
如需說明,請參閱《IAM 使用者指南》中的為您的 AWS 帳戶 根使用者 (主控台) 啟用虛擬 MFA 裝置。
建立具有管理存取權的使用者
-
啟用 IAM Identity Center。
如需指示,請參閱《AWS IAM Identity Center 使用者指南》中的啟用 AWS IAM Identity Center。
-
在 IAM Identity Center 中,將管理存取權授予使用者。
如需使用 IAM Identity Center 目錄 做為身分來源的教學課程,請參閱AWS IAM Identity Center 《 使用者指南》中的使用預設值設定使用者存取 IAM Identity Center 目錄。
以具有管理存取權的使用者身分登入
-
若要使用您的 IAM Identity Center 使用者簽署,請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。
如需使用 IAM Identity Center 使用者登入的說明,請參閱AWS 登入 《 使用者指南》中的登入 AWS 存取入口網站。
指派存取權給其他使用者
若要提供存取權,請新增權限至您的使用者、群組或角色:
-
中的使用者和群組 AWS IAM Identity Center:
建立權限合集。請按照 AWS IAM Identity Center 使用者指南 中的 建立權限合集 說明進行操作。
-
透過身分提供者在 IAM 中管理的使用者:
建立聯合身分的角色。遵循「IAM 使用者指南」的為第三方身分提供者 (聯合) 建立角色中的指示。
-
IAM 使用者:
-
建立您的使用者可擔任的角色。請按照「IAM 使用者指南」的為 IAM 使用者建立角色中的指示。
-
(不建議) 將政策直接附加至使用者,或將使用者新增至使用者群組。請遵循 IAM 使用者指南的新增許可到使用者 (主控台) 中的指示。
-
注意
FreeRTOS 202012.00 版本支援 ESP-IDF v3.3。如果您使用的是較新版本的 FreeRTOS,請遵循 中 IDFv4.2 的特定說明ESP-IDF 4.2 版入門。
ESP-IDF 3.3 版入門
本節說明如何在 Espressif 硬體上使用 ESP-IDF v3.3。若要使用 ESP-IDF 4.2 版,請參閱 ESP-IDF 4.2 版入門。
設定 Espressif 硬體
如需設定 ESP32-WROOM-32SE 開發板硬體的相關資訊,請參閱 ESP32-DevKitC 入門指南
重要
當您到達 Espressif 指南的入門區段時,請停止 ,然後遵循以下步驟。
設定開發環境
若要與您的主機板通訊,您必須下載並安裝工具鏈。
設定工具鏈
注意
ESP-IDF v3.3 (FreeRTOS 使用的版本) 不支援最新版本的 ESP32 編譯器。您必須使用與 ESP-IDF 3.3 版本相容的編譯器。請參閱上述連結。若要檢查編譯器的版本,請執行下列命令。
xtensa-esp32-elf-gcc --version
若要設定工具鏈,請依照您主機作業系統的指示進行:
重要
當您到達 Next Steps (後續步驟) 下的「取得 ESP-IDF」指示,請停止和返回此頁面上的指示。
如果您遵循後續步驟下的「取得 ESP-IDF」指示,現在或先前,您應該從系統清除IDF_PATH
環境變數,然後再繼續。如果您遵循「取得 ESP-IDF」指示,則會自動設定此環境變數。
安裝 CMake
需要 CMake 建置系統才能建置此裝置的 FreeRTOS 示範和測試應用程式。FreeRTOS 支援 3.13 版和更新版本。
您可以從 CMake.org
如需搭配 FreeRTOS 使用 CMake 的詳細資訊,請參閱 搭配 FreeRTOS 使用 CMake 。
建立序列連線
-
若要在您的主機與 ESP32-WROOM-32SE 之間建立序列連線,請安裝 CP210x USB to UART Bridge VCP 驅動程式。您可以從 Silicon Labs
下載這些驅動程式。 -
請依照步驟來建立與 ESP32 的序列連線
。 -
在您建立序連接之後,請記下開發板連接的序列連接埠。您在建立示範時會需要它。
下載並設定 FreeRTOS
設定環境後,您可以從 GitHub
重要
ATECC608A 裝置具有一次性初始化,會在專案第一次執行時 (呼叫 期間) 鎖定在裝置上C_InitToken
。不過,FreeRTOS 示範專案和測試專案有不同的組態。如果裝置在示範專案組態期間鎖定,並非測試專案中的所有測試都會成功。
-
依照中的步驟設定 FreeRTOS 示範專案設定 FreeRTOS 示範。略過最後一個步驟 改為格式化您的 AWS IoT 登入資料,並遵循以下步驟。
-
微晶片提供了多種指令碼工具,協助您設定 ATECC608A 組件。導覽至
目錄,然後開啟freertos
/vendors/microchip/secure_elements/app/example_trust_chain_toolREADME.md
檔案。 -
遵循
README.md
檔案中的指示,佈建您的裝置。這些步驟如下:-
使用 建立並註冊憑證授權機構 AWS
-
在 ATECC608A 上產生您的金鑰,並匯出公有金鑰和裝置序號
-
產生裝置的憑證,並向 註冊該憑證 AWS
-
-
按照開發人員模式金鑰佈建的指示,將憑證授權機構憑證和裝置憑證載入至裝置。
建置、刷新和執行 FreeRTOS 示範專案
您可以使用 CMake 來產生建置檔案、使用 Make 建置應用程式二進位,以及 Espressif 的 IDF 公用程式以刷新您的主機板。
在 Linux 或 MacOS 上建置 FreeRTOS (ESP-IDF 3.3 版)
如果您使用的是 Windows,您可以跳到在 Windows 上建置 FreeRTOS (ESP-IDF 3.3 版)。
使用 CMake 來產生建置檔案,然後使用 Make 來建置應用程式。
使用 CMake 來產生示範應用程式的建置檔案
-
導覽至 FreeRTOS 下載目錄的根目錄。
-
在命令列視窗中,輸入下列命令以產生建置檔案。
cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B
your-build-directory
備註
若要建置應用程式以進行偵錯,請新增
-DCMAKE_BUILD_TYPE=Debug
旗標。若要產生測試應用程式建置檔案,請新增
-DAFR_ENABLE_TESTS=1
旗標。Espressif 提供的程式碼會使用輕量型 IP (LWIP) 堆疊做為預設網路堆疊。若要改用 FreeRTOS+TCP 網路堆疊,請將
–DAFR_ESP_FREERTOS_TCP
旗標新增至 CMake 命令。若要為非供應商提供的程式碼新增 lwIP 相依性,請將以下幾行新增至自訂 Wi-Fi 元件
CMakeLists.txt
的 CMake 相依性檔案 。# Add a dependency on the bluetooth espressif component to the common component set(COMPONENT_REQUIRES lwip)
使用 Make 建置應用程式
-
導覽至
build
目錄。 -
在命令列視窗中,輸入下列命令以使用 Make 建置應用程式。
make all -j4
注意
每次在
aws_demos
專案與aws_tests
專案之間切換時,您都必須使用 cmake 命令產生建置檔案。
在 Windows 上建置 FreeRTOS (ESP-IDF 3.3 版)
在 Windows 上,您必須指定用於 CMake 的建置產生器。若未指定,CMake 則會依預設使用 Visual Studio。Espressif 官方建議使用 Ninja 建置系統,因為它適用於 Windows、Linux 和 MacOS。您必須在原生 Windows 環境 (例如 cmd 或 PowerShell) 中執行 CMake 命令。不支援在虛擬 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 相依性,請將以下幾行新增至自訂 Wi-Fi 元件
CMakeLists.txt
的 CMake 相依性檔案 。# 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
注意
每次在
aws_demos
專案與aws_tests
專案之間切換時,您都必須使用 cmake 命令產生建置檔案。
快閃並執行 FreeRTOS (ESP-IDF v3.3)
使用 Espressif 的 IDF 公用程式 (
) 刷新您的電路板、執行應用程式並查看日誌。freertos
/vendors/espressif/esp-idf/tools/idf.py
若要清除電路板的快閃記憶體,請導覽至
目錄並輸入下列命令。freertos
./vendors/espressif/esp-idf/tools/idf.py erase_flash -B
build-directory
若要將應用程式二進位刷新到您的電路板,請使用 make
。
make flash
您也可以使用 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
ESP-IDF 4.2 版入門
本節說明如何在 Espressif 硬體上使用 ESP-IDF 4.2 版。若要使用 ESP-IDF 3.3 版,請參閱 ESP-IDF 3.3 版入門。
注意
本教學課程中的 Linux 命令要求您使用 Bash shell。
設定 Espressif 硬體
如需有關設定 ESP32-WROOM-32SE 開發板硬體的資訊,請參閱 ESP32-DevKitC V4 入門指南
重要
當您到達 Espressif 指南的入門區段時,請停止,然後遵循以下步驟。
設定開發環境
若要與主機板通訊,您必須下載並安裝工具鏈。
設定工具鏈
若要設定工具鏈,請依照您主機作業系統的指示進行:
重要
當您達到後續步驟下的「取得 ESP-IDF」指示時,請停止,然後返回此頁面的指示。
完成安裝 (Linux/Mac)
ESP-IDF Windows 安裝程式會安裝所有必要的工具。Linux 和 MAC OSX 平台需要額外的步驟才能完成安裝。
開啟命令列視窗,導覽至 FreeRTOS 下載目錄,然後執行下列指令碼,為您的平台下載並安裝 espressif 工具鏈。
vendors/espressif/esp-idf/install.sh
接著,使用下列命令將 ESP-IDF 工具鏈工具新增至終端機的路徑。
source vendors/espressif/esp-idf/export.sh
建立序列連線
-
若要在您的主機與 ESP32-WROOM-32SE 之間建立序列連線,請安裝 CP210x USB to UART Bridge VCP 驅動程式。您可以從 Silicon Labs
下載這些驅動程式。 -
請依照步驟來建立與 ESP32 的序列連線
。 -
在您建立序連接之後,請記下開發板連接的序列連接埠。您在建立示範時會需要它。
下載並設定 FreeRTOS
設定環境後,您可以從 GitHub
重要
ATECC608A 裝置具有一次性初始化,會在專案第一次執行時 (呼叫 期間) 鎖定在裝置上C_InitToken
。不過,FreeRTOS 示範專案和測試專案有不同的組態。如果裝置在示範專案組態期間鎖定,並非測試專案中的所有測試都會成功。
-
依照中的步驟設定 FreeRTOS 示範專案設定 FreeRTOS 示範。當您進入最後一個步驟時,若要格式化您的 AWS IoT 登入資料 STOP,請改為遵循下列步驟。
-
微晶片提供了多種指令碼工具,協助您設定 ATECC608A 組件。導覽至
目錄並開啟freertos
/vendors/microchip/secure_elements/app/example_trust_chain_toolREADME.md
檔案。 -
遵循
README.md
檔案中的指示,佈建您的裝置。這些步驟如下:-
使用 建立並註冊憑證授權機構 AWS
-
在 ATECC608A 上產生您的金鑰,並匯出公有金鑰和裝置序號
-
產生裝置的憑證,並向 註冊該憑證 AWS
-
-
按照開發人員模式金鑰佈建的指示,將憑證授權機構憑證和裝置憑證載入至裝置。
使用 idf.py 指令碼建置、刷新和執行 FreeRTOS 示範專案
您可以使用 Espressif 的 IDF 公用程式來產生建置檔案、建置應用程式二進位檔,以及刷新您的主機板。
在 Windows、Linux 和 MacOS (ESP-IDF v4.2) 上建置和刷新 FreeRTOS MacOS
使用 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
Linux/MacOS
source vendors/espressif/esp-idf/export.sh
-
在
build
目錄中設定 cmake,並使用下列命令建置韌體映像。idf.py -DVENDOR=espressif -DBOARD=esp32_ecc608a_devkitc -DCOMPILER=xtensa-esp32 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 檔案。
-
使用下列命令清除開發板的快閃記憶體。
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 建置和 Flash FreeRTOS
除了使用 IDF 開發套件提供的 idf.py 指令碼來建置和執行程式碼,您也可以使用 CMake 建置專案。目前支援 Unix Makefile 和 Ninja 組建系統。
建置和刷新專案
-
在命令列視窗中,導覽至 FreeRTOS 下載目錄的根目錄。
-
執行下列指令碼,將 ESP-IDF 工具新增至 shell 的 PATH。
Windows
vendors\espressif\esp-idf\export.bat
Linux/MacOS
source vendors/espressif/esp-idf/export.sh
-
輸入下列命令以產生建置檔案。
使用 Unix Makefiles
cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B
./YOUR_BUILD_DIRECTORY
-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0使用 Ninja
cmake -DVENDOR=espressif -DBOARD=esp32_plus_ecc608a_devkitc -DCOMPILER=xtensa-esp32 -S . -B
./YOUR_BUILD_DIRECTORY
-DAFR_ENABLE_ALL_MODULES=1 -DAFR_ENABLE_TESTS=0 -GNinja -
清除快閃記憶體,然後刷新電路板。
使用 Unix Makefiles
make -C
./YOUR_BUILD_DIRECTORY
erase_flashmake -C
./YOUR_BUILD_DIRECTORY
flash使用 Ninja
ninja -C
./YOUR_BUILD_DIRECTORY
erase_flashninja -C
./YOUR_BUILD_DIRECTORY
flash
在 AWS 雲端監控 MQTT 訊息
您可以在 AWS IoT 主控台中使用 MQTT 用戶端來監控裝置傳送至 AWS 雲端的訊息。
使用 MQTT 用戶端訂閱 AWS IoT MQTT 主題
-
登入 AWS IoT 主控台
。 -
在導覽窗格中,選擇 Test (測試) 以開啟 MQTT 用戶端。
-
在訂閱主題中輸入
,然後選擇訂閱主題。your-thing-name
/example/topic
其他資訊
如需使用和故障診斷 Espressif ESP32 電路板的詳細資訊,請參閱下列主題: