Webradio player pe ESP32.

Discutii despre placile de dezvoltare compatibile Arduino
val
Standard User
Posts: 90
Joined: 11 Sep 2013 18:10

Re: yoRadio pe ESP32-2432s028.

Unread postby val » 10 Jan 2024 06:33

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.
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: yoRadio pe ESP32-2432s028.

Unread postby Levy » 23 Jan 2024 22:41

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.

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 !

Image
val
Standard User
Posts: 90
Joined: 11 Sep 2013 18:10

Re: yoRadio pe ESP32-2432s028.

Unread postby val » 24 Jan 2024 06:29

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:

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).
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: yoRadio pe ESP32-2432s028.

Unread postby Levy » 24 Jan 2024 17:23

La teme inca nu m-am bagat, dar partea meteo am folosit-o si sunt incantat de acesta. :drink2:
Zilele astea am primit in privat pe messenger o varianta modificata a acestui proiect, dar inca nu am avut timp sa verific cum functioneaza.

Image
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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: yoRadio pe ESP32-2432s028.

Unread postby Levy » 24 Jan 2024 17:56

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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: yoRadio pe ESP32-2432s028.

Unread postby Levy » 26 Jan 2024 21:56

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. :drink2:
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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Webradio player pe ESP32-2432s028.

Unread postby Levy » 27 Jan 2024 22:43

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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Webradio player pe ESP32-2432s028.

Unread postby Levy » 23 Apr 2024 16:20

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:
Image

Conexiunile display-ului și DAC-ului la microcontroler se fac după cum urmează:
Image

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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Webradio player pe ESP32-2432s028.

Unread postby Levy » 07 May 2024 18:55

Astazi m-am jucat si cu o varianta cu

Image
ESP32 +

Image
Oled 0.96 inch SSD1306 display +

Image
Max98357 I2S 3W Class D Amplifier Breakout Interface +

Image
HX1838 Telecomanda IR +

Image
Senzor infrarosu HX1838

Image
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


Image
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. :haha: :haha:

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!)

Image
Diferenta dintre cel din myoptions.h generator si cel folosit.
Image

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 !

Image
User avatar
Levy
Gold User
Posts: 1581
Joined: 02 Oct 2013 15:07
Location: ABSURDISTAN

Re: Webradio player pe ESP32.

Unread postby Levy » 11 May 2024 20:21

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.

Image

Image

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.

Image

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.

Image
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 !

Image

Return to “Arduino”

Who is online

Users browsing this forum: No registered users and 67 guests