View Full Version : WEB Radio
De curand am realizat acest proiect: https://heyrick.eu/blog/index.php?diary=20190203&keitai=0 si vi-l propun spre realizare. Evident, nu ma voi lauda cu munca altuia ci voi prezenta mici detalii si probleme care le-am intalnit in timpul constructiei. Carcasa din plastic am comandat-o din tara, boxele provin din recuperari, iar urmatoarele componente le-am comandat din China la un pret total ce nu depaseste 55 lei:
* Placa de dezvoltare ESp32;
* Modul decodare mp3 VS1053;
* Afisaj lcd 2x16 cu backlight;
* Interfata I2C pentru lcd;
* Amplificator PAM8403 - 2x3W, neinclus in proiectul original; evident se poate folosi oricare altul la puterea dorita.
Evident, mai sunt necesare cele 2 butoane, sursa de alimentare de 5 volti (am folosit una de 2 amperi intrucat am adaugat si amplificatorul audio) si cei doi condensatori electrolitici (personal am folosit 2200uF/10v pe Vin si 1000uF pe 3,3v).
1667
Am considerat mai potrivita lipirea intre module folosind cabluri de lungime potrivita, cablurile cu header atasate folosite de autor pot cauza surprize in timp.
1668
Autorul a prezentat in mod foarte detaliat realizarea proiectului dar am avut probleme in programarea programarea placii ESP32 cu Arduino IDE; ajutor am gasit aici: https://randomnerdtutorials.com/installing-the-esp32-board-in-arduino-ide-windows-instructions/
Inainte de a face upload sketch-ului in prima linie este o mica greseala: stergeti primul caracter (un punct) astfel incat aceasta sa arate astfel:
/* Rick's little internet radio
Nu uitati sa editati datele referitoare la SSID si parola:
// Now hardwire the AP's SSID and password.
char ssid[] = "Your_AP_name!";
char pass[] = "your_password_here";
Optional puteti sa editati lista de canale sau sa o lasati asa cum a conceput-o autorul; din lista originala am lasat doar Eagle 80's, care mi s-a parut interesant, in rest am adaugat posturi radio romanesti (care evident nu le pot receptiona in fm in zona in care locuiesc). Astfel dupa "ostilitati" lista arata in acest fel:
struct stationdef station[5] =
{
// First station - this is the station played at startup
"Eagle '80s",
"streaming.ukrd.com", // may be updated if there's a redirection
"/eagle-80s.mp3", // may be updated if there's a redirection
80,
// Second station
"ProFM",
"edge126.rdsnet.ro",
"/profm/profm.mp3",
84,
// Third station
"DigiFM",
"edge76.rdsnet.ro",
"/digifm/digifm.mp3",
84,
// Fourth station
"DanceFM",
"edge126.rdsnet.ro",
"/profm/dancefm.mp3",
84,
// Fifth station
"VibeFM",
"astreaming.vibefm.ro",
"/vibefm_mp3_64k",
8000
// Don't forget to update stationcount below
};
Si un mic clip video:
https://vimeo.com/user107103193/review/382410863/f051134ff1
Felicitări.
LE clipul de pe vimeo nu este acolo
incearca aici https://vimeo.com/382410863
la multi ani! :)
OF-ul meu cel mai mare este ca nu sunt acceptate decat adresele in format mp3, din pacate tendintele actuale sunt formatele aac si aac+ ; formatul aac este acceptat de vs1053 (conform fisei de catalog), chiar am introdus o adresa aac, radioul se conecteaza la respectiva adresa dar sunetul nu este redat. Conversia adresei din aac in mp3 se pare ca este o utopie, deocamdata sunt intr-un punct mort.
incearca aici https://vimeo.com/382410863
la multi ani! :)
L-au blocat şi aici, dar a fost activ initial si am reusit sa-l vizionez. Nu pricep cauza, ca doar nu e copy-right
KaRadio
Cred ca este cel mai celebru proiect, sursa: https://github.com/karawin/Ka-Radio32
Varianta mea: ESP32 / PCM5102 / lcd 1,44 inch-ST7735S (toate cumparate din China)
1711
1712
1713
Setari, update si lista de canale din webif:
1714
Revin cu un alt proiect, de data aceasta al unui italian - Michele Pinassi. Pot spune ca este cel mai grozav din tot ce am testat pana acum deoarece reda fara probleme stream-urile aac si aac plus. Cautam un proiect simplu pentru la bucatarie si asa l-am gasit, sursa: https://github.com/michelep/ESP32_WebRadio.
Deoarece in bucatarie nu tineam neaparat ca radioul sa fie stereo am inlocuit PCM5102 cu MAX98357, tot DAC I2S care are in plus amplificator mono de 3W. Nu am redesenat schema, modulul MAX98357 l-am conectat astfel la ESP32:
- LRC ----D25
-BCLK----D26
-DIN-----D22
-GAIN---legat printr-o rezistenta de 100KOhmi la +5 volti (castig: 3dB)
-SD-----legat la +5 volti pentru redarea canalului din stanga sau printr-o rezistenta de 370 KOhmi la +5 volti pentru redarea canalului din dreapta sau printr-o rezistenta de 1.011 MegaOhmi la +5 volti pentru redarea ambelor canale
Alimentarea modulului s-a facut la +5 volti, din tensiunea de + 3,3 volti ramanand alimentat doar afisajul lcd iar modulul led Neopixel nu l-am mai montat.
1718
1719
1720
Modulele si lcd-ul sunt cumparate de pe Ali; carcasa, butoanele colorate si masca difuzorului dintr-un magazin online romanesc. Desigur are si interfata web:
1721
Am revenit la proiectul Karadio, de data aceasta cu modulul ESP32-Wroover; se pot reda si formatele aac si aac plus.
https://github.com/karawin/Ka-Radio32 : ultimul firmware postat este V2.1R1, dupa terminarea radiolui din interfata web de configurare am facut update la versiunea 2.1R2 din 13.03.2021.
Componentele sunt cumparate din China cu exceptia carcasei cumparata din tara si a antenei wifi provenita din recuperari. Am ales varianta constructiva cu urmatoarele componente:
* ESP32-Wroover
1760
*Interfata I2S: PCM5102
*Modul amplificator audio: PAM8403, 2 x 3W (boxele sunt de 5W)
1764
*Control: Encoder rotativ
*Afisaj: TFT 1,8 inch
1761
Schema atasata contine variante de conectare si pentru alte interfete audio, alte tipuri de afisaje sau inlocuirea encoderului cu butoane clasice. Tot in atasament este si modul de configare al utilitarului ESP32 DOWNLOAD TOOL in vederea programarii modului ESP32-Wroover.
1762
Am vrut si eu sa cumpar un web radio de la magazin,dar cand am vazut cat costa nu am mai cumparat.Cat te-a costat in total proiectul Karadio cu modulul ESP32-Wroover?
Și eu l-am construit din același motiv, componentele le-am cumpărat de pe AliExpress in timp din magazine diferite. Am sa incerc sa fac o mică evaluare, ținând cont de faptul că nu am mai comandat nimic din primăvară înaintea introducerii TVA la comenzile făcute pe site-uri din afara UE.
yoradio
Proiectul este derivat din KaRAdio, sursa: https://github.com/e2002/yoradio
Varianta am realizat-o cu ESP Wroom32, lcd i2c 1602, audio 2x Max98357, control (provizoriu) - encoder rotativ. Urmeaza sa primesc carcasa, nu stiu inca cum va arata la final dar cred ca am sa las encoderul numai pentru volum + play/ pauza, iar pentru schimbarea programelor alt encoder sau 3 mini switch-uri.
https://i.postimg.cc/bJ0nkh2W/1.jpg (https://postimages.org/)
https://i.postimg.cc/KzhL1z4t/2.jpg (https://postimages.org/)
https://i.postimg.cc/YCVQw8Hn/3.jpg (https://postimages.org/)
Proiectul beneficiaza de webif pentru setari si controlul radioului cu telefonul.
https://i.postimg.cc/FHrQ45vp/4.jpg (https://postimages.org/)
https://i.postimg.cc/QdfZN4x3/5.jpg (https://postimages.org/)
YoRadio
ESP32 Wrover, DAC audio PCM5102, display 0.96" GC9106, control IR
Intentionez sa folosesc carcasa unui boombox Philips AZ1130 din care voi pastra sursa de alimentare, amplificatorul audio si difuzoarele. Voi mai adauga un modul BT/ MP3 in locul unitatii CD, modul cumparat tot de pe ALI precum componentele enumerate mai sus
.
https://i.postimg.cc/ydXz9Jcw/IMG-20221010-111243.jpg (https://postimages.org/)
https://i.postimg.cc/WzFm3MMm/IMG-20221010-111405.jpg (https://postimages.org/)
Display-ul ales la o dimensiune apropiata cu cel original al boombox-ului
https://i.postimg.cc/Fs00SNB0/IMG-20221010-111110.jpg (https://postimages.org/)
Se poate folosi orice telecomanda compatibila protocolului NEC, programarea facandu-se din webif:
https://i.postimg.cc/bwBYN29g/IMG-20221010-111142.jpg (https://postimages.org/)
https://i.postimg.cc/hvcMzv1Z/Screenshot-2022-10-10-11-19-04-338-com-android-chrome.jpg (https://postimages.org/)
Yoradio/ ESP32 WROOM, 2 X Max98357 I2S audio, Ir control, I2C LCD 1602 display
https://i.postimg.cc/PfCdMy6f/IMG-20221121-115543-1.jpg (https://postimages.org/)
https://i.postimg.cc/9F4zrC3p/IMG-20221121-123813-1.jpg (https://postimages.org/)
https://i.postimg.cc/2ShQL4p2/IMG-20221121-124019.jpg (https://postimages.org/)
ESP32_2xMax98357_ir
https://i.postimg.cc/7PcBf14L/1688364087538295781311859364655.jpg (https://postimages.org/)
https://i.postimg.cc/P5cZMy6L/16883641524313495055938292806758.jpg (https://postimages.org/)
cipryDXfeed
03-09-23, 21:13
yoradio
Proiectul este derivat din KaRAdio, sursa: https://github.com/e2002/yoradio
Varianta am realizat-o cu ESP Wroom32, lcd i2c 1602, audio 2x Max98357, control (provizoriu) - encoder rotativ. Urmeaza sa primesc carcasa, nu stiu inca cum va arata la final dar cred ca am sa las encoderul numai pentru volum + play/ pauza, iar pentru schimbarea programelor alt encoder sau 3 mini switch-uri.
https://i.postimg.cc/bJ0nkh2W/1.jpg (https://postimages.org/)
https://i.postimg.cc/KzhL1z4t/2.jpg (https://postimages.org/)
https://i.postimg.cc/YCVQw8Hn/3.jpg (https://postimages.org/)
Proiectul beneficiaza de webif pentru setari si controlul radioului cu telefonul.
https://i.postimg.cc/FHrQ45vp/4.jpg (https://postimages.org/)
https://i.postimg.cc/QdfZN4x3/5.jpg (https://postimages.org/)
poate fi controlat si de la distanta? ma refer din alta retea? se poate alege un port anume din setari?
Nu am incercat decât în rețeaua locală, posibil sa poată fi accesat de la distanță, dar în webif nu e nimic referitor la port. Poate găsești ceva in codul sursă: https://github.com/e2002/yoradio/tree/main
Dacă nu te superi, la ce vrei sa folosești această funcție? Poate găsim altă soluție.
Portul http este 80, nu rețin dacă acest port este sigur să-l lași deschis.
Continui acest topic in ajutorul celor doi colegi care mi-au cerut detalii in realizarea unui astfel de radio, astept si postarile lor. Cunostintele mele sunt limitate, m-am limitat la invatarea strictului necesar asa ca sfaturile celor mai calificati si priceputi sunt bine venite.
Personal recomand proiectului YoRadio: https://github.com/e2002/yoradio , tutorial pas cu pas: https://github.com/e2002/yoradio/wiki/How-to-flash#preparing
Dupa ce reusiti sa adaugati ESP32 in Arduino IDE, sa instalati unealta ESP32 Filesystem Uploader si librariile recomandate putem trece mai departe. Nu uitati sa instalati Arduino IDE 1.8.19, variantele 2.x.x nu sunt suportate.
De la mateda, sanatate!
Eu sint unul care a cerut detalii. Din comoditate, de acord, da`nu-i nimic rau in a fi comod, nu ?
Lista mea de componente pentru acest proiect este :
1. Placa de dezvoltare ESP-WROOM-32 (38 pini) cumparat pe aliexpress pe cind nu se platea TVA sau ideaspark ESP-WROOM-32 (30 pini) cu display OLED de 0.96 inch cumparat pe temu, ajuns ieri;
2. Amplificator mono I2S MAX98357A 4-8 OHM 3W cumparat pe aliexpress impreuna cu placa de dezvoltare;
3. Modul LCD 16x2 cu controler I2C cumparat ca mai sus;
4. Modul Rotary encoder cu click cumparat ca mai sus;
5. Difuzor 4 OHM 5W recuperat.
Carcasa am s-o tai din plexic de 4mm dupa definitivarea designului partii electronice.
Bineinteles ca modulul LCD este destinat asocierii cu prima placa de dezvoltare din lista, cealalta placa are display atasat, sper sa-l pot folosi.
Modulul rotary encoder as vrea sa modifice volumul sunetului si sursa de streaming aka postul de radio.
Nu este nicio problema, chiar mă bucur să colaborăm. Lista de componente este aproape completă ar mai trebui un cablaj de teste, cabluri Dupont și conectori.
Se pot cumpăra din tara, numai pentru atât nu se merita comanda pe Ali.
https://i.postimg.cc/4xCrFW0Y/17301988711398657547619991793719.jpg (https://postimages.org/)
OK, revin dupa ce sosesc completarile. Adica placa de prototipare (cablajul de teste), cabluri si conectori am destui ...
Multumesc pentru disponibilitate inca o data.
Până atunci, hai cu Arduino IDE.
De la mateda, sanatate !
Am [re]instalat Arduino 1.8.19 pe sistemul meu cu Windows7, am inclus placa de dezvoltare in lista, am port COM functional (a fost nevoie de driver nou), plus niste biblioteci pentru afisajul OLED atasat.
Am si un bread-board pentru partea hard.
Ce facem mai departe ?
Instalati si aceasta unealta: https://randomnerdtutorials.com/install-esp32-filesystem-uploader-arduino-ide/
Dezarhivam yoradio-main, dupa care accesam https://e2002.github.io/docs/myoptions-generator.html . Setam astfel:
https://i.postimg.cc/QMbWbqrM/1.png (https://postimages.org/)
https://i.postimg.cc/3NPyRS2t/2.png (https://postimages.org/)
https://i.postimg.cc/bJSShftZ/3.png (https://postimages.org/)
Setarile sunt pentru componentele colegului Mateda; am uitat sa intreb encoderul rotativ este simplu sau tip modul cu rezistente pull-up lipite pe cablaj? In continuare apasam butonul "Preview" si "ïese" schema:
https://i.postimg.cc/L4bRPgGF/4.png (https://postimages.org/)
In continuare apasam butonul "get myoptions.h", fisierul obtinut se va copia in yoradio-main\yoRadio.
#ifndef myoptions_h
#define myoptions_h
/* Generated by myoptions.h generator - v0.8.1 */
/* https://e2002.github.io/docs/myoptions-generator.html?r=71,1,2,4,8,16,43,54&i=5,6,15,16,17,28,29,30&v=21,22,27,26,25,34,35,32 */
/* 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: */
/* OneButton */
/* !!! Do not be alarmed, all right, the default values are not included in this file !!! */
#define DSP_MODEL DSP_1602I2C
#define ENC_BTNR 34
#define ENC_BTNL 35
#define ENC_BTNB 32
#define ENC_INTERNALPULLUP false
#endif
Setarile necesare in Arduino IDE:
https://i.postimg.cc/WpmBTWP3/5.png (https://postimages.org/)
Tot in Tools selectam si portul USB, dupa care Verify si Upload; daca totul este in regula, se apasa butonul RST (EN) de pe placa Esp32 si se executa ESP32 Sketch Data Upload:
https://i.postimg.cc/zvJqxc4c/6.png (https://postimages.org/)
Dupa restart urmeaza introducera SSID si a parolei, se urmaresc pasii afisati pe display.
De la mateda, sanatate !
Sint dator multumiri si doua precizari :
1. Vreau sa folosesc placa de dezvoltare (30 pini) prevazuta cu display OLED de 0.96 inch care are driver SSD1306 ;
2. Encoderul este de tip modul cu rezistente pull-up lipite pe cablaj. Cum modifica setarile din generator ?
1. Nu detin, nu am lucrat cu respectivul modul; teoretic din generator ar trebui setat SSD1306 in sectiunea Display. Partea proasta este ca exista display SSD1306 atat cu I2C cat si cu SPI. Nu vreau sa recomand un display anume dar cred ca cel mai convenabil este ST7735, 1.8", color, incepand cu 9 lei, fara transport, pe Aliexpress.
2. Encoder ramane asa din setari.
--------------------------------------------------
O rugaminte: am programat pentru un coleg de forum un modul ESP32; testele le-am facut pe routerul meu, puteam sa adaug SSID si parola lui, dar nu am facut-o. In mod normal, in acest caz radioul intra in AP Mode, la conectare cere parola 12345987, numai ca primeste mesaj de eroare - parola gresita. Nu m-am mai lovit de acest aspect, poate puteti ajuta cu o solutie in acest caz.
---------- Post added at 17:19 ---------- Previous post was at 16:38 ----------
Un alt proiect, mi-a dat ceva batai de cap, dar a meritat: https://github.com/schreibfaul1/ESP32-MiniWebRadio
Compilare si programare numai in VS Code (ceva nou pentru mine), ESP32 Wroom sau ESP32-S3 (folosit S3 N8R8), display cu touch screen (folosit ILI9341, 2.8")
Se mai poate adauga telecomanda IR, exista interfata webif si ce mai imi place se pot adauga picon-uri similare Enigma2.
https://i.postimg.cc/Lssb5f7G/IMG-20241031-164944663-HDR-1.jpg (https://postimages.org/)
---------- Post added at 17:22 ---------- Previous post was at 17:19 ----------
PS: Vu metru ala arata rau, ar fi bine sa reusesc sa-l dezactivez :)
De la mateda, sanatate!
1. Display-ul cu pricina este cu I2C, stiu adresa si pinii din configurator sint OK.
2. Daca nu-mi va reusi proiectul in configuratia dorita, trecem la planul B, cu cealalta placa de dezvoltare (38 pini) si afisajul LCD 1602 I2C.
Multumesc pentru sustinere.
Cre` ca am gresit ceva ! L-am pus pe Arduino IDE sa ... Verify si mi-a dat o multime de erori ...
Poate n-am importat corect proiectul (aka yoradio-main) in IDE. Mai sapam. Luni, pt ca proiectul se desfasoara in timpul serviciului, he-he ...
Serviciu la privat, sa n-avem vorbe ...
Erorile pot aparea din cauza lipsei unor librarii, dar si setarilor gresite in Arduino IDE. In Tools, in Boards aveti selectat asa?
https://i.postimg.cc/Y0QQ3WgK/Captur-de-ecran-2024-11-02-201716.png (https://postimages.org/)
Da, avem ... M-as bucura sa depasim pluralul de reverenta, daca nu va este cu suparare.
Divaisu` e recunoscut de catre IDE, am rulat niste teste de functionare a display-ului si-i OK.
Am sa fac pasul inapoi si am sa incerc un proiect minimal : placa de dezvoltare + MAX9... + difuzor + un singur post de radio.
Fara reglare volum, fara schimbare program, cu WiFi setat din cod. Dar tot luni ...
Pina atunci, ne mai documentam.
Va doresc un week-end placut si odihnitor.
De la mateda, sanatate!
Problem. Am incercat cu ambele placi de dezvoltare. Fara rezultat. Verificarea anunta tot felul de erori, inclusiv ca referirea la "oct" si "dec" este ambigua ...
M-am cam dezumflat ...
Nu te descuraja, in Arduino IDE in fereastra de jos unde sunt afișate erorile ai posibilitatea sa selectezi toate mesajele de eroare și să le copiezi. Postează aici.
Le-am trimis prin mesaj privat, dar le pun si aici sa-si dea lumea cu parerea.
***
In file included from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\displays\tools\l10n.h:14,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\displays\displayLC1602.h:6,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\displays\dspcore.h:20,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\core\display.h:9,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino:23:
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\locale\displayL10n_en.h:57:86: error: reference to 'oct' is ambiguous
57 | const char* const mnths[] PROGMEM = { jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec };
| ^~~
In file included from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ios:42,
from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\ostream:38,
from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\unique_ptr.h:41,
from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\memory:76,
from C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\libraries\FS\src/FS.h:24,
from C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\libraries\SPIFFS\src/SPIFFS.h:17,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\core\config.h:6,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino:20:
c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\ios_base.h:1071:3: note: candidates are: 'std::ios_base& std::oct(ios_base&)'
1071 | oct(ios_base& __base)
| ^~~
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\locale\displayL10n_en.h:34:12: note: 'const char oct [8]'
34 | const char oct[] PROGMEM = "october";
| ^~~
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\locale\displayL10n_en.h:57:96: error: reference to 'dec' is ambiguous
57 | const char* const mnths[] PROGMEM = { jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec };
| ^~~
c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\ios_base.h:1055:3: note: candidates are: 'std::ios_base& std::dec(ios_base&)'
1055 | dec(ios_base& __base)
| ^~~
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\locale\displayL10n_en.h:36:12: note: 'const char dec [9]'
36 | const char dec[] PROGMEM = "december";
| ^~~
In file included from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino:24:
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\core\network.h:40:8: error: 'Network' does not name a type
40 | extern Network network;
| ^~~~~~~
In file included from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino:26:
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\core\controls.h:28:6: error: variable or field 'irNum' declared void
28 | void irNum(byte num);
| ^~~~~
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\src\core\controls.h:28:12: error: reference to 'byte' is ambiguous
28 | void irNum(byte num);
| ^~~~
In file included from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\cmath:42,
from c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\math.h:36,
from C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\cores\esp32/esp32-hal.h:30,
from C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\cores\esp32/Arduino.h:36,
from C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino:18:
c:\users\dan\appdata\local\arduino15\packages\esp32\tools\esp-x32\2302\xtensa-esp32-elf\include\c++\12.2.0\bits\cpp_type_traits.h:406:30: note: candidates are: 'enum class std::byte'
406 | enum class byte : unsigned char;
| ^~~~
C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\cores\esp32/Arduino.h:149:17: note: 'typedef uint8_t byte'
149 | typedef uint8_t byte;
| ^~~~
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino: In function 'void setup()':
yoRadio:39:3: error: 'network' was not declared in this scope; did you mean 'Network'?
39 | network.begin();
| ^~~~~~~
| Network
C:\Users\Dan\Desktop\Proiect\@Val\yoradio-main\yoRadio\yoRadio.ino: In function 'void loop()':
yoRadio:67:7: error: 'network' was not declared in this scope; did you mean 'Network'?
67 | if (network.status == CONNECTED || network.status==SDREADY) {
| ^~~~~~~
| Network
Multiple libraries were found for "SD.h"
Used: C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\libraries\SD
Not used: C:\Program Files (x86)\Arduino\libraries\SD
Multiple libraries were found for "WiFi.h"
Used: C:\Users\Dan\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.5\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
exit status 1
Exception in thread "Thread-33" java.lang.NullPointerException
at org.fife.ui.rsyntaxtextarea.TokenMakerBase.addToken(TokenMakerBase.java:136)
at processing.app.syntax.SketchTokenMaker.addToken(SketchTokenMaker.java:73)
at org.fife.ui.rsyntaxtextarea.TokenMakerBase.addToken(TokenMakerBase.java:110)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.addToken(CPlusPlusTokenMaker.java:1868)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.addToken(CPlusPlusTokenMaker.java:1852)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.addToken(CPlusPlusTokenMaker.java:1841)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.yylex(CPlusPlusTokenMaker.java:2241)
at org.fife.ui.rsyntaxtextarea.modes.CPlusPlusTokenMaker.getTokenList(CPlusPlusTokenMaker.java:1919)
at org.fife.ui.rsyntaxtextarea.RSyntaxDocument.getTokenListForLine(RSyntaxDocument.java:431)
at org.fife.ui.rsyntaxtextarea.SyntaxView.getLineWidth(SyntaxView.java:306)
at org.fife.ui.rsyntaxtextarea.SyntaxView.calculateLongestLine(SyntaxView.java:110)
at org.fife.ui.rsyntaxtextarea.SyntaxView.updateMetrics(SyntaxView.java:903)
at org.fife.ui.rsyntaxtextarea.SyntaxView.setSize(SyntaxView.java:811)
at javax.swing.plaf.basic.BasicTextUI$RootView.setSize(BasicTextUI.java:1722)
at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1046)
at javax.swing.plaf.basic.BasicTextUI.modelToView(BasicTextUI.java:1022)
at javax.swing.text.JTextComponent.modelToView(JTextComponent.java:1377)
at org.fife.ui.rtextarea.RTextAreaBase.possiblyUpdateCurrentLineHighlightLocation(RTextAreaBase.java:77 8)
at org.fife.ui.rtextarea.RTextArea.fireCaretUpdate(RTextArea.java:614)
at org.fife.ui.rsyntaxtextarea.RSyntaxTextArea.fireCaretUpdate(RSyntaxTextArea.java:835)
at javax.swing.text.JTextComponent$MutableCaretEvent.fire(JTextComponent.java:4394)
at javax.swing.text.JTextComponent$MutableCaretEvent.stateChanged(JTextComponent.java:4416)
at javax.swing.text.DefaultCaret.fireStateChanged(DefaultCaret.java:802)
at javax.swing.text.DefaultCaret.changeCaretPosition(DefaultCaret.java:1274)
at javax.swing.text.DefaultCaret.handleSetDot(DefaultCaret.java:1173)
at javax.swing.text.DefaultCaret$DefaultFilterBypass.setDot(DefaultCaret.java:1913)
at javax.swing.text.NavigationFilter.setDot(NavigationFilter.java:64)
at org.fife.ui.rtextarea.ConfigurableCaret$FoldAwareNavigationFilter.setDot(ConfigurableCaret.java:724)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1151)
at javax.swing.text.DefaultCaret.setDot(DefaultCaret.java:1051)
at javax.swing.text.JTextComponent.setCaretPosition(JTextComponent.java:1631)
at processing.app.Editor.addLineHighlight(Editor.java:1671)
at processing.app.Editor.statusError(Editor.java:2552)
at processing.app.Editor$BuildHandler.run(Editor.java:1646)
at java.lang.Thread.run(Thread.java:748)
Scuze pentru repetiție, varianta Arduino IDE este 1.8.19?
Mai am o bănuială, ce versiune ESP32 core ai instalat:3.0.5 cumva? Dacă da, dezinstaleaza și pune una nu mai veche de 2.0.0; când ajung acasă spun ce am eu instalat. La librarii deocamdată pare că nu sunt erori.
1. Arduino IDE este 1.8.19
2. Cum verific versiunea de core ESP32 ?
https://i.postimg.cc/NjmnjrZd/7.png (https://postimages.org/)
Tasteaza in bara de cautare din Boards Manager: ''esp32''; alege esp32 by Espressif, vezi ce versiune ai, dezinstaleaz-o. Reia procedeul, instaleaza din nou o varianta anterioara, de exemplu 2.16.
https://i.postimg.cc/tgxyNT1f/8.png (https://postimages.org/)
De la mateda, sanatate!
Am facut cele de mai sus si sint semne bune. Multumesc pentru indrumare.
Am sa refac setup-ul indicat in postul nr #25 si va tin la curent.
Bafta noua tuturor !
Va salut, din nou !
Am ajuns cu proiectul meu in faza in care divaisu` intra in AP Mode, accepta setare de SSID si pasword, dar dupa restart nu face mare lucru : zice ca incearca sa se conecteze la retea, dupa care afiseaza tot mesajul cu AP Mode.
Serial monitor afiseaza balarii, patratele si caractere fara sens.
Ce sa-i mai fac ?
ESP32 Sketch Data? Vezi postul 26.
Multumesc pentru reactie.
Da, am incercat si cu ESP32 Sketch Data si cu butonelu` Arduino IDE, nu mi se pare sa fie diferente.
Unde gresesc ?
Raspunsul este : in mai multe locuri.
Noroc cu colegul val care e si priceput si de treaba, gata sa ajute cind i se cere. Multumesc mult de tot. Din nou.
Pentru cei interesati, problemele enuntate in postul #40 erau cauzate de semnalul slab al retelei WiFi - de aceea nu se conecta, (poate ar fi bun un modul cu antena exterioara, ma mai gindesc) si viteza datelor gresita in Serial Monitor - de aceea afisa patratele si birbistoci. Cu Monitorul m-a deslusit val, cu WiFi m-am deslusit singur incercind in alta locatie si alta retea. Adica acasa, unde va fi instalat radioul.
Urmeaza test de functionare, dupa ce ma lamuresc cum import lista de streamuri - tot de la val primita, ca sa fie foarte clar.
De la mateda, sanatate !
Am testat acasa, cu lista de streamuri importata. In configuratia actuala, merge bine, rotary encoder included.
Ca sa fie foarte bine, ma gindesc la un display mai mare, la un modul ESP32 cu antena exterioara si la sunet stereo.
Multumesc public si repetat fratelui val, care s-a dovedit a fi priceput, rabdator si dispus sa ma ajute la fiecare pas cind am avut nevoie.
Si m-a si incurajat cind era s-o dau in ... de treaba.
Plecaciune.
De la AliExpress comandă un modul Esp32 wrover varianta având conector pentru antena exterioara, LCD vezi variantele suportate de YoRadio prezentate pe pagina GitHub a proiectului. Pentru stereo comanda ori 2 module max9857 sau 1 modul PCM5102 + un modul stereo audio de ce putere vrei tu. Și o antena wifi.
Revin la acest proiect, azi am reusit sa-l montez in carcasa.
https://i.postimg.cc/SQcYXFYh/IMG-20241121-110054551.jpg (https://postimages.org/)
https://i.postimg.cc/wTCx8Fkj/IMG-20241121-103422543.jpg (https://postimages.org/)
Sursa este: https://github.com/schreibfaul1/ESP32-MiniWebRadio ; configuratia aleasa este: ESP32-S3 N16R8 (16 Mb Flash, 8 Mb PsRam), display ILI9341 de 2,8" cu touchscreen, I2S DAC - PCM5102, amplificator 2 x 3 W, card SD de 32 Gb si telecomanda (se foloseste in paralel cu touch-ul dispalay-ului)
https://i.postimg.cc/s23WY3qS/IMG-20241121-105830799.jpg (https://postimages.org/)
Autorul propune optional un modul de emisie bluetooth si un modul pentru reglarea automata a luminozitatii display-ului; le am dar nu le-am montat.
Proiectul beneficiaza de interfata web pentru setari:
https://i.postimg.cc/sxSTqVcm/Captur-de-ecran-2024-11-21-111013.png (https://postimages.org/)
https://i.postimg.cc/K84M89XS/Captur-de-ecran-2024-11-21-111041.png (https://postimages.org/)
Posturile de radio le-am cautat si adaugat pe SD card direct din webif:
https://i.postimg.cc/q7vh5jLZ/Captur-de-ecran-2024-11-21-111354.png (https://postimages.org/)
Radioul beneficiaza si de Player audio, fisierele fiind copiate pe SD Card:
https://i.postimg.cc/vmC9jCmH/Captur-de-ecran-2024-11-21-111119.png (https://postimages.org/)
https://i.postimg.cc/kgqdN5F7/IMG-20241121-104752095.jpg (https://postimages.org/)
https://i.postimg.cc/yYfTjQ0W/IMG-20241121-104022892.jpg (https://postimages.org/)
Tot din Interfata Web se adauga si telecomanda Ir, buton cu buton:
https://i.postimg.cc/ZnQ2GTXD/Captur-de-ecran-2024-11-21-111422.png (https://postimages.org/)
Ce nu am probat inca, functia DLNA:
https://i.postimg.cc/9XxDDvG8/Captur-de-ecran-2024-11-21-111144.png (https://postimages.org/)
Cam atat, mi-a dat ceva bataie de cap dar a meritat.
https://i.postimg.cc/xdWWpTDx/Captur-de-ecran-2024-11-21-111435.png (https://postimages.org/)
cipryDXfeed
01-12-24, 21:31
Va salut. se poate adapta un script ceva la acest cod in sensul ca daca pica internetul sa se reconecteze automat.
/* ==================================================================================================== ========
* ёRadio
* ==================================================================================================== ========
* Web-radio based on
* ESP32-audioI2S https://github.com/schreibfaul1/ESP32-audioI2S
* or/and
* ESP32-vs1053_ext https://github.com/schreibfaul1/ESP32-vs1053_ext
* libraries
* ==================================================================================================== ========
* Project home https://github.com/e2002/yoradio
* Wiki https://github.com/e2002/yoradio/wiki
* Описание на 4PDA https://4pda.to/forum/index.php?s=&showtopic=1010378&view=findpost&p=112992611
* Как это прошить? https://4pda.to/forum/index.php?act=findpost&pid=112992611&anchor=Spoil-112992611-2
* ==================================================================================================== ========
* Here goes!
* ==================================================================================================== ========
*/
#include "Arduino.h"
#include "src/core/options.h"
#include "src/core/config.h"
#include "src/core/telnet.h"
#include "src/core/player.h"
#include "src/core/display.h"
#include "src/core/network.h"
#include "src/core/netserver.h"
#include "src/core/controls.h"
#include "src/core/mqtt.h"
#include "src/core/optionschecker.h"
extern __attribute__((weak)) void yoradio_on_setup();
void setup() {
Serial.begin(115200);
if(LED_BUILTIN!=255) pinMode(LED_BUILTIN, OUTPUT);
if (yoradio_on_setup) yoradio_on_setup();
config.init();
display.init();
player.init();
network.begin();
if (network.status != CONNECTED && network.status!=SDREADY) {
netserver.begin();
initControls();
display.putRequest(DSP_START);
while(!display.ready()) delay(10);
return;
}
if(SDC_CS!=255) {
display.putRequest(WAITFORSD, 0);
Serial.print("##[BOOT]#\tSD search\t");
}
config.initPlaylistMode();
netserver.begin();
telnet.begin();
initControls();
display.putRequest(DSP_START);
while(!display.ready()) delay(10);
#ifdef MQTT_ROOT_TOPIC
mqttInit();
#endif
if (config.getMode()==PM_SDCARD) player.initHeaders(config.station.url);
player.lockOutput=false;
if (config.store.smartstart == 1) player.sendCommand({PR_PLAY, config.store.lastStation});
}
void loop() {
telnet.loop();
if (network.status == CONNECTED || network.status==SDREADY) {
player.loop();
//loopControls();
}
loopControls();
netserver.loop();
}
#include "src/core/audiohandlers.h"
Foloseste un interval de reconectare
EX:
const long interval = 10000; // Interval de reconectare in milisecunde (10 secunde)
cipryDXfeed
02-12-24, 22:54
Unde vine introdus in codul de sus?
Ai un exemplu in care folosesti millis.
#include <WiFi.h>
const char* ssid = "MyWiFi";
const char* password = "12345678";
unsigned long previousMillis = 0;
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.println("Conectat la rețeaua Wi-Fi...");
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
Serial.println("Conexiunea pierdută. Se încearcă reconectarea...");
WiFi.disconnect();
WiFi.begin(ssid, password);
}
} else {
Serial.println("Conectat la rețeaua Wi-Fi.");
}
delay(1000); // Faceți o pauză de 1 secundă pentru a evita supraîncărcarea buclei
}
Testează si spunemi daca se reconecteaza.
În cazul în care folosești MQTT, poate fi util să reconectezi și clientul MQTT după ce conexiunea WiFi este restabilită.
#include "Arduino.h"
#include "src/core/options.h"
#include "src/core/config.h"
#include "src/core/telnet.h"
#include "src/core/player.h"
#include "src/core/display.h"
#include "src/core/network.h"
#include "src/core/netserver.h"
#include "src/core/controls.h"
#include "src/core/mqtt.h"
#include "src/core/optionschecker.h"
extern __attribute__((weak)) void yoradio_on_setup();
unsigned long lastReconnectAttempt = 0;
const unsigned long reconnectInterval = 10000; // Interval pentru reconectare (10 secunde)
void setup() {
Serial.begin(115200);
if (LED_BUILTIN != 255) pinMode(LED_BUILTIN, OUTPUT);
if (yoradio_on_setup) yoradio_on_setup();
config.init();
display.init();
player.init();
network.begin(); // Pornire inițială a rețelei
if (network.status != CONNECTED && network.status != SDREADY) {
netserver.begin();
initControls();
display.putRequest(DSP_START);
while (!display.ready()) delay(10);
return;
}
if (SDC_CS != 255) {
display.putRequest(WAITFORSD, 0);
Serial.print("##[BOOT]#\tSD search\t");
}
config.initPlaylistMode();
netserver.begin();
telnet.begin();
initControls();
display.putRequest(DSP_START);
while (!display.ready()) delay(10);
#ifdef MQTT_ROOT_TOPIC
mqttInit();
#endif
if (config.getMode() == PM_SDCARD) player.initHeaders(config.station.url);
player.lockOutput = false;
if (config.store.smartstart == 1) player.sendCommand({PR_PLAY, config.store.lastStation});
}
void loop() {
telnet.loop();
if (network.status == CONNECTED || network.status == SDREADY) {
player.loop();
} else {
attemptReconnect(); // Verifică și încearcă să reconecteze dacă este nevoie
}
loopControls();
netserver.loop();
}
// Funcție pentru a încerca reconectarea la rețea
void attemptReconnect() {
unsigned long currentMillis = millis();
if (currentMillis - lastReconnectAttempt > reconnectInterval) {
lastReconnectAttempt = currentMillis;
Serial.println("Conexiune pierdută! Încerc să reconectez...");
display.putRequest(DSP_MSG, "Reconectare WiFi...");
network.begin(); // Reîncearcă conectarea la rețea
if (network.status == CONNECTED) {
Serial.println("Reconectat la WiFi!");
display.putRequest(DSP_MSG, "Conexiune restabilită.");
} else {
Serial.println("Reconectarea a eșuat.");
}
}
}
cipryDXfeed
03-12-24, 20:54
La compilare imi da eroare
<!----><div style="text-align: center;"><a href="https://acosbot.com/en/blog/amazon-brand-store-what-is-it-and-how-to-set-it-up/" title="Eselt - amazon brand store" target="_blank"><img src="https://img.eselt.de/img/16753785_fEDPyuDoVMj19yF4/ad.jpg" style="margin-bottom: 16px;"></a><!----><!----></div>
- - - Updated - - -
https://img.eselt.de/img/16753785_fEDPyuDoVMj19yF4/ad.jpg (https://img.eselt.de/img/16753785_fEDPyuDoVMj19yF4/ad.jpg)
- amazon brand store (https://acosbot.com/en/blog/amazon-brand-store-what-is-it-and-how-to-set-it-up/)
---------- Post added at 20:54 ---------- Previous post was at 20:50 ----------
https://img.eselt.de/img/16753802_hSaSn0hv2qNU6ilH/ad.jpg (https://img.eselt.de/img/16753802_hSaSn0hv2qNU6ilH/ad.jpg)
amazon book ads (https://acosbot.com/pl)
Da e si normal, nu am definito, daca nu stiu ce display folosesti, dami detali.
Dacă nu există DSP_MSG, poți utiliza o altă constantă deja definită, sau adăuga manual una.
1. Înlocuiește DSP_MSG cu altă comandă existentă:
Poți încerca cu o constantă existentă, cum ar fi DSP_TEXT (dacă biblioteca o definește):
[CCODE]display.putRequest(DSP_TEXT, "Reconectare WiFi...");[\CODE]
2. Definește DSP_MSG manual:
Dacă vrei să păstrezi DSP_MSG, îl poți defini tu:
Adaugă în fișierul display.h sau la începutul fișierului principal:
display.putRequest(DSP_TEXT, "Reconectare WiFi...");[\CODE]
Acest cod poate varia în funcție de biblioteca folosită.
Trebuie să te asiguri că valoarea constantă nu intră în conflict cu alte valori deja existente.
3. Verifică funcția putRequest()
Este posibil ca biblioteca display să utilizeze alt mod pentru a afișa mesaje. Verifică documentația sau fișierul display.h pentru a identifica cum poate fi trimis un mesaj text.
Dacă ai nevoie de mai multe informații despre structura proiectului tău sau despre modul în care funcționează biblioteca display, trimite-mi mai multe detalii. Te pot ajuta să rezolvăm eroarea!
---------- Post added at 06:51 ---------- Previous post was at 06:48 ----------
Da e si normal, nu am definito, daca nu stiu ce display folosesti, dami detali.
Dacă nu există DSP_MSG, poți utiliza o altă constantă deja definită, sau adăuga manual una.
1. Înlocuiește DSP_MSG cu altă comandă existentă:
Poți încerca cu o constantă existentă, cum ar fi DSP_TEXT (dacă biblioteca o definește):
[CODE]display.putRequest(DSP_TEXT, "Reconectare WiFi...");
2. Definește DSP_MSG manual:
Dacă vrei să păstrezi DSP_MSG, îl poți defini tu:
Adaugă în fișierul display.h sau la începutul fișierului principal:
display.putRequest(DSP_TEXT, "Reconectare WiFi...");
Acest cod poate varia în funcție de biblioteca folosită.
Trebuie să te asiguri că valoarea constantă nu intră în conflict cu alte valori deja existente.
3. Verifică funcția putRequest()
Este posibil ca biblioteca display să utilizeze alt mod pentru a afișa mesaje. Verifică documentația sau fișierul display.h pentru a identifica cum poate fi trimis un mesaj text.
Dacă ai nevoie de mai multe informații despre structura proiectului tău sau despre modul în care funcționează biblioteca display, trimite-mi mai multe detalii. Te pot ajuta să rezolvăm eroarea!
cipryDXfeed
04-12-24, 21:30
Asta este in display.h
#ifndef displayST7735_h
#define displayST7735_h
#include "../core/options.h"
#include "Arduino.h"
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#if CLOCKFONT_MONO
#include "fonts/DS_DIGI28pt7b_mono.h" // https://tchapi.github.io/Adafruit-GFX-Font-Customiser/
#else
#include "fonts/DS_DIGI28pt7b.h"
#endif
#include "tools/l10n.h"
#define CHARWIDTH 6
#define CHARHEIGHT 8
typedef GFXcanvas16 Canvas;
#include "widgets/widgets.h"
#include "widgets/pages.h"
#if __has_include("conf/displayST7735conf_custom.h")
#include "conf/displayST7735conf_custom.h"
#else
#if DTYPE==INITR_MINI160x80
#include "conf/displayST7735_miniconf.h"
#elif DTYPE==INITR_144GREENTAB
#include "conf/displayST7735_144conf.h"
#else
#include "conf/displayST7735_blackconf.h"
#endif
#endif
#define BOOT_PRG_COLOR 0xE68B
#define BOOT_TXT_COLOR 0xFFFF
#define PINK 0xF97F
class DspCore: public Adafruit_ST7735 {
#include "tools/commongfx.h"
};
extern DspCore dsp;
#endif
Si in myoption.h
#ifndef myoptions_h
#define myoptions_h
/* Generated by myoptions.h generator - v0.8.1 */
/* https://e2002.github.io/docs/myoptions-generator.html?r=71,1,2,4,8,11,36,41,43,54&i=1,2,3,4,15,16,17,28,29,30&v=4,5,15,21,27,26,25,34,35,32 */
/* 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 ST7735 and ST7789 Library, OneButton */
/* !!! Do not be alarmed, all right, the default values are not included in this file !!! */
#define DSP_MODEL DSP_ST7735
#define TFT_RST 15
#define BRIGHTNESS_PIN 21
#define ENC_BTNR 34
#define ENC_BTNL 35
#define ENC_BTNB 32
#define ENC_INTERNALPULLUP false
#define RSSI_DIGIT false
#endif
Nu am acest display ST7735 sa fac un test, dar inceaca acest cod sa verifici daca pe display apare reconectare apoi refacem.
#include <Adafruit_GFX.h>
#include <Adafruit_ST7735.h>
#include <SPI.h>
#define TFT_CS 10
#define TFT_RST 9
#define TFT_DC 8
Adafruit_ST7735 display = Adafruit_ST7735(TFT_CS, TFT_DC, TFT_RST);
unsigned long lastReconnectAttempt = 0;
const unsigned long reconnectInterval = 10000; // Interval pentru reconectare (10 secunde)
void setup() {
Serial.begin(115200);
display.initR(INITR_BLACKTAB);
display.fillScreen(ST77XX_BLACK);
display.setTextColor(ST77XX_WHITE);
display.setTextSize(1);
display.setCursor(0, 0);
display.print("Initializare...");
// Simulăm inițializarea rețelei
network.begin();
}
void loop() {
if (network.status != CONNECTED) {
attemptReconnect();
}
}
void attemptReconnect() {
unsigned long currentMillis = millis();
if (currentMillis - lastReconnectAttempt > reconnectInterval) {
lastReconnectAttempt = currentMillis;
Serial.println("Conexiune pierdută! Încerc să reconectez...");
display.fillScreen(ST77XX_BLACK);
display.setCursor(0, 0);
display.print("Reconectare WiFi...");
network.begin();
if (network.status == CONNECTED) {
Serial.println("Reconectat la WiFi!");
display.fillScreen(ST77XX_BLACK);
display.setCursor(0, 0);
display.print("Conexiune restabilită.");
} else {
Serial.println("Reconectarea a eșuat.");
display.print("\nEșec reconectare.");
}
}
}
cipryDXfeed
05-12-24, 20:56
nu compileaza
https://i.postimg.cc/xNJRg77D/Untitled3.png (https://postimg.cc/xNJRg77D)
---------- Post added at 20:51 ---------- Previous post was at 20:41 ----------
am atasat codul complet
https://fastupload.io/b1359e9669c227eb
---------- Post added at 20:56 ---------- Previous post was at 20:51 ----------
Ce am observat acuma in seara asta este ca ramane conectat la wifi pentru ca am acces la interfata , playerul radio nu se conecteaza doar daca ii dau conect din interfata cred ca aici este mai bine sa verifice conexiunea la 10 secunde. multumesc frumos.
De la mateda, sanatate !
De la AliExpress comandă un modul Esp32 wrover varianta având conector pentru antena exterioara, LCD vezi variantele suportate de YoRadio prezentate pe pagina GitHub a proiectului. Pentru stereo comanda ori 2 module max9857 sau 1 modul PCM5102 + un modul stereo audio de ce putere vrei tu. Și o antena wifi.
Am facut ce zici tu aici. Ramine pentru dupa Anul Nou.
Miine vine Mos Craciun si va doresc sa va aduca tot ce va doriti, chiar daca-i ilegal sau imoral, he-he !
Mosul o sa-i aduca sotiei mele radioul facut la indicatiile si cu incurajarile colegului val, despre care pot sa spun doar </b>Da-i, Doamne, sanatate ! <b/>.
Am o singura problema cu proiectul - am nevoie de URL pentru Romania Cultural. Daca aveti asa ceva si-mi dati si mie, Mosu` sa va-mbucure !
Sarbatori fericite si un An Nou de exceptie !
http://stream2.srr.ro:8012/;
Mai multe adrese: http://www.romaniaradio.ro/
Multumesc, functioneaza !
Va tin la curent cu proiectul nou, cu WROVER.
myoptions generator v 0.9.0
https://trip5.github.io/yoradio-docs/docs/myoptions-generator.html
https://i.postimg.cc/FHtmpkKp/Captur-de-ecran-2025-01-10-074315.png (https://postimages.org/)
Sursa https://macsbug.wordpress.com/2022/08/20/web-radio-esp32-2432s028-i2s/ , am apelat la traducerea paginii din motive evidente.
https://i.postimg.cc/htL7vnJW/1.jpg (https://postimages.org/)
https://i.postimg.cc/4dqzt5sr/2.jpg (https://postimages.org/)
Modulul contine ESP Wroom 32, lcd 2,8", fara decodor I2S. Referitor la display - autorul a folosit modul echipat cu display ILI9341, in "viteza" am comandat modul echipat cu ST7789. Noroc ca este suportat de LovyanGFX, detali aici: https://github.com/lovyan03/LovyanGFX/blob/master/examples/HowToUse/2_user_setting/2_user_setting.ino
Dezavantaje: pret piperat al modulului, proiectul nu beneficiaza de interfata web, lipsa metadate pe afisaj.
Ulterior autorul a facut un upgrade proiectului cu ESp32-S3: https://macsbug.wordpress.com/2024/10/25/modified-esp32-2432s028r-to-esp32-s3/
Toate bune si frumoase, numai ca metoda propusa o consider "barbara"; evident nu am vrut sa "macelaresc" modulul, prefer sa-l pastrez pentru alte proiecte. Cum autorul a publicat si schema radioului, am preferat sa comand de la chinezi modulul ESP32-S3, display ILI9341 (cu touch screen) si decodor I2S PCM5102.
https://i.postimg.cc/L5FDW1sY/11.jpg (https://postimages.org/)
https://i.postimg.cc/0NmJBHKn/12.jpg (https://postimages.org/)
https://i.postimg.cc/VLnqTvyn/13.jpg (https://postimages.org/)
Un alt dezavantaj pe care am omis sa-l mentionez este faptul ca editarea listei de canale se face modificand station.h dupa care se reincarca sketch-ul prin Arduino IDE.
Yo-Radio / ESP32 Wrover, ILI9341 - 2.8" display, encoder, PCM5100 (I2S + stereo amplifier module)
https://i.postimg.cc/qRMtYzZT/IMG-20250317-104051048-HDR.jpg (https://postimages.org/)
https://i.postimg.cc/nVXKcP0t/IMG-20250317-104319859.jpg (https://postimages.org/)
80's Boombox - Wood Edition :):):)
https://i.postimg.cc/brf15zbH/IMG-20250317-104345323.jpg (https://postimages.org/)
Pi Music Radio
Proiectul este vechi, din 2019: https://github.com/pimusicbox/pimusicbox/releases/tag/v0.7.0RC7 ; placa este pe "masura": raspberry pi b rev 2.
https://i.postimg.cc/jj3jJkdz/IMG-20250322-091345031.jpg (https://postimages.org/)
Cred ca d.p.d.v. al pretului ar fi fost cea mai potrivita varianta pentru proiectul colegului cipryDXfeed (nu am putu testa la timpul respectiv, de scurt timp am intrat in posesia a doua placi Raspberry PI) :
https://i.postimg.cc/pLTbnV96/1.png (https://postimages.org/)
https://i.postimg.cc/VsB3G0nh/2.png (https://postimages.org/)
Exista optiunea Autoplay in cazul intreruperii conexiunii la internet sau a tensiunii de alimentare:
https://i.postimg.cc/PJT5wL8w/3.png (https://postimages.org/)
Calitatea audio prin iesirea analogica o consider destul de buna, urmeaza sa testez si cu un DAC* audio:
https://i.postimg.cc/t4hvrY1T/4.png (https://postimages.org/)
_________________________________________________________________________________________
* Spre rusinea mea, nu am un "DAC" d'ala autentic, suveranist ci o "blasfemetie capitalist-sorosista" :) :D :D
Am in lucru un proiect postat pe FB de un tip - Cezary Niedziński; deocamdata nu stiu daca mai continui datorita modului de editare a listei de canale. Radioul beneficiaza de interfata web dar aceasta este utila doar pentru setarile de retea si incarcarea play-listului, citez din postarea acestuia:
Puteti citi playlist-uri din fisier la radio un text care trebuie sa fie accesibil de pe internet, de exemplu dosarul meu: https://raw.githubusercontent.com/.../main/_Playlisty.txt (nu garantez disponibilitatea acestui fisier la infinit ???? ).
Format fișier de configurare cu liste de redare:
Listă de redare = Nume lista de redare 1
numele stației 1; stație_address_1
Numele stației 2; stație_address_2
…
Cum playlist-ul respectiv nu ma ajuta, ce variante as avea? Cont pe github am, pot sa creez un playlist similar autorului (evident cu posturile de radio care ma intereseaza); ar mai fi si alte variante?
YoRadio cu ESP32 S3 Zero, encoder rotativ, ILI9341 display (fara touchscreen), modul audio WeAct I2S (PCM5100 + amplif. stereo 2 x 2.8watti). Avantaj: dimensiuni reduse al modulului ESP; dezavantaj: sensibilitate wifi modesta, justificata prin antena ceramica incorporata (cred ca se poate remedia prin atasarea unei antene exterioare).
https://i.postimg.cc/0ydyZTQh/ESP32-S3-Zero-pin.jpg (https://postimages.org/)
https://i.postimg.cc/zfGHhzjx/ESP32-S3-zero.jpg (https://postimages.org/)
https://i.postimg.cc/9fdgDBLd/myoptions-h.png (https://postimages.org/)
https://i.postimg.cc/zG5dHccx/Arduino-IDE.png (https://postimages.org/)
https://i.postimg.cc/023k87X5/IMG-20250514-064235177.jpg (https://postimages.org/)
Materiale: Raspberry Pi Zero 2W, Display 7" 1024*600 + controler, convertor audio I2S PCM5102, telecomanda + senzor IR, card de memorie.
https://i.postimg.cc/9Q5D480s/IMG-20250602-103910603.jpg (https://postimages.org/)
https://i.postimg.cc/L6HHGcq9/IMG-20250602-102611099.jpg (https://postimages.org/)
https://i.postimg.cc/L8YGWDV4/IMG-20250602-104844235.jpg (https://postimages.org/)
Display-ul si controlerul sunt cumparate de la chinezi cu aproximativ 110 lei, se pot comanda si separat. Am cumparat 2 controlere pentru ca mai aveam un display cu aceasi rezolutie, recuperat dintr-o tableta veche.
Am instalat ultima varianta - v3.812 folosind Raspberry Pi Imager; scrierea este posibila fara o descarcare in prealabil: "Chose OS / Media Player OS / Volumio".
https://i.postimg.cc/WpBtdWfg/4-BFFCE79-12-F4-4128-9395-257406-CFD02-F.png (https://postimages.org/)
Carcasa am recuperat-o dintr-un monitor lcd auto cu ecranul "indoit", montajul a fost dificil datorita rigiditatii cablului HDMI; de fapt comandasem un cablu mini hdmi dar chinezul a trimis ce a vrut el, noroc cu mufele de adaptare.
https://i.postimg.cc/Jzkn39GR/IMG-20250602-163132335.jpg (https://postimages.org/)
https://i.postimg.cc/VkF4DHSb/IMG-20250602-164647074.jpg (https://postimages.org/)
https://i.postimg.cc/T2qyL8Bm/IMG-20250602-164743562.jpg (https://postimages.org/)
https://i.postimg.cc/zX41qvpk/IMG-20250602-165231975-HDR.jpg (https://postimages.org/)
Pluginurile instalate:
https://i.postimg.cc/FFq1fjZt/pl.png (https://postimages.org/)
Display-ul folosit de mine fiind fara touch, pentru control am utilizat o telecomanda pe care o aveam deja, se poate utiliza encoder rotativ (exista plugin disponibil) sau din web if al telefonului. In cazul telefonului intervine paradoxul existentei aplicatiei Volumio pentru Android, deci o simpla boxa bluetooth este suficienta.
Posturile radio se pot adauga din lista sau introduce manual, mai sunt disponibile la plugins diverse servicii de streaming. Pentru test am instalat "80s80s Radio", mai jos capturi din web if:
https://i.postimg.cc/ZR6dmm0q/3-D50892-F-EBCF-4188-93-AE-5-AB653-D74162.png (https://postimages.org/)
https://i.postimg.cc/CKk1BN0P/05-CF74-C0-E44-F-43-ED-93-B1-C413-D7-D8923-A.png (https://postimages.org/)
https://i.postimg.cc/y8dBCTWg/06-E31-FAF-6740-43-F7-A65-F-EE8-E14188-B83.png (https://postimages.org/)
ESP32 Wroom, MAX98357, encoder rotativ, display 2.25" ST7789 - 284x76
https://i.postimg.cc/63FWyFtw/IMG-20250919-094729275.jpg (https://postimages.org/)
Proiect rusesc, piese chinezesti, carcasa sovietica; am zis ca iese ceva ... asa mai pe traditionalism, suveranism - patriotic. Total la intamplare, am ales GoldFM dar nu stiu din ce cauza se auzea distorsionat rau de tot. Am verificat piesele nimic, am zis sa verific si alt post de radio. Tot la intamplare am probat Radio France International (Fost Radio Delta-RFI); bai nene asta se aude perfect, tare si clar.
https://i.postimg.cc/NjLr2vw2/IMG-20250919-094805898.jpg (https://postimages.org/)
https://asculta.radiorfi.ro/live.mp3
1. V-Tom Radio: https://github.com/VaraiTamas/yoRadio
https://i.postimg.cc/xjm5Ncjr/IMG-20251206-144607750.jpg (https://postimg.cc/qgky9BCQ)
Componente: ESP32-S3, 2 encodere, PCM5102 decodor audio si display de 3.5" ST7796
2.S3-Go-radio: https://github.com/yurij75maks-dotcom/S3-Go-radio
https://i.postimg.cc/Hx9LFw0z/IMG-20251206-150052990.jpg (https://postimg.cc/xJqYzb4N)
Componente: ESP32-S3, control cu 5 butoane (am folosit un mic joystick cu 5 poziti), PCM5102 decodor audio si display de 3.5" ST7796.
Powered by vBulletin® Version 4.2.5 Copyright © 2026 vBulletin Solutions Inc. All rights reserved.