色々ネットサーフィンしていたところ、schreibfaul1さんが公開されているライブラリで簡単に
MP3とWebRadioをMP3コーデックで再生できたためそのメモです。
#準備
- ESP32とSDカードアダプタとI2S DACを接続しておく→ こちら 参照
- こちらからライブラリをダウンロードしてArduino¥librariesにインストールしておく
- ESP32のボードライブラリを最新にしておく
※ボードマネージャのESP32ライブラリが古いとコンパイルエラーが出てコンパイルができませんでした。
どうやらコンパイル時のエラーメッセージから1.05.0c以上が必要なようです。
(2021/02/02時点)
現時点でStable Releaseの1.04が最新となってますので、Arduino IDE→環境設定→追加ボードマネージャのURLに下記Dev Release用のURLを記入後、ESP32で検索すると最新版がインストールできます。今回は1.0.5-rc6を入れました。
https://raw.githubusercontent.com/espressif/arduino-esp32/ghpages/package_esp32_dev_index.json
#ソースコード
★1のSSIDとpasswordはWiFiに合わせて選択する。
★2でSDカードからmp3を再生するかWebから再生するかコメントアウトで切り替えて試してみてください
#include "Audio.h"
// SDCard Pinout (SSCK to IO18, MOSI to IO23 MISO to IO19
#define SD_CS 5
// I2S to DAC pinout difinition
#define I2S_DOUT 22
#define I2S_BCLK 26
#define I2S_LRC 25
Audio audio;
const char* wifi_ssid = "xxxxxxxxx"; // ★1ここにWiFi ssidを記入
const char* wifi_password = "xxxxxxxxxxx"; // ★1ここにWiFi passwordを記入
void setup(void) {
Serial.begin(115200);
Serial.println(F("Hello! this is Audio player Test"));
//Mount sdcard
if(!SD.begin(SD_CS)){
Serial.println("Card Mount Failed");
}
WiFi.disconnect();
WiFi.mode(WIFI_STA);
WiFi.begin(wifi_ssid, wifi_password);
// WiFi connection try forever
while (WiFi.status() != WL_CONNECTED) {
Serial.println("...Connecting to WiFi");
Serial.print(".");
delay(1000);
}
Serial.print("Connected to ");
Serial.println(WiFi.localIP());
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
audio.setVolume(21); // 0...21
audio.connecttohost("http://listen.181fm.com/181-beatles_128k.mp3"); // 128k mp3 ★2 ←どちらか選択 WebRadio
//audio.connecttoSD("/pno-cs.mp3"); ★2 ←どちらか選択 MP3
}
void loop(){
audio.loop();
}
以上