yoRadio od podstaw – budowa radia internetowego na ESP32 z kolorowym wyświetlaczem

Dzisiaj opiszę bardzo fajny i funkcjonalny projekt radia internetowego. Temat jest znany w sieci – yoRadio, bo o nim mowa, cały czas zyskuje na popularności. Do „oficjalnej” wersji jest napisany całkiem przejrzysty poradnik, ale jest też kilka modyfikacji z większą funkcjonalnością, ale informacje są rozproszone i trzeba ich szukać w kilku miejscach. W poniższym wpisie przedstawię jak krok po kroku zbudować radio z ładnym, kolorowym wyświetlaczem i dobrej jakości przetwornikiem audio.

Hardware yoRadio – sprzęt niezbędny do budowy

Do budowy radia internetowego użyłem części zalecanych na grupach facebookowych, dużo pomógł mi też Andrzej Jaroszuk. Podaje od razu linki do Aliexpress, nie wiem czy będą to najkorzystniejsze na tę chwilę oferty, ale tam kupowałem i nie było problemów:

Lista kompatybilnego sprzętu znajduje się na Githubie, na oficjalnej stronie projektu yoRadio.

Do pełni szczęścia można dokupić jeszcze odbiornik podczerwieni, enkodery, zegar RTC itp itd, ale do pierwszego uruchomienia i oswojenia się z projektem wystarczy to, co podałem wyżej. Gdy radio ruszy w takiej wersji, można rozbudowywać dalej.

Jeszcze dwa słowa o DAC’u PCM5102A. Warto ustawić 3 zworki, żeby nie było losowych problemów:

  • na PCB od strony elementów przy pinie SCK są punkty lutownicze do zwarcia za pomocą kropli cyny – zredukuje to szumy (SCK będzie połączone z GND);
  • od strony ścieżek połącz ze sobą punkty H3 – aktywuje to un-mute, wyłączenie wyciszenia;
  • połącz punkty 4L – aktywuje protokół I²S.

Bez zrobienia zworek, moduł powinien pracować poprawnie. Z doświadczenia wiem, że jest istotna różnica między powinien działać a działa, więc polecam uruchomić lutownicę ;).

To tyle jeśli chodzi o sprzęt, połączeniami między modułami zajmiemy się później.

Kompilacja yoRadio na VSC/PlatformIO

Do sprzętu należy wgrać oprogramowanie. Jak w wielu tego typu projektach, kod źródłowy jest ogólnie dostępny, całość trzeba skompilować i wgrać do ESP32. Domyślnie jest to robione w środowisku Arduino IDE. Cały opis jest na oficjalnej stronie projektu na Githubie. Jest z tym sporo czasochłonnej zabawy. Do tego pierwsza kompilacja trwała około 20 minut (procesor i5 14 generacji i 32GB RAM). Inna droga to PlatformIO na Visual Studio Code – wszystkie niezbędne moduły instalują się automagicznie po załadowaniu projektu yoRadio, a kompilacja trwa minutę czy dwie. Pójdziemy tą drogą. Czyli trzeba pobrać i zainstalować Visual Studio Code, a później w VSCode w Extension Manager doinstalowujemy PlatformIO IDE -> według tej instrukcji.

Skąd wziąć źródła? Ze swojej strony mogę polecić modyfikację yoRadio V-Tom – do pobrania na Github. Jest jeszcze fajna modyfikacja wersji V-Tom robiona przez Andrzeja Jaroszuka, ostatnia wersja opublikowana na google drive. Udostępniam na stronie właśnie tą wersję z małymi zmianami, tak żeby wygodnie wczytywała się i kompilowała pod PlatformIO. Wystarczy pobrać to archiwum, rozpakować i folder yoRadio_aj wczytać w VSCode przyciskiem [Pick a folder]:

Projekt wczyta się i automatycznie zaczną się pobierać niezbędne biblioteki i rozszerzenia do IDE, może to chwilkę potrwać. Najważniejszym dla nas plikiem jest myoptions.h, gdzie zawarte są najważniejsze ustawienia. W tym projekcie wygląda on tak:

Mamy tu zdefiniowaną wersję ESP32, wyświetlacza ILI9488, do jakich pinów jest on podłączony, podobnie DAC. Inne ustawienia dotyczą prognozy pogody, „gadającego zegara” itp. Jest też sporo zakomentowanych (czyli nieużywanych) ustawień, takich jak enkodery, odbiornik podczerwieni, karta pamięci, regulacja jasności wyświetlacza. Do ustawień jest dedykowany generator ze strony projektu, lub lepsza zmodyfikowana wersja tutaj:

Przygotowany przeze mnie projekt jest gotowy do kompilacji, którą wykonuje się za pomocą przycisku ✔ z etykietą PlatformIO: Build, który znajduje się na dolnym pasku, po lewej stronie:

Projekt został skompilowany i właściwie jest gotowy do wgrania. Czas więc na podłączenie ESP32 z wyświetlaczem i przetwornikiem audio.

yoRadio – połączenie modułów

Kabelki łączymy zgodnie z tym, co jest zdefiniowane w pliku myoptions.h. Poniżej przedstawiam opis, według oznaczeń na ESP32, ILI9488 i DAC’a I²S PCM 5102A.

ILI9488 -> ESP32:
SDO<MISO> -> G13
LED -> 3V3
SCK -> G12
SDI<MOSI> -> G11
DC/RS -> G9
RESET -> EN
CS -> G10
GND -> GND
VCC -> 3V3

DAC PCM5102A -> ESP32:
BCK -> G5
DIN -> G4
LRCK -> G6
GND -> GND
VIN -> V5IN

Tak wygląda kabelkologia:

Wgrywamy firmware yoRadio do ESP32

Po sprawdzeniu poprawności połączenia, podłączamy za pomocą kabla USB płytkę ESP32 (gniazdko USB TTL) z komputerem. W menedżerze urządzeń sprawdzamy, czy utworzył się na wirtualny port COM. U mnie jest to USB-SERIAL CH340 (COM9). W VSCode wciskamy przycisk → z opisem PlatformIO: Upload:

Na wyświetlaczu ILI9488 po chwili pojawi się taki widok:

W dalszym kroku trzeba by połączyć się z siecią yoRadioAP i wejść na stronę http://192.168.4.1/ tam wpisać nazwę i hasło do WiFi z którym ma się łączyć radio itp. Można też w pliku /data/data/wifi.csv wpisać swoją nazwę sieci, wcisnąć tabulator, wpisać hasło i wgrać te dane do radia by automatycznie się łączyło. Zróbmy tak. Po zapisaniu pliku wifi.csv, na pionowym pasku po lewej stronie okna VSCode wciskamy ikonę z głową mrówki i wybieramy opcję Upload Filesystem Image:

Radio wystartuje z playlistą (plik playlist.csv w fodlerze data) i podłączy się do naszej sieci WiFi. Na dole ekranu jest adres IP prostego interfejsu www:

Ten panel to na tą chwilę jedyny sposób na kontrolowanie yoRadia. W przeglądarce laptopa czy telefonu wpisujemy ten adres i przechodzimy do ustawień – koło zębate w prawym górnym rogu ekranu. W sekcji SYSTEM warto włączyć VU meter, w WEATHER przesuwamy suwak show weather na ON, wpisujemy współrzędne swojego miasta, a na stronie https://openweathermap.org/ zakładamy konto i generujemy darmowy klucz do pogody. Całość zatwierdzamy przyciskiem DONE.

Po tych operacjach ekran yoRadia będzie wyglądał tak:

Dopóki nie mamy enkoderów, pilota czy skonfigurowanego dotyku ekranu, pozostaje nam sterowanie przez ten panel www. Po podłączeniu słuchawek do gniazda jack DAC’a powinniśmy usłyszeć czysty, dobrej jakości dźwięk wybranej stacji radiowej.

Podsumowanie

Jeśli radio udało się uruchomić w takiej, podstawowej wersji, warto rozbudować projekt. Prócz różnych możliwości sterowania, mamy gotowe projekty płytek PCB, obudów drukowanych na drukarkach itp. Na grupach facebookowych istnieje wiele różnych pomysłów i przykładów wykonania gotowego, w pełni funkcjonalnego radia internetowego. Koszt budowy yoRadia jest niewielki, a muszę przyznać, że satysfakcja duża. Warto zainteresować się tym projektem i zbudować samograja do biura czy przydomowego warsztatu.

Możesz również polubić…

Zostaw komentarz

Ta strona używa Akismet do redukcji spamu. Dowiedz się, w jaki sposób przetwarzane są dane Twoich komentarzy.