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 の環境のみがビルドされるようになる。
1 2 |
[platformio] env_default=mhetesp32minikit |
設定の参照
設定は環境毎に行う必要がある。
しかし、プロジェクト全体で共通のビルドオプションなどがあり、値の設定などを1か所だけで行いたい場合には、共通環境のセクションを作成して、その中で値などを設定する。ビルド対象のセクションでは、その共通環境のセクションを参照することができる。
たとえば、これまでの例の build_flags のマクロ定義の共通部分と、monitor_speed を共有環境 [env] で設定して、それを ${環境.フラグ}の形式で参照すると以下のようになる。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
[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} |