Projekt zrealizowany przez użytkownika @cezary0782


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:
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:
- 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:
- ssid i password: Dane logowania do sieci Wi-Fi.
- radio_url: Adres URL strumienia radia internetowego.
3. Połączenie z Wi-Fi:
ESP32 próbuje połączyć się z siecią Wi-Fi, wyświetlając status w monitorze szeregowym.
4. Konfiguracja I2S:
- GPIO26 (BCLK): Bit Clock.
- GPIO25 (LCK): Word Select (Left-Right Clock).
- GPIO22 (DIN): Dane audio.
5. Inicjalizacja dekodera MP3:
- AudioFileSourceHTTPStream: Pobiera dane audio z internetu.
- AudioGeneratorMP3: Dekoduje dane MP3 na PCM.
6. Pętla główna:
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:
- Otwórz Arduino IDE.
- Przejdź do Menedżera bibliotek:
- Wybierz Narzędzia > Zarządzaj bibliotekami… lub użyj skrótu Ctrl+Shift+I.
- Wyszukaj bibliotekę:
- W polu wyszukiwania wpisz:
ESP8266Audio.
- W polu wyszukiwania wpisz:
- Zainstaluj:
- Znajdź bibliotekę autorstwa Earle Philhower i kliknij Zainstaluj.
- Sprawdź instalację:
- Po instalacji upewnij się, że biblioteka jest widoczna w menu Szkic > Dołącz bibliotekę > Zarządzaj bibliotekami.
Alternatywa: Instalacja ręczna
- Pobierz bibliotekę:
- Przejdź do repozytorium GitHub ESP8266Audio.
- Rozpakuj pliki:
- Po pobraniu pliku ZIP rozpakuj go.
- Skopiuj do katalogu bibliotek Arduino:
- Przenieś folder do katalogu
Documents/Arduino/libraries.
- Przenieś folder do katalogu
- Zrestartuj Arduino IDE:
- Uruchom ponownie Arduino IDE, aby biblioteka została wykryta.

Użyte w projekcie elementy:
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ę).