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, Studeni
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 uređaj za internetski radio s velikim ekranom od 3,5”pomoću jeftine ploče ESP32. Vjerovali ili ne, sada možemo izgraditi internetski radio za manje od 10 minuta i s manje od 30 USD. Puno je toga za pokriti pa krenimo!

Prije nekoliko mjeseci dovrš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 radijske postaje koje radije slušam, ovdje nemaju odašiljače. Slušam svoje omiljene radijske postaje na svom laptopu ili tabletu, što također nije tako praktično. Dakle, danas ću izgraditi internetski radijski uređaj kako bih mogao slušati svoje omiljene radio postaje iz cijelog svijeta!

Kao što vidite, prva verzija projekta spremna je na ploči. Uključimo ga. Kao što vidite, projekt se povezuje s internetom, a zatim struji glazbu s unaprijed definiranih radio stanica.

Uključio sam se na radijsku postaju Real FM iz Atene i pomoću ovih gumba možemo promijeniti radio postaju koju slušamo. Spremio sam svoje omiljene radio postaje u memoriju ESP32 tako da im mogu lako pristupiti. Pomoću ovog potenciometra mogu promijeniti glasnoću zvučnika. Na velikom 3,5 -inčnom zaslonu s retro korisničkim sučeljem prikazujem naziv radio postaje koju slušamo. 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 internetskog 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 ▶
  • Pritisnite gumbe ▶
  • Oglasna ploča ▶
  • Žice ▶

Ukupni troškovi projekta su oko 40 USD, ali ako ne koristite zaslon, cijena projekta je oko 20 USD. Nevjerojatne 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 zvijer! Nudi dvije 32 -bitne procesorske jezgre koje rade na 160MHz, ogromnu količinu memorije, WiFi, Bluetooth i mnoge druge značajke sa cijenom od oko 7 USD! Nevjerojatna stvar!

Molimo pogledajte detaljni pregled koji sam pripremio za ovu ploču. Priložio sam video na ovom Instructable -u. 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 što, 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 s internetom, a zatim prima MP3 podatke s radijske postaje koju slušamo i šalje neke naredbe na zaslon.

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 IC VS1053. Ovaj IC je namjenski hardverski MP3 dekoder. Dobija MP3 podatke s 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 ili pojačan.) Zato koristim izolacijski transformator za čišćenje zvuka od šuma i PAM8403 audio pojačalo za pojačavanje audio signala, a zatim ga šaljem govorniku. Također sam spojio dva gumba na ESP32 samo za promjenu MP3 streama iz kojeg dobivamo podatke i Nextion zaslon za prikaz radijske postaje koju slušamo.

Korak 4: Nextion zaslon

Image
Image
Spajanje svih dijelova
Spajanje svih dijelova

Za ovaj sam projekt odabrao Nextion zaslon jer je vrlo jednostavan za korištenje. Moramo spojiti samo jednu žicu da bismo je kontrolirali.

Nextion zasloni su nova vrsta zaslona. Imaju svoj 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 zaslona 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

Spajanje svih dijelova
Spajanje svih dijelova
Spajanje svih dijelova
Spajanje svih dijelova

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

Ipak, valja primijetiti dvije stvari. Modul MP3 dekodera emitira stereo signal, ali u ovom projektu koristim samo jedan audio kanal. Kako bih dobio audio signal, spojio sam audio kabel na audio utičnicu modula i prerezao 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 sve prisutne šumove 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.

Za učitavanje grafičkog sučelja na Nextion zaslon, kopirajte datoteku InternetRadio.tft koju ću podijeliti s vama na praznu SD karticu. Umetnite SD karticu u utor za SD karticu na stražnjoj strani zaslona. Zatim uključite zaslon i GUI će se učitati. Zatim uklonite SD karticu i ponovno spojite napajanje.

Nakon uspješnog učitavanja koda, uključimo projekt. Na zaslonu se na nekoliko sekundi prikazuje tekst "Povezivanje …". Nakon povezivanja na internet, projekt se povezuje s unaprijed definiranom radijskom postajom. Hardver radi kako se očekivalo, ali sada da vidimo softversku stranu projekta.

Korak 6: Kôd projekta

Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta

Prije svega, dopustite mi da vam pokažem nešto. Kôd projekta je manji od 140 redaka koda. Razmislite, možemo izgraditi internetski radio s ekranom od 3,5”sa 140 redaka koda, ovo je nevjerojatno. Sve to možemo postići koristeći različite knjižnice, naravno koje sadrže tisuće redaka koda. Ovo je moć Arduina i zajednice otvorenog koda. Proizvođačima to olakšava stvari.

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

Najprije moramo definirati SSID i lozinku za Wi-Fi mrežu. Zatim moramo ovdje spremiti neke radio stanice. Trebamo URL domaćina, put na kojem se stream nalazi i priključak koji moramo koristiti. Sve te podatke spremamo u ove varijable.

char ssid = "yourSSID"; // vaš mrežni SSID (naziv) 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 sam primjer uključio 4 radijske postaje.

U funkciji postavljanja prekidačima dodajemo prekide, inicijaliziramo modul dekodera MP3 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 radijsku postaju od one s koje dobivamo podatke. Ako je tako, povezujemo se s novom radio stanicom, inače dobivamo podatke iz streama 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 gumb, dolazi do prekida i mijenja vrijednost varijable koja govori na koji se tok treba spojiti.

void IRAM_ATTR previousButtonInterrupt () {

statičko nepotpisano dugo last_interrupt_time = 0;

unsigned long interrupt_time = millis (); if (vrijeme prekidanja-vrijeme posljednjeg_ prekida> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = interrupt_time; }

Za ažuriranje zaslona jednostavno šaljemo neke naredbe na serijski port.

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

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

Kao i uvijek, kôd projekta možete pronaći u priručniku.

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 projekt 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 u Art Deco stilu. Što mislite, sviđa li vam se izgled ovog radija ili više volite nešto modernije? Imate li još kakvih ideja o kućištu? Također, sviđa li vam se ovaj projekt internetskog radija i koje značajke mislite da mu moramo dodati kako bi bio korisniji? Volio bih pročitati vaša razmišljanja i ideje pa ih objavite u donjem odjeljku komentara.

Preporučeni: