|

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:

ElementOpis
ESP32-WROOM-32Mikrokontroler, 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 PCM5102Moduł 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 przyciskiemEnkoder 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 PAM8403Niewielki 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 sztukiListwa ś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.54mmGniazdo ż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.54mmGniazdo ż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 cmpł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świetlaczaPin ESP32Uwagi
VCC3,3 VZasilanie wyświetlacza
GNDGNDMasa
CSGPIO 5Chip Select
RESETENReset wyświetlacza
DC (D/C)GPIO 4Wybór danych/komend
SDI (MOSI)GPIO 23Dane SPI
SCK (CLK)GPIO 18Zegar SPI
LED3,3 VStał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

PinNazwaFunkcjaPozycja LOW GNDPozycja HIGH 3.3V
H1LFLTWybór filtra cyfrowegoNormal latency – filtr o standardowym opóźnieniu (wyższa jakość)Low latency – filtr o niskim opóźnieniu (lepsze do gier/real-time)
H2LDEMPDe-emphasis dla nagrań 44,1 kHzOff – funkcja wyłączona (zalecane)On – korekcja starych nagrań z pre-emfazą
H3LXMSTKontrola soft-muteSoft mute – łagodne wyciszenie przy starcieSoft un-mute – natychmiastowe odtwarzanie (zalecane)
H4LFMTWybór formatu danych audioI²S – standardowy format audio (zalecany do Raspberry Pi, ESP32, STM32)Left-justified – format wyrównany do lewej

Przetwornik DAC PCM5102 I2S → ESP32

Pin DAC PCM5102Pin ESP32Uwagi
VCC5 VModuł posiada własny stabilizator
GNDGNDMasa
BCKGPIO 26Bit Clock I2S
LCK GPIO 25Word Select
DINGPIO 27Dane audio

Enkoder obrotowy → ESP32

Pin enkoderaPin ESP32Uwagi
S1GPIO 35Kanał A enkodera
S2GPIO 33Kanał B enkodera
KEYGPIO 32Przycisk
5V5 VZasilanie
GNDGNDMasa

Wzmacniacz PAM8403 → Zasilanie

Pin PAM8403Źródło zasilaniaUwagi
+ (5V)5 V (ESP32 / wspólne zasilanie)Zasilanie wzmacniacza
– (5V)GNDWspólna masa dla całego układu

Wzmacniacz PAM8403 → Przetwornik DAC PCM5102

Pin PAM8403Pin PCM5102Uwagi
LLWejście audio lewego kanału
GGmasa sygnału
RRWejście audio prawego kanału

Wzmacniacz PAM8403 → Wyjścia głośnikowe

Pin PAM8403Podłączenie do złącza śrubowegoUwagi
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 😎👇


Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *