PlatformIOでESP32を開発する

Libraryの追加


PlatformIOの最大の特徴は豊富なArduino用のライブラリが使えることです。
例えば、HD44780のLCDを使う場合、ArduinoではLiquidCrystalライブラリが定番ですが、PlatformIOでも同 じライブラリが使えます。
こちらのページで「LiquidCrystal」で検索す ると幾つかヒットします。

#136と#887のライブラリがGPIOを使うライブラリです。
Arduinoでは同じ名前のライブラリを複数インストールすることは(原則として)できませんが、
PlatformIOではプロジェクトごとにライブラリをインストールできるので、同じ名前のライブラリを使い分けることができます。

例えば、#136のライブラリをインストールする場合、以下のコマンドでインストールします。
インストールしたライブラリは[.piolibdeps]にインストールされます。
$ pio lib install 136
Library Storage: /home/pi/platformio/esp32-LiquidCrystal/HelloWorld-2/.piolibdeps
LibraryManager: Installing id=136
Downloading...
Unpacking  [####################################]  100%
LiquidCrystal @ 1.5.0 has been successfully installed!

これで以下のコードをビルドすることができます、
#include "LiquidCrystal.h"

// initialize the library by associating any needed LCD interface pin
//LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
LiquidCrystal lcd(22, 23, 5, 18, 19, 21);

void setup() {
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  // Print a message to the LCD.
  lcd.print("hello, world!");
}

void loop() {
  // set the cursor to column 0, line 1
  // (note: line 1 is the second row, since counting begins with 0):
  lcd.setCursor(0, 1);
  // print the number of seconds since reset:
  lcd.print(millis() / 1000);
}



プロジェクトを丸ごと、別のディレクトリにコピーして、以下のコマンドで#887のライブラリを試すことができます。
$ pio lib uninstall 136
Library Storage: /home/pi/platformio/esp32-LiquidCrystal/HelloWorld-2/.piolibdeps
Uninstalling LiquidCrystal @ 1.5.0:     [OK]

$ pio lib install 887
Library Storage: /home/pi/platformio/esp32-LiquidCrystal/HelloWorld-2/.piolibdeps
LibraryManager: Installing id=887
Downloading...
Unpacking  [####################################]  100%
LiquidCrystal @ 1.0.7 has been successfully installed!

同じソースを#887のライブラリを使ってビルドすることができます。



ちなみに以下の様に#136と#887の2つのライブラリが有る場合、番号の小さいほうのライブラリが使われます。


続く...