Sadržaj:

Internet radio pomoću ESP32: 7 koraka (sa slikama)
Internet radio pomoću ESP32: 7 koraka (sa slikama)

Video: Internet radio pomoću ESP32: 7 koraka (sa slikama)

Video: Internet radio pomoću ESP32: 7 koraka (sa slikama)
Video: Control 32 Servo over Wi-Fi using ESP32 and PCA9685 via desktop or mobile phone V5 2024, Novembar
Anonim
Image
Image
Internet radio pomoću ESP32
Internet radio pomoću ESP32
Internet radio pomoću ESP32
Internet radio pomoću ESP32

Dragi prijatelji, dobrodošli na još jedan Instructable! Danas ćemo izgraditi Internet Radio uređaj sa velikim ekranom od 3,5”koristeći jeftinu ESP32 ploču. Vjerovali ili ne, sada možemo izgraditi internetski radio za manje od 10 minuta i sa manje od 30 USD. Ima mnogo toga za pokriti pa krenimo!

Prije nekoliko mjeseci završio sam projekt Arduino FM radija koji odlično funkcionira i izgleda još bolje po mom mišljenju. Ako želite vidjeti kako sam izgradio ovaj projekt, možete pročitati Instructable ovdje. Problem je u tome što, iako ovaj radio izgleda super, nije praktično jer živim u malom gradu u južnoj Grčkoj i velike grčke radio stanice koje više volim slušati, ovdje nemaju odašiljače. Slušam svoje omiljene radijske postaje na svom laptopu ili tablet računaru, što takođe nije tako praktično. Dakle, danas ću izgraditi internet radio uređaj kako bih mogao slušati svoje omiljene radio stanice iz cijelog svijeta!

Kao što vidite, prva verzija projekta je spremna na ploči. Uključimo ga. Kao što vidite, projekat se povezuje na Internet, a zatim emituje muziku sa unapred definisanih radio stanica.

Uključio sam se na Real FM radio stanicu iz Atine i pomoću ovih dugmadi možemo promijeniti radio stanicu koju slušamo. Sačuvao sam svoje omiljene radio stanice u memoriji ESP32 tako da im mogu lako pristupiti. Pomoću ovog potenciometra mogu promijeniti jačinu zvučnika. Prikazujem naziv radio stanice koju slušamo na velikom ekranu od 3,5”sa retro korisničkim interfejsom. Projekt dobro funkcionira i vrlo ga je lako izgraditi.

Isti projekt možete izgraditi za manje od 10 minuta, ali morate imati određeno iskustvo. Ako vam je ovo prvi projekt, razmislite o izgradnji jednostavnijeg projekta kako biste stekli iskustvo. Provjerite moje Instructables za jednostavne projektne ideje, a kad vam bude ugodnije s Arduinom, elektronika će se vratiti da izgradi ovaj cool projekt. Počnimo sada s izgradnjom vlastitog Internet radija.

AŽURIRAJTE 6.6.2019

Problem s bukom riješen je dodavanjem izolacijskog transformatora. Pogledajte ažurirani shematski dijagram. Hvala!

Korak 1: Nabavite sve dijelove

Nabavite sve dijelove
Nabavite sve dijelove

Trebat će nam sljedeći dijelovi:

  • ESP32 ▶
  • MP3 dekoder ▶
  • Izolacijski transformator ▶
  • Pojačalo ▶
  • 3W zvučnik ▶
  • 3.5 "Nextion zaslon ▶
  • Pritisnuti dugmad ▶
  • Breadboard ▶
  • Žice ▶

Ukupni troškovi projekta su oko 40 USD, ali ako ne koristite ekran, cijena projekta je oko 20 USD. Zadivljujuće stvari. Možemo izgraditi vlastiti internetski radio sa samo 20 USD!

Korak 2: ESP32 ploča

Image
Image
ESP32 ploča
ESP32 ploča
ESP32 ploča
ESP32 ploča

Srce projekta je, naravno, moćna ploča ESP32. Ako niste upoznati s njim, čip ESP32 je nasljednik popularnog čipa ESP8266 koji smo koristili mnogo puta u prošlosti. ESP32 je zver! Nudi dva 32 -bitna procesorska jezgra koja rade na 160MHz, ogromnu količinu memorije, WiFi, Bluetooth i mnoge druge funkcije po cijeni od oko 7 USD! Zadivljujuće stvari!

Molimo pogledajte detaljnu recenziju koju sam pripremio za ovu ploču. Priložio sam video na ovom uputstvu. Pomoći će razumjeti zašto će ovaj čip zauvijek promijeniti način na koji stvaramo stvari! Jedna od najuzbudljivijih stvari o ESP32 je ta da, iako je tako moćan, nudi način dubokog sna koji zahtijeva samo 10 μΑs struje. To čini ESP32 idealnim čipom za aplikacije male snage.

U ovom projektu, ploča ESP32 se povezuje na Internet, a zatim prima MP3 podatke sa radio stanice koju slušamo i šalje neke naredbe na ekran.

Korak 3: MP3 dekoder

MP3 dekoder
MP3 dekoder
MP3 dekoder
MP3 dekoder

MP3 podaci se zatim šalju u modul MP3 dekodera pomoću SPI sučelja. Ovaj modul koristi VS1053 IC. Ovaj IC je namjenski hardverski MP3 dekoder. Dobija MP3 podatke iz ESP32 i vrlo ih brzo pretvara u audio signal.

Zvučni signal koji emitira na ovom audio priključku je slab i bučan, pa ga moramo očistiti od šuma i pojačati. (Ako koristite slušalice, signal ne mora biti očišćen od buke niti pojačan.) Zato koristim izolacijski transformator za čišćenje zvuka od šuma i PAM8403 audio pojačalo za pojačavanje audio signala i slanje do zvučnika. Takođe sam povezao dva tastera sa ESP32 samo da promenim MP3 stream sa koga dobijamo podatke i Nextion ekran za prikaz radio stanice koju slušamo.

Korak 4: Nextion ekran

Image
Image
Povezivanje svih delova
Povezivanje svih delova

Odlučio sam se za ovaj projekt koristiti Nextion zaslon jer je vrlo jednostavan za korištenje. Moramo spojiti samo jednu žicu da bismo je kontrolirali.

Nextion ekrani su nova vrsta ekrana. Oni imaju vlastiti ARM procesor straga koji je odgovoran za upravljanje zaslonom i stvaranje grafičkog korisničkog sučelja. Dakle, možemo ih koristiti sa bilo kojim mikrokontrolerom i postići spektakularne rezultate. Pripremio sam detaljan pregled ovog Nextion ekrana koji detaljno objašnjava kako oni rade, kako ih koristiti i njihove nedostatke. Možete ga pročitati ovdje ili pogledati priloženi video.

Korak 5: Spajanje svih dijelova

Povezivanje svih delova
Povezivanje svih delova
Povezivanje svih delova
Povezivanje svih delova

Sve što sada moramo učiniti je povezati sve dijelove zajedno prema ovom shematskom dijagramu. Shematski dijagram možete pronaći ovdje. Veza je jednostavna.

Ipak, potrebno je napomenuti dvije stvari. Modul MP3 dekodera emituje stereo signal, ali ja koristim samo jedan audio kanal u ovom projektu. Da bih dobio audio signal, spojio sam audio kabel na audio utičnicu modula i presjekao ga kako bi otkrio četiri žice unutra. Spojio sam dvije žice. Jedan od njih je GND, a drugi audio signal jednog od dva audio kanala. Ako želite, možete spojiti oba kanala na modul pojačala i pokrenuti dva zvučnika.

Svaki audio kanal mora proći kroz izolacijski transformator kako bi uklonio svu prisutnu buku prije spajanja na pojačalo

Za slanje podataka na zaslon potrebno je samo jednu žicu spojiti na TX0 pin ESP32. Nakon povezivanja dijelova, moramo učitati kôd na ESP32, a GUI na Nextion zaslon.

Da biste učitali GUI na Nextion ekran, kopirajte datoteku InternetRadio.tft koju ću podijeliti s vama na praznu SD karticu. Umetnite SD karticu u otvor za SD karticu na stražnjoj strani ekrana. Zatim uključite ekran i GUI će se učitati. Zatim uklonite SD karticu i ponovo spojite napajanje.

Nakon uspješnog učitavanja koda, uključimo projekt. Na ekranu se prikazuje tekst „Povezivanje …“na nekoliko sekundi. Nakon povezivanja na internet, projekt se povezuje na unaprijed definiranu radio stanicu. Hardver radi kako se očekivalo, ali sada da vidimo softversku stranu projekta.

Korak 6: Kodeks projekta

Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta

Prije svega, dozvolite mi da vam pokažem nešto. Kôd projekta je manji od 140 linija koda. Razmislite, možemo napraviti Internet radio sa ekranom od 3,5”sa 140 redova koda, ovo je nevjerojatno. Sve to možemo postići koristeći različite biblioteke koje sadrže hiljade redova koda. Ovo je moć Arduina i zajednice otvorenog koda. Olakšava stvar proizvođačima.

U ovom projektu koristim biblioteku VS1053 za ESP32 ploču.

Prvo moramo definirati SSID i lozinku za Wi-Fi mrežu. Zatim moramo ovdje sačuvati neke radio stanice. Potreban nam je URL hosta, putanja na kojoj se stream nalazi i port koji moramo koristiti. Sve ove podatke spremamo u ove varijable.

char ssid = "yourSSID"; // vaš SSID mreže (ime) char pass = "yourWifiPassword"; // vašu mrežnu lozinku

// Nekoliko radio stanica

char *host [4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char *path [4] = {"/1", "/ert-kosmos", "/realfm", "/skai1003"}; int port [4] = {8062, 80, 80, 80};

U ovaj primjer uključio sam 4 radio stanice.

U funkciji postavljanja prekidačima dodajemo prekide, inicijaliziramo modul MP3 dekodera i povezujemo se na Wi-Fi.

void setup () {

Serial.begin (9600); kašnjenje (500); SPI.begin ();

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);

attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }

U funkciji petlje, prije svega, provjeravamo je li korisnik odabrao drugačiju radio stanicu od one s koje dobivamo podatke. Ako je tako, povezujemo se s novom radio stanicom, inače dobivamo podatke iz prijenosa i šaljemo ih u modul MP3 dekodera.

void loop () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}

To je sve! Kada korisnik pritisne dugme, dolazi do prekida i mijenja vrijednost varijable koja govori na koji se tok treba povezati.

void IRAM_ATTR previousButtonInterrupt () {

statičko nepotpisano dugo last_interrupt_time = 0;

unsigned long interrupt_time = millis (); if (prekid_vreme-zadnji_vreme_prekida> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = interrupt_time; }

Da bismo ažurirali zaslon, jednostavno šaljemo neke naredbe na serijski port.

void drawRadioStationName (int id) {Naredba niza; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (naredba); endNextionCommand (); break; // 1940. slučaj UK Radio 1: command = "p1.pic = 3"; Serial.print (naredba); endNextionCommand (); break; // KOSMOS GRČKI slučaj 2: command = "p1.pic = 4"; Serial.print (naredba); endNextionCommand (); break; // REAL FM GRČKI slučaj 3: command = "p1.pic = 5"; Serial.print (naredba); endNextionCommand (); break; // SKAI 100.3 GRČKI}}

Pogledajmo sada Nextion Display GUI. Nextion GUI se sastoji od slike u pozadini i slike koja prikazuje naziv radio stanice. ESP32 ploča šalje naredbe za promjenu naziva radio stanice iz ugrađenih slika. Vrlo je lako. Za više informacija pogledajte vodič za prikaz Nextion -a koji sam pripremio prije nekog vremena. Ako želite, možete brzo dizajnirati vlastiti GUI i prikazati više stvari na njemu.

Kao i uvijek, možete pronaći kôd projekta priložen u ovom uputstvu.

Korak 7: Završne misli i poboljšanja

Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja
Završna razmišljanja i poboljšanja

Ovaj projekat je vrlo jednostavan. Htio sam jednostavan kostur projekta Internet Radio s kojim ću raditi. Sada kada je prva verzija projekta spremna, možemo joj dodati mnoge značajke kako bismo je poboljšali. Prije svega, moram dizajnirati kućište za smještaj sve elektronike.

U ovoj knjizi o najljepšim radio -aparatima ikada napravljenim postoje vrlo kul radio aparati za odabir ovog projekta. Mislim da ću izgraditi ogradu oko ovog spektakularnog radija Art Deco. Šta mislite, sviđa li vam se izgled ovog radija ili više volite nešto modernije? Imate li još neku ideju za kućište? Također, sviđa li vam se ovaj projekt Internet radija i koje značajke mislimo da mu moramo dodati da bi bio korisniji? Volio bih pročitati vaša razmišljanja i ideje pa ih objavite u donjem odjeljku komentara.

Preporučuje se: