ESP32+I2S DAC로 간단하게 MP3와 WebRadio 재생

여러가지 넷서핑하고 있었던 곳, 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
    

    ■ 환경 설정


    ■ 보드 관리자 시작


    ■ ESP32로 검색하여 업데이트


    소스 코드



    ★1의 SSID와 password는 WiFi에 맞추어 선택한다.
    ★ 2로 SD 카드에서 mp3을 재생하거나 웹에서 재생하거나 코멘트 아웃으로 전환하여 시도하십시오
    #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();
    }
    

    이상

    좋은 웹페이지 즐겨찾기