Cuprins:

Radio pe Internet folosind un ESP32: 7 pași (cu imagini)
Radio pe Internet folosind un ESP32: 7 pași (cu imagini)

Video: Radio pe Internet folosind un ESP32: 7 pași (cu imagini)

Video: Radio pe Internet folosind un ESP32: 7 pași (cu imagini)
Video: De ce ar trebui să înveți programare | Microcontroler | Arduino | ESP32 2024, Iunie
Anonim
Image
Image
Radio pe Internet folosind un ESP32
Radio pe Internet folosind un ESP32
Radio pe Internet folosind un ESP32
Radio pe Internet folosind un ESP32

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

Obțineți toate piesele
Obțineți toate piesele

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

Image
Image
Placa ESP32
Placa ESP32
Placa ESP32
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

Decodor MP3
Decodor MP3
Decodor MP3
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

Image
Image
Conectarea tuturor pieselor
Conectarea tuturor pieselor

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

Conectarea tuturor pieselor
Conectarea tuturor pieselor
Conectarea tuturor pieselor
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

Codul proiectului
Codul proiectului
Codul proiectului
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

Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
Gânduri finale și îmbunătățiri
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: