Satura rādītājs:

Interneta radio, izmantojot ESP32: 7 soļi (ar attēliem)
Interneta radio, izmantojot ESP32: 7 soļi (ar attēliem)

Video: Interneta radio, izmantojot ESP32: 7 soļi (ar attēliem)

Video: Interneta radio, izmantojot ESP32: 7 soļi (ar attēliem)
Video: How to use ESP32 WiFi and Bluetooth with Arduino IDE full details with examples and code 2024, Septembris
Anonim
Image
Image
Interneta radio, izmantojot ESP32
Interneta radio, izmantojot ESP32
Interneta radio, izmantojot ESP32
Interneta radio, izmantojot ESP32

Dārgie draugi, laipni lūdzam citā Instructable! Šodien mēs izveidosim interneta radio ierīci ar lielu 3,5 collu displeju, izmantojot lētu ESP32 plati. Ticiet vai nē, bet tagad mēs varam izveidot interneta radio mazāk nekā 10 minūtēs un ar mazāk nekā 30 ASV dolāriem. Ir daudz, kas jāaptver, tāpēc sāksim!

Pirms dažiem mēnešiem es pabeidzu Arduino FM radio projektu, kas darbojas lieliski un, manuprāt, izskatās vēl labāk. Ja vēlaties redzēt, kā es izveidoju šo projektu, jūs varat izlasīt instrukciju šeit. Problēma ir tā, ka, lai gan šis radio izskatās forši, tas nav praktiski, jo es dzīvoju nelielā pilsētiņā Grieķijas dienvidos un lielajās grieķu radiostacijās, kuras es labprātāk klausos, šeit nav raidītāju. Tātad, es klausos savus iecienītākos radio tiešsaistē savā klēpjdatorā vai planšetdatorā, kas arī nav tik praktiski. Tātad, šodien es būvēšu interneta radio ierīci, lai varētu klausīties savas iecienītākās radiostacijas no visas pasaules!

Kā redzat, pirmā projekta versija ir gatava uz maizes dēļa. Ieslēdzam to. Kā redzat, projekts izveido savienojumu ar internetu un pēc tam straumē mūziku no iepriekš definētām radiostacijām.

Esmu noregulējis radiostaciju Real FM no Atēnām, un, izmantojot šīs pogas, mēs varam mainīt klausāmo radiostaciju. ESP32 atmiņā esmu saglabājis savas iecienītākās radiostacijas, lai varētu tām viegli piekļūt. Ar šo potenciometru es varu mainīt skaļruņa skaļumu. Es parādīju klausāmās radiostacijas nosaukumu lielā 3,5 collu displejā ar retro lietotāja interfeisu. Projekts darbojas labi, un to ir ļoti viegli izveidot.

Jūs varat izveidot vienu un to pašu projektu mazāk nekā 10 minūtēs, bet jums ir jābūt pieredzei. Ja šis ir jūsu pirmais projekts, vispirms apsveriet iespēju izveidot vienkāršāku projektu, lai iegūtu kādu pieredzi. Pārbaudiet manu pamācību, lai atrastu vienkāršas projektu idejas, un, kad jums ir ērtāk izmantot Arduino, elektronika atgriežas, lai izveidotu šo foršo projektu. Tagad sāksim veidot savu interneta radio.

ATJAUNINĀT 6.6.2019

Trokšņa problēma ir atrisināta, pievienojot izolatora transformatoru. Pārbaudiet atjaunināto shematisko diagrammu. Paldies!

1. darbība: iegūstiet visas detaļas

Iegūstiet visas detaļas
Iegūstiet visas detaļas

Mums būs nepieciešamas šādas daļas:

  • ESP32 ▶
  • MP3 dekodētājs ▶
  • Izolācijas transformators ▶
  • Pastiprinātājs ▶
  • 3 W skaļrunis ▶
  • 3,5 collu Nextion displejs ▶
  • Spiedpogas ▶
  • Maizes dēlis ▶
  • Vadi ▶

Projekta kopējās izmaksas ir aptuveni 40 USD, bet, ja neizmantojat displeju, projekta izmaksas ir aptuveni 20 USD. Pārsteidzošas lietas. Mēs varam izveidot savu interneta radio tikai ar 20 USD!

2. darbība: ESP32 tāfele

Image
Image
ESP32 valde
ESP32 valde
ESP32 valde
ESP32 valde

Projekta pamatā, protams, ir jaudīgā ESP32 tāfele. Ja jūs to neesat pazīstams, ESP32 mikroshēma ir populārās ESP8266 mikroshēmas pēctecis, ko mēs esam izmantojuši daudzas reizes agrāk. ESP32 ir zvērs! Tas piedāvā divus 32 bitu apstrādes kodolus, kas darbojas 160 MHz frekvencē, milzīgu atmiņas apjomu, WiFi, Bluetooth un daudzas citas funkcijas, kuru izmaksas ir aptuveni 7 USD! Apbrīnojamas lietas!

Lūdzu, skatieties detalizētu pārskatu, ko esmu sagatavojis šai padomei. Esmu pievienojis video šai instrukcijai. Tas palīdzēs saprast, kāpēc šī mikroshēma uz visiem laikiem mainīs veidu, kādā mēs veidojam lietas! Viena no aizraujošākajām lietām par ESP32 ir tā, ka, lai gan tas ir tik spēcīgs, tas piedāvā dziļā miega režīmu, kas prasa tikai 10 μs strāvas. Tas padara ESP32 par ideālu mikroshēmu mazjaudas lietojumiem.

Šajā projektā ESP32 tāfele izveido savienojumu ar internetu, un pēc tam tā saņem MP3 datus no radiostacijas, kuru mēs klausāmies, un tā nosūta dažas komandas uz displeju.

3. solis: MP3 dekodētājs

MP3 dekodētājs
MP3 dekodētājs
MP3 dekodētājs
MP3 dekodētājs

Pēc tam MP3 dati tiek nosūtīti uz MP3 dekodētāja moduli, izmantojot SPI saskarni. Šis modulis izmanto VS1053 IC. Šis IC ir speciāls aparatūras MP3 dekodētājs. Tas iegūst MP3 datus no ESP32 un patiešām ātri pārvērš audio signālā.

Skaņas signāls, ko tas izvada šajā audio ligzdā, ir vājš un trokšņains, tāpēc mums tas ir jāattīra no trokšņa un jāpastiprina. (Ja izmantojat austiņas, signāls nav jātīra no trokšņa vai jāpastiprina.) Tāpēc es izmantoju izolācijas transformatoru, lai notīrītu skaņu no trokšņa, un PAM8403 audio pastiprinātāju, lai pastiprinātu audio signālu un pēc tam to nosūtītu. runātājam. Esmu arī pievienojis divas pogas ESP32, lai mainītu MP3 straumi, no kuras iegūstam datus, un Nextion displeju, lai parādītu klausāmo radiostaciju.

4. darbība. Nextion displejs

Image
Image
Visu detaļu savienošana
Visu detaļu savienošana

Es izvēlējos šim projektam izmantot Nextion displeju, jo to ir ļoti viegli lietot. Lai to kontrolētu, mums ir jāpievieno tikai viens vads.

Nextion displeji ir jauna veida displeji. Viņiem aizmugurē ir savs ARM procesors, kas ir atbildīgs par displeja vadīšanu un grafiskā lietotāja interfeisa izveidi. Tātad, mēs varam tos izmantot ar jebkuru mikrokontrolleri un sasniegt iespaidīgus rezultātus. Esmu sagatavojis detalizētu šī Nextion displeja pārskatu, kurā ir izskaidrots, kā tie darbojas, kā tos izmantot un to trūkumi. To var izlasīt šeit vai noskatīties pievienoto video.

5. darbība: visu detaļu savienošana

Visu detaļu savienošana
Visu detaļu savienošana
Visu detaļu savienošana
Visu detaļu savienošana

Viss, kas mums jādara, ir savienot visas detaļas kopā saskaņā ar šo shematisko diagrammu. Shematisko diagrammu varat atrast šeit. Savienojums ir vienkāršs.

Tomēr jāņem vērā divas lietas. MP3 dekodētāja modulis izvada stereo signālu, bet šajā projektā es izmantoju tikai vienu audio kanālu. Lai iegūtu audio signālu, es pievienoju audio kabeli moduļa audio ligzdai un nogriezu to, lai atklātu četrus vadus. Es pievienoju divus vadus. Viens no tiem ir GND, bet otrs - audio signāls vienam no diviem audio kanāliem. Ja vēlaties, varat pievienot abus kanālus pastiprinātāja modulim un vadīt divus skaļruņus.

Pirms pievienošanas pastiprinātājam, katram audio kanālam jāiziet izolācijas transformators, lai novērstu troksni

Lai nosūtītu datus uz displeju, mums ir jāpievieno tikai viens vads ESP32 TX0 tapai. Pēc detaļu pievienošanas mums ir jāielādē kods ESP32, un mums ir jāielādē GUI Nextion displejā.

Lai ielādētu GUI Nextion displejā, nokopējiet failu InternetRadio.tft, ar kuru es dalīšos ar jums, uz tukšu SD karti. Ievietojiet SD karti SD kartes slotā displeja aizmugurē. Pēc tam ieslēdziet displeju un GUI tiks ielādēts. Pēc tam izņemiet SD karti un atkal pievienojiet strāvu.

Pēc veiksmīgas koda ielādes aktivizēsim projektu. Displejā uz dažām sekundēm tiek parādīts teksts “Savienojums…”. Pēc savienojuma ar internetu projekts izveido savienojumu ar iepriekš noteiktu radiostaciju. Aparatūra darbojas, kā paredzēts, bet tagad apskatīsim projekta programmatūras pusi.

6. solis: projekta kods

Projekta kodekss
Projekta kodekss
Projekta kodekss
Projekta kodekss

Vispirms ļaujiet man jums kaut ko parādīt. Projekta kods ir mazāks par 140 koda rindiņām. Padomājiet par to, mēs varam izveidot interneta radio ar 3,5 collu displeju ar 140 koda rindām, tas ir pārsteidzoši. To visu mēs varam sasniegt, izmantojot dažādas bibliotēkas, protams, kurās ir tūkstošiem koda rindu. Tas ir Arduino un atvērtā pirmkoda kopienas spēks. Tas atvieglo darbu veidotājiem.

Šajā projektā ESP32 plāksnei izmantoju bibliotēku VS1053.

Sākumā mums ir jādefinē Wi-Fi tīkla SSID un parole. Tālāk mums šeit ir jāsaglabā dažas radiostacijas. Mums ir nepieciešams resursdatora URL, ceļš, kur atrodas straume, un ports, kas mums jāizmanto. Mēs visu šo informāciju saglabājam šajos mainīgajos.

char ssid = "tavsSID"; // jūsu tīkla SSID (vārds) char pass = "yourWifiPassword"; // jūsu tīkla parole

// Dažas radiostacijas

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 ports [4] = {8062, 80, 80, 80};

Šajā piemērā esmu iekļāvis 4 radiostacijas.

Iestatīšanas funkcijā mēs pogām pievienojam pārtraukumus, inicializējam MP3 dekodētāja moduli un izveidojam savienojumu ar Wi-Fi.

void setup () {

Sērijas sākums (9600); kavēšanās (500); SPI.begin ();

pinMode (previousButton, INPUT_PULLUP);

pinMode (nextButton, INPUT_PULLUP);

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

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

Cilpas funkcijā vispirms pārbaudām, vai lietotājs nav izvēlējies citu radiostaciju, nevis to, no kuras iegūstam datus. Ja tā, mēs izveidojam savienojumu ar jauno radiostaciju, pretējā gadījumā mēs saņemam datus no straumes un nosūtām tos uz MP3 dekodētāja moduli.

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

Tas ir viss! Kad lietotājs nospiež pogu, notiek pārtraukums un tiek mainīta mainīgā vērtība, kas norāda, kurai straumei izveidot savienojumu.

void IRAM_ATTR previousButtonInterrupt () {

statisks neparakstīts ilgi last_interrupt_time = 0;

neparakstīts garš interrupt_time = milis (); if (interrupt_time-last_interrupt_time> 200) {if (radioStation> 0) radioStation--; cits radioStation = 3; } last_interrupt_time = pārtraukt_laiks; }

Lai atjauninātu displeju, mēs vienkārši nosūtām dažas komandas uz seriālo portu.

void drawRadioStationName (int id) {String komanda; switch (id) {case 0: command = "p1.pic = 2"; Serial.print (komanda); endNextionCommand (); pārtraukums; // 1940. gada Lielbritānijas radio 1. gadījums: command = "p1.pic = 3"; Serial.print (komanda); endNextionCommand (); pārtraukums; // KOSMOS GREEK case 2: command = "p1.pic = 4"; Serial.print (komanda); endNextionCommand (); pārtraukums; // REAL FM GREEK 3. gadījums: command = "p1.pic = 5"; Serial.print (komanda); endNextionCommand (); pārtraukums; // SKAI 100.3 GREEK}}

Tagad apskatīsim Nextion Display GUI. Nextion GUI sastāv no fona attēla un attēla, kurā redzams radio stacijas nosaukums. ESP32 tāfele sūta komandas, lai mainītu radiostacijas nosaukumu no iegultajiem attēliem. Tas ir ļoti viegli. Lūdzu, skatiet Nextion displeja apmācību, ko esmu sagatavojis pirms kāda laika, lai iegūtu vairāk informācijas. Ja vēlaties, varat ātri izveidot savu GUI un parādīt tajā vairāk lietu.

Kā vienmēr, šajā instrukcijā varat atrast projekta kodu.

7. darbība. Pēdējās domas un uzlabojumi

Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi
Pēdējās domas un uzlabojumi

Šis projekts ir ļoti vienkāršs. Es gribēju, lai ar to darbotos vienkāršs interneta radio projekta skelets. Tagad, kad projekta pirmā versija ir gatava, mēs varam tai pievienot daudzas funkcijas, lai to uzlabotu. Pirmkārt, man ir jāizstrādā korpuss, kurā var ievietot visu elektroniku.

Šajā grāmatā par visu laiku skaistākajiem radioaparātiem ir ļoti forši radioaparāti, no kuriem izvēlēties kā šī projekta norobežojumu. Es domāju, ka es ap šo iespaidīgo Art Deco radio būvēšu korpusu. Kā jūs domājat, vai jums patīk šī radio izskats vai vēlaties kaut ko modernāku? Vai jums ir citas iežogojuma idejas? Vai arī jums patīk šis interneta radio projekts un kādas funkcijas, mūsuprāt, mums ir jāpievieno, lai tas būtu noderīgāks? Es labprāt lasītu jūsu domas un idejas, tāpēc, lūdzu, ievietojiet tos komentāru sadaļā zemāk.

Ieteicams: