Webradio player pe ESP32.
-
- Standard User
- Posts: 90
- Joined: 11 Sep 2013 18:10
Re: yoRadio pe ESP32-2432s028.
Discutii despre YoRadio aici: https://4pda.to/forum/index.php?showtop ... 8&st=12980 ( in Chrome cu optiunea translate in engleza e in regula). Un user a reusit sa elimine scroll-ul lasand pe display-ul 1602 numai numele postului de radio si ceasul; din pacate nu am salvat discutia iar topicul este destul de stufos.
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: yoRadio pe ESP32-2432s028.
Pentru ca am avut mai multe feedbackuri de la persoane care nu au reusit sa faca displayul sa afiseze si tocuhscreenul sa functioneze, am facut un scurt video care arata cat de simplu poti sa-ti construiesti acest radio.
Videoclipul nu contine nimic descpre conectare DAC sau setari audio, pentru ca vad ca majoritatea persoanelor au probleme cu displayul. Iar pe partea de audio difera in functie de ce DAC se foloseste. Se poate folosi si fara DAC cu cel intern al ESP32, insa sunetul este mult mai bun daca se foloseste unul extern dedicat.
Videoclipul nu contine nimic descpre conectare DAC sau setari audio, pentru ca vad ca majoritatea persoanelor au probleme cu displayul. Iar pe partea de audio difera in functie de ce DAC se foloseste. Se poate folosi si fara DAC cu cel intern al ESP32, insa sunetul este mult mai bun daca se foloseste unul extern dedicat.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
-
- Standard User
- Posts: 90
- Joined: 11 Sep 2013 18:10
Re: yoRadio pe ESP32-2432s028.
Foarte bun si util tutorialul; daca ai timp mai poti testa doua functii:
- schema de culori aleasa de autor este anosta, se poate modifica din mytheme.h (se copiaza alaturi de myoptions.h). Mai jos un exemplu pe care l-am folosit in cazul display-urilor color:
-optiunea Weather din webif permite afisarea datelor meteo pe display; necesita inregistrarea pe https://openweathermap.org/ in vederea obtinerii unei key api. Aceasta permite utilizarea simultana pe 3 dispozitive (nu neaparat web radio).
- schema de culori aleasa de autor este anosta, se poate modifica din mytheme.h (se copiaza alaturi de myoptions.h). Mai jos un exemplu pe care l-am folosit in cazul display-urilor color:
Code: Select all
#ifndef _my_theme_h
#define _my_theme_h
/*
Theming of color displays
DSP_ST7735, DSP_ST7789, DSP_ILI9341, DSP_GC9106, DSP_ILI9225, DSP_ST7789_240
***********************************************************************
* !!! This file must be in the root directory of the sketch !!! *
***********************************************************************
Uncomment (remove double slash //) from desired line to apply color
*/
#define ENABLE_THEME
#ifdef ENABLE_THEME
/*----------------------------------------------------------------------------------------------------------------*/
/* | COLORS | values (0-255) | */
/* | color name | R G B | */
/*----------------------------------------------------------------------------------------------------------------*/
#define COLOR_BACKGROUND 0, 0, 0 /* background */
#define COLOR_STATION_NAME 255, 246, 0 /* station name */
#define COLOR_STATION_BG 0, 0, 0 /* station name background */
#define COLOR_STATION_FILL 0, 0, 0 /* station name fill background */
//#define COLOR_SNG_TITLE_1 255, 0, 0 /* first title */
//#define COLOR_SNG_TITLE_2 0, 0, 0 /* second title */
//#define COLOR_WEATHER 255, 0, 216 /* weather string */
#define COLOR_VU_MAX 255, 0, 0 /* max of VU meter */
#define COLOR_VU_MIN 0, 255, 0 /* min of VU meter */
#define COLOR_CLOCK 255, 255, 0 /* clock color */
#define COLOR_CLOCK_BG 0 , 0, 0 /* clock color background */
//#define COLOR_SECONDS 0, 255, 255 /* seconds color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */
#define COLOR_DAY_OF_W 255, 0, 0 /* day of week color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */
#define COLOR_DATE 0, 0, 255 /* date color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */
//#define COLOR_HEAP 255, 168, 162 /* heap string */
//#define COLOR_BUFFER 157, 171, 251 /* buffer line */
#define COLOR_IP 51, 51, 255 /* ip address */
//#define COLOR_VOLUME_VALUE 165, 162, 132 /* volume string (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */
//#define COLOR_RSSI 255, 148, 156 /* rssi */
//#define COLOR_VOLBAR_OUT 198, 93, 0 /* volume bar outline */
//#define COLOR_VOLBAR_IN 189, 189, 189 /* volume bar fill */
//#define COLOR_DIGITS 100, 100, 255 /* volume / station number */
//#define COLOR_DIVIDER 0, 255, 0 /* divider color (DSP_ST7789, DSP_ILI9341, DSP_ILI9225) */
//#define COLOR_BITRATE 231, 211, 90 /* bitrate */
//#define COLOR_PL_CURRENT 0, 0, 0 /* playlist current item */
//#define COLOR_PL_CURRENT_BG 91, 118, 255 /* playlist current item background */
//#define COLOR_PL_CURRENT_FILL 91, 118, 255 /* playlist current item fill background */
//#define COLOR_PLAYLIST_0 255, 0, 0 /* playlist string 0 */
//#define COLOR_PLAYLIST_1 0, 255, 0 /* playlist string 1 */
//#define COLOR_PLAYLIST_2 255, 0, 255 /* playlist string 2 */
//#define COLOR_PLAYLIST_3 0, 0, 255 /* playlist string 3 */
//#define COLOR_PLAYLIST_4 0, 255, 255 /* playlist string 4 */
#endif /* #ifdef ENABLE_THEME */
#endif /* #define _my_theme_h */
-optiunea Weather din webif permite afisarea datelor meteo pe display; necesita inregistrarea pe https://openweathermap.org/ in vederea obtinerii unei key api. Aceasta permite utilizarea simultana pe 3 dispozitive (nu neaparat web radio).
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: yoRadio pe ESP32-2432s028.
La teme inca nu m-am bagat, dar partea meteo am folosit-o si sunt incantat de acesta.
Zilele astea am primit in privat pe messenger o varianta modificata a acestui proiect, dar inca nu am avut timp sa verific cum functioneaza.
Zilele astea am primit in privat pe messenger o varianta modificata a acestui proiect, dar inca nu am avut timp sa verific cum functioneaza.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: yoRadio pe ESP32-2432s028.
Intre timp am facut un video scurt si cu probabil cel mai ușor de realizat webradio player cu ecran tactil.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: yoRadio pe ESP32-2432s028.
Tot pe aceeasi pagina, am gasit si varianta Retro a unui player de canale radio online.
Este la fel de simplu de reprodus acest proiect ca si cel de mai inainte.
Multumiri autorului pe aceasta cale pentru codul pe care ni l-a pus la dispozitie.
Este la fel de simplu de reprodus acest proiect ca si cel de mai inainte.
Multumiri autorului pe aceasta cale pentru codul pe care ni l-a pus la dispozitie.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Webradio player pe ESP32-2432s028.
Tot pe acelasi blog am gasit si varianta de player care arata ca o caseta audio
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Webradio player pe ESP32-2432s028.
Am facut o noua versiune, dar de data asta am folosit aceste componente:
yoRadio - ESP32 - PCM5102A - IR Remote - handmade PCB
Pentru acest proiect am folosit:
acest fișier myoptions.h:
acest fișier temă:
Fișierul temă a fost creat cu acest software:
Editor de teme YoRadio creat de András Daradics
- GitHub: https://github.com/andrasdaradici/YoRadio-Theme-Editor
- Itch.io: https://andrasdaradici.itch.io/yoradio-theme-editor
Hardware-ul folosit:
Display:
https://www.aliexpress.com/item/32960241206.html
Microcontroller:
ESP32-WROOM-32U
https://www.aliexpress.com/item/1005006336502350.html
Am folosit aceasta antena:
https://www.aliexpress.com/item/1005001837112551.html
DAC:
PCM5102A
https://www.aliexpress.com/item/1005002898278583.html
IR remote:
HX1838 - IR Wireless Remote Control Module Kits
https://www.aliexpress.com/item/32315435973.html
Puteți vedea conexiunea senzorului IR în
fișierul myoptions.h
sau in aceasta imagine:
Conexiunile display-ului și DAC-ului la microcontroler se fac după cum urmează:
Nu uitati sa conectati pinul LED de pe display la 3,3V cu ajutorul unui rezistor de 220ohmi.
Puteți modifica fișierul myoptions.h în funcție de alte modele hardware aici:
https://e2002.github.io/docs/myoptions- ... 5,27,26,25 */
Proiectul original yoRadio poate fi descărcat aici:
https://github.com/e2002/yoradio
Am făcut un scurt videoclip despre cum funcționează:
Pagina mea de PasteBin:
https://pastebin.com/u/LeventeDaradici
Pagina mea de youtube:
https://www.youtube.com/@LeventeDaradici/videos
Spor la bricolat!
yoRadio - ESP32 - PCM5102A - IR Remote - handmade PCB
Pentru acest proiect am folosit:
acest fișier myoptions.h:
acest fișier temă:
Fișierul temă a fost creat cu acest software:
Editor de teme YoRadio creat de András Daradics
- GitHub: https://github.com/andrasdaradici/YoRadio-Theme-Editor
- Itch.io: https://andrasdaradici.itch.io/yoradio-theme-editor
Hardware-ul folosit:
Display:
https://www.aliexpress.com/item/32960241206.html
Microcontroller:
ESP32-WROOM-32U
https://www.aliexpress.com/item/1005006336502350.html
Am folosit aceasta antena:
https://www.aliexpress.com/item/1005001837112551.html
DAC:
PCM5102A
https://www.aliexpress.com/item/1005002898278583.html
IR remote:
HX1838 - IR Wireless Remote Control Module Kits
https://www.aliexpress.com/item/32315435973.html
Puteți vedea conexiunea senzorului IR în
fișierul myoptions.h
sau in aceasta imagine:
Conexiunile display-ului și DAC-ului la microcontroler se fac după cum urmează:
Nu uitati sa conectati pinul LED de pe display la 3,3V cu ajutorul unui rezistor de 220ohmi.
Puteți modifica fișierul myoptions.h în funcție de alte modele hardware aici:
https://e2002.github.io/docs/myoptions- ... 5,27,26,25 */
Proiectul original yoRadio poate fi descărcat aici:
https://github.com/e2002/yoradio
Am făcut un scurt videoclip despre cum funcționează:
Pagina mea de PasteBin:
https://pastebin.com/u/LeventeDaradici
Pagina mea de youtube:
https://www.youtube.com/@LeventeDaradici/videos
Spor la bricolat!
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Webradio player pe ESP32-2432s028.
Astazi m-am jucat si cu o varianta cu
ESP32 +
Oled 0.96 inch SSD1306 display +
Max98357 I2S 3W Class D Amplifier Breakout Interface +
HX1838 Telecomanda IR +
Senzor infrarosu HX1838
click pe imagine pentru a vizualiza videoclipul.
ESP32 l-am ales astfel incat pe partea unde vedeti in video in zona senzorului infrarosu sa aiba una langa alta 3V3 - GND si D15 exact in ordinea in care se potriveste perfect la senzor, practic am infipt senzorul in breadboard si am adaugat in fisierul myoptions.h linia:
Practic cu aceste setari avem partea de telecomanda functionala.
Se pot asocia pana la 3 telecomenzi. Asocierea se face din interfata web a yoRadio, probabil pe viitor o sa fac un scurt video cu aceasta parte, desi este foarte simpla si poate s-o faca oricine.
Pentru display am adaugat aceasta linie in myoptions.h
click pe imagine pentru a vizualiza videoclipul.
DAC-ul folosit este un Max98357 I2S 3W Class D Amplifier care tinand cont de pretul foarte mic este unul de buna calitate, sunetul reprodus chiar este neasteptat de bun.
In aceasta varianta am folosit o singura bucata, astfel auditia este monofonica. Pentru a putea reda stereofonic avem nevoie de doua bucati.
Displayul este foarte mic! Acele vibratii pe care le vedeti in video nu le veti vedea cu ochiul liber.
Eu am nevoie de ochelari ca sa vad ce scrie pe ecran.
my_options.h generator ne arata si cum se fac conexiunile electrice. (ATENTIE! Boardul ESP32 folosit de mine are pinoutul diferit fata de aceasta imagine, am explicat mai sus cand am facut referire la conectarea senzorului IR!)
Diferenta dintre cel din myoptions.h generator si cel folosit.
Fisierul myoptions.h folosit este acesta:
Aceasta varianta poate fi o varianta ieftina a yoRadio datorita componentelor utilizate.
Realizarea nu cred ca va fi o problema chiar nici pentru un incepator!
Spor la bricolat!
ESP32 +
Oled 0.96 inch SSD1306 display +
Max98357 I2S 3W Class D Amplifier Breakout Interface +
HX1838 Telecomanda IR +
Senzor infrarosu HX1838
click pe imagine pentru a vizualiza videoclipul.
ESP32 l-am ales astfel incat pe partea unde vedeti in video in zona senzorului infrarosu sa aiba una langa alta 3V3 - GND si D15 exact in ordinea in care se potriveste perfect la senzor, practic am infipt senzorul in breadboard si am adaugat in fisierul myoptions.h linia:
Code: Select all
#define IR_PIN 15
Practic cu aceste setari avem partea de telecomanda functionala.
Se pot asocia pana la 3 telecomenzi. Asocierea se face din interfata web a yoRadio, probabil pe viitor o sa fac un scurt video cu aceasta parte, desi este foarte simpla si poate s-o faca oricine.
Pentru display am adaugat aceasta linie in myoptions.h
Code: Select all
#define DSP_MODEL DSP_SSD1306
click pe imagine pentru a vizualiza videoclipul.
DAC-ul folosit este un Max98357 I2S 3W Class D Amplifier care tinand cont de pretul foarte mic este unul de buna calitate, sunetul reprodus chiar este neasteptat de bun.
In aceasta varianta am folosit o singura bucata, astfel auditia este monofonica. Pentru a putea reda stereofonic avem nevoie de doua bucati.
Displayul este foarte mic! Acele vibratii pe care le vedeti in video nu le veti vedea cu ochiul liber.
Eu am nevoie de ochelari ca sa vad ce scrie pe ecran.
my_options.h generator ne arata si cum se fac conexiunile electrice. (ATENTIE! Boardul ESP32 folosit de mine are pinoutul diferit fata de aceasta imagine, am explicat mai sus cand am facut referire la conectarea senzorului IR!)
Diferenta dintre cel din myoptions.h generator si cel folosit.
Fisierul myoptions.h folosit este acesta:
Code: Select all
#ifndef myoptions_h
#define myoptions_h
/* Generated by myoptions.h generator - v0.8.1 */
/* https://e2002.github.io/docs/myoptions-generator.html?r=71,2,4,7,12,43,67&i=5,6,15,16,17,41&v=21,22,27,26,25,15 */
/* Put this file next to yoRadio.ino and restart Arduino IDE. */
/* !!! Attention !!! */
/* This configuration depends on some additional libraries. Please install them using the library manager: */
/* Adafruit GFX Library, Adafruit SSD1306, IRremoteESP8266 */
/* !!! Do not be alarmed, all right, the default values are not included in this file !!! */
#define DSP_MODEL DSP_SSD1306
#define IR_PIN 15
#endif
Aceasta varianta poate fi o varianta ieftina a yoRadio datorita componentelor utilizate.
Realizarea nu cred ca va fi o problema chiar nici pentru un incepator!
Spor la bricolat!
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
- Levy
- Gold User
- Posts: 1581
- Joined: 02 Oct 2013 15:07
- Location: ABSURDISTAN
Re: Webradio player pe ESP32.
Ce am uitat sa adaug la precedenta versiune a yoRadio, varianta cu displayul oled de 0.96 inch este ca nu merita sa faceti aceasta varianta, doar daca este neaparata nevoie de un display mic. Pentru ca la acelasi pret sau la un pret foarte apropiat al displayului puteti sa cumparati un display de 1.8 inch TFT color, pe care deja se poate descifra ce este pe display si fara ochelari.
Aici ar fi de adaugat ca displayul TFT are unghiul de vizibilitate destul de restrans, nici nu putem avea mari pretentii la acest pret.
Si un alt dezavantaj (dezavantaj doar pentru incepatori) ar fi protocolul SPI care pentru un incepator va fi putin mai dificil de conectat la microcontroler. Este mult mai simplu de conectat displayul oled i2C de microcontroler fata de displayul SPI.
Dar daca se urmareste documentatia si pinout-ul dat de myoptions.h generator pentru displayul SPI nu cred ca va fi dificil de realizat.
La displayul TFT sa nu uitati sa inseriati o rezistenta de 220ohm sau valori apropiate intre pinul LED de pe display si 3V3 de pe microncontroler ca sa protejati LED-ul intern din display care ilumineaza displayul.
Mai demult am facut un video scurt cu acest display TFT de 1.8 inchi SPI.
click pe imagine pentru video.
La acel pret al displayului SPI de 1.8 inch dupa cum vedeti aveti si cititorul de card SD pe spatele displayului, pe care nu l-am testat, dar teoretic ar trebui sa-l puteti adauga si configura la yoRadio pentru a putea reda fisiere mp3 de pe un card SD introdus in cititor.
Aici ar fi de adaugat ca displayul TFT are unghiul de vizibilitate destul de restrans, nici nu putem avea mari pretentii la acest pret.
Si un alt dezavantaj (dezavantaj doar pentru incepatori) ar fi protocolul SPI care pentru un incepator va fi putin mai dificil de conectat la microcontroler. Este mult mai simplu de conectat displayul oled i2C de microcontroler fata de displayul SPI.
Dar daca se urmareste documentatia si pinout-ul dat de myoptions.h generator pentru displayul SPI nu cred ca va fi dificil de realizat.
La displayul TFT sa nu uitati sa inseriati o rezistenta de 220ohm sau valori apropiate intre pinul LED de pe display si 3V3 de pe microncontroler ca sa protejati LED-ul intern din display care ilumineaza displayul.
Mai demult am facut un video scurt cu acest display TFT de 1.8 inchi SPI.
click pe imagine pentru video.
La acel pret al displayului SPI de 1.8 inch dupa cum vedeti aveti si cititorul de card SD pe spatele displayului, pe care nu l-am testat, dar teoretic ar trebui sa-l puteti adauga si configura la yoRadio pentru a putea reda fisiere mp3 de pe un card SD introdus in cititor.
Dacă ai tăiat și ultimul copac, ai otrăvit și ultimul râu și ai prins și ultimul pește, ai să fi uimit să constați că banii nu sunt comestibili !
Who is online
Users browsing this forum: No registered users and 20 guests