翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Espressif ESP32-WROOM-32SE の開始方法
重要
これは、FreeRTOS リリース 202012.00 で使用する FreeRTOS ユーザーガイドのアーカイブ版です。このドキュメントの最新バージョンについては、FreeRTOS ユーザーガイドを参照してください。
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 アカウント E メールアドレスを入力して、アカウント所有者AWS Management Console
として にサインインします。次のページでパスワードを入力します。 ルートユーザーを使用してサインインする方法については、AWS サインイン ユーザーガイドのルートユーザーとしてサインインするを参照してください。
-
ルートユーザーの多要素認証 (MFA) を有効にします。
手順については、IAM ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイスを有効にする」を参照してください。
管理アクセスを持つユーザーを作成する
-
IAM アイデンティティセンターを有効にします。
手順については、「AWS IAM Identity Center ユーザーガイド」の「AWS IAM Identity Centerの有効化」を参照してください。
-
IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。
を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、AWS IAM Identity Center 「 ユーザーガイド」の「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ」を参照してください。
管理アクセス権を持つユーザーとしてサインインする
-
IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。
IAM Identity Center ユーザーを使用してサインインする方法については、AWS サインイン 「 ユーザーガイド」の AWS 「 アクセスポータルにサインインする」を参照してください。
追加のユーザーにアクセス権を割り当てる
アクセス権限を付与するにはユーザー、グループ、またはロールにアクセス許可を追加します。
-
以下のユーザーとグループ AWS IAM Identity Center:
アクセス許可セットを作成します。「AWS IAM Identity Center ユーザーガイド」の「権限設定を作成する」の手順に従ってください。
-
IAM 内で、ID プロバイダーによって管理されているユーザー:
ID フェデレーションのロールを作成します。詳細については「IAM ユーザーガイド」の「サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する」を参照してください。
-
IAM ユーザー:
-
ユーザーが担当できるロールを作成します。手順については「IAM ユーザーガイド」の「IAM ユーザーのロールの作成」を参照してください。
-
(お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。詳細については「IAM ユーザーガイド」の「ユーザー (コンソール) へのアクセス権限の追加」を参照してください。
-
注記
FreeRTOS 202012.00 リリースでは ESP-IDF v3.3 がサポートされています。FreeRTOS の最新リビジョンを使用している場合は、ESP-IDF v4.2 の開始方法 の IDFv4.2 固有の指示に従ってください。
ESP-IDF v3.3 の開始方法
このセクションでは、Espressif ハードウェアで ESP-IDF v3.3 を使用する方法について説明します。ESP-IDF v4.2 を使用するには、「ESP-IDF v4.2 の開始方法」を参照してください。
Espressif ハードウェアを設定する
ESP32-WROOM-32SE 開発ボードハードウェアの設定の詳細については、ESP32-DevKitC 入門ガイド
重要
Espressif ガイドの開始方法セクションに到達したらそこで止まり、以下の手順を実施します。
開発環境をセットアップする
ボードと通信するには、ツールチェーンをダウンロードしてインストールする必要があります。
ツールチェーンの設定
注記
ESP-IDF v3.3 (FreeRTOS で使用されるバージョン) では、ESP32 コンパイラの最新バージョンがサポートされていません。ESP-IDF のバージョン 3.3 と互換性のあるコンパイラを使用する必要があります。前のリンクを参照してください。コンパイラのバージョンを確認するには、次のコマンドを実行します。
xtensa-esp32-elf-gcc --version
ツールチェーンを設定するには、ホストマシンのオペレーティングシステムの指示に従ってください。
重要
次のステップの「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 を UART Bridge VCP ドライバーにインストールする必要があります。これらのドライバーは Silicon Labs
からダウンロードできます。 -
ESP32 でシリアル接続を確立
する手順に従います。 -
シリアル接続を確立したら、ボードとの接続用のシリアルポートをメモしておきます。デモを構築する際に必要になります。
FreeRTOS をダウンロードして設定する
環境をセットアップすると、GitHub
重要
ATECC608A デバイスには、プロジェクトが初めて実行されるとき (C_InitToken
呼び出し時) にデバイスにロックされる 1 回だけの初期化があります。ただし、FreeRTOS デモプロジェクトおよびテストプロジェクトには別の設定があります。デモプロジェクトの設定中にデバイスがロックされた場合、テストプロジェクトの一部のテストが成功しません。
-
FreeRTOS デモを設定する の手順に従って、FreeRTOS デモプロジェクトを設定します。最後の手順の AWS IoT の認証情報をフォーマットするにはをスキップして、代わりに以下の手順に従います。
-
Microchip から、ATECC608A 部品のセットアップに役立ついくつかのスクリプトツールが提供されています。
ディレクトリに移動してから、freertos
/vendors/microchip/secure_elements/app/example_trust_chain_toolREADME.md
ファイルを開きます。 -
README.md
ファイルの手順に従って、デバイスをプロビジョニングします。このステップには、以下が含まれます。-
認証機関を作成して に登録する AWS
-
ATECC608A でキーを生成し、パブリックキーとデバイスのシリアル番号をエクスポートします
-
デバイスの証明書を生成し、その証明書を に登録する AWS
-
-
開発者モードのキーのプロビジョニング の手順に従って、CA 認定とデバイス証明書をデバイスにロードします。
FreeRTOS デモプロジェクトを構築、フラッシュ、実行する
CMake を使用してビルドファイルを生成し、Make を使用してアプリケーションバイナリをビルドし、Espressif の IDF ユーティリティを使用してボードをフラッシュできます。
Linux または MacOS で FreeRTOS を構築する (ESP-IDF v3.3)
Windows を使用している場合は、Windows で FreeRTOS を構築する (ESP-IDF v3.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 ネットワークスタックを使用するには、CMake コマンドに
–DAFR_ESP_FREERTOS_TCP
フラグを追加します。ベンダー以外が提供するコードの lwIP 依存関係を追加するには、カスタム Wi-Fi コンポーネントの CMake 依存関係ファイル
CMakeLists.txt
に次の行を追加します。# 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 v3.3)
Windowsでは、CMake 用のビルドジェネレーターを指定する必要があります。それ以外の場合、CMake はデフォルトで Visual Studio に設定されます。Ninja ビルドシステムは Windows、Linux、および MacOS で機能するため、Espressif では Ninja ビルドシステムが公式に推奨されます。CMake コマンドは、cmd あるいは PowerShell などのネイティブの Windows 環境で実行する必要があります。MSYS2 や WSL などの仮想 Linux 環境で 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 ネットワークスタックを使用するには、CMake コマンドに
–DAFR_ESP_FREERTOS_TCP
フラグを追加します。ベンダー以外が提供するコードの lwIP 依存関係を追加するには、カスタム Wi-Fi コンポーネントの CMake 依存関係ファイル
CMakeLists.txt
に次の行を追加します。# 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 v4.2 の開始方法
このセクションでは、Espressif ハードウェアで ESP-IDF v4.2 を使用する方法について説明します。ESP-IDF v3.3 を使用するには、「ESP-IDF v3.3 の開始方法」を参照してください。
注記
このチュートリアルの Linux コマンドでは、Bash シェルを使用する必要があります。
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 を UART Bridge VCP ドライバーにインストールする必要があります。これらのドライバーは Silicon Labs
からダウンロードできます。 -
ESP32 でシリアル接続を確立
する手順に従います。 -
シリアル接続を確立したら、ボードとの接続用のシリアルポートをメモしておきます。デモを構築する際に必要になります。
FreeRTOS をダウンロードして設定する
環境をセットアップすると、GitHub
重要
ATECC608A デバイスには、プロジェクトが初めて実行されるとき (C_InitToken
呼び出し時) にデバイスにロックされる 1 回だけの初期化があります。ただし、FreeRTOS デモプロジェクトおよびテストプロジェクトには別の設定があります。デモプロジェクトの設定中にデバイスがロックされた場合、テストプロジェクトの一部のテストが成功しません。
-
FreeRTOS デモを設定する の手順に従って、FreeRTOS デモプロジェクトを設定します。最後の手順の AWS IoT の認証情報をフォーマットするにはに到達したらそこで止まり、以下の手順に従います。
-
Microchip から、ATECC608A 部品のセットアップに役立ついくつかのスクリプトツールが提供されています。
ディレクトリに移動し、freertos
/vendors/microchip/secure_elements/app/example_trust_chain_toolREADME.md
ファイルを開きます。 -
README.md
ファイルの手順に従って、デバイスをプロビジョニングします。このステップには、以下が含まれます。-
認証機関を作成して に登録する AWS
-
ATECC608A でキーを生成し、パブリックキーとデバイスのシリアル番号をエクスポートします
-
デバイスの証明書を生成し、 AWSに登録します
-
-
開発者モードのキーのプロビジョニング の手順に従って、CA 認定とデバイス証明書をデバイスにロードします。
idf.py スクリプトを使用して FreeRTOS デモプロジェクトを構築、フラッシュ、実行する
Espressif の IDF ユーティリティを使用してビルドファイルを生成し、アプリケーションバイナリを構築し、ボードをフラッシュできます。
Windows、Linux、MacOS で FreeRTOS を構築してフラッシュする (ESP-IDF v4.2)
idf.py
スクリプトを使用して、プロジェクトを構築し、デバイスにバイナリをフラッシュします。
注記
一部のセットアップでは、次の例のように、idf.py
でポートオプション "-p
を使用して正しいポートを指定する必要があります。port-name
"
idf.py -p /dev/cu.usbserial-00101301B flash
プロジェクトを構築してフラッシュするには
-
FreeRTOS ダウンロードディレクトリのルートに移動します。
-
コマンドラインウィンドウで次のコマンドを入力して、ESP-IDF ツールをターミナルのパスに追加します。
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 で FreeRTOS を構築してフラッシュする
IDF SDK が提供する idf.py スクリプトを使ってコードを構築および実行できるほか、CMake を使用してプロジェクトを構築することもできます。現在、Unix Makefile と Ninja ビルドシステムをサポートしています。
プロジェクトを構築してフラッシュするには
-
コマンドラインウィンドウで、FreeRTOS ダウンロードディレクトリのルートに移動します。
-
次のスクリプトを実行して、ESP-IDF ツールをシェルのパスに追加します。
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=0Ninja を使用
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
flashNinja を使用
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 クライアントを開きます。
-
[Subscription topic] (トピックのサブスクリプション) で
と入力し、[Subscribe to topic] (トピックへのサブスクライブ) を選択します。your-thing-name
/example/topic
追加情報
Espressif ESP32 ボードの使用とトラブルシューティングの詳細については、以下のトピックを参照してください。