logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

Seba_smd 14 Cze 2026 16:54 9723 87

TL;DR LABEL_AI_GENERATED

  • Projekt tworzy proste radio internetowe oparte na ESP32-S3 N16R8 z DAC PCM5102, wyświetlaczami OLED lub kolorowymi, enkoderami i pilotem IR.
  • Firmware wgrywa się bezpośrednio z przeglądarki przez Web Serial API, bez Arduino IDE i PlatformIO, a początkową sieć WiFi ustawia się przez terminal UART.
  • Panel WWW pozwala przypisać piny wyświetlacza, enkoderów i wybudzania, zaprogramować przyciski IR NEC 38kHz oraz zarządzać stacjami i jasnością ekranu.
  • Instalacja działa po wejściu na seba131.github.io/esp32-radio-installer/ w Chrome lub Edge i kończy się w kilkadziesiąt sekund, prowadząc do grającego radia.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA
Słuchaj:
  • Cześć!
    Chciałbym zaprezentować Wam mój projekt radia internetowego opartego na module ESP32-S3. Głównym założeniem było stworzenie systemu, który uruchomi absolutnie każdy – bez konieczności instalowania środowiska IDE, szukania brakujących bibliotek czy rozwiązywania problemów z kompilacją. Cały firmware wgrywa się bezpośrednio z poziomu przeglądarki!

    🔧 Wykorzystany sprzęt (Hardware)
    Sercem układu jest ESP32-S3 N16R8, który świetnie radzi sobie z obsługą audio i interfejsu sieciowego. Oprócz tego do budowy potrzebujemy:

    Przetwornik DAC: PCM5102 (komunikacja I2S)

    Wyświetlacz: Obsługiwane są zarówno OLED-y (np. SSD1309 / SH1106 po I2C), jak i wyświetlacze kolorowe (SPI).

    Sterowanie: Enkodery obrotowe oraz odbiornik podczerwieni (IR 38kHz, standard NEC) do obsługi z pilota.

    Zasilanie: 5V.

    💻 Oprogramowanie i błyskawiczna instalacja
    Największą zaletą projektu jest sposób instalacji. Nie potrzebujecie Arduino IDE czy PlatformIO.

    Podłączamy ESP32-S3 do portu USB.

    Wchodzimy na dedykowaną stronę internetową (wykorzystującą Web Serial API – działa w Chrome/Edge).
    https://seba131.github.io/esp32-radio-installer/

    Klikamy "Zainstaluj", wybieramy port COM i czekamy kilkadziesiąt sekund.

    Gotowe! Konfigurację początkową (hasło do sieci WiFi) możemy wykonać przez terminal UART bezpośrednio na tej samej stronie internetowej.

    ⚙️ Konfiguracja przez panel WWW
    Gdy radio połączy się z naszą siecią domową, całą resztę ustawiamy z poziomu przeglądarki pod jego adresem IP. Z poziomu panelu możemy:

    Przypisać dowolne piny pod wyświetlacz (CS, DC, SDA, SCL itp.).

    Skonfigurować piny dla enkoderów i określić ich "kroki" (zapobiega to przeskakiwaniu o 2 pozycje przy jednym kliknięciu).

    Zaprogramować przyciski pilota IR (odczyt kodów w locie i przypisywanie ich do funkcji: głośniej, ciszej, następna stacja, tryb uśpienia, regulacja diody RGB).

    Zarządzać listą stacji radiowych.

    Ustawić jasność wyświetlacza i rotację obrazu (0/180 stopni).

    Skonfigurować pin wybudzania (np. do wysterowania przekaźnika załączającego zewnętrzny wzmacniacz).

    📺 Prezentacja wideo
    Dla osób zainteresowanych tym, jak dokładnie przebiega proces instalacji, jak wygląda panel WWW i jak radio działa w praktyce, przygotowałem krótki film. Pokazuję na nim krok po kroku cały proces od czystego ESP do grającego radia:




    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!

    Fajne? Ranking DIY
    O autorze
    Seba_smd
    Poziom 17  
    Offline 
  • REKLAMA
  • #2 21921244
    simw
    Poziom 27  
    Posty: 759
    Pomógł: 94
    Ocena: 288
    Seba_smd napisał:
    Dla osób zainteresowanych tym, jak dokładnie przebiega proces instalacji, jak wygląda panel WWW i jak radio działa w praktyce, przygotowałem krótki film

    Super inicjatywa i wykonanie, pewnie skorzystam przy okazji.

    Wg mnie brakuje jednej ważnej informacji i zadziałania. Moduł ESP32S3 nie ma skonfigurowanego pinu boot i w losowych momentachh po resecie będzie wchodził do trybu programowania, będzie to irytowało i wymagało resetu. Należy podciągnąc pin GPIO0 do 3.3V
  • #3 21921311
    maliniak80
    Poziom 17  
    Posty: 289
    Pomógł: 2
    Ocena: 377
    Dobra robota, akurat myslalem o takim radyjku jako uzupełnienie lampowego wzmacniaczyka do warsztatowego grajka.
  • #5 21921512
    efi222
    Poziom 22  
    Posty: 779
    Pomógł: 12
    Ocena: 1221
    lemgo napisał:
    Rozważałeś opublikowanie źródeł?

    Myślę, że zamysł autora był taki, żeby było prosto, bez kombinacji z wersjami core, bibliotekami, jakimiś łatami i często walką z kompilacją itp.
    Kodów źródłowych radyjek jest pełno w internecie.
  • REKLAMA
  • #6 21921562
    szwagros
    Poziom 33  
    Posty: 1844
    Pomógł: 232
    Ocena: 271
    simw napisał:
    Wg mnie brakuje jednej ważnej informacji i zadziałania. Moduł ESP32S3 nie ma skonfigurowanego pinu boot i w losowych momentachh po resecie będzie wchodził do trybu programowania, będzie to irytowało i wymagało resetu. Należy podciągnąc pin GPIO0 do 3.3V

    GPIO0 w ESP32S3 jest wewnętrznie podciągnięty do 3.3V, można zostawić go wiszącego.
  • #7 21921600
    Seba_smd
    Poziom 17  
    Posty: 323
    Pomógł: 8
    Ocena: 114
    efi222 napisał:
    lemgo napisał:
    Rozważałeś opublikowanie źródeł?

    Myślę, że zamysł autora był taki, żeby było prosto, bez kombinacji z z wersjami core, bibliotekami, jakimiś łatami i często walką z kompilacją itp.
    Kodów źródłowych radyjek jest pełno w internecie.


    Dokładnie taki był zamiar.
    Co do źródeł jest tego full np.
    Link
    Link
    Link
    i wiele innych.
  • #8 21921602
    atlantis2
    Poziom 17  
    Posty: 309
    Pomógł: 23
    Ocena: 37
    szwagros napisał:
    simw napisał:
    Wg mnie brakuje jednej ważnej informacji i zadziałania. Moduł ESP32S3 nie ma skonfigurowanego pinu boot i w losowych momentachh po resecie będzie wchodził do trybu programowania, będzie to irytowało i wymagało resetu. Należy podciągnąc pin GPIO0 do 3.3V

    GPIO0 w ESP32S3 jest wewnętrznie podciągnięty do 3.3V, można zostawić go wiszącego.


    W tanich modułach z aliexpress, pomiędzy GPIO0 a masą znajduje się kondensator 100nF, który powoduje przechodzenie w BOOT. Należy go usunąć, lub jak wspomniał przedmówca, podciągnąć dodatkowym rezystorem do VCC (wewnętrzne podciąganie za długo ładuje ów kondensator).
  • #9 21921705
    John Yossarian
    Poziom 12  
    Posty: 62
    Pomógł: 1
    Ocena: 20
    >>21921192 Fajny projekt. Bazuje chyba na YoRadio, ale oszczędza kompilacji :)
  • #10 21921710
    sq3evp
    Poziom 39  
    Posty: 6742
    Pomógł: 226
    Ocena: 902
    Nie pozostaje nic tylko sprawdzić - mam w sumie wszystko poza DAC i problem z dekodowanien audio ze strumienia.
    Chybam, że przez BT z ESP można sparować z BT z wyjściem audio.
  • #11 21921716
    John Yossarian
    Poziom 12  
    Posty: 62
    Pomógł: 1
    Ocena: 20
    >>21921710 Ten problem może wynikać z tego, bibliotek audioI2S nie obsłuży poprawnie strumieni po https. Muszą być po http.
  • #12 21921874
    Seba_smd
    Poziom 17  
    Posty: 323
    Pomógł: 8
    Ocena: 114
    atlantis2 napisał:
    szwagros napisał:
    simw napisał:
    Wg mnie brakuje jednej ważnej informacji i zadziałania. Moduł ESP32S3 nie ma skonfigurowanego pinu boot i w losowych momentachh po resecie będzie wchodził do trybu programowania, będzie to irytowało i wymagało resetu. Należy podciągnąc pin GPIO0 do 3.3V

    GPIO0 w ESP32S3 jest wewnętrznie podciągnięty do 3.3V, można zostawić go wiszącego.


    W tanich modułach z aliexpress, pomiędzy GPIO0 a masą znajduje się kondensator 100nF, który powoduje przechodzenie w BOOT. Należy go usunąć, lub jak wspomniał przedmówca, podciągnąć dodatkowym rezystorem do VCC (wewnętrzne podciąganie za długo ładuje ów kondensator).


    NIE DOKOŃCA TAK JEST.
    Skoro moduł ma przycisk BOOT to:
    GPIO0 → już obsłużony na płytce modułu
    EN/RST → też powinien być przycisk RESET na module
    Typowy chiński moduł ESP32-S3 ma:
    [BOOT] → GPIO0 z pull-up i przyciskiem
    [RST] → EN z pull-up i przyciskiem
    Nic nie musisz dodatkowo podłączać – producent już to zrobił.

    Jedyne co możesz potrzebować
    Jeśli chcesz automatyczne wgrywanie firmware (bez ręcznego wciskania BOOT+RST) przez USB-UART:
    DTR ──[100nF]──► EN
    RTS ──[100nF]──► GPIO0
    Ale to tylko jeśli używasz zewnętrznego programatora. Przy wbudowanym USB-CDC w ESP32-S3 zwykle nie potrzeba.

    JUŻ TŁUMACZE JAK TO SPRAWDZIĆ NA PRZYSZŁOŚĆ
    Mierz napięcie:
    Ustaw multimetr na napięcie DC (20V lub podobne)
    Czarna sonda → GND modułu
    Czerwona sonda → GPIO0
    Odczytaj napięcie:
    ~3.3V = jest pull-up ✅
    ~0V = brak pull-up ❌
    Potem to samo na EN:
    Czarna sonda → GND
    Czerwona sonda → EN

    Dobra wiadomość dla ESP32-S3
    ESP32-S3 ma wbudowany pull-up na EN w samym chipie – więc brak zewnętrznego rezystora może być celowy i normalne działanie jest zapewnione.

    GPIO0 – jeśli moduł ma przycisk BOOT to producent prawie na pewno dał pull-up, może być po prostu bardzo mały i ukryty pod modułem.

    Najprostszy test praktyczny
    Czy ESP32-S3 normalnie startuje bez wciskania czegokolwiek po podaniu zasilania?
    Tak → wszystko OK, pull-up działa ✅
    Nie → problem z GPIO0 lub EN ❌
    Bo to najlepsza weryfikacja! 🙂

    Dodano po 17 [minuty]:

    John Yossarian napisał:
    >>21921710 Ten problem może wynikać z tego, bibliotek audioI2S nie obsłuży poprawnie strumieni po https. Muszą być po http.

    sq3evp napisał:
    Nie pozostaje nic tylko sprawdzić - mam w sumie wszystko poza DAC i problem z dekodowanien audio ze strumienia.
    Chybam, że przez BT z ESP można sparować z BT z wyjściem audio.


    Czyta https.
    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!
  • #13 21921903
    szwagros
    Poziom 33  
    Posty: 1844
    Pomógł: 232
    Ocena: 271
    Seba_smd napisał:
    ESP32-S3 ma wbudowany pull-up na EN w samym chipie – więc brak zewnętrznego rezystora może być celowy i normalne działanie jest zapewnione.

    AI swoje, a manual swoje.

    Fragment tabeli: pin CHIP_PU, stan wysoki włącza układ, niski wyłącza; uwaga o niefloatingowaniu
  • #14 21921921
    John Yossarian
    Poziom 12  
    Posty: 62
    Pomógł: 1
    Ocena: 20
    >>21921874 To w takim razie pewnie na innej bibliotece I2S, jak yoradio .
  • #15 21922322
    Seba_smd
    Poziom 17  
    Posty: 323
    Pomógł: 8
    Ocena: 114
    John Yossarian napisał:
    >>21921874 To w takim razie pewnie na innej bibliotece I2S, jak yoradio .


    Audio I2S v3.4.4 - nowy I2S driver (ESP-IDF 5), lepsza stabilność na S3, wymaga core 3.x
  • #16 21922351
    John Yossarian
    Poziom 12  
    Posty: 62
    Pomógł: 1
    Ocena: 20
    >>21922322 Ok, dzięki za info.
  • #17 21923297
    Andrzej Ch.
    Poziom 33  
    Posty: 2245
    Pomógł: 223
    Ocena: 394
    Bardzo fajny projekt, moje pytanie dotyczy schematu, a dokładniej gdzie mogę znaleźć schemat połączeń całości, bo jak rozumiem program jest napisany pod konkretna konfiguracje sprzętową ?
  • REKLAMA
  • #18 21923365
    miroskop
    Poziom 24  
    Posty: 482
    Pomógł: 65
    Ocena: 66
    Nie wiem dlaczego ale na wyjściu PCM5102 jest cisza. Sprawdziłem na dwóch płytkach z polutowanymi zworkami jak na zdjęciu, poza tym jedną płytkę wyjąłem z innego radia (ESP32-MiniWebRadio), w którym działała bez problemu. Czerwona dioda zasilania się świeci więc zasilanie dochodzi. Pozostałe piny też mają połączenie: BCK do 21, LCK do 15 i DIN do 47. SCK na masie. Wyświetlacz i enkodery działąją. Gdzie może tkwić problem? Pomocy!
  • #20 21923377
    miroskop
    Poziom 24  
    Posty: 482
    Pomógł: 65
    Ocena: 66
    efi222 napisał:

    Tutaj raczej potrzebny jest ESP32S3


    Dokładnie taki zastosowałem: ESP32-S3 N16R8, ale jutro spróbuję wymienić na inny egzemplarz. Może ten ma fabryczną wadę, był wyjęty prosto z opakowania.
  • #21 21923460
    Seba_smd
    Poziom 17  
    Posty: 323
    Pomógł: 8
    Ocena: 114
    miroskop napisał:
    efi222 napisał:

    Tutaj raczej potrzebny jest ESP32S3


    Dokładnie taki zastosowałem: ESP32-S3 N16R8, ale jutro spróbuję wymienić na inny egzemplarz. Może ten ma fabryczną wadę, był wyjęty prosto z opakowania.


    Podłącz do terminala Link i pokaz co ci wyświetla, Musi działać jak dobrze podłączyłeś i zworki polutowałeś z jednej i drugiej strony w sumie 5 zworek. Możesz wejść do niego przez stronę web? Odczytaj ESP32-S3 po terminalu zobaczymy co ci wysyła?
  • #22 21923469
    miroskop
    Poziom 24  
    Posty: 482
    Pomógł: 65
    Ocena: 66
    Zmieniłem ESP-ka i radio gra!!! Czyli PCM5102 był niewinny. Dziękuję za odzew.
    Zamieszczam zdjęcie mojej konstrukcji żeby nie było, że robię na pająku.
    Prototyp urządzenia z modułem ESP, okablowaniem i wyświetlaczem pokazującym dane radia internetowego.
  • #23 21924146
    miroskop
    Poziom 24  
    Posty: 482
    Pomógł: 65
    Ocena: 66
    Gotowe! Zamknięte w obudowie Z4A (Kradex) ale ze zmienioną płytą czołową. Ponieważ moje enkodery nie mają gwintowanej osi i trzeba je mocować na dystansach, to prościej było mi wydrukować sobie dedykowaną płytę. Zamieszczam zdjęcie tej płyty i gotowego radia. Odbiornik IR ma specjalnie pogłębione gniazdo żeby jego "oczko" nie było schowane. Dziękuję koledze Sebastianowi za stworzenie i udostępnienie tego projektu. Radio działa bezbłędnie, stacje przełączają się bez zacięć a konfiguracja przez panel WWW jest wygodna i prosta.
    Najprostsze Radio Internetowe na ESP32-S3? Zero instalacji, wgrywasz i działa!
    Czarne radio w obudowie z wyświetlaczem OLED i pilotem IR na blacie
  • #24 21924165
    sq3evp
    Poziom 39  
    Posty: 6742
    Pomógł: 226
    Ocena: 902
    >>21924146
    Gratulacje - czekam na dostawę komponentów i też robić. Nie mam drukarki, ale jakoś uda się ogarnąć.
    Głośniki są czy z wyjściem audio? U mnie sprawdzi się lepiej z wyjściem - albo podzie pod kino domowe, albo pod aktywne głośniczki zewnętrzne.

    Podobnych pilotów mam kilka, ale nie mam pojęcia, jakiego kodowania używają - można to jakoś sprawdzić, wysyłając sygnał do odbiornika IR?
  • #25 21924212
    miroskop
    Poziom 24  
    Posty: 482
    Pomógł: 65
    Ocena: 66
    Mam wyjście audio na minijack, bez wzmacniacza. Całość zasilana wtyczkowym zasilaczem 5V dlatego nie mostkowałem pinu IN-OUT w ESP-32. Piloty sprawdzisz na gotowym radiu sparowanym z panelem WWW. Jest tam zakładka do konfiguracji pilota gdzie wszystko widać jak na dłoni.
  • REKLAMA
  • #26 21924220
    sq3evp
    Poziom 39  
    Posty: 6742
    Pomógł: 226
    Ocena: 902
    miroskop napisał:
    Mam wyjście audio na minijack, bez wzmacniacza. Całość zasilana wtyczkowym zasilaczem 5V dlatego nie mostkowałem pinu IN-OUT w ESP-32. Piloty sprawdzisz na gotowym radiu sparowanym z panelem WWW. Jest tam zakładka do konfiguracji pilota gdzie wszystko widać jak na dłoni.

    To pięknie - obecnie używam odbionik BT zasilany ładowarka do telefonu.
    Planuję zastąpić tym odbiornikiem - myślę, że uda się znaleźć bibliotekę, która pozwoli na odbiór BT i może mała przeróbka w interfejsie pozwoli na sterowanie czy odbieramy radio czy BT.
  • #27 21924223
    efi222
    Poziom 22  
    Posty: 779
    Pomógł: 12
    Ocena: 1221
    sq3evp napisał:
    można to jakoś sprawdzić wysyłając sygnał do odbiornika IR?

    Popełniłem ten układ. Działa wyśmienicie.
    https://www.elektroda.pl/rtvforum/topic3866937.html
  • #28 21924234
    sq3evp
    Poziom 39  
    Posty: 6742
    Pomógł: 226
    Ocena: 902
    >>21924223
    Ciekawy projekt - można wykorzystać piloty, bo często walają się po jakichś sprzętach, kórych już nie ma.
  • #29 21924298
    jaostaszewski
    Poziom 7  
    Posty: 3
    Ocena: 2
    Super pomysł i fajnie wszystko działa.

    Uruchomiłem testowo na małym wyświetlaczu OLED z enkoderami i wszystko ruszyło jak należy i gra super.
    Docelowo chciałem złożyć radyjko na TFT 240x320 ILI9341 3.2" bo fajny i duży.
    Niestety nie zadziałał :( Wyświetlacz jest sprawny. Sprawdziłem go wgrywając na tego ESP32 S3 prościutki program ładujący jakiś obrazek na cały wyświetlacz wykorzystując te same piny, które proponujesz w swoim projekcie i działa bez problemu.
    Może coś robię nie tak...
    Ty na filmie używasz podobnego tylko w wersji 2,4" jak się nie mylę i rusza od razu. Nie wiem co jeszcze mogę sprawdzić
  • #30 21924323
    Seba_smd
    Poziom 17  
    Posty: 323
    Pomógł: 8
    Ocena: 114
    jaostaszewski napisał:
    ..
    Ty na filmie używasz podobnego tylko w wersji 2,4" jak się nie mylę i rusza od razu. Nie wiem co jeszcze mogę sprawdzić


    Używam ST7789 2.4' Link
    W teorii powinien działać ILI9341 3.2. Szkoda że takiego nie mam bym sprawdził lub jak było by jeszcze miejsce w pamięci ESP32-S3 mógłbym dodać, czy to ten ?? Link
Słuchaj:

Podsumowanie tematu

LABEL_AI_GENERATED
Radio internetowe na ESP32-S3 N16R8 zgłaszało objawy ciszy na wyjściu PCM5102, zawieszania podczas wyboru GPIO0 oraz problemy z obsługą niektórych wyświetlaczy i strumieni AAC. Projekt wykorzystuje DAC PCM5102 przez I2S, OLED SSD1309 lub SH1106 po I2C, TFT ST7789, ILI9341 albo ILI9488 po SPI, enkodery i odbiornik IR 38kHz, a firmware wgrywa się z przeglądarki bez Arduino IDE i PlatformIO. Cisza wystąpiła przy połączeniach BCK–GPIO21, LCK–GPIO15, DIN–GPIO47 i SCK do masy; po wymianie ESP32-S3 radio zaczęło grać, więc PCM5102 był sprawny. Omawiano GPIO0 jako pin BOOT, kondensator 100nF w tanich modułach, podciąganie do 3.3V oraz konflikt GPIO35 z GPIO0 na DevKitC-1. Strumienie HTTPS mogły nie działać, a trzaski dotyczyły ciężkiego HE-AAC przy 45 kbps i 48 kHz stereo. Aktualizacje WiFi zachowują ustawienia, lecz pełna kopia flash od 0x0 powoduje „Not Enough Space”; do OTA nadaje się sam program od 0x10000. Ostatecznie radio działa stabilnie, dodano obsługę ILI9341 i ILI9488, korektor, wizualizacje VU, pogodę oraz automatyczne ponawianie zerwanego strumienia.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA