ESP32に関するよくある質問

ESP32 と PlatformIO:セットアップ・移植・デバッグ

// PlatformIO · FAQ

カテゴリ: ESP32 · PlatformIO · 更新: 2026年8月

ありがちな苦労なしで ESP32 に PlatformIO を使う方法。Freenove ESP32-S3 ブレイクアウト基板の設定、Arduino スケッチの移植、何もコンパイルできないときのデバッグまで。

PlatformIO と ESP32 をどう使えばいいですか?

VS Code に PlatformIO 拡張をインストールして、プロジェクトを作り、platformio.ini ファイルを 1 本書く。セットアップはそれだけです。PlatformIO は同じ Espressif ツールチェーンを包んでいますが、全バージョンが固定されています。私が初めて pio run を実行したときは、espressif32 ツールチェーンをまるごとダウンロードして、手作業ゼロでコンパイルが通りました。同じスケッチは IDE で半日かかったのに。

platformio.ini ファイルには実際に何を書くのですか?

たいていのプロジェクトは 3 行で足ります。[env:esp32dev]、platform = espressif32、board = esp32dev です。さらに framework = arduino と monitor_speed = 115200 を足します。残りは、必要になるまではすべてオプションです。

Freenove ESP32-S3 ブレイクアウト基板の設定方法は?

たいていの Freenove S3 基板はカスタム設定が不要です。レジストリに freenove_esp32_s3_wroom のようなエイリアスが用意されているので、board = freenove_esp32_s3_wroom と書けば、あとは自動で埋まります。エイリアスに関係なくハマりやすい点が 2 つあります。S3 のネイティブ USB ポートには正しい upload_port が必要で、挿したときに現れるポートを選んでください。そして、大半の Freenove バリアントでオンボード RGB LED は GPIO 48 につながっています。正確なエイリアスは基板のリビジョン次第です。最新の Freenove 対応表はナレッジベースに置いています。

ESP32 の PlatformIO でデバッグするには?

まず pio run -t upload、次に pio device monitor です。ESP32 のデバッグの 9 割はシリアルログで済みます。本物のブレークポイントが必要なら JTAG 経由の ESP-Prog か、ネイティブ USB デバッグ対応の S3 が要ります。普通の WROOM devkit なら安い ESP-Prog クローンでほぼ動きますが、どのクローンがハンドシェイクを成立させるかについて、公式ドキュメントは曖昧です。esptool が Failed to connect to ESP32: timed out waiting for packet header と報告したら、書き込み中に BOOT を押し続けてください。そのエラーはチップが死んでいるのではなく、モードの問題です。残りはデバッグ FAQでどうぞ。

ESP32 の Arduino プロジェクトを PlatformIO に移植するには?

プロジェクトフォルダーを作り、framework = arduino を書いた platformio.ini を追加し、.ino を src/main.cpp にリネームします。PlatformIO は素の C++ としてコンパイルするので、Arduino のラッパーは消えてなくなります。setup() と loop() はそのままです。ライブラリは lib_deps に移します。たとえば lib_deps = bblanchon/ArduinoJson@^7 のように。

設定を失わずに Arduino プロジェクトを PlatformIO に移植するには?

移行前に 3 つをバックアップします。platformio.ini で表現する基板・フラッシュ設定、lib/ フォルダー、pio run -t uploadfs で書き込む data/ フォルダーです。スケッチは移植できます。失われやすいのは、設定ファイルに直書きした Wi-Fi 認証情報と、ハードコードしたパーティションレイアウトです。これらは ini(board_build.partitions)と、git 管理外の設定ファイルに移しましょう。まず pio pkg list を実行して、バージョンが一致するようにしてください。

シリアルモニターが文字化けだらけになるのはなぜ?

ほぼ間違いなくボーレートの不一致です。ESP32 は ROM 起動時に 115200 で立ち上がるので、他のレートだと意味不明な文字列が出力されます。私はかつて ESP8266 で 74880 に 1 時間費やしました。PlatformIO が間違った monitor_speed を引き継いでいたのが原因です。monitor_speed = 115200 に設定すれば、きれいに出ます。

ESP32 デバイスを pio monitor で見るには?

pio device list を実行し、続けて pio device monitor を実行します。これが ESP32 デバイスを pio monitor で見る方法です。Linux なら dialout グループに参加してください。Windows なら CH340 か CP2102 のドライバーを入れないと、ポートがそもそも現れません。

PlatformIO は ESP32 開発モジュールで動きますか?

動きます。「platformio は esp32 dev module で動くか」への短い答えは、定番の WROOM devkit なら esp32dev が既定値だ、です。LED やフラッシュサイズが違うクローン基板は、その 2 つの設定を上書きしてください。

PlatformIO を ESP32 用に最短でセットアップするには?

「platformio を esp32 用にセットアップする方法」のガイドの多くは VS Code 前提ですが、CLI だけで完結します。pio project init --board esp32dev で、動くプロジェクトが即座に作れます。ブラウザーシミュレーターで試行錯誤してから、実機に書き込みましょう。

この記事のテーマのプロジェクトは、sensbench の無料シミュレーターでそのまま実行できます。回路は配線済み、ファームウェア同梱、アカウントもインストールも不要です。

Leave a Reply

Your email address will not be published. Required fields are marked *