Cuprins:
- Pasul 1: obțineți toate părțile
- Pasul 2: placa ESP32
- Pasul 3: Decodor MP3
- Pasul 4: afișare Nextion
- Pasul 5: Conectarea tuturor pieselor
- Pasul 6: Codul proiectului
- Pasul 7: Gânduri finale și îmbunătățiri
Video: Radio pe Internet folosind un ESP32: 7 pași (cu imagini)
2024 Autor: John Day | [email protected]. Modificat ultima dată: 2024-01-30 11:44
Dragi prieteni bun venit la un alt instructabil! Astăzi vom construi un dispozitiv de radio Internet cu un ecran mare de 3,5”folosind o placă ESP32 ieftină. Credeți sau nu, acum putem construi un Internet Radio în mai puțin de 10 minute și cu mai puțin de 30 $. Există multe de acoperit, așa că, să începem!
Acum câteva luni, am finalizat un proiect Arduino FM Radio care funcționează excelent și arată și mai bine în opinia mea. Dacă doriți să vedeți cum am construit acest proiect, puteți citi Instructable aici. Problema este că, deși acest radio arată grozav, nu este practic, deoarece locuiesc într-un oraș mic din sudul Greciei și marile posturi de radio grecești pe care prefer să le ascult, nu au emițătoare pe aici. Așadar, ascult radiourile mele preferate online de pe laptop sau tabletă, ceea ce, de asemenea, nu este atât de practic. Așadar, astăzi voi construi un dispozitiv radio pe internet pentru a putea asculta posturile mele de radio preferate din toată lumea!
După cum puteți vedea, o primă versiune a proiectului este gata pe o placă de calcul. Să-l alimentăm. După cum puteți vedea, proiectul se conectează la Internet și apoi transmite muzică de la stații de radio predefinite.
M-am conectat la postul de radio Real FM din Atena și folosind aceste butoane putem schimba postul de radio pe care îl ascultăm. Mi-am salvat posturile de radio preferate în memoria ESP32, astfel încât să le pot accesa cu ușurință. Cu acest potențiometru, pot schimba volumul difuzorului. Afișez numele stației radio pe care o ascultăm pe un ecran mare de 3,5”, cu o interfață de utilizator retro. Proiectul funcționează bine și este foarte ușor de construit.
Puteți construi același proiect în mai puțin de 10 minute, dar trebuie să aveți ceva experiență. Dacă acesta este primul dvs. proiect, luați în considerare mai întâi construirea unuia mai simplu, pentru a câștiga puțină experiență. Consultați Instructables pentru idei simple de proiect și când vă simțiți mai confortabil cu Arduino, electronica revine pentru a construi acest proiect cool. Să începem acum să ne construim propriul radio pe internet.
ACTUALIZARE 06.06.2019
Problema zgomotului a fost rezolvată prin adăugarea unui transformator izolator. Consultați schema schematică actualizată. Mulțumiri!
Pasul 1: obțineți toate părțile
Vom avea nevoie de următoarele părți:
- ESP32 ▶
- Decodor MP3 ▶
- Isolation Transformer ▶
- Amplificator ▶
- Difuzor de 3W ▶
- Afișaj Nextion de 3,5 "▶
- Butoane push ▶
- Breadboard ▶
- Sârme ▶
Costul total al proiectului este de aproximativ 40 $, dar dacă nu utilizați un afișaj, costul proiectului este de aproximativ 20 $. Lucruri uimitoare. Ne putem construi propriul radio pe internet cu doar 20 $!
Pasul 2: placa ESP32
Inima proiectului este, desigur, puternica placă ESP32. Dacă nu sunteți familiarizați cu acesta, cipul ESP32 este succesorul popularului cip ESP8266 pe care l-am folosit de mai multe ori în trecut. ESP32 este o bestie! Oferă două nuclee de procesare pe 32 de biți care funcționează la 160 MHz, o cantitate masivă de memorie, WiFi, Bluetooth și multe alte caracteristici cu un cost de aproximativ 7 USD! Lucruri uimitoare!
Vă rugăm să urmăriți recenzia detaliată pe care am pregătit-o pentru acest forum. Am atașat videoclipul la acest instructabil. Vă va ajuta să înțelegeți de ce acest cip va schimba modul în care facem lucrurile pentru totdeauna! Unul dintre cele mai interesante lucruri despre ESP32 este că, deși este atât de puternic, acesta oferă un mod de somn profund care necesită doar 10μΑs de curent. Acest lucru face ca ESP32 să fie cipul ideal pentru aplicații cu putere redusă.
În acest proiect, placa ESP32 se conectează la Internet și apoi primește date MP3 de la postul de radio pe care îl ascultăm și trimite câteva comenzi pe ecran.
Pasul 3: Decodor MP3
Datele MP3 sunt apoi trimise la modulul decodor MP3 folosind interfața SPI. Acest modul utilizează IC VS1053. Acest IC este un decodor hardware dedicat MP3. Obține datele MP3 de la ESP32 și le transformă foarte repede într-un semnal audio.
Semnalul audio pe care îl emite la această mufă audio este slab și zgomotos, deci trebuie să-l eliminăm din zgomot și să-l amplificăm. (Dacă utilizați căști, semnalul nu trebuie să fie eliminat de zgomot sau amplificat.) De aceea folosesc un transformator de izolare pentru a șterge sunetul de la zgomot și un amplificator audio PAM8403 pentru a amplifica semnalul audio și apoi îl trimit unui vorbitor. De asemenea, am conectat două butoane la ESP32 doar pentru a schimba fluxul MP3 de la care primim date și un afișaj Nextion pentru a afișa postul de radio pe care îl ascultăm.
Pasul 4: afișare Nextion
Am ales să folosesc un afișaj Nextion pentru acest proiect, deoarece este foarte ușor de utilizat. Trebuie doar să conectăm un fir pentru a-l controla.
Afișajele Nextion sunt tipuri noi de afișaje. Au în spate propriul lor procesor ARM, care este responsabil pentru conducerea afișajului și crearea interfeței grafice cu utilizatorul. Așadar, le putem folosi cu orice microcontroler și putem obține rezultate spectaculoase. Am pregătit o revizuire detaliată a acestui afișaj Nextion, care explică în profunzime modul în care funcționează, modul de utilizare și dezavantajele lor. O puteți citi aici sau puteți urmări videoclipul atașat.
Pasul 5: Conectarea tuturor pieselor
Tot ce trebuie să facem acum este să conectăm toate piesele împreună conform acestei diagrame. Puteți găsi schema atașată aici. Conexiunea este simplă.
Există însă două lucruri de remarcat. Modulul decodor MP3 generează un semnal stereo, dar folosesc un singur canal audio în acest proiect. Pentru a obține semnalul audio, am conectat un cablu audio la mufa audio a modulului și l-am tăiat pentru a dezvălui patru fire în interior. Am conectat două dintre fire. Unul dintre ele este GND, iar celălalt este semnalul audio al unuia dintre cele două canale audio. Dacă doriți, puteți conecta ambele canale la modulul amplificator și puteți conduce două difuzoare.
Fiecare canal audio trebuie să treacă prin transformatorul de izolare pentru a elimina orice zgomot prezent înainte de a se conecta la amplificator
Pentru a trimite date pe ecran, trebuie doar să conectăm un fir la pinul TX0 al ESP32. După conectarea pieselor, trebuie să încărcăm codul pe ESP32 și trebuie să încărcăm interfața grafică pe afișajul Nextion.
Pentru a încărca interfața grafică pe afișajul Nextion, copiați fișierul InternetRadio.tft pe care îl voi partaja cu dvs. pe un card SD gol. Introduceți cardul SD în fanta pentru cardul SD din partea din spate a afișajului. Apoi porniți afișajul și GUI va fi încărcat. Apoi scoateți cardul SD și conectați din nou alimentarea.
După încărcarea cu succes a codului, să pornim proiectul. Afișează textul „Conectarea …” timp de câteva secunde pe ecran. După conectarea la internet, proiectul se conectează la un post de radio predefinit. Hardware-ul funcționează conform așteptărilor, dar acum să vedem partea software a proiectului.
Pasul 6: Codul proiectului
În primul rând, permiteți-mi să vă arăt ceva. Codul proiectului este mai mic de 140 de linii de cod. Gândiți-vă la asta, putem construi un Internet Radio cu un ecran de 3,5”cu 140 de linii de cod, este uimitor. Toate acestea le putem realiza folosind diferite biblioteci, desigur, care conțin mii de linii de cod. Aceasta este puterea Arduino și a comunității open source. Fac lucrurile ușor pentru producători.
În acest proiect, folosesc biblioteca VS1053 pentru placa ESP32.
La început, trebuie să definim SSID-ul și parola rețelei Wi-Fi. Apoi, trebuie să salvăm câteva posturi de radio aici. Avem nevoie de adresa URL a gazdei, de calea unde se află fluxul și de portul pe care trebuie să îl folosim. Salvăm toate aceste informații în aceste variabile.
char ssid = "dvs. SSID"; // SSID-ul rețelei dvs. (nume) char pass = "Parola dvs. Wifi"; // parola de rețea
// Puține posturi de radio
char * host [4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char * path [4] = {"/ 1", "/ ert-kosmos", "/ realfm", "/ skai1003"}; port int [4] = {8062, 80, 80, 80};
Am inclus 4 posturi de radio în acest exemplu.
În funcția de configurare atașăm întreruperi butoanelor, inițializăm modulul decodor MP3 și ne conectăm la Wi-Fi.
configurare nulă () {
Serial.begin (9600); întârziere (500); SPI.begin ();
pinMode (previousButton, INPUT_PULLUP);
pinMode (nextButton, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);
attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }
În funcția de buclă, verificăm mai întâi dacă utilizatorul a selectat un post de radio diferit de cel de la care primim date. Dacă da, ne conectăm la noul post de radio, altfel obținem date din flux și le trimitem la modulul MP3 Decoder.
bucla void () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}
Asta e tot! Când utilizatorul apasă un buton, se produce o întrerupere și schimbă valoarea unei variabile care spune la ce flux să se conecteze.
void IRAM_ATTR previousButtonInterrupt () {
static unsigned long last_interrupt_time = 0;
unsigned long interrupt_time = millis (); if (interrupt_time - last_interrupt_time> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = interrupt_time; }
Pentru a actualiza afișajul, trimitem pur și simplu câteva comenzi către portul serial.
void drawRadioStationName (int id) {Comanda șir; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (comandă); endNextionCommand (); pauză; // 1940 UK Radio case 1: command = "p1.pic = 3"; Serial.print (comandă); endNextionCommand (); pauză; // KOSMOS GREEK caz 2: comandă = "p1.pic = 4"; Serial.print (comandă); endNextionCommand (); pauză; // REAL FM GREEK caz 3: comanda = "p1.pic = 5"; Serial.print (comandă); endNextionCommand (); pauză; // SKAI 100.3 GREC}}
Acum, să aruncăm o privire la interfața grafică Nextion Display. GUI-ul Nextion constă dintr-o imagine de fundal și o imagine care afișează numele stației de radio. Placa ESP32 trimite comenzi pentru a schimba numele postului de radio din imaginile încorporate. Este foarte ușor. Vă rugăm să urmăriți tutorialul de afișare Nextion pe care l-am pregătit acum ceva timp pentru mai multe informații. Puteți să vă proiectați rapid propria GUI dacă doriți și să afișați mai multe lucruri pe ea.
Ca întotdeauna, puteți găsi codul proiectului atașat în acest Instructable.
Pasul 7: Gânduri finale și îmbunătățiri
Acest proiect este foarte simplu. Am vrut un schelet simplu de proiect de Internet Radio cu care să lucrez. Acum, când o primă versiune a proiectului este gata, îi putem adăuga multe funcții pentru a-l îmbunătăți. În primul rând, trebuie să proiectez o incintă pentru a găzdui toate componentele electronice.
În această carte despre cele mai frumoase aparate de radio realizate vreodată, există aparate de radio foarte interesante pentru a alege ca o incintă pentru acest proiect. Cred că voi construi o incintă în jurul acestui spectaculos radio Art Deco. Ce crezi, îți place aspectul acestui radio sau preferi ceva mai modern? Aveți alte idei de incinte? De asemenea, îți place acest proiect de Internet Radio și ce funcții credem că trebuie să-i adăugăm pentru a-l face mai util? Mi-ar plăcea să vă citesc gândurile și ideile, așadar, vă rugăm să le postați în secțiunea de comentarii de mai jos.
Recomandat:
Automatizare casnică controlată prin internet / cloud folosind Esp8266 (aREST, MQTT, IoT): 7 pași (cu imagini)
Internet / cloud controlat de automatizarea casei utilizând Esp8266 (aREST, MQTT, IoT): TOATE creditele către http://arest.io/ pentru serviciul cloud !! IoT cel mai discutat subiect din lume chiar acum !! Servere și servicii cloud care fac acest lucru posibil este punctul de atracție al lumii de astăzi … EXCLUDEREA BARIEREI LA DISTANȚĂ a fost și este
Led de control peste tot în lume folosind Internet folosind Arduino: 4 pași
Led de control peste tot în lume folosind internetul folosind Arduino: Bună, eu sunt Rithik. Vom face un led controlat de internet folosind telefonul dvs. Vom folosi software cum ar fi Arduino IDE și Blynk. Este simplu și dacă ați reușit puteți controla cât mai multe componente electronice doriți Lucruri de care avem nevoie: Hardware:
Cum se face o dronă folosind Arduino UNO - Realizați un Quadcopter folosind microcontrolerul: 8 pași (cu imagini)
Cum se face o dronă folosind Arduino UNO | Realizați un Quadcopter folosind microcontrolerul: Introducere Vizitați canalul meu Youtube O dronă este un gadget (produs) foarte scump de cumpărat. În această postare voi discuta, cum o fac la prețuri ieftine ?? Și cum poți să-ți faci propriile tale la prețuri ieftine … Ei bine, în India toate materialele (motoare, ESC-uri
Control radio RF 433MHZ folosind HT12D HT12E - Realizarea unei telecomenzi RF folosind HT12E și HT12D cu 433mhz: 5 pași
Control radio RF 433MHZ folosind HT12D HT12E | Efectuarea unei telecomenzi RF Utilizarea HT12E și HT12D Cu 433mhz: În acest instructiv vă voi arăta cum să realizați o telecomandă RADIO folosind modulul receptor 433mhz transmițător cu codare HT12E & IC decodificator HT12D. În acest instructable veți putea trimite și primi date folosind COMPONENTE foarte ieftine CA: HT
Proiect radio Art Deco FM folosind Arduino: 7 pași (cu imagini)
Proiect radio Art Deco FM Folosind Arduino: Dragi prieteni, bine ai venit la un alt proiect Arduino Instructabil! Sunt foarte încântat pentru că astăzi vă voi arăta cum am construit acest proiect de radio FM în stil Art Deco folosind Arduino. Este de departe cel mai complex proiect pe care l-am construit vreodată și, de asemenea