Obsah:

Internetové rádio s ESP32: 7 kroků (s obrázky)
Internetové rádio s ESP32: 7 kroků (s obrázky)

Video: Internetové rádio s ESP32: 7 kroků (s obrázky)

Video: Internetové rádio s ESP32: 7 kroků (s obrázky)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Červen
Anonim
Image
Image
Internetové rádio využívající ESP32
Internetové rádio využívající ESP32
Internetové rádio využívající ESP32
Internetové rádio využívající ESP32

Vážení přátelé, vítejte u dalšího Instructable! Dnes budeme stavět zařízení internetového rádia s velkým 3,5 “displejem pomocí levné desky ESP32. Věřte tomu nebo ne, internetové rádio nyní můžeme postavit za méně než 10 minut a za méně než 30 $. Je toho hodně co pokrýt, takže pojďme začít!

Před několika měsíci jsem dokončil projekt Arduino FM Radio, který funguje skvěle a podle mě vypadá ještě lépe. Pokud chcete vidět, jak jsem tento projekt postavil, můžete si zde přečíst Instructable. Problém je v tom, že ačkoli toto rádio vypadá skvěle, není praktické, protože žiji v malém městě v jižním Řecku a velké řecké rozhlasové stanice, které raději poslouchám, zde nemají vysílače. Poslouchám své oblíbené rádia online na svém notebooku nebo tabletu, což také není tak praktické. Dnes tedy postavím zařízení internetového rádia, abych mohl poslouchat své oblíbené rozhlasové stanice z celého světa!

Jak vidíte, první verze projektu je připravena na prkénku. Pojďme to zapnout. Jak vidíte, projekt se připojuje k internetu a poté streamuje hudbu z předdefinovaných rozhlasových stanic.

Naladil jsem rozhlasovou stanici Real FM z Athén a pomocí těchto tlačítek můžeme změnit rozhlasovou stanici, kterou posloucháme. Uložil jsem své oblíbené rozhlasové stanice do paměti ESP32, abych k nim měl snadný přístup. Tímto potenciometrem mohu měnit hlasitost reproduktoru. Název rozhlasové stanice, kterou posloucháme, zobrazuji na velkém 3,5 “displeji s retro uživatelským rozhraním. Projekt funguje dobře a jeho sestavení je velmi snadné.

Stejný projekt můžete postavit za méně než 10 minut, ale musíte mít určité zkušenosti. Pokud se jedná o váš první projekt, zvažte nejprve vybudování jednoduššího, abyste získali nějaké zkušenosti. Podívejte se na mé instruktážní nápady pro jednoduché nápady na projekty a až vám bude Arduino více vyhovovat, elektronika se vrátí a postaví tento skvělý projekt. Začněme nyní budovat vlastní internetové rádio.

AKTUALIZACE 6. 6. 2019

Problém s hlukem byl vyřešen přidáním oddělovacího transformátoru. Podívejte se na aktualizovaný shematický diagram. Dík!

Krok 1: Získejte všechny díly

Získejte všechny díly
Získejte všechny díly

Budeme potřebovat následující díly:

  • ESP32 ▶
  • Dekodér MP3 ▶
  • Izolační transformátor ▶
  • Zesilovač ▶
  • 3W reproduktor ▶
  • 3,5 "displej Nextion ▶
  • Tlačítka ▶
  • Breadboard ▶
  • Dráty ▶

Celkové náklady na projekt se pohybují kolem 40 $, ale pokud nepoužíváte displej, náklady na projekt se pohybují kolem 20 $. Úžasné věci. Můžeme si postavit vlastní internetové rádio za pouhých 20 $!

Krok 2: Deska ESP32

Image
Image
Deska ESP32
Deska ESP32
Deska ESP32
Deska ESP32

Srdcem projektu je samozřejmě výkonná deska ESP32. Pokud jej neznáte, čip ESP32 je nástupcem populárního čipu ESP8266, který jsme v minulosti mnohokrát použili. ESP32 je bestie! Nabízí dvě 32bitová procesorová jádra, která pracují na frekvenci 160 MHz, obrovské množství paměti, WiFi, Bluetooth a mnoho dalších funkcí za cenu kolem 7 $! Úžasné věci!

Podívejte se prosím na podrobnou recenzi, kterou jsem pro tuto desku připravil. Připojil jsem video k tomuto Instructable. Pomůže to pochopit, proč tento čip navždy změní způsob, jakým věci děláme! Jednou z nejzajímavějších věcí na ESP32 je, že přestože je tak výkonný, nabízí režim hlubokého spánku, který vyžaduje pouze 10μΑs proudu. Díky tomu je ESP32 ideálním čipem pro aplikace s nízkým výkonem.

V tomto projektu se deska ESP32 připojí k internetu a poté přijímá data MP3 z rozhlasové stanice, kterou posloucháme, a odesílá některé příkazy na displej.

Krok 3: Dekodér MP3

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

Data MP3 jsou poté odeslána do modulu dekodéru MP3 pomocí rozhraní SPI. Tento modul používá integrovaný obvod VS1053. Tento IC je vyhrazený hardwarový dekodér MP3. Získává data MP3 z ESP32 a převádí je opravdu rychle na zvukový signál.

Zvukový signál, který na tomto zvukovém konektoru vychází, je slabý a hlučný, takže ho musíme zbavit šumu a zesílit. (Pokud používáte sluchátka, signál nemusí být odstraněn od šumu nebo zesílen.) Proto používám izolační transformátor pro odstranění zvuku od šumu a zvukový zesilovač PAM8403 pro zesílení zvukového signálu a jeho odeslání reproduktoru. Také jsem připojil dvě tlačítka k ESP32, jen abych změnil stream MP3, ze kterého získáváme data, a displej Nextion pro zobrazení rozhlasové stanice, kterou posloucháme.

Krok 4: Zobrazení zobrazení

Image
Image
Připojení všech částí
Připojení všech částí

Pro tento projekt jsem se rozhodl použít displej Nextion, protože se velmi snadno používá. K ovládání nám stačí připojit pouze jeden vodič.

Displeje Nextion jsou nový druh displejů. Vzadu mají vlastní procesor ARM, který je zodpovědný za ovládání displeje a vytváření grafického uživatelského rozhraní. Můžeme je tedy použít s jakýmkoli mikrokontrolérem a dosáhnout velkolepých výsledků. Připravil jsem podrobný přehled tohoto displeje Nextion, který podrobně vysvětluje, jak fungují, jak je používat a jejich nevýhody. Můžete si jej přečíst zde, nebo se podívat na přiložené video.

Krok 5: Připojení všech částí

Připojení všech částí
Připojení všech částí
Připojení všech částí
Připojení všech částí

Jediné, co teď musíme udělat, je spojit všechny části dohromady podle tohoto schematického diagramu. Schematický diagram naleznete v příloze zde. Spojení je přímočaré.

Existují však dvě věci, které je třeba poznamenat. Modul dekodéru MP3 vydává stereofonní signál, ale v tomto projektu používám pouze jeden zvukový kanál. Abych získal zvukový signál, připojil jsem zvukový kabel ke zvukovému konektoru modulu a rozřízl jej tak, aby odhalil čtyři dráty uvnitř. Spojil jsem dva z vodičů. Jedním z nich je GND a druhým je zvukový signál jednoho ze dvou zvukových kanálů. Pokud si přejete, můžete připojit oba kanály k modulu zesilovače a řídit dva reproduktory.

Každý zvukový kanál musí projít izolačním transformátorem, aby před připojením k zesilovači odstranil veškerý přítomný šum

K odeslání dat na displej nám stačí připojit jeden vodič na pin TX0 na ESP32. Po připojení částí musíme načíst kód do ESP32 a musíme načíst GUI na displej Nextion.

Chcete -li načíst GUI na obrazovku Nextion, zkopírujte soubor InternetRadio.tft, který s vámi budu sdílet, na prázdnou kartu SD. Vložte kartu SD do slotu pro kartu SD v zadní části displeje. Poté zapněte displej a načte se grafické uživatelské rozhraní. Poté vyjměte kartu SD a znovu připojte napájení.

Po úspěšném načtení kódu zapneme projekt. Na displeji se na několik sekund zobrazí text „Připojování …“. Po připojení k internetu se projekt připojí k předdefinované rozhlasové stanici. Hardware funguje podle očekávání, ale nyní se podívejme na softwarovou stránku projektu.

Krok 6: Kód projektu

Kodex projektu
Kodex projektu
Kodex projektu
Kodex projektu

Nejprve vám něco ukážu. Kód projektu je menší než 140 řádků kódu. Zamyslete se, můžeme vytvořit internetové rádio s 3,5”displejem se 140 řádky kódu, to je úžasné. Toho všeho můžeme dosáhnout pomocí různých knihoven, které samozřejmě obsahují tisíce řádků kódu. V tom je síla Arduina a komunity open source. Výrobcům to usnadňuje práci.

V tomto projektu používám knihovnu VS1053 pro desku ESP32.

Nejprve musíme definovat SSID a heslo sítě Wi-Fi. Dále zde musíme uložit některé rozhlasové stanice. Potřebujeme adresu URL hostitele, cestu, kde se stream nachází, a port, který musíme použít. Všechny tyto informace ukládáme do těchto proměnných.

char ssid = "yourSSID"; // vaše síťové SSID (jméno) char pass = "yourWifiPassword"; // vaše síťové heslo

// Několik rozhlasových stanic

char *host [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 tohoto příkladu jsem zahrnoval 4 rozhlasové stanice.

Ve funkci nastavení připojujeme k tlačítkům přerušení, inicializujeme modul dekodéru MP3 a připojujeme se k Wi-Fi.

neplatné nastavení () {

Serial.begin (9600); zpoždění (500); SPI.begin ();

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

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

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

Ve funkci smyčky nejprve zkontrolujeme, zda uživatel vybral jinou rozhlasovou stanici, než ze které získáváme data. Pokud ano, připojíme se k nové rozhlasové stanici, jinak získáme data ze streamu a odešleme je do modulu dekodéru MP3.

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

To je vše! Když uživatel stiskne tlačítko, dojde k přerušení a změní hodnotu proměnné, která udává, ke kterému proudu se má připojit.

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

Chcete -li aktualizovat displej, jednoduše odešleme některé příkazy na sériový port.

void drawRadioStationName (int id) {Řetězec; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (příkaz); endNextionCommand (); přestávka; // 1940 UK Radio case 1: command = "p1.pic = 3"; Serial.print (příkaz); endNextionCommand (); přestávka; // KOSMOS GREEK případ 2: příkaz = "p1.pic = 4"; Serial.print (příkaz); endNextionCommand (); přestávka; // SKUTEČNÝ FM ŘECKO případ 3: příkaz = "p1.pic = 5"; Serial.print (příkaz); endNextionCommand (); přestávka; // SKAI 100,3 ŘECKO}}

Nyní se podívejme na grafické rozhraní Nextion Display. Nextion GUI se skládá z obrázku na pozadí a obrázku, který zobrazuje název rozhlasové stanice. Deska ESP32 odesílá příkazy ke změně názvu rozhlasové stanice z vložených obrazů. Je to velmi lehké. Pro více informací si prosím prohlédněte výukový program Nextion, který jsem před časem připravil. Pokud si přejete, můžete rychle navrhnout vlastní GUI a zobrazit na něm více věcí.

Jako vždy najdete kód projektu připojený v tomto Instructable.

Krok 7: Závěrečné myšlenky a vylepšení

Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení
Závěrečné myšlenky a vylepšení

Tento projekt je velmi jednoduchý. Chtěl jsem, aby fungovala jednoduchá kostra internetového rádia. Nyní, když je první verze projektu připravena, můžeme do ní přidat mnoho funkcí, abychom ji vylepšili. Nejprve musím navrhnout skříň, do které bude umístěna veškerá elektronika.

V této knize o Nejkrásnějších rádiích, která kdy byla vyrobena, můžete jako přílohu pro tento projekt vybrat velmi cool rádia. Myslím, že postavím ohradu kolem tohoto velkolepého rádia Art Deco. Co si myslíte, líbí se vám vzhled tohoto rádia nebo dáváte přednost něčemu modernějšímu? Máte nějaké další nápady ohledně přílohy? Také se vám líbí tento projekt internetového rádia a jaké funkce si podle něj musíme přidat, aby byl užitečnější? Rád si přečtu vaše myšlenky a nápady, pošlete je prosím v sekci komentáře níže.

Doporučuje: