Sisällysluettelo:

Internet -radio käyttämällä ESP32: 7 vaihetta (kuvien kanssa)
Internet -radio käyttämällä ESP32: 7 vaihetta (kuvien kanssa)

Video: Internet -radio käyttämällä ESP32: 7 vaihetta (kuvien kanssa)

Video: Internet -radio käyttämällä ESP32: 7 vaihetta (kuvien kanssa)
Video: Kuinka valvoa ja hallita ESP32:ta mistä päin maailmaa tahansa RemoteXY IoT Cloudin avulla 2024, Marraskuu
Anonim
Image
Image
Internet -radio ESP32: n avulla
Internet -radio ESP32: n avulla
Internet -radio ESP32: n avulla
Internet -radio ESP32: n avulla

Hyvät ystävät, tervetuloa toiseen Instructableen! Tänään aiomme rakentaa Internet -radiolaitteen suurella 3,5 tuuman näytöllä käyttämällä halpaa ESP32 -korttia. Usko tai älä, voimme nyt rakentaa Internet -radion alle 10 minuutissa ja alle 30 dollarilla. Kattavaa on paljon, joten aloitetaan!

Muutama kuukausi sitten sain päätökseen Arduino FM Radio -projektin, joka toimii hyvin ja näyttää mielestäni vielä paremmalta. Jos haluat nähdä, kuinka rakensin tämän projektin, voit lukea Instructable -ohjelman täältä. Ongelmana on, että vaikka tämä radio näyttää siistiltä, se ei ole käytännöllinen, koska asun pienessä kaupungissa Etelä -Kreikassa ja suurilla kreikkalaisilla radioasemilla, joita haluan kuunnella, ei ole lähettimiä täällä. Joten, kuuntelen suosikkiradiota verkossa kannettavalla tietokoneella tai tablet -tietokoneella, mikä ei myöskään ole niin käytännöllistä. Joten tänään aion rakentaa Internet -radiolaitteen voidakseni kuunnella suosikkiradioasemiani ympäri maailmaa!

Kuten näette, projektin ensimmäinen versio on valmis leipäpöydälle. Käynnistetään se. Kuten näet, projekti muodostaa yhteyden Internetiin ja suoratoistaa musiikkia ennalta määritetyiltä radioasemilta.

Olen virittänyt Ateenan Real FM -radioaseman ja näillä painikkeilla voimme vaihtaa kuuntelemamme radioaseman. Olen tallentanut suosikkiradioasemani ESP32: n muistiin, jotta voin käyttää niitä helposti. Tällä potentiometrillä voin muuttaa kaiuttimen äänenvoimakkuutta. Näytän kuuntelemamme radioaseman nimen suurella 3,5 tuuman näytöllä, jossa on retrokäyttöliittymä. Projekti toimii hyvin ja se on erittäin helppo rakentaa.

Voit rakentaa saman projektin alle 10 minuutissa, mutta sinulla on oltava jonkin verran kokemusta. Jos tämä on ensimmäinen projektisi, harkitse ensin yksinkertaisen rakentamista saadaksesi kokemusta. Katso Instructables -oppaastani yksinkertaisia projektiideoita ja kun olet enemmän tyytyväinen Arduinon kanssa, elektroniikka palaa rakentamaan tätä siistiä projektia. Aloitetaan nyt oman Internet -radion rakentaminen.

PÄIVITYS 6.6.2019

Meluongelma on ratkaistu lisäämällä eristysmuuntaja. Tarkista päivitetty kaaviokuva. Kiitos!

Vaihe 1: Hanki kaikki osat

Hanki kaikki osat
Hanki kaikki osat

Tarvitsemme seuraavia osia:

  • ESP32 ▶
  • MP3 -dekooderi ▶
  • Eristysmuuntaja ▶
  • Vahvistin ▶
  • 3 W kaiutin ▶
  • 3,5 tuuman Nextion -näyttö ▶
  • Painikkeet ▶
  • Leipälauta ▶
  • Johdot ▶

Hankkeen kokonaiskustannukset ovat noin 40 dollaria, mutta jos et käytä näyttöä, projektin hinta on noin 20 dollaria. Ihmeellistä tavaraa. Voimme rakentaa oman Internet -radion vain 20 dollarilla!

Vaihe 2: ESP32 -kortti

Image
Image
ESP32 -levy
ESP32 -levy
ESP32 -levy
ESP32 -levy

Projektin ydin on tietysti tehokas ESP32 -levy. Jos et tunne sitä, ESP32 -siru on suositun ESP8266 -sirun seuraaja, jota olemme käyttäneet monta kertaa aiemmin. ESP32 on peto! Se tarjoaa kaksi 32 -bittistä prosessointiytintä, jotka toimivat 160 MHz: llä, valtava määrä muistia, WiFi, Bluetooth ja monia muita ominaisuuksia, joiden hinta on noin 7 dollaria! Ihmeellistä tavaraa!

Katso yksityiskohtainen katsaus, jonka olen valmistellut tälle levylle. Olen liittänyt videon tähän oppaaseen. Se auttaa ymmärtämään, miksi tämä siru muuttaa tapaamme tehdä asioita ikuisesti! Yksi ESP32: n jännittävimmistä asioista on, että vaikka se on niin voimakas, se tarjoaa syvän lepotilan, joka vaatii vain 10μΑs virtaa. Tämä tekee ESP32: sta ihanteellisen sirun pienitehoisiin sovelluksiin.

Tässä projektissa ESP32 -kortti muodostaa yhteyden Internetiin ja vastaanottaa sitten MP3 -dataa kuuntelemaltamme radioasemalta ja lähettää joitain komentoja näytölle.

Vaihe 3: MP3 -dekooderi

MP3 -dekooderi
MP3 -dekooderi
MP3 -dekooderi
MP3 -dekooderi

MP3 -tiedot lähetetään sitten MP3 -dekooderimoduuliin SPI -liitännän avulla. Tämä moduuli käyttää VS1053 IC. Tämä IC on omistettu laitteisto MP3 -dekooderi. Se saa MP3 -tiedot ESP32: sta ja muuntaa ne todella nopeasti audiosignaaliksi.

Äänisignaali, jonka se lähettää tässä ääniliittimessä, on heikko ja meluisa, joten meidän on poistettava se kohinasta ja vahvistettava sitä. (Jos käytät kuulokkeita, signaalia ei tarvitse puhdistaa kohinasta tai vahvistaa.) Siksi käytän eristysmuuntajaa äänen poistamiseksi kohinasta ja PAM8403 -äänivahvistinta äänisignaalin vahvistamiseksi ja lähettämiseksi sitten. kaiuttimelle. Olen myös liittänyt kaksi painiketta ESP32: een vain vaihtaaksemme MP3 -suoratoistoa, josta saamme dataa, ja Nextion -näytön, joka näyttää kuuntelemamme radioaseman.

Vaihe 4: Nextion -näyttö

Image
Image
Kaikkien osien liittäminen
Kaikkien osien liittäminen

Päätin käyttää Nextion -näyttöä tähän projektiin, koska sitä on erittäin helppo käyttää. Meidän on kytkettävä vain yksi johto ohjaamaan sitä.

Nextion -näytöt ovat uudenlaisia näyttöjä. Heillä on takana oma ARM -prosessori, joka vastaa näytön ohjaamisesta ja graafisen käyttöliittymän luomisesta. Joten voimme käyttää niitä minkä tahansa mikro -ohjaimen kanssa ja saavuttaa upeita tuloksia. Olen laatinut yksityiskohtaisen katsauksen tästä Nextion -näytöstä, joka selittää perusteellisesti niiden toiminnan, käytön ja niiden haitat. Voit lukea sen täältä tai katsoa oheisen videon.

Vaihe 5: Kaikkien osien liittäminen

Kaikkien osien liittäminen
Kaikkien osien liittäminen
Kaikkien osien liittäminen
Kaikkien osien liittäminen

Kaikki mitä meidän on nyt tehtävä, on liittää kaikki osat yhteen tämän kaavion mukaisesti. Löydät kaavion liitteenä täältä. Yhteys on suoraviivainen.

On kuitenkin huomioitava kaksi asiaa. MP3 -dekooderimoduuli lähettää stereosignaalin, mutta käytän tässä projektissa vain yhtä äänikanavaa. Saadakseen äänisignaalin, liitin äänikaapelin moduulin ääniliitäntään ja katkaisin sen paljastamaan neljä johtoa sisällä. Yhdistin kaksi johtoa. Toinen niistä on GND ja toinen äänisignaali toisesta kahdesta äänikanavasta. Halutessasi voit liittää molemmat kanavat vahvistinmoduuliin ja ajaa kahta kaiutinta.

Jokaisen äänikanavan on mentävä eristysmuuntajan läpi melun poistamiseksi ennen vahvistimeen liittämistä

Jotta voimme lähettää tietoja näytölle, meidän on kytkettävä vain yksi johto ESP32: n TX0 -nastaan. Osien liittämisen jälkeen meidän on ladattava koodi ESP32: een ja meidän on ladattava graafinen käyttöliittymä Nextion -näyttöön.

Jos haluat ladata graafisen käyttöliittymän Nextion -näyttöön, kopioi InternetRadio.tft -tiedosto, jonka aion jakaa kanssasi tyhjälle SD -kortille. Aseta SD -kortti näytön takana olevaan SD -korttipaikkaan. Käynnistä sitten näyttö ja GUI ladataan. Poista sitten SD -kortti ja kytke virta uudelleen.

Kun koodi on ladattu onnistuneesti, käynnistetään projekti. Näytössä näkyy teksti”Connecting…” muutaman sekunnin ajan. Internet -yhteyden muodostamisen jälkeen projekti muodostaa yhteyden ennalta määritettyyn radioasemaan. Laitteisto toimii odotetusti, mutta katsotaan nyt projektin ohjelmistopuoli.

Vaihe 6: Hankkeen koodi

Projektin koodi
Projektin koodi
Projektin koodi
Projektin koodi

Ensinnäkin, näytän sinulle jotain. Projektin koodi on alle 140 riviä koodia. Ajattele sitä, voimme rakentaa Internet -radion 3,5 tuuman näytöllä, jossa on 140 koodiriviä, tämä on hämmästyttävää. Voimme saavuttaa tämän kaiken käyttämällä tietysti erilaisia kirjastoja, jotka sisältävät tuhansia koodirivejä. Tämä on Arduinon ja avoimen lähdekoodin yhteisön voima. Se tekee asioista helppoa valmistajille.

Tässä projektissa käytän ESP32 -levylle VS1053 -kirjastoa.

Aluksi meidän on määritettävä Wi-Fi-verkon SSID ja salasana. Seuraavaksi meidän on tallennettava joitain radiokanavia tähän. Tarvitsemme isäntä -URL -osoitteen, polun, jossa virta sijaitsee, ja portin, jota meidän on käytettävä. Tallennamme kaikki nämä tiedot näihin muuttujiin.

char ssid = "oma SSID"; // verkkosi SSID (nimi) char pass = "yourWifiPassword"; // verkkosi salasana

// Harvat radioasemat

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

Olen sisällyttänyt tähän esimerkkiin 4 radioasemaa.

Asetustoiminnossa liitämme keskeytykset painikkeisiin, alustamme MP3-dekooderimoduulin ja muodostamme yhteyden Wi-Fi-verkkoon.

void setup () {

Sarja.alku (9600); viive (500); SPI.begin ();

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

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

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

Silmukkatoiminnossa tarkistamme ensiksi, onko käyttäjä valinnut eri radioaseman kuin se, jolta saamme tietoja. Jos näin on, muodostamme yhteyden uuteen radioasemaan, muuten saamme tietoja virrasta ja lähetämme ne MP3 -dekooderimoduuliin.

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

Siinä kaikki! Kun käyttäjä painaa painiketta, keskeytys tapahtuu ja muuttaa muuttujan arvoa, joka kertoo, mihin virtaan haluat muodostaa yhteyden.

void IRAM_ATTR previousButtonInterrupt () {

staattinen allekirjoittamaton pitkä last_interrupt_time = 0;

unsigned long interrupt_time = millis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; muuten radioasema = 3; } viimeinen_keskeytysaika = keskeytysaika; }

Näytön päivittämiseksi lähetämme vain joitain komentoja sarjaporttiin.

void drawRadioStationName (int id) {String -komento; kytkin (id) {case 0: command = "p1.pic = 2"; Serial.print (komento); endNextionCommand (); tauko; // 1940 Yhdistyneen kuningaskunnan radion tapaus 1: command = "p1.pic = 3"; Serial.print (komento); endNextionCommand (); tauko; // KOSMOS GREEK -tapaus 2: command = "p1.pic = 4"; Serial.print (komento); endNextionCommand (); tauko; // REAL FM GREEK -tapaus 3: command = "p1.pic = 5"; Serial.print (komento); endNextionCommand (); tauko; // SKAI 100.3 KREIKKA}}

Katsotaanpa nyt Nextion Display -käyttöliittymää. Nextion -käyttöliittymä koostuu taustakuvasta ja kuvasta, jossa näkyy radioaseman nimi. ESP32 -kortti lähettää komentoja radioaseman nimen muuttamiseksi upotetuista kuvista. Se on hyvin helppoa. Katso lisätietoja Nextion -näytön opetusohjelmasta, jonka olen valmistanut jokin aika sitten. Voit halutessasi suunnitella nopeasti oman käyttöliittymän ja näyttää siinä enemmän asioita.

Kuten aina, projektin koodi on tämän ohjeen liitteenä.

Vaihe 7: Viimeiset ajatukset ja parannukset

Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset
Lopulliset ajatukset ja parannukset

Tämä projekti on hyvin yksinkertainen. Halusin yksinkertaisen Internet Radio -projektirungon, jonka kanssa työskennellä. Nyt kun ensimmäinen versio projektista on valmis, voimme lisätä siihen monia ominaisuuksia sen parantamiseksi. Ensinnäkin minun on suunniteltava kotelo kaiken elektroniikan tallentamiseksi.

Tässä kaikkein kauneimmista radioista koskaan tehdyssä kirjassa on erittäin hienoja radioita, joista valita tämän projektin kotelo. Luulen, että aion rakentaa kotelon tämän upean Art Deco -radion ympärille. Mitä mieltä olette, pidättekö tämän radion ulkoasusta vai haluatteko jotain modernimpaa? Onko sinulla muita ideoita koteloinnista? Pidätkö myös tästä Internet Radio -projektista ja mitä ominaisuuksia mielestämme meidän on lisättävä siihen, jotta siitä olisi enemmän hyötyä? Haluaisin lukea ajatuksiasi ja ideoitasi, joten lähetä ne alla olevaan kommenttiosaan.

Suositeltava: