Tartalomjegyzék:

Internet rádió ESP32 használatával: 7 lépés (képekkel)
Internet rádió ESP32 használatával: 7 lépés (képekkel)

Videó: Internet rádió ESP32 használatával: 7 lépés (képekkel)

Videó: Internet rádió ESP32 használatával: 7 lépés (képekkel)
Videó: Котика ударило током, 10 т. Вольт 2024, Június
Anonim
Image
Image
Internet rádió ESP32 használatával
Internet rádió ESP32 használatával
Internet rádió ESP32 használatával
Internet rádió ESP32 használatával

Kedves barátaink, üdvözöljük egy másik Instructable -ban! Ma egy 3,5 hüvelykes kijelzővel rendelkező internetes rádióeszközt fogunk építeni egy olcsó ESP32 kártya segítségével. Akár hiszi, akár nem, mostantól kevesebb mint 10 perc alatt és 30 dollárnál kevesebb internetes rádiót építhetünk. Sok mindent kell lefedni, ezért kezdjük el!

Néhány hónappal ezelőtt befejeztem egy Arduino FM rádió projektet, amely remekül működik, és véleményem szerint még jobban néz ki. Ha látni szeretné, hogyan építettem fel ezt a projektet, olvassa el az Instructable -t itt. A probléma az, hogy bár ez a rádió jól néz ki, nem praktikus, mert egy dél -görög kisvárosban élek, és a nagy görög rádióállomások, amelyeket inkább hallgatok, nincsenek adók errefelé. Szóval, kedvenc rádióimat hallgatom online laptopomon vagy táblagépemen, ami szintén nem annyira praktikus. Tehát ma egy internetes rádióeszközt fogok építeni annak érdekében, hogy hallgathassam kedvenc rádióállomásaimat a világ minden tájáról!

Amint láthatja, a projekt első verziója készen áll a deszkára. Erősítsük fel. Amint láthatja, a projekt csatlakozik az internethez, majd zenét közvetít előre meghatározott rádióállomásokról.

Behangoltam az athéni Real FM rádióállomásra, és ezekkel a gombokkal megváltoztathatjuk a hallgatott rádióállomást. Kedvenc rádióállomásaimat az ESP32 memóriájába mentettem, így könnyen hozzájuk férhetek. Ezzel a potenciométerrel megváltoztathatom a hangszóró hangerejét. A hallgatott rádióállomás nevét egy nagy, 3,5 hüvelykes kijelzőn jelenítem meg, retro felhasználói felülettel. A projekt jól működik, és nagyon könnyű felépíteni.

Ugyanazt a projektet kevesebb mint 10 perc alatt felépítheti, de némi tapasztalattal kell rendelkeznie. Ha ez az első projektje, akkor némi tapasztalat megszerzése érdekében először fontolja meg az egyszerűbb építését. Nézze meg az Instructables -ben az egyszerű projektötleteket, és ha jobban érzi magát az Arduino -val, az elektronika visszatér, hogy felépítse ezt a klassz projektet. Most kezdjük el saját internetes rádiónk építését.

FRISSÍTÉS 2019.06.06

A zaj problémát leválasztó transzformátor hozzáadásával oldották meg. Nézze meg a frissített vázlatos diagramot. Kösz!

1. lépés: Szerezze be az összes alkatrészt

Szerezd meg az összes alkatrészt
Szerezd meg az összes alkatrészt

A következő alkatrészekre lesz szükségünk:

  • ESP32 ▶
  • MP3 dekódoló ▶
  • Izolációs transzformátor ▶
  • Erősítő ▶
  • 3 W -os hangszóró ▶
  • 3,5 hüvelykes Nextion kijelző ▶
  • Nyomógombok ▶
  • Breadboard ▶
  • Vezetékek ▶

A projekt teljes költsége körülbelül 40 dollár, de ha nem használ kijelzőt, a projekt költsége körülbelül 20 dollár. Elképesztő dolgok. Mindössze 20 dollárból felépíthetjük saját internetes rádiónkat!

2. lépés: ESP32 kártya

Image
Image
ESP32 tábla
ESP32 tábla
ESP32 tábla
ESP32 tábla

A projekt szíve természetesen az erős ESP32 kártya. Ha még nem ismerné, az ESP32 chip a népszerű ESP8266 chip utódja, amelyet a múltban sokszor használtunk. Az ESP32 egy vadállat! Két 32 bites processzormagot kínál, amelyek 160 MHz -en működnek, hatalmas mennyiségű memóriát, WiFi -t, Bluetooth -ot és sok más funkciót kínál, körülbelül 7 dollár költséggel! Elképesztő dolgok!

Kérjük, nézze meg a részletes áttekintést, amelyet erre a táblára készítettem. Csatoltam a videót ehhez az Instructable -hez. Segít megérteni, hogy ez a chip miért változtatja meg örökre a dolgok elkészítésének módját! Az egyik legizgalmasabb dolog az ESP32-ben az, hogy annak ellenére, hogy annyira erős, mély alvó üzemmódot kínál, amely mindössze 10μΑs áramot igényel. Ez teszi az ESP32 -t ideális lapkává az alacsony teljesítményű alkalmazásokhoz.

Ebben a projektben az ESP32 kártya csatlakozik az internethez, majd MP3 adatokat fogad a hallgatott rádióállomástól, és néhány parancsot küld a kijelzőre.

3. lépés: MP3 dekódoló

MP3 dekódoló
MP3 dekódoló
MP3 dekóder
MP3 dekóder

Az MP3 adatokat ezután az SPI interfész segítségével elküldi az MP3 dekódoló modulnak. Ez a modul a VS1053 IC -t használja. Ez az IC egy dedikált hardveres MP3 dekódoló. Megkapja az MP3 adatokat az ESP32 -ből, és nagyon gyorsan audio jellé alakítja.

A hangjel, amelyet ezen az audiocsatlakozón ad ki, gyenge és zajos, ezért meg kell tisztítanunk a zajtól, és erősítenünk kell. (Ha fejhallgatót használ, a jelet nem kell megtisztítani a zajtól vagy erősíteni.) Ezért egy izolációs transzformátort használok, hogy megszabadítsam a hangot a zajtól, és egy PAM8403 audió erősítőt, hogy felerősítsem az audio jelet, majd elküldjem. egy hangszóróhoz. Két gombot is csatlakoztattam az ESP32 -hez, csak hogy megváltoztassuk az MP3 -adatfolyamot, amelyről adatokat kapunk, és egy Nextion kijelzőt a hallgatott rádióállomás megjelenítéséhez.

4. lépés: Nextion kijelző

Image
Image
Az összes alkatrész csatlakoztatása
Az összes alkatrész csatlakoztatása

Úgy döntöttem, hogy Nextion kijelzőt használok ehhez a projekthez, mivel nagyon könnyen használható. A vezérléshez csak egy vezetéket kell csatlakoztatnunk.

A Nextion kijelzők új típusú kijelzők. Hátul saját ARM processzorral rendelkeznek, amely felelős a kijelző meghajtásáért és a grafikus felhasználói felület létrehozásáért. Tehát bármilyen mikrokontrollerrel használhatjuk őket, és látványos eredményeket érhetünk el. Részletes áttekintést készítettem erről a Nextion kijelzőről, amely részletesen elmagyarázza működésüket, használatukat és hátrányaikat. Itt elolvashatja, vagy megtekintheti a mellékelt videót.

5. lépés: Az összes alkatrész csatlakoztatása

Az összes alkatrész csatlakoztatása
Az összes alkatrész csatlakoztatása
Az összes alkatrész csatlakoztatása
Az összes alkatrész csatlakoztatása

Mindössze annyit kell tennünk, hogy összekapcsoljuk az összes alkatrészt a vázlatos ábra szerint. A vázlatos rajzot itt találja. A kapcsolat egyszerű.

Két dolgot azonban meg kell jegyezni. Az MP3 dekóder modul sztereó jelet bocsát ki, de ebben a projektben csak egy hangcsatornát használok. Annak érdekében, hogy megkapja az audio jelet, csatlakoztattam egy audio kábelt a modul audiocsatlakozójához, és levágtam, hogy feltáruljon benne négy vezeték. Csatlakoztattam két vezetéket. Az egyik a GND, a másik pedig a két audiocsatorna egyikének hangjele. Ha szeretné, mindkét csatornát csatlakoztathatja az erősítőmodulhoz, és két hangszórót vezérelhet.

Minden hangcsatornának át kell mennie a leválasztó transzformátoron, hogy megszüntesse a zajokat, mielőtt csatlakoztatja az erősítőhöz

Ahhoz, hogy adatokat küldhessünk a kijelzőre, csak egy vezetéket kell csatlakoztatnunk az ESP32 TX0 érintkezőjéhez. Az alkatrészek csatlakoztatása után be kell töltenünk a kódot az ESP32 -be, és be kell töltenünk a GUI -t a Nextion kijelzőre.

A GUI betöltéséhez a Nextion kijelzőre másolja az InternetRadio.tft fájlt, amelyet megosztani fogok Önnel, egy üres SD -kártyára. Helyezze az SD -kártyát a kijelző hátoldalán található SD -kártya nyílásba. Ezután kapcsolja be a kijelzőt, és a GUI betöltődik. Ezután vegye ki az SD -kártyát, és csatlakoztassa újra a tápellátást.

A kód sikeres betöltése után kapcsoljuk be a projektet. A kijelzőn néhány másodpercre megjelenik a „Connecting…” szöveg. Az internethez való csatlakozás után a projekt egy előre meghatározott rádióállomáshoz csatlakozik. A hardver a várt módon működik, de most nézzük a projekt szoftveroldalát.

6. lépés: A projekt kódja

A projekt kódja
A projekt kódja
A projekt kódja
A projekt kódja

Először is hadd mutassak valamit. A projekt kódja kevesebb, mint 140 kódsor. Gondoljunk csak bele, építhetünk egy internetes rádiót 3,5 hüvelykes kijelzővel, 140 soros kóddal, ez elképesztő. Mindezt természetesen különféle könyvtárak segítségével érhetjük el, amelyek több ezer sornyi kódot tartalmaznak. Ez az Arduino és a nyílt forráskódú közösség ereje. Ez megkönnyíti a készítők dolgát.

Ebben a projektben a VS1053 könyvtárat használom az ESP32 táblához.

Először meg kell határoznunk a Wi-Fi hálózat SSID-jét és jelszavát. Ezután el kell mentenünk néhány rádióállomást. Szükségünk van a gazdagép URL -jére, az adatfolyam elérési útvonalára és a használni kívánt portra. Mindezeket az adatokat ezekbe a változókba mentjük.

char ssid = "saját SSID"; // a hálózat SSID (név) char pass = "yourWifiPassword"; // a hálózati jelszó

// Kevés rádióállomás

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

Ebben a példában 4 rádióállomást vettem fel.

A beállítási funkcióban megszakításokat fűzünk a gombokhoz, inicializáljuk az MP3 dekódoló modult, és csatlakozunk a Wi-Fi-hez.

void setup () {

Sorozat.kezdet (9600); késleltetés (500); SPI.begin ();

pinMode (előzőButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

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

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

A hurok funkcióban először azt ellenőrizzük, hogy a felhasználó más rádióállomást választott -e ki, mint amitől adatokat kapunk. Ha igen, akkor csatlakozzunk az új rádióállomáshoz, különben adatokat kapunk a folyamról, és elküldjük az MP3 dekódoló modulnak.

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

Ez minden! Amikor a felhasználó megnyom egy gombot, megszakítás történik, és megváltoztatja egy változó értékét, amely megmondja, melyik adatfolyamhoz csatlakozzon.

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

A kijelző frissítéséhez egyszerűen küldünk néhány parancsot a soros portra.

void drawRadioStationName (int id) {String parancs; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (parancs); endNextionCommand (); szünet; // 1940 Egyesült Királyság Rádió 1. esete: command = "p1.pic = 3"; Serial.print (parancs); endNextionCommand (); szünet; // KOSMOS GREEK 2. eset: command = "p1.pic = 4"; Serial.print (parancs); endNextionCommand (); szünet; // REAL FM GREEK 3. eset: command = "p1.pic = 5"; Serial.print (parancs); endNextionCommand (); szünet; // SKAI 100.3 GÖRÖG}

Most nézzük meg a Nextion Display GUI -t. A Nextion GUI egy háttérképből és egy képből áll, amely a rádióállomás nevét mutatja. Az ESP32 kártya parancsokat küld a rádióállomás nevének megváltoztatására a beágyazott képekből. Nagyon könnyű. További információért nézze meg a Nextion kijelző bemutatóját, amelyet egy ideje készítettem. Ha szeretné, gyorsan megtervezheti saját grafikus felületét, és több dolgot megjeleníthet rajta.

Mint mindig, a projekt kódját ebben az utasításban találja.

7. lépés: Végső gondolatok és fejlesztések

Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések
Végső gondolatok és fejlesztések

Ez a projekt nagyon egyszerű. Egy egyszerű Internet Radio projekt csontvázat akartam használni. Most, hogy elkészült a projekt első verziója, számos funkcióval bővíthetjük azt. Mindenekelőtt egy házat kell terveznem, amely az összes elektronikát tartalmazza.

Ebben a könyvben, amely a valaha készült legszebb rádiókról szól, nagyon klassz rádiók közül lehet választani a projekt házaként. Azt hiszem, házat fogok építeni e látványos Art Deco rádió körül. Mit gondol, tetszik e rádió kinézete, vagy inkább valami modernebbet szeretne? Van más ötlete a tárolásra? Továbbá, tetszik ez az Internet Radio projekt, és mit gondol, milyen funkciókat kell hozzáadnunk ahhoz, hogy hasznosabbá tegyük? Szívesen olvasnám gondolatait és ötleteit, ezért kérjük, tegye közzé őket az alábbi megjegyzések részben.

Ajánlott: