ESP32の利点の一つは、ハードウェアシリアルが複数使える事である。ArduinoやESP8266でもSoftwareSerialでシリアル通信を行う事が出来るが、たまに上手く動作しない事がある。
ESP32はGPIO16とGPIO17がRX2とTX2ピンになっている。DFPlayerを接続する場合、下記の様な接続になる。ESP32によってピン配置は異なるのでピンの位置は参考程度に。
DFPlayerは下記資料にある様にシリアル通信は3.3V TTLとなっているので、3.3V動作のESP32のピンに直接接続できる(4.1参照)。
http://akizukidenshi.com/download/ds/dfrobot/DFPlayer_Mini_Manual.pdf
スケッチからGPIO16/17のRX2/TX2を使用するには、下記の様にHardwareSerial変数を宣言し、後は通常のシリアル通信と同様に使用するだけ。ポイントはHardwareSerial 変数名(2); の「(2)」の部分。
HardwareSerial Serial_df(2);
void setup() {
Serial_df.begin(9600);
}
void loop() {
}