PlatformIO IDE で、複数の対象環境(ボード)の指定をすることができる。
MH-ET Live ESP32 Minikit と WeMos D1 Mini を対象にした場合を例とする。
詳細については、Project Configuration File platformio.ini (https://docs.platformio.org/en/latest/projectconf.html) を参照して欲しい。
目次
環境の追加
PlatformIO IDE の PIO Homeで「+New Project」をクリックし、Project Wizardを起動し、プロジェクトを作成する際にボードを選べばそのボードのための platformio.ini が作成される。
ここでは、Project Wizardで作成された次のplatformio.ini を基にする。

WeMos D1 R2 & mini の環境を追加するために WeMos D1 R2 & miniのボードIDを探す。
PlatformIO IDE の PIO HomeからBoardsを選ぶ。Board Explorerにキーワードを入力して対象を絞り、該当するボードの「+」をクリックすると表示される。
次の例は、WeMos D1 mini をキーワードとして検索し、WeMos D1 R2 & mini を選択したところである。WeMos D1 R2 & mini のボードIDは、d1_mini である。

また、d1_mini の platfrom は espressif8266 である。フレームワークは選択できるが、ここでは arduino を選択する。
環境名は env: にボードIDを加えたものを使うとする。ここでは、 env:d1_mini となる。

それぞれの環境毎に設定を行うことができる。
たとえば、build_flags でビルド時のフラグを指定し、シリアルモニターの速度を monitor_speed で 115200 bps に指定すると次のようになる。

上記の状態でボトムにあるアイコンバー
のビルド
をクリックしてビルドを行うと、両方の環境でのビルドが行われる。
特定の環境のみのビルド
特定の環境のみのビルドをしたい場合には、タスクを指定する必要がある。
アイコンバーの Run Task
をクリックしてタスクパネルをオープンするか、メニューバーの「タスク(T)」から「タスクの実行(R)…」を選択する。

env:d1_mini の環境のビルドをしたい場合には、パネルの中から「PlatformIO: Build (d1_mini)」を選択する。
デフォルト環境の設定
デフォルト環境を設定することができる。次のセクションを追加することで、env:mhetesp32minikit がデフォルト環境になり、アイコンバーからビルドすると env:mhetesp32minikit の環境のみがビルドされるようになる。
[platformio] env_default=mhetesp32minikit
設定の参照
設定は環境毎に行う必要がある。
しかし、プロジェクト全体で共通のビルドオプションなどがあり、値の設定などを1か所だけで行いたい場合には、共通環境のセクションを作成して、その中で値などを設定する。ビルド対象のセクションでは、その共通環境のセクションを参照することができる。
たとえば、これまでの例の build_flags のマクロ定義の共通部分と、monitor_speed を共有環境 [env] で設定して、それを ${環境.フラグ}の形式で参照すると以下のようになる。
[platformio]
env_default=mhetesp32minikit
[env]
build_flags =
-D USE_PAHO=1
-D USE_SPARKFUN_LIBRARIES=1
monitor_speed = 115200
[env:mhetesp32minikit]
platform = espressif32
board = mhetesp32minikit
framework = arduino
build_flags =
${env.build_flags}
monitor_speed = ${env.monitor_speed}
[env:d1_mini]
platform = espressif8266
board = d1_mini
framework = arduino
build_flags =
${env.build_flags}
-D ARDUINO_ESP8266_WEMOS_D1MINI=1
monitor_speed = ${env.monitor_speed}