Radio internetowe ESP32

Widok połączonego modułu.
Konfiguracja zworek w module.

Podłączenia:

Pin ESP32 Funkcja I2S Opis
GPIO26 BCLK (Bit Clock) Zegar bitowy dla przesyłania danych
GPIO25 LCK (Word Select / LRCLK) Zegar słowa do synchronizacji kanałów lewego i prawego
GPIO22 DIN (Data In) Dane wejściowe audio
GND Masa Połączenie z masą układu
VIN Zasilanie Wejście zasilania modułu (tu 3.3V)
SCK Zegar główny Podłączony do GND w tej konfiguracji

Kod programu:

Kod_000


Wyjaśnienie Przykładu: Strumieniowanie Audio z Wi-Fi na ESP32

Ten przykład demonstruje, jak używać ESP32 do strumieniowego odtwarzania radia internetowego w formacie MP3 za pomocą interfejsu I2S oraz dekodowania dźwięku w czasie rzeczywistym.

Główne sekcje kodu:

1. Inkluzje bibliotek:

Kod_001
  • WiFi.h: Łączy ESP32 z siecią Wi-Fi.
  • AudioFileSourceHTTPStream: Pobiera strumień MP3 z internetu.
  • AudioGeneratorMP3: Dekoduje dane MP3 na format PCM.
  • AudioOutputI2S: Wysyła dane audio przez interfejs I2S do modułu DAC.

2. Konfiguracja Wi-Fi:

Kod_002
  • ssid i password: Dane logowania do sieci Wi-Fi.
  • radio_url: Adres URL strumienia radia internetowego.

3. Połączenie z Wi-Fi:

Kod_003

ESP32 próbuje połączyć się z siecią Wi-Fi, wyświetlając status w monitorze szeregowym.

4. Konfiguracja I2S:

Kod_004
  • GPIO26 (BCLK): Bit Clock.
  • GPIO25 (LCK): Word Select (Left-Right Clock).
  • GPIO22 (DIN): Dane audio.

5. Inicjalizacja dekodera MP3:

Kod_005
  • AudioFileSourceHTTPStream: Pobiera dane audio z internetu.
  • AudioGeneratorMP3: Dekoduje dane MP3 na PCM.

6. Pętla główna:

Kod_006

Sprawdza, czy strumień działa. Jeśli strumień się zatrzyma, zostanie automatycznie uruchomiony ponownie.



Biblioteka ESP8266Audio

Ten przykład korzysta z biblioteki ESP8266Audio, która umożliwia dekodowanie i odtwarzanie audio (MP3, WAV, FLAC) na mikrokontrolerach takich jak ESP8266 i ESP32.

Instalacja biblioteki:

  1. Otwórz Arduino IDE.
  2. Przejdź do Menedżera bibliotek:
    • Wybierz Narzędzia > Zarządzaj bibliotekami… lub użyj skrótu Ctrl+Shift+I.
  3. Wyszukaj bibliotekę:
    • W polu wyszukiwania wpisz: ESP8266Audio.
  4. Zainstaluj:
    • Znajdź bibliotekę autorstwa Earle Philhower i kliknij Zainstaluj.
  5. Sprawdź instalację:
    • Po instalacji upewnij się, że biblioteka jest widoczna w menu Szkic > Dołącz bibliotekę > Zarządzaj bibliotekami.

Alternatywa: Instalacja ręczna

  1. Pobierz bibliotekę:
  2. Rozpakuj pliki:
    • Po pobraniu pliku ZIP rozpakuj go.
  3. Skopiuj do katalogu bibliotek Arduino:
    • Przenieś folder do katalogu Documents/Arduino/libraries.
  4. Zrestartuj Arduino IDE:
    • Uruchom ponownie Arduino IDE, aby biblioteka została wykryta.
Zainstalowana biblioteka ESP8266Audio


Użyte w projekcie elementy:

  1. DAC
  2. ESP32

Lista stacji polskiego radia: https://github.com/RoEdAl/polish-radio-urls



Bardziej zaawansowane podejście z buforem i pracy na 2 rdzeniach (jeden rdzeń obsługuje wifi i ładuje bufor, drugi rdzeń ma za zadanie tylko dekodowanie mp3) – wydaje się, że nie polepsza to wyników (dla radia trójki http://mp3.polskieradio.pl:8904 dalej czasem zacina się).

Kod_000