W poniższym poradniku opisano krok po kroku, jak skonstruować radio internetowe wykorzystując do tego niedrogi moduł z ESP32 na pokładzie. Takie radio możemy skonstruować w zaledwie 10 minut. Cała konstrukcja kosztować będzie poniżej 30 dolarów. Warto sprawić sobie takie urządzenie, jeżeli słuchamy internetowych rozgłośni radiowych.
Autor poradnika zbudował niedawno radio FM wykorzystujące moduł Arduino. Urządzenie to działa doskonale, jednakże jest pewien problem - w miejscu, gdzie mieszka, nie ma zasięgu radiostacji (nadajniki są za daleko), które go interesują, więc i tak skazany jest na słuchanie ich w Internecie, do czego wykorzystuje obecnie laptopa lub tablet. Jest to dalekie od praktyczności, więc przyszła kolej na kolejną konstrukcję, tym razem na radio internetowe. Pozwoli nam to słuchać ulubionej muzyki ze stacji radiowych na całym świecie.
Pierwsza wersja urządzenia została zestawiona na płytce stykowej. Tyle wystarczy nam do pierwszego uruchomienia radia i przetestowania układu.
W pamięci ESP32 mamy możliwość zapisania listy ulubionych stacji, co pozwala na prosty dostęp do konfiguracji. Stację zmienia się z pomocą przycisków wbudowanych w układ. Nazwa stacji wyświetlana jest na dużym wyświetlaczu 3,5", do którego zaprojektowany specjalny interfejs użytkownika w retro-stylistyce.
Przyjrzyjmy się, krok po kroku, jak skonstruować takie radio we własnym domu.
Krok 1: Zbierz wszystkie potrzebne elementy
Będziemy potrzebować następujących elementów:
* Moduł z układem ESP32
* Sprzętowy dekoder MP3
* Wzmacniacz mocy audio
* Głośnik o mocy 3 W
* Wyświetlacz Nextion
* Przycisk
* Płytka uniwersalna
Całkowity koszt układu to około 40 dolarów, ale jeżeli zrezygnujemy z wyświetlacza, możemy zredukować koszt do około 20 dolarów.
Krok 2: Moduł z ESP32
Sercem projektu jest moduł z układem ESP32. Jeśli nie jeszcze o nim nie słyszałeś, to układ ESP32 jest następcą popularnego układu ESP8266, który wielokrotnie używany był w przeszłości w amatorskich projektach do łączenia się z siecią WiFi. ESP32 ma też istotną wydajność obliczeniową. Układ posiada dwa 32-bitowe rdzenie taktowane zegarem o częstotliwości 160 MHz, ogromną ilość pamięci i oczywiście interfejsy WiFi i Bluetooth, a także wiele innych funkcji. Moduł z tym układem kosztuje zaledwie ok. 7 dolarów.
W tym projekcie moduł z ESP32 łączy się z Internetem, a następnie odbiera dane MP3 ze stacji radiowej, której słuchamy, i wysyła polecenia do wyświetlacza. Za dekodowanie odebranych danych MP3 odpowiedzialny jest dedykowany sprzętowy dekoder skompresowanych plików audio.
Krok 3: Dekoder MP3
Dane odebrane z Internetu przesyłane są poprzez SPI do modułu dekodera MP3. Wykorzystuje on układ scalony VS1052, który jest dedykowanym, scalonym dekoderem danych w formacie MP3. Dostaje on tego rodzaju dane z ESP32 i przetwarza je w czasie rzeczywistym na analogowy sygnał audio. Sygnał ten jest bardzo słaby, dlatego też konieczne jest wzmocnienie go.
W celu wzmocnienia sygnału audio wykorzystano moduł oparty o scalony wzmacniacz mocy PAM8403, który wzmacnia sygnał audio, przed podaniem ich na głośniki. Wzmacniacz ten posiada moc 2 x 3 W - w zupełności wystarczają do słuchania muzyki w domu.
Do modułu z ESP32 oprócz dekodera MP3 podłączone są przyciski sterujące działaniem radia i wyświetlacz Nextion.
Krok 4: Wyświetlacz Nextion
Wyświetlacz ten został wybrany do projektu z uwagi na prostotę jego wykorzystania. By go kontrolować i wyświetlać na nim obraz, musimy podłączyć tylko jedną linię danych.
Wyświetlacze Nextion są pewną nowością na rynku. Moduły te posiadają własny mikrokontroler (układ z rdzeniem ARM), który steruje wyświetlaczem, tworzy interfejs graficzny etc. Można wykorzystać go z dowolnym innym układem i otrzymać równie spektakularne efekty, jak pokazane w tym projekcie, bez konieczności obciążania zasadniczego procesora systemu.
Z poniższego filmu możemy dowiedzieć się więcej na temat samych wyświetlaczy i sposobów ich kontroli.
Krok 5: Połączenie wszystkich elementów ze sobą
Na tym etapie możemy połączyć ze sobą wszystkie moduły naszego systemu, jak i inne elementy urządzenia. Na poniższym obrazku widzimy w jaki sposób połączone są ze sobą poszczególne podzespoły radia.
W przedstawionym systemie, autor podłączył tylko jeden głośnik do dekodera MP3. NA jego wyjściu obecny jest jednak sygnał stereo, więc nic nie stoi na przeszkodzie, by wykorzystać oba kanały i zainstalować w urządzeniu dwa głośniki.
By połączyć ze sobą ESP32 i wyświetlacz, wystarczy tylko podpiąć go do pinu TX0 ESP32. Teraz wystarczy tylko załadować program do ESP32 oraz GUI do wyświetlacza Nextion.
Aby załadować dane do wyświetlacza, kopiujemy plik InternetRadio.tft (do ściągnięcia ze strony źródłowej) na pustą kartę SD. Kartę tą umieszczamy w gnieździe znajdującym się na tyle PCB wyświetlacza. Teraz możemy włączyć cały układ i GUI zostanie załadowane. Po tym możemy usunąć kartę SD z gniazda - nie jest ona potrzebna podczas normalnej pracy wyświetlacza.
Po uruchomieniu systemu najpierw widzimy napis "Connecting...", aż do momentu, gdy ESP32 połączy się z Internetem. Wtedy łączy się z predefiniowaną stacją radiową i po połączeniu prezentuje jej nazwę i odtwarza w głośniku dźwięk. Oczywiście, aby było to możliwe do ESP32 wgrany musi być odpowiedni program.
Krok 6: Kod programu na ESP32
Cały kod programu na ESP32 ma mniej niż 140 linijek. Fantastyczne jest to, ile osiągnęła obecnie technologia - dzięki językom programowania wysokiego poziomu i szerokiej gamie oferowanych bibliotek możliwe jest oprogramowanie radia internetowego z wyświetlaczem jedynie w 140 linijkach. To doskonale pokazuje moc, jaka drzemie w Arduino IDE i środowisku open-source i co ułatwia tworzenie tego rodzaju urządzeń wszystkim hobbystom.
W programie autor korzysta z biblioteki dla VS1053 dla ESP32.
Po pierwsze w programie musimy zdefiniować SSID i hasło do sieci Wi-Fi, do jakiej podłączony ma być moduł. W dalszej części kodu programu znaleźć możemy listę stacji radiowych, z jakich chcemy korzystać. Podać musimy URL stacji, dokładną ścieżkę, gdzie znajduje się strumień i port serwera, z jakiego należy korzystać. Wszystkie te parametry zapisywane są w zmiennych w programie.
W przykładzie powyżej dodano cztery stacje radiowe.
Dalej, w konfiguracyjnej części programu, przyciski połączone są z odpowiednimi przerwaniami, inicjalizowany jest moduł dekodera MP3 i ESP32 łączy się z siecią bezprzewodową.
W dalszej części programu - w pętli - po pierwsze system sprawdza, czy użytkownik nie wybrał innej stacji radiowej, niż dane są obecnie transmitowane. Jeśli tak, to system podłącza się do wybranego strumienia, a jeśli nie to, kontynuuje wysyłanie danych do dekodera MP3.
I to jest wszystko. Jest to w zasadzie cały program. Dodatkowo dodano funkcje obsługujące przerwania od przycisków i zmiany wartości zmiennej opisującej, z jakiej stacji radiowej układ ma czytać informacje.
By zaktualizować dane na wyświetlaczu, wysyłamy komendy poprzez port szeregowy do wyświetlacza.
Spójrzmy teraz na GUI Nextiona. Składa się ono z prostego obrazka w tle i napisu z nazwą stacji radiowej. ESP32 wysyła informacje do wyświetlacza, by zmienić wyświetlaną na ekranie nazwę. Więcej informacji na temat konfigurowania wyświetlacza znaleźć możemy w tutorialach dostępnych w Internecie.
Cały kod programu dołączony jest do opisu projektu dostępnego pod linkiem źródłowym.
Podsumowanie
Zaprezentowany projekt jest bardzo prosty - to minimalistyczne internetowe radio, które zmontować i oprogramować można w kilka chwil. Do takiego systemu dodać można z łatwością wiele kolejnych funkcji, zależnie tylko od naszej wyobraźni.
Pierwszym krokiem autora projektu jest teraz zaprojektowanie obudowy do tego radia. Jest tutaj wiele możliwości, a ogranicza nas tylko nasza wyobraźnia.
Źródło: https://www.instructables.com/id/Internet-Radio-Using-an-ESP32/
Autor poradnika zbudował niedawno radio FM wykorzystujące moduł Arduino. Urządzenie to działa doskonale, jednakże jest pewien problem - w miejscu, gdzie mieszka, nie ma zasięgu radiostacji (nadajniki są za daleko), które go interesują, więc i tak skazany jest na słuchanie ich w Internecie, do czego wykorzystuje obecnie laptopa lub tablet. Jest to dalekie od praktyczności, więc przyszła kolej na kolejną konstrukcję, tym razem na radio internetowe. Pozwoli nam to słuchać ulubionej muzyki ze stacji radiowych na całym świecie.
Pierwsza wersja urządzenia została zestawiona na płytce stykowej. Tyle wystarczy nam do pierwszego uruchomienia radia i przetestowania układu.
W pamięci ESP32 mamy możliwość zapisania listy ulubionych stacji, co pozwala na prosty dostęp do konfiguracji. Stację zmienia się z pomocą przycisków wbudowanych w układ. Nazwa stacji wyświetlana jest na dużym wyświetlaczu 3,5", do którego zaprojektowany specjalny interfejs użytkownika w retro-stylistyce.
Przyjrzyjmy się, krok po kroku, jak skonstruować takie radio we własnym domu.
Krok 1: Zbierz wszystkie potrzebne elementy
Będziemy potrzebować następujących elementów:
* Moduł z układem ESP32
* Sprzętowy dekoder MP3
* Wzmacniacz mocy audio
* Głośnik o mocy 3 W
* Wyświetlacz Nextion
* Przycisk
* Płytka uniwersalna
Całkowity koszt układu to około 40 dolarów, ale jeżeli zrezygnujemy z wyświetlacza, możemy zredukować koszt do około 20 dolarów.
Krok 2: Moduł z ESP32
Sercem projektu jest moduł z układem ESP32. Jeśli nie jeszcze o nim nie słyszałeś, to układ ESP32 jest następcą popularnego układu ESP8266, który wielokrotnie używany był w przeszłości w amatorskich projektach do łączenia się z siecią WiFi. ESP32 ma też istotną wydajność obliczeniową. Układ posiada dwa 32-bitowe rdzenie taktowane zegarem o częstotliwości 160 MHz, ogromną ilość pamięci i oczywiście interfejsy WiFi i Bluetooth, a także wiele innych funkcji. Moduł z tym układem kosztuje zaledwie ok. 7 dolarów.
W tym projekcie moduł z ESP32 łączy się z Internetem, a następnie odbiera dane MP3 ze stacji radiowej, której słuchamy, i wysyła polecenia do wyświetlacza. Za dekodowanie odebranych danych MP3 odpowiedzialny jest dedykowany sprzętowy dekoder skompresowanych plików audio.
Krok 3: Dekoder MP3
Dane odebrane z Internetu przesyłane są poprzez SPI do modułu dekodera MP3. Wykorzystuje on układ scalony VS1052, który jest dedykowanym, scalonym dekoderem danych w formacie MP3. Dostaje on tego rodzaju dane z ESP32 i przetwarza je w czasie rzeczywistym na analogowy sygnał audio. Sygnał ten jest bardzo słaby, dlatego też konieczne jest wzmocnienie go.
W celu wzmocnienia sygnału audio wykorzystano moduł oparty o scalony wzmacniacz mocy PAM8403, który wzmacnia sygnał audio, przed podaniem ich na głośniki. Wzmacniacz ten posiada moc 2 x 3 W - w zupełności wystarczają do słuchania muzyki w domu.
Do modułu z ESP32 oprócz dekodera MP3 podłączone są przyciski sterujące działaniem radia i wyświetlacz Nextion.
Krok 4: Wyświetlacz Nextion
Wyświetlacz ten został wybrany do projektu z uwagi na prostotę jego wykorzystania. By go kontrolować i wyświetlać na nim obraz, musimy podłączyć tylko jedną linię danych.
Wyświetlacze Nextion są pewną nowością na rynku. Moduły te posiadają własny mikrokontroler (układ z rdzeniem ARM), który steruje wyświetlaczem, tworzy interfejs graficzny etc. Można wykorzystać go z dowolnym innym układem i otrzymać równie spektakularne efekty, jak pokazane w tym projekcie, bez konieczności obciążania zasadniczego procesora systemu.
Z poniższego filmu możemy dowiedzieć się więcej na temat samych wyświetlaczy i sposobów ich kontroli.
Krok 5: Połączenie wszystkich elementów ze sobą
Na tym etapie możemy połączyć ze sobą wszystkie moduły naszego systemu, jak i inne elementy urządzenia. Na poniższym obrazku widzimy w jaki sposób połączone są ze sobą poszczególne podzespoły radia.
W przedstawionym systemie, autor podłączył tylko jeden głośnik do dekodera MP3. NA jego wyjściu obecny jest jednak sygnał stereo, więc nic nie stoi na przeszkodzie, by wykorzystać oba kanały i zainstalować w urządzeniu dwa głośniki.
By połączyć ze sobą ESP32 i wyświetlacz, wystarczy tylko podpiąć go do pinu TX0 ESP32. Teraz wystarczy tylko załadować program do ESP32 oraz GUI do wyświetlacza Nextion.
Aby załadować dane do wyświetlacza, kopiujemy plik InternetRadio.tft (do ściągnięcia ze strony źródłowej) na pustą kartę SD. Kartę tą umieszczamy w gnieździe znajdującym się na tyle PCB wyświetlacza. Teraz możemy włączyć cały układ i GUI zostanie załadowane. Po tym możemy usunąć kartę SD z gniazda - nie jest ona potrzebna podczas normalnej pracy wyświetlacza.
Po uruchomieniu systemu najpierw widzimy napis "Connecting...", aż do momentu, gdy ESP32 połączy się z Internetem. Wtedy łączy się z predefiniowaną stacją radiową i po połączeniu prezentuje jej nazwę i odtwarza w głośniku dźwięk. Oczywiście, aby było to możliwe do ESP32 wgrany musi być odpowiedni program.
Krok 6: Kod programu na ESP32
Cały kod programu na ESP32 ma mniej niż 140 linijek. Fantastyczne jest to, ile osiągnęła obecnie technologia - dzięki językom programowania wysokiego poziomu i szerokiej gamie oferowanych bibliotek możliwe jest oprogramowanie radia internetowego z wyświetlaczem jedynie w 140 linijkach. To doskonale pokazuje moc, jaka drzemie w Arduino IDE i środowisku open-source i co ułatwia tworzenie tego rodzaju urządzeń wszystkim hobbystom.
W programie autor korzysta z biblioteki dla VS1053 dla ESP32.
Po pierwsze w programie musimy zdefiniować SSID i hasło do sieci Wi-Fi, do jakiej podłączony ma być moduł. W dalszej części kodu programu znaleźć możemy listę stacji radiowych, z jakich chcemy korzystać. Podać musimy URL stacji, dokładną ścieżkę, gdzie znajduje się strumień i port serwera, z jakiego należy korzystać. Wszystkie te parametry zapisywane są w zmiennych w programie.
Code: c
W przykładzie powyżej dodano cztery stacje radiowe.
Dalej, w konfiguracyjnej części programu, przyciski połączone są z odpowiednimi przerwaniami, inicjalizowany jest moduł dekodera MP3 i ESP32 łączy się z siecią bezprzewodową.
Code: c
W dalszej części programu - w pętli - po pierwsze system sprawdza, czy użytkownik nie wybrał innej stacji radiowej, niż dane są obecnie transmitowane. Jeśli tak, to system podłącza się do wybranego strumienia, a jeśli nie to, kontynuuje wysyłanie danych do dekodera MP3.
Code: c
I to jest wszystko. Jest to w zasadzie cały program. Dodatkowo dodano funkcje obsługujące przerwania od przycisków i zmiany wartości zmiennej opisującej, z jakiej stacji radiowej układ ma czytać informacje.
Code: c
By zaktualizować dane na wyświetlaczu, wysyłamy komendy poprzez port szeregowy do wyświetlacza.
Code: c
Spójrzmy teraz na GUI Nextiona. Składa się ono z prostego obrazka w tle i napisu z nazwą stacji radiowej. ESP32 wysyła informacje do wyświetlacza, by zmienić wyświetlaną na ekranie nazwę. Więcej informacji na temat konfigurowania wyświetlacza znaleźć możemy w tutorialach dostępnych w Internecie.
Cały kod programu dołączony jest do opisu projektu dostępnego pod linkiem źródłowym.
Podsumowanie
Zaprezentowany projekt jest bardzo prosty - to minimalistyczne internetowe radio, które zmontować i oprogramować można w kilka chwil. Do takiego systemu dodać można z łatwością wiele kolejnych funkcji, zależnie tylko od naszej wyobraźni.
Pierwszym krokiem autora projektu jest teraz zaprojektowanie obudowy do tego radia. Jest tutaj wiele możliwości, a ogranicza nas tylko nasza wyobraźnia.
Źródło: https://www.instructables.com/id/Internet-Radio-Using-an-ESP32/
Cool? Ranking DIY