Kazalo:

Internetni radio z uporabo ESP32: 7 korakov (s slikami)
Internetni radio z uporabo ESP32: 7 korakov (s slikami)

Video: Internetni radio z uporabo ESP32: 7 korakov (s slikami)

Video: Internetni radio z uporabo ESP32: 7 korakov (s slikami)
Video: ESP32 Tutorial 12 - WS2812 RGB Srip 4 Project with SunFounder's ESP32 IoT Learnig kit 2024, Junij
Anonim
Image
Image
Internetni radio z uporabo ESP32
Internetni radio z uporabo ESP32
Internetni radio z uporabo ESP32
Internetni radio z uporabo ESP32

Dragi prijatelji, dobrodošli v drugem Instructable! Danes bomo z poceni ploščo ESP32 izdelali napravo za internetni radio z velikim 3,5 -palčnim zaslonom. Verjemite ali ne, zdaj lahko zgradimo internetni radio v manj kot 10 minutah in z manj kot 30 USD. Veliko je treba pokriti, zato začnimo!

Pred nekaj meseci sem zaključil projekt Arduino FM Radio, ki odlično deluje in po mojem mnenju izgleda še bolje. Če želite videti, kako sem zgradil ta projekt, si lahko preberete Instructable tukaj. Težava je v tem, da čeprav ta radio izgleda kul, ni praktično, ker živim v majhnem mestu v južni Grčiji in velike grške radijske postaje, ki jih raje poslušam, nimajo oddajnikov tukaj. Tako na svojem prenosnem ali tabličnem računalniku na spletu poslušam svoje najljubše radijske postaje, kar tudi ni tako praktično. Torej, danes bom zgradil internetno radijsko napravo, da bom lahko poslušal svoje najljubše radijske postaje z vsega sveta!

Kot lahko vidite, je prva različica projekta pripravljena na podlagi. Vklopimo ga. Kot lahko vidite, se projekt poveže z internetom in nato pretaka glasbo iz vnaprej določenih radijskih postaj.

Vklopil sem radijsko postajo Real FM iz Aten in s temi gumbi lahko spremenimo radijsko postajo, ki jo poslušamo. Moje najljubše radijske postaje sem shranil v pomnilnik ESP32, tako da do njih enostavno dostopam. S tem potenciometrom lahko spremenim glasnost zvočnika. Ime radijske postaje, ki jo poslušamo, prikažem na velikem 3,5 -palčnem zaslonu z retro uporabniškim vmesnikom. Projekt dobro deluje in ga je zelo enostavno zgraditi.

Isti projekt lahko zgradite v manj kot 10 minutah, vendar morate imeti nekaj izkušenj. Če je to vaš prvi projekt, razmislite o izgradnji enostavnejšega projekta, da pridobite nekaj izkušenj. Preverite moje Instructables za preproste projektne ideje in ko vam bo bolj všeč Arduino, se bo elektronika vrnila k izdelavi tega kul projekta. Začnimo graditi lasten internetni radio.

Posodobi 6.6.2019

Vprašanje hrupa je bilo rešeno z dodajanjem izolacijskega transformatorja. Oglejte si posodobljen shematski diagram. Hvala!

Korak: Pridobite vse dele

Pridobite vse dele
Pridobite vse dele

Potrebovali bomo naslednje dele:

  • ESP32 ▶
  • Dekodirnik MP3 ▶
  • Izolacijski transformator ▶
  • Ojačevalnik ▶
  • 3W zvočnik ▶
  • 3,5 -palčni zaslon Nextion ▶
  • Potisni gumbi ▶
  • Breadboard ▶
  • Žice ▶

Skupni stroški projekta so okoli 40 USD, če pa ne uporabljate zaslona, so stroški projekta okoli 20 USD. Neverjetne stvari. S samo 20 USD lahko zgradimo lasten internetni radio!

Korak: Plošča ESP32

Image
Image
Plošča ESP32
Plošča ESP32
Plošča ESP32
Plošča ESP32

Srce projekta je seveda zmogljiva plošča ESP32. Če ga ne poznate, je čip ESP32 naslednik priljubljenega čipa ESP8266, ki smo ga v preteklosti že večkrat uporabljali. ESP32 je zver! Ponuja dve 32 -bitni procesorski jedri, ki delujeta na 160 MHz, ogromno pomnilnika, WiFi, Bluetooth in številne druge funkcije s stroški okoli 7 $! Neverjetne stvari!

Oglejte si podroben pregled, ki sem ga pripravil za to tablo. Priložil sem videoposnetek o tem navodilu. Pomagal bo razumeti, zakaj bo ta čip za vedno spremenil način izdelave stvari! Ena najbolj vznemirljivih stvari pri ESP32 je, da čeprav je tako močan, ponuja način globokega spanja, ki zahteva le 10 μΑs toka. Zaradi tega je ESP32 idealen čip za aplikacije z nizko porabo energije.

V tem projektu se plošča ESP32 poveže z internetom, nato pa prejme podatke MP3 z radijske postaje, ki jo poslušamo, in pošlje nekaj ukazov na zaslon.

3. korak: MP3 dekoder

MP3 dekoder
MP3 dekoder
MP3 dekoder
MP3 dekoder

Podatki MP3 se nato pošljejo v dekodirni modul MP3 prek vmesnika SPI. Ta modul uporablja VS1053 IC. Ta IC je namenski strojni MP3 dekoder. Prejema podatke MP3 iz ESP32 in jih zelo hitro pretvori v zvočni signal.

Zvočni signal, ki ga oddaja v tem avdio priključku, je šibek in hrupen, zato ga moramo odstraniti iz hrupa in ga okrepiti. (Če uporabljate slušalke, signala ni treba očistiti iz hrupa ali ga ojačati.) Zato uporabljam izolacijski transformator za čiščenje zvoka iz hrupa in zvočni ojačevalnik PAM8403 za ojačanje zvočnega signala in ga nato pošljem k zvočniku. Na ESP32 sem priključil tudi dva gumba, samo da spremenim tok MP3, ki ga prejemamo, in zaslon Nextion za prikaz radijske postaje, ki jo poslušamo.

4. korak: Prikaz Nextion

Image
Image
Povezovanje vseh delov
Povezovanje vseh delov

Za ta projekt sem se odločil uporabiti zaslon Nextion, saj je zelo enostaven za uporabo. Za nadzor moramo povezati le eno žico.

Zasloni Nextion so nove vrste zaslonov. Na hrbtni strani imajo lasten procesor ARM, ki je odgovoren za upravljanje zaslona in ustvarjanje grafičnega uporabniškega vmesnika. Tako jih lahko uporabimo s katerim koli mikrokrmilnikom in dosežemo spektakularne rezultate. Pripravil sem podroben pregled tega zaslona Nextion, ki podrobno razlaga, kako delujejo, kako jih uporabljati in njihove pomanjkljivosti. Lahko ga preberete tukaj ali si ogledate priloženi video.

5. korak: Povežite vse dele

Povezovanje vseh delov
Povezovanje vseh delov
Povezovanje vseh delov
Povezovanje vseh delov

Zdaj moramo le povezati vse dele v skladu s tem shematskim diagramom. Shematski diagram lahko najdete tukaj. Povezava je enostavna.

Vendar je treba opozoriti na dve stvari. Modul dekodirnika MP3 oddaja stereo signal, vendar v tem projektu uporabljam samo en zvočni kanal. Da bi dobil zvočni signal, sem priključil zvočni kabel v avdio vtičnico modula in ga prerezal, da bi razkril štiri žice v notranjosti. Priključil sem dve žici. Eden od njih je GND, drugi pa zvočni signal enega od dveh zvočnih kanalov. Če želite, lahko oba kanala priključite na ojačevalni modul in poganjate dva zvočnika.

Vsak zvočni kanal mora iti skozi izolacijski transformator, da počisti vse prisotne šume, preden se priključi na ojačevalnik

Za pošiljanje podatkov na zaslon moramo samo eno žico priključiti na pin TX0 ESP32. Po priključitvi delov moramo kodo naložiti na ESP32, grafični vmesnik pa na zaslon Nextion.

Če želite grafični vmesnik naložiti na zaslon Nextion, kopirajte datoteko InternetRadio.tft, ki jo bom delil z vami, na prazno kartico SD. Kartico SD vstavite v režo za kartico SD na hrbtni strani zaslona. Nato vklopite zaslon in GUI se bo naložil. Nato odstranite kartico SD in znova priključite napajanje.

Ko uspešno naložimo kodo, vklopimo projekt. Na zaslonu se za nekaj sekund prikaže besedilo »Povezujemo se …«. Po povezavi z internetom se projekt poveže z vnaprej določeno radijsko postajo. Strojna oprema deluje po pričakovanjih, zdaj pa poglejmo programsko stran projekta.

6. korak: Koda projekta

Kodeks projekta
Kodeks projekta
Kodeks projekta
Kodeks projekta

Najprej naj vam nekaj pokažem. Koda projekta je manj kot 140 vrstic kode. Pomislite, lahko zgradimo internetni radio s 3,5 -palčnim zaslonom s 140 vrsticami kode, to je neverjetno. Vse to lahko dosežemo z različnimi knjižnicami, ki vsebujejo na tisoče vrstic kode. To je moč Arduina in odprtokodne skupnosti. Ustvarjalcem olajša stvari.

V tem projektu uporabljam knjižnico VS1053 za ploščo ESP32.

Najprej moramo določiti SSID in geslo omrežja Wi-Fi. Nato moramo tukaj shraniti nekaj radijskih postaj. Potrebujemo URL gostitelja, pot, kjer se nahaja tok, in vrata, ki jih moramo uporabiti. Vse te podatke shranimo v te spremenljivke.

char ssid = "yourSSID"; // vaš omrežni SSID (ime) char pass = "yourWifiPassword"; // geslo za omrežje

// Nekaj radijskih postaj

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};

V ta primer sem vključil 4 radijske postaje.

V nastavitveni funkciji gumbom pripenjamo prekinitve, inicializiramo dekodirni modul MP3 in se povežemo z Wi-Fi.

void setup () {

Serial.begin (9600); zamuda (500); SPI.begin ();

pinMode (prejšnjiButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

attachInterrupt (digitalPinToInterrupt (prejšnjiButton), prejšnjiButtonInterrupt, FALLING);

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

Pri funkciji zanke najprej preverimo, ali je uporabnik izbral drugačno radijsko postajo, kot je tista, s katere črpamo podatke. Če je tako, se povežemo z novo radijsko postajo, sicer dobimo podatke iz toka in jih pošljemo v modul dekodirnika MP3.

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 vse! Ko uporabnik pritisne gumb, pride do prekinitve in spremeni vrednost spremenljivke, ki pove, s katerim tokom naj se poveže.

void IRAM_ATTR previousButtonInterrupt () {

statični nepodpisani dolgi last_interrupt_time = 0;

brez podpisa dolg čas prekinitve = millis (); if (čas prekinitve-čas zadnjega_prekinitve> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = čas prekinitve; }

Za posodobitev zaslona preprosto pošljemo nekaj ukazov na serijska vrata.

void drawRadioStationName (int id) {Ukaz niza; switch (id) {primer 0: ukaz = "p1.pic = 2"; Serial.print (ukaz); endNextionCommand (); zlom; // 1940 UK Radio primer 1: command = "p1.pic = 3"; Serial.print (ukaz); endNextionCommand (); zlom; // KOSMOS GRČKI primer 2: command = "p1.pic = 4"; Serial.print (ukaz); endNextionCommand (); zlom; // REAL FM GRČKI primer 3: command = "p1.pic = 5"; Serial.print (ukaz); endNextionCommand (); zlom; // SKAI 100,3 GRČKI}}

Zdaj pa poglejmo grafični vmesnik zaslona Nextion. Nextion GUI je sestavljen iz slike ozadja in slike, ki prikazuje ime radijske postaje. Plošča ESP32 pošilja ukaze za spremembo imena radijske postaje iz vdelanih slik. To je zelo enostavno. Za več informacij si oglejte vadnico za prikaz Nextion, ki sem jo pripravil pred časom. Po želji lahko hitro oblikujete svoj grafični vmesnik in na njem prikažete več stvari.

Kot vedno lahko v tem navodilu najdete kodo projekta.

7. korak: Končne misli in izboljšave

Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave
Zadnje misli in izboljšave

Ta projekt je zelo preprost. Želel sem si preprostega okostja projekta Internet Radio. Zdaj, ko je prva različica projekta pripravljena, ji lahko dodamo številne funkcije, da jo izboljšamo. Najprej moram oblikovati ohišje za vso elektroniko.

V tej knjigi o najlepših radijskih postajah, ki so jih kdajkoli ustvarili, lahko izbirate med zelo radijskimi radii kot ohišjem za ta projekt. Mislim, da bom okoli tega spektakularnega radia Art Deco zgradil ograjen prostor. Kaj menite, vam je všeč videz tega radia ali imate raje kaj modernejšega? Imate še kakšno idejo za ohišje? Ali vam je všeč tudi projekt Internet Radio in katere funkcije menimo, da mu moramo dodati, da bo bolj uporaben? Rada bi prebrala vaše misli in ideje, zato jih objavite v spodnjem razdelku za komentarje.

Priporočena: