Zbuduj swoje własne YoRadio

Zbuduj swoje własne YoRadio
Yo yo YoRadio w tym artykule pokażemy ci krok po kroku, jak zbudować własne radio internetowe oparte na projekcie YoRadio wykorzystując mikrokontroler ESP32. Projekt ten umożliwia strumieniowe odtwarzanie stacji radiowych z Internetu oraz wygodne sterowanie zarówno za pomocą wbudowanego interfejsu wyświetlacz TFT + enkoder, jak i poprzez przeglądarkę internetową. Dzięki zastosowaniu zewnętrznego przetwornika DAC I2S PCM5102 uzyskamy wysoką jakość dźwięku stereo. Całość zmontujemy na płytce uniwersalnej, co pozwoli na schludne połączenie wszystkich komponentów. Pokażemy także, jak skonfigurować oprogramowanie urządzenia poprzez interfejs webowy wgrywanie plików strona www, lista stacji playlist.csv, konfiguracja Wi-Fi wifi.csv oraz wybieranie stacji radiowych z poziomu przeglądarki. To świetny projekt dla każdego fana elektroniki i muzyki, który marzy o własnym, stylowym radio internetowym! 🎶
Założenia projektu i jego funkcjonalność
Nasz projekt radia internetowego YoRadio będzie posiadał następujące kluczowe funkcje i cechy:
✅ Streaming stacji radiowych z Internetu – urządzenie łączy się z wybraną stacją przez Wi-Fi i odtwarza jej strumień audio. Dzięki temu możemy słuchać stacji z całego świata bez ograniczeń zasięgu tradycyjnego radia.
✅ Sterowanie przez interfejs webowy – radio wyposażone jest w wbudowany serwer WWW, który udostępnia panel do obsługi radia z poziomu przeglądarki. Możliwe jest wgrywanie własnej listy stacji, przełączanie kanałów, regulacja głośności, a także zmiana ustawień systemowych przez wygodną stronę internetową.
✅ Kolorowy wyświetlacz TFT – na wbudowanym ekranie prezentowane są najważniejsze informacje: nazwa aktualnej stacji, tytuł odtwarzanego utworu jeśli stacja udostępnia metadane, siła sygnału Wi-Fi oraz poziom głośności. Dzięki czytelnemu wyświetlaczowi 2.4” TFT obsługa radia jest możliwa także bez użycia przeglądarki.
✅ Wysoka jakość dźwięku – zastosowanie zewnętrznego przetwornika cyfrowo-analogowego PCM5102 zapewnia czysty, stereofoniczny dźwięk o niskim poziomie szumów.
✅ Intuicyjne sterowanie pokrętłem enkoder – do lokalnej obsługi służy obrotowy enkoder z wbudowanym przyciskiem. Umożliwia on wygodne przełączanie stacji, regulację głośności oraz poruszanie się po menu, wszystko to za pomocą jednego pokrętła, co czyni interfejs użytkownika minimalistycznym, ale funkcjonalnym.
✅ Konfiguracja i aktualizacje przez Wi-Fi – pierwsza konfiguracja sieć Wi-Fi, wgranie plików strony WWW oraz listy stacji odbywa się poprzez tryb Access Point, który urządzenie uruchamia przy pierwszym starcie. Późniejsze zmiany ustawień czy aktualizacje firmware mogą być wykonane zdalnie przez przeglądarkę.
Projekt można również rozbudować o dodatkowe funkcje, takie jak obsługa pilota IR czy integracja z systemem inteligentnego domu, jednak w tym poradniku skupimy się na podstawowej konfiguracji urządzenia oraz pokażemy, jak wgrać język polski, ponieważ domyślnie dostępny jest język angielski lub rosyjski.
Lista potrzebnych elementów
Do zbudowania naszego radia internetowego YoRadio będziemy potrzebować poniższych komponentów elektronicznych oraz akcesoriów montażowych. Poniżej przedstawiamy pełną listę elementów użytych w projekcie, wraz z krótkim opisem każdego z nich:
| Element | Opis |
|---|---|
| ESP32-WROOM-32 | Mikrokontroler, serce i mózg całego radia. Moduł ESP32 z Wi-Fi i Bluetooth zapewnia łączność internetową. Standardowy model z 4 MB Flash sprawdzi się idealnie. |
| Wyświetlacz TFT SPI 2.4” | Kolorowy wyświetlacz TFT o rozdzielczości 320×240, kontroler ILI9341. Służy do wyświetlania nazwy stacji, siły sygnału i innych informacji. |
| Przetwornik DAC I2S PCM5102 | Moduł audio DAC dekodujący cyfrowy strumień I2S z ESP32 na analogowy sygnał audio. Zapewnia wysoką jakość stereo oraz czyste brzmienie. Występuje jako płytka z wyjściem jack 3,5mm. |
| Enkoder obrotowy z przyciskiem | Enkoder obrotowy z wbudowanym przyciskiem. Pozwala na nawigację po liście stacji, zmianę głośności oraz pauzowanie/odtwarzanie utworu za pomocą jednego elementu sterującego. |
| Moduł wzmacniacza cyfrowego PAM8403 | Niewielki wzmacniacz audio o mocy do 2×3 W, zasilany napięciem 5 V. Służy do wzmocnienia sygnału audio z przetwornika DAC PCM5102 i umożliwia bezpośrednie podłączenie głośników. |
Głośniki lub słuchawki | Urządzenie wyjściowe audio do odsłuchu radia. Można podłączyć np. małe głośniki lub słuchawki bezpośrednio do wyjścia audio modułu PCM5102 jack 3,5mm. |
| Złącze śrubowe ARK 2-pin dwie sztuki | Listwa śrubowa do podłączenia przewodów głośnikowych. Ułatwia podłączenie zewnętrznego głośnika. |
| Gniazdo goldpin 1×15 pin żeńskie proste 2.54mm | Złącze żeńskie raster 2,54 mm przeznaczone do podłączenia wyświetlacza TFT do płytki uniwersalnej. Zapewnia stabilne połączenie sygnałów SPI oraz zasilania wyświetlacza, a jednocześnie umożliwia jego łatwy montaż i ewentualny demontaż bez ryzyka uszkodzenia modułu. |
| Gniazdo goldpin 1×8 pin żeńskie proste 2.54mm | Gniazdo żeńskie pełniące funkcję mechanicznej podpórki pod wyświetlacz TFT. Służy do ustabilizowania modułu ekranu na płytce uniwersalnej, poprawiając jego sztywność i zapobiegając wyginaniu się. |
| Gniazdo goldpin 1×6 pin żeńskie proste 2.54mm | Gniazdo żeńskie pełniące funkcję mechanicznej podpórki pod wyświetlacz TFT. Służy do ustabilizowania modułu ekranu na płytce uniwersalnej, poprawiając jego sztywność i zapobiegając wyginaniu się |
| Płytka uniwersalna 7×9 cm | płytka uniwersalna z punktami lutowniczymi do montażu wszystkich komponentów. Posłuży jako baza naszego radia, umożliwiając trwałe połączenie elementów. |
Przygotowaliśmy gotowy koszyk, aby maksymalnie ułatwić Wam zakupy i kompletowanie wszystkich potrzebnych elementów, należy jednak pamiętać o ręcznym zwiększeniu ilości tych komponentów, które w projekcie występują więcej niż jeden raz oraz zaopatrzeniu się w przewody do połączeń elementów.
Dysponując powyższymi elementami, możemy przystąpić do budowy radia. Najpierw przygotujemy schemat połączeń, aby poprawnie zintegrować ze sobą moduł ESP32, wyświetlacz TFT, DAC, wzmacniacz oraz enkoder.
Schemat połączeń
Poniżej przedstawiono sposób podłączenia poszczególnych komponentów. Należy zachować ostrożność i zgodność ze schematem, prawidłowe połączenia są kluczowe dla działania układu.
Wyświetlacz TFT → ESP32
| Pin wyświetlacza | Pin ESP32 | Uwagi |
|---|---|---|
| VCC | 3,3 V | Zasilanie wyświetlacza |
| GND | GND | Masa |
| CS | GPIO 5 | Chip Select |
| RESET | EN | Reset wyświetlacza |
| DC (D/C) | GPIO 4 | Wybór danych/komend |
| SDI (MOSI) | GPIO 23 | Dane SPI |
| SCK (CLK) | GPIO 18 | Zegar SPI |
| LED | 3,3 V | Stałe zasilanie podświetlenia |
| SDO (MISO) | GPIO 19 |
Konfiguracja modułu PCM5102
Prawidłowa konfiguracja przetwornika PCM5102 jest kluczowa dla poprawnego działania dźwięku w projekcie. Na początku należy zlutować zworę SCK znajdującą się na module, co pozwala na wykorzystanie wewnętrznego generatora zegara.

Następnie, po stronie spodniej płytki, należy ustawić stany logiczne pinów konfiguracyjnych poprzez odpowiednie pozostawienie lub wykonanie zworek.
Pin H1L należy ustawić w stanie LOW, co wybiera standardowy filtr cyfrowy o wyższej jakości dźwięku. Pin H2L również powinien pozostać w stanie LOW, dzięki czemu funkcja de-emfazy jest wyłączona, co jest zalecane dla współczesnych strumieni audio. Pin H3L należy ustawić w stanie HIGH, co wyłącza tryb soft-mute i umożliwia natychmiastowe odtwarzanie dźwięku po uruchomieniu. Pin H4L pozostawiamy w stanie LOW, wybierając standardowy format danych audio I2S, w pełni kompatybilny z ESP32.

Tabela ustawień konfiguracyjnych PCM5102A
| Pin | Nazwa | Funkcja | Pozycja LOW GND | Pozycja HIGH 3.3V |
|---|---|---|---|---|
| H1L | FLT | Wybór filtra cyfrowego | Normal latency – filtr o standardowym opóźnieniu (wyższa jakość) | Low latency – filtr o niskim opóźnieniu (lepsze do gier/real-time) |
| H2L | DEMP | De-emphasis dla nagrań 44,1 kHz | Off – funkcja wyłączona (zalecane) | On – korekcja starych nagrań z pre-emfazą |
| H3L | XMST | Kontrola soft-mute | Soft mute – łagodne wyciszenie przy starcie | Soft un-mute – natychmiastowe odtwarzanie (zalecane) |
| H4L | FMT | Wybór formatu danych audio | I²S – standardowy format audio (zalecany do Raspberry Pi, ESP32, STM32) | Left-justified – format wyrównany do lewej |
Przetwornik DAC PCM5102 I2S → ESP32
| Pin DAC PCM5102 | Pin ESP32 | Uwagi |
|---|---|---|
| VCC | 5 V | Moduł posiada własny stabilizator |
| GND | GND | Masa |
| BCK | GPIO 26 | Bit Clock I2S |
| LCK | GPIO 25 | Word Select |
| DIN | GPIO 27 | Dane audio |
Enkoder obrotowy → ESP32
| Pin enkodera | Pin ESP32 | Uwagi |
|---|---|---|
| S1 | GPIO 35 | Kanał A enkodera |
| S2 | GPIO 33 | Kanał B enkodera |
| KEY | GPIO 32 | Przycisk |
| 5V | 5 V | Zasilanie |
| GND | GND | Masa |
Wzmacniacz PAM8403 → Zasilanie
| Pin PAM8403 | Źródło zasilania | Uwagi |
|---|---|---|
| + (5V) | 5 V (ESP32 / wspólne zasilanie) | Zasilanie wzmacniacza |
| – (5V) | GND | Wspólna masa dla całego układu |
Wzmacniacz PAM8403 → Przetwornik DAC PCM5102
| Pin PAM8403 | Pin PCM5102 | Uwagi |
|---|---|---|
| L | L | Wejście audio lewego kanału |
| G | G | masa sygnału |
| R | R | Wejście audio prawego kanału |
Wzmacniacz PAM8403 → Wyjścia głośnikowe
| Pin PAM8403 | Podłączenie do złącza śrubowego | Uwagi |
|---|---|---|
| L+ | Głośnik lewy (+) | Wyjście mostkowe BTL |
| L− | Głośnik lewy (−) | Nie łączyć z masą |
| R+ | Głośnik prawy (+) | Wyjście mostkowe BTL |
| R− | Głośnik prawy (−) | Nie łączyć z masą |
Montaż urządzenia
Skoro mamy już kompletną listę elementów oraz dokładnie opisane połączenia elektryczne, możemy przejść do fizycznego montażu naszego radia internetowego YoRadio. Na tym etapie skupimy się na rozmieszczeniu komponentów na płytce uniwersalnej, ich stabilnym zamocowaniu oraz wykonaniu trwałych połączeń lutowanych. Zalecane jest rozpoczęcie montażu od elementów największych, takich jak gniazda goldpin pod wyświetlacz TFT oraz moduł ESP32, a następnie stopniowe dodawanie pozostałych komponentów, czyli przetwornika DAC, wzmacniacza audio oraz enkodera obrotowego. Taki sposób pracy ułatwia zachowanie porządku, minimalizuje ryzyko błędów i pozwala na estetyczne poprowadzenie przewodów. Podczas lutowania należy zwrócić szczególną uwagę na poprawną polaryzację zasilania, solidne połączenia masy oraz unikanie zwarć pomiędzy sąsiednimi punktami lutowniczymi, ponieważ od jakości montażu zależy stabilność i niezawodność całego urządzenia.
Montaż YoRadia krok po kroku
Krok 1: przygotowanie płytki uniwersalnej i gniazd
Na początku przygotowujemy płytkę uniwersalną 7×9 cm, na której montujemy gniazda goldpin zgodnie z planowanym rozmieszczeniem elementów. Gniazdo 1×15 pin przeznaczone jest do podłączenia wyświetlacza TFT(wyświetlacz ma 14 pinów dlatego przycieliśmy delikatnie listę), natomiast gniazda 1×8 oraz 1×6 pin pełnią funkcję mechanicznych podpórek pod ekran. W tym etapie warto zwrócić uwagę na zachowanie równoległości gniazd, aby później wyświetlacz został osadzony równo i stabilnie. Na końcu wlutuj listwę śrubową złącze ARK w prawym dolnym rogu płytki, która będzie wyjściem na przewody głośnikowe, i koniecznie dopilnuj, aby wszystkie te elementy były ustawione prosto, bo od tego zależy późniejsza estetyka i łatwość montażu kolejnych modułów.

Krok 2: montaż głównych modułów na płytce
W kolejnym etapie przystępujemy do montażu głównych modułów elektronicznych na przygotowanej wcześniej płytce uniwersalnej. W górnej części płytki osadzamy moduł ESP32, wsuwając go tak, aby złącze USB pozostało łatwo dostępne do późniejszego programowania oraz zasilania. Następnie w dolnej części płytki montujemy przetwornik DAC PCM5102, zwracając uwagę na odpowiednie ustawienie gniazda jack 3,5 mm, tak aby po złożeniu urządzenia możliwe było wygodne podłączenie słuchawek lub przewodu audio. Obok przetwornika instalujemy enkoder obrotowy, który powinien być umieszczony centralnie i w taki sposób, aby jego pokrętło było łatwo dostępne podczas użytkowania. Na tym etapie warto upewnić się, że wszystkie elementy są osadzone równo, nie kolidują ze sobą mechanicznie i pozostawiają wystarczającą ilość miejsca na wykonanie połączeń przewodami od spodu płytki.

Krok 3: montaż wzmacniacza audio i wykonanie połączeń
W tym kroku montujemy wzmacniacz audio PAM8403 po spodniej stronie płytki uniwersalnej, mocując go za pomocą taśmy dwustronnej lub niewielkiej ilości kleju na gorąco, tylko w takiej ilości, aby moduł stabilnie trzymał się płytki i nie przemieszczał się podczas dalszych prac. Następnie wykonujemy wszystkie niezbędne połączenia elektryczne całego układu, łącząc mikrokontroler ESP32 z wyświetlaczem TFT, przetwornikiem DAC PCM5102 oraz enkoderem obrotowym zgodnie z wcześniej przygotowanym schematem. W dalszej kolejności łączymy przetwornik DAC z wzmacniaczem PAM8403, podając sygnały audio lewego i prawego kanału oraz wspólną masę. Kolejnym etapem jest podłączenie wzmacniacza do złączy głośnikowych poprzez listwę śrubową ARK, wyprowadzając sygnały L+, L− oraz R+, R− i pamiętając, że są to wyjścia mostkowe, których nie wolno łączyć z masą. Na końcu doprowadzamy zasilanie wzmacniacza, czyli napięcie 5 V oraz masę ze wspólnej linii zasilania, dbając o solidne luty i estetyczne prowadzenie przewodów, ponieważ na tym etapie powstaje kompletne okablowanie całego radia.

Krok 4: montaż wyświetlacza TFT
W tym kroku montujemy wyświetlacz TFT 2.4” na wcześniej przygotowanych gniazdach goldpin. Delikatnie wsuwamy wyświetlacz w gniazdo 1×14 pin, zwracając uwagę na prawidłowe dopasowanie wszystkich wyprowadzeń, a następnie opieramy go na gniazdach 1×8 oraz 1×6 pin, które pełnią funkcję podpórek mechanicznych. Dzięki temu ekran jest stabilnie osadzony, nie wygina się i nie obciąża połączeń lutowanych.
Na tym etapie warto jeszcze raz przeprowadzić przegląd: sprawdź, czy nic się nie poluzowało, czy nie ma przypadkowych zwarć, a także czy enkoder obraca się płynnie. Gotowy moduł możesz zamocować w obudowie lub postawić na stelażu, w tym poradniku skupiamy się na elektronice, więc kwestia obudowy pozostaje dowolna. Nasze radio w wersji na płytce uniwersalnej jest już zmontowane pod względem sprzętowym, czas tchnąć w nie życie poprzez wgranie oprogramowania!

Oprogramowanie YoRadio: pobranie i przygotowanie plików
Skoro radio jest już w pełni zmontowane od strony sprzętowej, możemy przejść do kolejnego etapu, czyli przygotowania oprogramowania YoRadio, które odpowiada za obsługę wyświetlacza, dźwięku, Wi-Fi oraz interfejsu webowego. Cały projekt jest dostępny publicznie na platformie GitHub, dzięki czemu mamy dostęp do aktualnych wersji kodu oraz wszystkich niezbędnych plików konfiguracyjnych.
W pierwszej kolejności przechodzimy na oficjalną stronę projektu YoRadio na GitHubie. Po wejściu do repozytorium klikamy przycisk Code, a następnie wybieramy opcję Download ZIP, aby pobrać całe repozytorium w postaci archiwum. Po zakończeniu pobierania wypakowujemy archiwum ZIP, najlepiej bezpośrednio na pulpicie lub w innym łatwo dostępnym katalogu, ponieważ w kolejnych krokach będziemy pracować na zawartych w nim plikach. Po rozpakowaniu uzyskamy kompletną strukturę projektu YoRadio, zawierającą kod źródłowy, pliki konfiguracyjne, zasoby strony WWW oraz przykładowe konfiguracje.

Generator ustawień YoRadio konfiguracja projektu
Zanim przejdziemy do kompilacji i wgrywania oprogramowania na ESP32, musimy poprawnie skonfigurować projekt YoRadio pod użyte przez nas komponenty. Autor projektu przygotował wygodny generator ustawień, który pozwala w prosty sposób wybrać odpowiednie opcje bez ręcznego edytowania plików konfiguracyjnych.
Generator dostępny jest pod adresem:
https://e2002.github.io/docs/myoptions-generator.html
Dzięki temu narzędziu możemy określić m.in. typ mikrokontrolera, rodzaj wyświetlacza, sposób wyjścia audio, obsługę enkodera oraz inne funkcje projektu, a następnie wygenerować gotowy plik konfiguracyjny, który wykorzystamy w dalszej części poradnika.
W pierwszym kroku w generatorze ustawień przechodzimy do sekcji ESP32 MODULE i wybieramy opcję WROOM, ponieważ w naszym projekcie wykorzystujemy moduł ESP32-WROOM-32, czyli najpopularniejszą wersję ESP32 z wbudowaną pamięcią Flash i standardowym zestawem peryferiów. Taki wybór zapewnia pełną kompatybilność z przygotowanym przez nas hardware’em i jest właściwą opcją dla większości płytek ESP32 dostępnych w sprzedaży.

W kolejnym kroku generatora przechodzimy do sekcji I NEED TO SET UP, w której wybieramy funkcje, jakie ma posiadać nasze YoRadio. W naszym projekcie oznaczamy opcje LANGUAGE, DISPLAY oraz ENCODERS, ponieważ chcemy mieć możliwość ustawienia języka interfejsu, korzystamy z wyświetlacza TFT do prezentowania informacji oraz sterujemy radiem za pomocą enkodera obrotowego. Pozostałe opcje, takie jak BUTTONS, TOUCHSCREEN, SD CARD, RTC oraz IR, LED, ETC., pozostawiamy niezaznaczone, ponieważ w tej konstrukcji nie wykorzystujemy dodatkowych przycisków, ekranu dotykowego, karty SD, zegara czasu rzeczywistego ani zewnętrznych modułów sterowania, co upraszcza konfigurację i w pełni odpowiada zastosowanemu sprzętowi.

W następnym, bardzo ważnym kroku przechodzimy do sekcji LANGUAGE i jeżeli chcemy korzystać z języka polskiego w YoRadio, wybieramy język rosyjski (RU). Jest to istotne, ponieważ w aktualnej wersji projektu właśnie ta opcja umożliwia późniejsze wgranie własnych plików językowych, w tym wersji polskiej wraz z poprawnym wyświetlaniem polskich znaków diakrytycznych. W dalszej części poradnika pokażemy dokładnie, jak podmienić pliki językowe i uzyskać pełny interfejs w języku polskim. Jeżeli natomiast nie zależy Wam na języku polskim, możecie w tym miejscu wybrać język angielski (EN) i pominąć późniejszy etap związany z wgrywaniem dodatkowych plików językowych.

W kolejnym kroku przechodzimy do sekcji DISPLAY, w której konfigurujemy typ wyświetlacza oraz przypisanie pinów SPI. W naszym projekcie wybieramy sterownik ILI9341, ponieważ używamy wyświetlacza TFT 2.4” pracującego właśnie na tym kontrolerze. Następnie w części DISPLAY PINS pozostawiamy magistralę VSPI, czyli MOSI 23, MISO 19 oraz SCK 18, co jest zgodne z połączeniami wykonanymi wcześniej na płytce oraz domyślną konfiguracją ESP32. Poniżej ustawiamy piny sterujące wyświetlaczem: pin DC ustawiamy na GPIO 4, pin CS na GPIO 5, natomiast pin RST ustawiamy na -1, ponieważ w naszym projekcie linia resetu wyświetlacza nie jest sterowana programowo. Podświetlenie BACKLIGHT pozostawiamy ustawione na 255, co oznacza stałe włączenie podświetlenia wyświetlacza.

W kolejnym kroku generatora przechodzimy do sekcji AUDIO, w której konfigurujemy sposób wyjścia dźwięku. W naszym projekcie wybieramy opcję I2S EXTERNAL, ponieważ korzystamy z zewnętrznego przetwornika cyfrowo-analogowego PCM5102 podłączonego do ESP32 przez interfejs I2S. Opcje VS1053, INTERNAL oraz MONO pozostawiamy niezaznaczone, gdyż nie korzystamy ani z dekodera VS1053, ani z wewnętrznego DAC-a ESP32, a dźwięk ma być odtwarzany w trybie stereo.
Poniżej, w sekcji AUDIO PINS, ustawiamy piny interfejsu I2S zgodnie z wykonanym wcześniej okablowaniem. Pin DIN / DOUT ustawiamy na GPIO 27, pin BCLK na GPIO 26, natomiast pin LRC / WSEL na GPIO 25. Takie przypisanie zapewnia poprawną komunikację pomiędzy ESP32 a przetwornikiem PCM5102 i jest w pełni zgodne z konfiguracją sprzętową naszego radia.

W następnym kroku przechodzimy do sekcji ENCODERS, w której konfigurujemy obsługę enkodera obrotowego. W naszym projekcie zaznaczamy opcję ENCODER #2, ponieważ właśnie ten wariant enkodera jest używany w konfiguracji YoRadio z jednym pokrętłem sterującym. Opcję ENCODER #1 pozostawiamy niezaznaczoną.
Poniżej, w sekcji ENCODERS PINS, przypisujemy piny zgodnie z wykonanym wcześniej okablowaniem. Pin S1 ustawiamy na GPIO 35, pin S2 na GPIO 33, natomiast pin KEY na GPIO 32, który odpowiada za wciśnięcie przycisku enkodera. Opcje INTERNAL PULLUP oraz HALFQUARD pozostawiamy wyłączone, ponieważ w tej konstrukcji nie są wymagane i enkoder działa poprawnie bez dodatkowych ustawień programowych.

Na sam koniec konfiguracji w generatorze klikamy przycisk GET MYOPTIONS.H, który generuje gotowy plik konfiguracyjny dopasowany do naszego sprzętu i wybranych wcześniej opcji.

Na tym etapie warto skorzystać z funkcji PREVIEW, która pozwala w czytelny sposób podejrzeć graficzne rozmieszczenie wszystkich wybranych pinów oraz połączeń na module ESP32. Po kliknięciu przycisku PREVIEW generator wyświetli schemat poglądowy, na którym dokładnie widać, które piny ESP32 są przypisane do wyświetlacza TFT, interfejsu I2S, enkodera oraz pozostałych funkcji. Jest to bardzo pomocny krok kontrolny, ponieważ możemy porównać ten widok z naszą rzeczywistą płytką i upewnić się, że wszystkie połączenia zostały wykonane poprawnie i zgodnie z konfiguracją projektu, zanim przejdziemy dalej do kompilacji i wgrywania oprogramowania.
Dla ułatwienia udostępniamy również gotowy link do generatora z już ustawioną konfiguracją, dokładnie taką, jaką wykorzystujemy w tym poradniku. Otwierając adres, otrzymacie kompletne, wstępnie skonfigurowane ustawienia, które możecie od razu podejrzeć, zmodyfikować lub wygenerować z nich plik myoptions.h bez ręcznego zaznaczania wszystkich opcji od początku.

Po pobraniu pliku myoptions.h zapisujemy go na komputerze, a następnie kopiujemy do wypakowanego wcześniej folderu projektu YoRadio, dokładnie do katalogu:
C:\Users\piotr\Desktop\yoradio-main\yoradio-main\yoRadio
W tym miejscu plik myoptions.h nadpisze lub uzupełni domyślną konfigurację projektu i będzie używany podczas kompilacji oprogramowania. Po poprawnym skopiowaniu pliku mamy już kompletnie skonfigurowany projekt YoRadio pod nasz sprzęt i możemy przejść do kolejnego etapu, czyli przygotowania środowiska Arduino oraz wgrania oprogramowania na moduł ESP32.

Wgrywanie języka polskiego do YoRadio
Domyślnie YoRadio nie posiada gotowego interfejsu w języku polskim, jednak dzięki odpowiedniej konfiguracji i podmianie kilku plików możemy uzyskać pełne tłumaczenie wraz z poprawnym wyświetlaniem polskich znaków diakrytycznych. W tym etapie pokażemy krok po kroku, jakie pliki należy podmienić oraz gdzie je umieścić, aby interfejs działał poprawnie.
Link do pobrania paczki z Polskimi znakami 👇
Krok 1: podmiana pliku językowego interfejsu
W pierwszej kolejności kopiujemy plik displayL10n_custom.h i wklejamy go do folderu:
yoRadio\locale\
Jeżeli w tym folderze znajduje się już plik o tej samej nazwie, należy go zastąpić nową wersją. Plik ten odpowiada za tłumaczenie elementów interfejsu użytkownika, takich jak menu, komunikaty systemowe oraz opisy funkcji.

Krok 2: obsługa polskich znaków UTF-8
Następnie kopiujemy plik utf8Rus.cpp i wklejamy go do katalogu:
yoRadio\src\displays\tools\
Ten plik odpowiada za prawidłową obsługę kodowania znaków UTF-8, co jest niezbędne do poprawnego wyświetlania polskich liter takich jak ą, ć, ę, ł, ń, ó, ś, ż i ź. Bez tego kroku napisy na wyświetlaczu mogłyby pojawiać się w formie nieczytelnych symboli.

Krok 3: instalacja biblioteki Adafruit GFX i podmiana pliku glcdfont.c
Zanim podmienimy plik glcdfont.c, musimy upewnić się, że w Arduino IDE zainstalowana jest biblioteka Adafruit_GFX_Library, ponieważ to ona odpowiada za obsługę grafiki i czcionek na wyświetlaczu TFT.
W tym celu uruchamiamy Arduino IDE, a następnie otwieramy Menedżer bibliotek, korzystając ze skrótu klawiszowego Ctrl + Shift + I. Alternatywnie można wejść w menu Szkic → Dołącz bibliotekę → Zarządzaj bibliotekami, jednak skrót klawiszowy jest najszybszą metodą.

Po otwarciu Menedżera bibliotek w polu wyszukiwania wpisujemy Adafruit GFX, a następnie instalujemy bibliotekę Adafruit_GFX_Library (jeżeli jest już zainstalowana, nie musimy wykonywać tej czynności ponownie). Po zakończeniu instalacji zamykamy Menedżer bibliotek i Arduino IDE.

Dopiero po zainstalowaniu biblioteki przechodzimy do właściwej podmiany pliku. Kopiujemy plik glcdfont.c i wklejamy go do folderu biblioteki:
Dokumenty\Arduino\libraries\Adafruit_GFX_Library\
Jeżeli plik o tej nazwie już istnieje, należy go zastąpić nową wersją. To właśnie ten plik zawiera zmodyfikowaną czcionkę umożliwiającą poprawne wyświetlanie polskich znaków diakrytycznych na ekranie TFT.
UWAGA!
Domyślnie biblioteki Arduino są instalowane w folderze:
Dokumenty\Arduino\libraries\
Jeżeli w Twoim przypadku Arduino IDE korzysta z innej lokalizacji, możesz ją sprawdzić w menu Plik → Preferencje, w polu „Lokalizacja szkicownika”. Docelowa ścieżka do wklejenia pliku glcdfont.c zawsze będzie wyglądać następująco:
[Lokalizacja szkicownika]\libraries\Adafruit_GFX_Library\

Krok 4: ustawienie języka w pliku myoptions.h
Na koniec otwieramy plik myoptions.h i upewniamy się, że znajduje się w nim lub dodajemy poniższa linia:
define L10N_LANGUAGE RU
To ustawienie sprawia, że YoRadio korzysta z plików językowych przypisanych do języka rosyjskiego, które w naszym przypadku zostały zastąpione wersją polską.
Po zapisaniu pliku projekt jest już w pełni przygotowany do pracy z językiem polskim i możemy przejść do kolejnego etapu, czyli kompilacji oraz wgrywania oprogramowania na ESP32.

Przygotowanie Arduino IDE i instalacja pakietu ESP32
Zanim przejdziemy do wgrywania oprogramowania YoRadio na moduł ESP32, musimy przygotować odpowiednie środowisko programistyczne. Projekt YoRadio nie jest kompatybilny z Arduino IDE w wersji 2.x.x, dlatego należy użyć klasycznej wersji Arduino IDE 1.8.19.
Wymagania projektu YoRadio:
- Arduino IDE 1.8.19
- Pakiet ESP32 (ESP32 core) w wersji 2.0.0 lub nowszej
Jeżeli masz zainstalowaną wersję Arduino IDE 2.x.x, zaleca się jej nie używać do tego projektu i pobrać starszą wersję 1.8.19 ze strony Arduino.
dodanie obsługi ESP32 do Arduino IDE
Po uruchomieniu Arduino IDE 1.8.19 przechodzimy do menu Plik → Preferencje. W polu „Dodatkowe adresy URL do menedżera płytek” wklejamy poniższy adres:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
Jeżeli w tym polu znajdują się już inne adresy, oddzielamy je przecinkiem. Następnie zatwierdzamy zmiany przyciskiem OK.

Kolejnym krokiem jest instalacja pakietu ESP32. W tym celu przechodzimy do menu:
Narzędzia → Płytka → Menedżer płytek
W polu wyszukiwania wpisujemy ESP32, a następnie wybieramy pakiet esp32 by Espressif Systems. Instalujemy wersję 2.0.0 lub nowszą, zgodnie z wymaganiami projektu YoRadio. Proces instalacji może potrwać kilka minut, ponieważ pobierane są wszystkie niezbędne pliki kompilatora oraz narzędzia.
Po zakończeniu instalacji zamykamy Menedżera płytek.
Po poprawnym wykonaniu tych kroków Arduino IDE jest w pełni przygotowane do pracy z ESP32 i projektem YoRadio. W następnym etapie wybierzemy odpowiednią płytkę, port COM oraz przejdziemy do kompilacji i wgrania oprogramowania na ESP32, a następnie do pierwszego uruchomienia radia.

wybór płytki i ustawień w Arduino IDE
Po zainstalowaniu pakietu ESP32 przechodzimy do konfiguracji ustawień płytki w Arduino IDE. Wchodzimy w menu Narzędzia i ustawiamy wszystkie opcje dokładnie tak, jak pokazano na poniższym zrzucie ekranu. Jako płytkę wybieramy Board: „ESP32 Dev Module”, ponieważ jest to uniwersalna konfiguracja w pełni kompatybilna z modułem ESP32-WROOM-32 używanym w tym projekcie.
Na końcu wybieramy odpowiedni Port COM, pod którym widoczny jest nasz moduł ESP32, a następnie upewniamy się, że pozostałe ustawienia pozostają domyślne. Poprawne skonfigurowanie tych opcji jest bardzo ważne, ponieważ bezpośrednio wpływa na poprawne wgranie i działanie oprogramowania YoRadio.

wgrywanie oprogramowania na ESP32
Po poprawnym skonfigurowaniu wszystkich ustawień w Arduino IDE możemy przejść do wgrywania oprogramowania na moduł ESP32. W tym celu klikamy przycisk Wgraj (ikona strzałki w lewo) znajdujący się na górnym pasku narzędzi Arduino IDE. Program rozpocznie proces kompilacji projektu YoRadio, a następnie wgrania go do pamięci ESP32.
Należy uzbroić się w cierpliwość, ponieważ cały proces może potrwać nawet kilka minut, szczególnie podczas pierwszego wgrywania, gdy Arduino IDE kompiluje dużą ilość plików oraz bibliotek. W trakcie tego etapu nie należy odłączać modułu od komputera ani zamykać programu.
Jeżeli podczas kompilacji pojawi się komunikat o brakujących bibliotekach, nie jest to błąd krytyczny oznacza to jedynie, że Arduino IDE nie ma jeszcze zainstalowanych wszystkich wymaganych zależności. W takiej sytuacji należy, tak jak we wcześniejszych krokach, otworzyć Menedżer bibliotek (skrót Ctrl + Shift + I), wyszukać wskazaną w komunikacie bibliotekę i zainstalować ją, a następnie ponownie uruchomić proces wgrywania.
Po zakończeniu wgrywania w dolnym oknie Arduino IDE pojawi się komunikat informujący o pomyślnym przesłaniu programu, co oznacza, że radio jest gotowe do pierwszego uruchomienia i dalszej konfiguracji.

Po poprawnym wgraniu oprogramowania YoRadio uruchamiamy moduł ESP32. Przy pierwszym starcie urządzenie automatycznie tworzy własny punkt dostępowy Wi-Fi, którego nazwa (SSID) pojawi się na wyświetlaczu TFT. Domyślne hasło do tej sieci to:
12345987
Na komputerze łączymy się z tą siecią Wi-Fi yoRadioAP, a następnie na tym samym urządzeniu otwieramy przeglądarkę internetową i wpisujemy adres:
192.168.4.1
Po chwili powinniśmy zobaczyć stronę ëRadio – WEB Board Uploader, dokładnie taką jak na załączonym zrzucie ekranu. Jest to wbudowany interfejs webowy, który umożliwia dalszą konfigurację radia.

Na tej stronie wgrywamy pliki strony WWW z katalogu yoRadio/data/www/, które odpowiadają za wygląd oraz działanie interfejsu webowego radia. Dodatkowo w tym poradniku udostępniamy gotowy plik playlist.csv z 7 przykładowymi, podstawowymi stacjami radiowymi, przygotowanymi specjalnie pod YoRadio, plik ten można pobrać z linku, który podajemy poniżej, i wgrać bezpośrednio przez ten formularz.
Jeżeli chcesz rozbudować listę stacji, pełną i bardzo obszerną bazę stacji radiowych znajdziesz pod adresem:
Z tej listy możesz swobodnie wybierać interesujące Cię stacje i dopisywać je do pliku playlist.csv, tworząc własną, spersonalizowaną listę ulubionych rozgłośni. Opcjonalnie w tym samym miejscu możesz również wgrać plik wifi.csv, jeżeli chcesz ustawić połączenie z siecią Wi-Fi bezpośrednio z poziomu pliku, bez ręcznej konfiguracji w przeglądarce.
lista stacji radiowych nie jest niczym zamkniętym na etapie wgrywania plików. Stacje można dodawać, edytować i usuwać również później, w dowolnym momencie, bez ponownego programowania ESP32. Wystarczy wejść do panelu webowego YoRadio przez przeglądarkę internetową, korzystając z adresu IP urządzenia w sieci lokalnej, gdzie dostępny jest wygodny interfejs do zarządzania playlistą. Dzięki temu możesz na bieżąco dopasowywać zawartość radia do swoich preferencji i aktualizować listę stacji wtedy, kiedy tylko masz na to ochotę.

Następnie konfigurujemy połączenie Wi-Fi z naszą domową siecią, podając nazwę sieci (SSID) oraz hasło. Po zapisaniu ustawień radio połączy się z routerem i otrzyma własny adres IP.
Po udanym połączeniu z siecią domową wchodzimy w przeglądarce na adres:
http://<adres_IP_radia>/
gdzie możemy:
- dodawać i edytować listę stacji radiowych,
- importować stacje,
- sterować radiem bezpośrednio z poziomu przeglądarki.

Jeżeli na tym etapie widzisz interfejs radia, a dźwięk zaczyna grać gratulacje, Twoje YoRadio działa poprawnie i jest gotowe do codziennego użytkowania 🎶

Podsumowanie
w tym poradniku przeszliśmy przez kompletną, podstawową ścieżkę uruchomienia YoRadio na ESP32 od doboru komponentów i wykonania połączeń, przez montaż na płytce uniwersalnej i konfigurację przetwornika PCM5102, aż po wygenerowanie pliku myoptions.h w generatorze, kompilację projektu w Arduino IDE oraz pierwsze uruchomienie i konfigurację radia z poziomu przeglądarki. Dodatkowo pokazaliśmy, jak wgrać język polski wraz z obsługą polskich znaków, co dla wielu osób jest kluczowe, jeśli radio ma być używane na co dzień i ma wyglądać „jak gotowiec”, a nie jak testowy prototyp.
To był już naprawdę duży wpis, dlatego świadomie skupiliśmy się na wersji „podstawowej”, czyli takiej, która pozwala uruchomić działające radio internetowe z wyświetlaczem TFT, enkoderem i porządnym dźwiękiem przez zewnętrzny DAC oraz wzmacniacz. Jeśli jednak będziecie chętni, możemy przygotować drugi artykuł, w którym przejdziemy przez wszystkie dodatkowe możliwości YoRadio, bo ten projekt jest niesamowicie rozbudowany i pozwala na mnóstwo konfiguracji. Da się dorobić własną obudowę, zastosować inne wyświetlacze (różne rozmiary i sterowniki), inne DAC-i i wzmacniacze, dodać dodatkowe przyciski, ekrany dotykowe, RTC, obsługę pilota IR, LED-y, czujniki czy integrację z systemem inteligentnego domu, a to nadal tylko część opcji dostępnych w generatorze i w samym projekcie.

Najważniejsze jest to, żeby się tym bawić, kombinować i testować, bo YoRadio daje ogromną swobodę i świetnie nadaje się do rozwijania projektu krok po kroku. Jeżeli zbudujecie swoją wersję, zmienicie konfigurację albo zrobicie obudowę, to koniecznie dajcie znać, jak Wam wyszło i jakie modyfikacje zastosowaliście, chętnie zobaczymy Wasze realizacje i pomysły na kolejne ulepszenia. 🎶

Prezentowaną w artykule elektronikę znajdziesz oczywiście w naszym sklepie 👉 sklep.msalamon.pl 👈Zapraszamy również na nasze social media, gdzie na bieżąco informujemy o nowych produktach oraz o najciekawszych promocjach 😎👇


