Obsah:

Internetové rádio s ESP32: 7 krokov (s obrázkami)
Internetové rádio s ESP32: 7 krokov (s obrázkami)

Video: Internetové rádio s ESP32: 7 krokov (s obrázkami)

Video: Internetové rádio s ESP32: 7 krokov (s obrázkami)
Video: Simple Programming, Amazing Results: DIY Bluetooth Speaker with #ESP32 and 2 Speakers 2024, November
Anonim
Image
Image
Internetové rádio pomocou systému ESP32
Internetové rádio pomocou systému ESP32
Internetové rádio pomocou systému ESP32
Internetové rádio pomocou systému ESP32

Milí priatelia, vitajte pri ďalšom pokyne! Dnes budeme stavať zariadenie internetového rádia s veľkým 3,5 -palcovým displejom pomocou lacnej dosky ESP32. Verte či neverte, internetové rádio teraz dokážeme postaviť za menej ako 10 minút a za menej ako 30 $. Je toho veľa, čo musíme pokryť, takže začnime!

Pred niekoľkými mesiacmi som dokončil projekt FM rádia Arduino, ktorý funguje skvele a podľa mňa vyzerá ešte lepšie. Ak chcete vidieť, ako som postavil tento projekt, môžete si tu prečítať návod. Problém je v tom, že hoci toto rádio vyzerá dobre, nie je praktické, pretože žijem v malom meste v južnom Grécku a veľké grécke rozhlasové stanice, ktoré radšej počúvam, tu nemajú vysielače. Počúvam svoje obľúbené rádiá online na svojom prenosnom počítači alebo tablete, čo tiež nie je také praktické. Dnes teda budem stavať zariadenie internetového rádia, aby som mohol počúvať svoje obľúbené rozhlasové stanice z celého sveta!

Ako vidíte, prvá verzia projektu je pripravená na doske. Poďme to zapnúť. Ako vidíte, projekt sa pripája k internetu a potom streamuje hudbu z vopred definovaných rozhlasových staníc.

Naladil som rozhlasovú stanicu Real FM z Atén a pomocou týchto tlačidiel môžeme zmeniť rozhlasovú stanicu, ktorú počúvame. Uložil som svoje obľúbené rozhlasové stanice do pamäte ESP32, aby som k nim mal ľahký prístup. Týmto potenciometrom môžem meniť hlasitosť reproduktora. Názov rozhlasovej stanice, ktorú počúvame, zobrazujem na veľkom 3,5 -palcovom displeji s retro používateľským rozhraním. Projekt funguje dobre a jeho zostavenie je veľmi jednoduché.

Rovnaký projekt môžete postaviť za menej ako 10 minút, ale musíte mať určité skúsenosti. Ak je to váš prvý projekt, zvážte najskôr vybudovanie jednoduchšieho, aby ste získali nejaké skúsenosti. Pozrite sa na moje jednoduché pokyny k projektom a keď vám bude Arduino viac vyhovovať, elektronika sa vráti a postaví tento úžasný projekt. Začnime teraz s budovaním vlastného internetového rádia.

AKTUALIZÁCIA 6.6.2019

Problém so šumom bol vyriešený pridaním oddeľovacieho transformátora. Pozrite sa na aktualizovaný schematický diagram. Vďaka!

Krok 1: Získajte všetky diely

Získajte všetky diely
Získajte všetky diely

Budeme potrebovať nasledujúce diely:

  • ESP32 ▶
  • Dekodér MP3 ▶
  • Izolačný transformátor ▶
  • Zosilňovač ▶
  • 3W reproduktor ▶
  • 3,5 "displej Nextion ▶
  • Tlačidlá ▶
  • Breadboard ▶
  • Drôty ▶

Celkové náklady na projekt sú okolo 40 $, ale ak nepoužívate displej, náklady na projekt sú okolo 20 $. Úžasné veci. Môžeme si postaviť vlastné internetové rádio za pouhých 20 $!

Krok 2: Doska ESP32

Image
Image
Doska ESP32
Doska ESP32
Doska ESP32
Doska ESP32

Srdcom projektu je samozrejme výkonná doska ESP32. Ak ho nepoznáte, čip ESP32 je nástupcom populárneho čipu ESP8266, ktorý sme v minulosti mnohokrát použili. ESP32 je zver! Ponúka dve 32 -bitové procesorové jadrá, ktoré pracujú na frekvencii 160 MHz, obrovské množstvo pamäte, WiFi, Bluetooth a mnoho ďalších funkcií za cenu približne 7 $! Úžasné veci!

Pozrite sa na podrobnú recenziu, ktorú som pre túto dosku pripravil. Pripojil som video k tomuto návodu. Pomôže to pochopiť, prečo tento čip navždy zmení spôsob, akým veci vyrábame! Jednou z najvzrušujúcejších vecí na ESP32 je, že aj keď je taký výkonný, ponúka režim hlbokého spánku, ktorý vyžaduje iba 10μΑs prúdu. Vďaka tomu je ESP32 ideálnym čipom pre aplikácie s nízkym výkonom.

V tomto projekte sa doska ESP32 pripojí k internetu a potom prijme údaje MP3 z rozhlasovej stanice, ktorú počúvame, a odošle niektoré príkazy na displej.

Krok 3: Dekodér MP3

MP3 dekodér
MP3 dekodér
MP3 dekodér
MP3 dekodér

Údaje MP3 sú potom odoslané do modulu dekodéra MP3 pomocou rozhrania SPI. Tento modul používa integrovaný obvod VS1053. Tento IC je vyhradený hardvérový dekodér MP3. Získava údaje MP3 z ESP32 a veľmi rýchlo ich prevádza na zvukový signál.

Zvukový signál, ktorý vydáva na tomto zvukovom konektore, je slabý a hlučný, preto ho musíme zbaviť šumu a zosilniť ho. (Ak používate slúchadlá, signál nemusí byť zbavený šumu ani zosilnený.) Preto používam izolačný transformátor na odstránenie zvuku od šumu a zvukový zosilňovač PAM8403 na zosilnenie zvukového signálu a jeho odoslanie. rečníkovi. K ESP32 som tiež pripojil dve tlačidlá, len aby som zmenil stream MP3, z ktorého získavame údaje, a displej Nextion na zobrazenie rozhlasovej stanice, ktorú počúvame.

Krok 4: Nextion Display

Image
Image
Pripojenie všetkých častí
Pripojenie všetkých častí

Pre tento projekt som sa rozhodol použiť displej Nextion, pretože sa veľmi ľahko používa. Na ovládanie potrebujeme iba jeden vodič.

Displeje Nextion sú novým druhom displejov. Na zadnej strane majú vlastný procesor ARM, ktorý je zodpovedný za ovládanie displeja a vytváranie grafického používateľského rozhrania. Môžeme ich teda použiť s akýmkoľvek mikrokontrolérom a dosiahnuť veľkolepé výsledky. Pripravil som podrobný prehľad tohto displeja Nextion, ktorý podrobne vysvetľuje, ako fungujú, ako ich používať a ich nevýhody. Môžete si ho prečítať tu, alebo si pozrieť priložené video.

Krok 5: Pripojenie všetkých častí

Pripojenie všetkých častí
Pripojenie všetkých častí
Pripojenie všetkých častí
Pripojenie všetkých častí

Teraz musíme len spojiť všetky časti dohromady podľa tohto schematického diagramu. Schematický diagram nájdete v prílohe. Spojenie je priamočiare.

Treba si však uvedomiť dve veci. Modul dekodéra MP3 vydáva stereofónny signál, ale v tomto projekte používam iba jeden zvukový kanál. Aby som získal zvukový signál, zapojil som zvukový kábel do zvukového konektora modulu a prestrihol ho, aby som odhalil štyri drôty vo vnútri. Pripojil som dva z drôtov. Jedným z nich je GND a druhým zvukový signál jedného z dvoch zvukových kanálov. Ak chcete, môžete pripojiť oba kanály k modulu zosilňovača a ovládať dva reproduktory.

Každý zvukový kanál musí pred pripojením k zosilňovaču prejsť izolačným transformátorom, aby odstránil všetok prítomný šum

Na odoslanie údajov na displej potrebujeme iba jeden vodič na pin TX0 na ESP32. Po pripojení dielov musíme načítať kód do ESP32 a musíme načítať GUI na displej Nextion.

Ak chcete načítať GUI na obrazovku Nextion, skopírujte súbor InternetRadio.tft, ktorý s vami budem zdieľať, na prázdnu kartu SD. Vložte kartu SD do otvoru pre kartu SD na zadnej strane displeja. Potom zapnite displej a načíta sa GUI. Potom vyberte kartu SD a znova pripojte napájanie.

Po úspešnom načítaní kódu spustíme projekt. Na niekoľko sekúnd sa na displeji zobrazí text „Connecting…“. Po pripojení k internetu sa projekt spojí s preddefinovanou rozhlasovou stanicou. Hardvér funguje podľa očakávania, ale teraz sa pozrime na softvérovú stránku projektu.

Krok 6: Kód projektu

Kódex projektu
Kódex projektu
Kódex projektu
Kódex projektu

Najprv vám ukážem niečo. Kód projektu je menší ako 140 riadkov kódu. Zamyslite sa nad tým, môžeme postaviť internetové rádio s 3,5 -palcovým displejom so 140 riadkami kódu, to je úžasné. To všetko môžeme dosiahnuť pomocou rôznych knižníc, ktoré samozrejme obsahujú tisíce riadkov kódu. V tom je sila Arduina a komunity open source. Výrobcom to uľahčuje.

V tomto projekte používam knižnicu VS1053 pre dosku ESP32.

Najprv musíme definovať SSID a heslo siete Wi-Fi. Ďalej tu musíme uložiť niektoré rozhlasové stanice. Potrebujeme adresu URL hostiteľa, cestu, kde sa stream nachádza, a port, ktorý musíme použiť. Všetky tieto informácie uložíme do týchto premenných.

char ssid = "yourSSID"; // váš sieťový SSID (názov) char pass = "yourWifiPassword"; // heslo do siete

// Niekoľko rozhlasových staníc

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

Do tohto príkladu som zahrnul 4 rozhlasové stanice.

Vo funkcii nastavenia pripájame prerušenia k tlačidlám, inicializujeme modul dekodéra MP3 a pripájame sa k Wi-Fi.

neplatné nastavenie () {

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

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

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

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

Vo funkcii slučky najskôr skontrolujeme, či používateľ vybral inú rozhlasovú stanicu, než z ktorej získavame údaje. Ak je to tak, pripojíme sa k novej rozhlasovej stanici, inak získame údaje zo streamu a odošleme ich do modulu dekodéra MP3.

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

To je všetko! Keď používateľ stlačí tlačidlo, dôjde k prerušeniu a zmení hodnotu premennej, ktorá hovorí, ku ktorému streamu sa má pripojiť.

zrušiť 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 = čas prerušenia; }

Na aktualizáciu displeja jednoducho pošleme niektoré príkazy na sériový port.

void drawRadioStationName (int id) {príkaz reťazca; prepínač (id) {prípad 0: príkaz = "p1.pic = 2"; Serial.print (príkaz); endNextionCommand (); prestávka; // 1940 Prípad rádia UK 1: command = "p1.pic = 3"; Serial.print (príkaz); endNextionCommand (); prestávka; // KOSMOS GRÉCKO prípad 2: príkaz = "p1.pic = 4"; Serial.print (príkaz); endNextionCommand (); prestávka; // SKUTOČNÝ FM GRÉCKO prípad 3: príkaz = "p1.pic = 5"; Serial.print (príkaz); endNextionCommand (); prestávka; // SKAI 100,3 GRÉCKO}}

Teraz sa pozrime na grafické rozhranie Nextion Display. Nextion GUI sa skladá z obrázku na pozadí a obrázku, ktorý zobrazuje názov rozhlasovej stanice. Doska ESP32 odosiela príkazy na zmenu názvu rozhlasovej stanice z vložených obrázkov. Je to veľmi jednoduché. Ak chcete získať ďalšie informácie, pozrite si návod na zobrazenie Nextion, ktorý som pred časom pripravil. Ak si želáte, môžete si rýchlo navrhnúť vlastné GUI a zobraziť na ňom viac vecí.

Ako vždy, v tomto návode nájdete kód projektu.

Krok 7: Záverečné myšlienky a vylepšenia

Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia
Záverečné myšlienky a vylepšenia

Tento projekt je veľmi jednoduchý. Chcel som, aby s ním fungovala jednoduchá kostra projektu Internetového rádia. Teraz, keď je prvá verzia projektu pripravená, môžeme do nej pridať mnoho funkcií na jej vylepšenie. V prvom rade musím navrhnúť kryt, do ktorého bude umiestnená všetka elektronika.

V tejto knihe o najkrajších rádiách, aké boli kedy vyrobené, môžete ako prílohu pre tento projekt vybrať veľmi chladné rádiá. Myslím, že postavím ohradu okolo tohto veľkolepého rádia Art Deco. Čo si myslíte, páči sa vám vzhľad tohto rádia alebo dávate prednosť niečomu modernejšiemu? Máte ďalšie nápady na obálky? Tiež sa vám páči tento projekt Internetového rádia a aké funkcie si myslíme, že k nemu musíme pridať, aby bol užitočnejší? Rád by som si prečítal vaše myšlienky a nápady, prosím, pošlite ich do sekcie komentárov nižšie.

Odporúča: