Taula de continguts:
- Pas 1: Obteniu totes les parts
- Pas 2: tauler ESP32
- Pas 3: descodificador MP3
- Pas 4: pantalla Nextion
- Pas 5: connectar totes les parts
- Pas 6: el codi del projecte
- Pas 7: Pensaments finals i millores
Vídeo: Ràdio per Internet mitjançant un ESP32: 7 passos (amb imatges)
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Benvolguts amics, benvinguts a un altre instructable. Avui construirem un dispositiu de ràdio per Internet amb una gran pantalla de 3,5 polzades mitjançant una placa ESP32 de baix cost. Ens ho creieu o no, ara podem construir una ràdio per Internet en menys de 10 minuts i amb menys de 30 $. Hi ha molt a cobrir, així que, comencem!
Fa uns mesos, vaig completar un projecte Arduino FM Radio que funciona molt bé i es veu encara millor al meu parer. Si voleu veure com he construït aquest projecte, podeu llegir l’Instruible aquí. El problema és que, tot i que aquesta ràdio té un aspecte genial, no és pràctic perquè visc en una petita ciutat del sud de Grècia i les grans estacions de ràdio gregues que prefereixo escoltar, no tinc transmissors per aquí. Per tant, escolto les meves ràdios preferides en línia al meu ordinador portàtil o tauleta, cosa que tampoc no és tan pràctica. Per tant, avui construiré un dispositiu de ràdio per Internet per poder escoltar les meves emissores de ràdio preferides de tot el món.
Com podeu veure, una primera versió del projecte està a punt en una taula de treball. Encendrem-lo. Com podeu veure, el projecte es connecta a Internet i, a continuació, transmet música de les estacions de ràdio predefinides.
M’he sintonitzat a l’estació de ràdio Real FM d’Atenes i mitjançant aquests botons podem canviar l’estació de ràdio que estem escoltant. He guardat les meves emissores de ràdio preferides a la memòria de l’ESP32 per poder accedir-hi fàcilment. Amb aquest potenciòmetre puc canviar el volum de l’altaveu. Mostra el nom de l'estació de ràdio que estem escoltant en una pantalla gran de 3,5 polzades amb una interfície d'usuari retro. El projecte funciona bé i és molt fàcil de construir.
Podeu construir el mateix projecte en menys de 10 minuts, però heu de tenir una mica d’experiència. Si aquest és el vostre primer projecte, penseu a construir-ne un de més senzill per guanyar experiència. Consulteu les meves instruccions per obtenir idees senzilles de projectes i, quan us sentiu més còmode amb l'Arduino, l'electrònica tornarà a construir aquest projecte genial. Comencem ara a construir la nostra pròpia ràdio per Internet.
ACTUALITZACIÓ 6/6/2019
El problema del soroll s'ha resolt afegint un transformador d'aïllador. Consulteu el diagrama esquemàtic actualitzat. Gràcies!
Pas 1: Obteniu totes les parts
Necessitarem les següents parts:
- ESP32 ▶
- Descodificador MP3 ▶
- Transformador d’aïllament ▶
- Amplificador ▶
- Altaveu de 3W ▶
- Pantalla Nextion de 3,5 "▶
- Botons automàtics ▶
- Tauler de pa ▶
- Wires ▶
El cost total del projecte és d’uns 40 $, però si no utilitzeu una pantalla, el cost del projecte és d’uns 20 $. Coses increïbles. Podem construir la nostra pròpia ràdio per Internet amb només 20 $.
Pas 2: tauler ESP32
El nucli del projecte és, per descomptat, la potent placa ESP32. Si no el coneixeu, el xip ESP32 és el successor del popular xip ESP8266 que hem utilitzat moltes vegades en el passat. L’ESP32 és una bèstia! Ofereix dos nuclis de processament de 32 bits que funcionen a 160 MHz, una gran quantitat de memòria, WiFi, Bluetooth i moltes altres funcions amb un cost d’uns 7 $. Coses increïbles!
Mireu la revisió detallada que he preparat per a aquest fòrum. He adjuntat el vídeo en aquest instructiu. Ajudarà a entendre per què aquest xip canviarà la nostra manera de fer les coses per sempre. Una de les coses més emocionants de l’ESP32 és que, tot i que és tan potent, ofereix un mode de son profund que requereix només 10μΑs de corrent. Això fa que l’ESP32 sigui el xip ideal per a aplicacions de baixa potència.
En aquest projecte, la placa ESP32 es connecta a Internet i després rep dades MP3 de l’estació de ràdio que estem escoltant, i envia algunes ordres a la pantalla.
Pas 3: descodificador MP3
Les dades MP3 s’envien al mòdul de descodificació MP3 mitjançant la interfície SPI. Aquest mòdul utilitza l'IC VS1053. Aquest CI és un descodificador dedicat de maquinari MP3. Obté les dades MP3 de l’ESP32 i les converteix molt ràpidament en un senyal d’àudio.
El senyal d’àudio que emet en aquesta presa d’àudio és feble i sorollós, de manera que hem d’esborrar-lo del soroll i amplificar-lo. (Si utilitzeu auriculars, el senyal no ha de ser esborrat del soroll ni amplificat-lo.) Per això, estic fent servir un transformador d’aïllament per eliminar l’àudio del soroll i un amplificador d’àudio PAM8403 per amplificar el senyal d’àudio i enviar-lo a un altaveu. També he connectat dos botons a l'ESP32 només per canviar la transmissió MP3 de la qual obtenim dades i una pantalla Nextion per mostrar l'estació de ràdio que estem escoltant.
Pas 4: pantalla Nextion
Vaig triar utilitzar una pantalla Nextion per a aquest projecte, ja que és molt fàcil d'utilitzar. Només ens cal connectar un cable per controlar-lo.
Les pantalles Nextion són un tipus nou de pantalles. Tenen el seu propi processador ARM a la part posterior que s’encarrega de conduir la pantalla i crear la interfície gràfica d’usuari. Per tant, els podem utilitzar amb qualsevol microcontrolador i aconseguir resultats espectaculars. He preparat una revisió detallada d’aquesta pantalla Nextion que explica en profunditat com funcionen, com s’utilitzen i els seus inconvenients. Podeu llegir-lo aquí o veure el vídeo adjunt.
Pas 5: connectar totes les parts
Tot el que hem de fer ara és connectar totes les parts juntes segons aquest esquema. Podeu trobar l'esquema adjunt aquí. La connexió és directa.
Hi ha dues coses a destacar. El mòdul de descodificació MP3 emet un senyal estèreo, però només estic fent servir un canal d'àudio en aquest projecte. Per tal d'obtenir el senyal d'àudio, vaig connectar un cable d'àudio a la presa d'àudio del mòdul i el vaig tallar per revelar quatre cables a l'interior. Vaig connectar dos dels cables. Un d’ells és el GND i l’altre és el senyal d’àudio d’un dels dos canals d’àudio. Si ho desitgeu, podeu connectar els dos canals al mòdul amplificador i conduir dos altaveus.
Cada canal d'àudio ha de passar pel transformador d'aïllament per eliminar qualsevol soroll present abans de connectar-se a l'amplificador
Per enviar dades a la pantalla, només necessitem connectar un cable al pin TX0 de l’ESP32. Després de connectar les parts, hem de carregar el codi a l’ESP32 i hem de carregar la GUI a la pantalla Nextion.
Per carregar la GUI a la pantalla Nextion, copieu el fitxer InternetRadio.tft que compartiré amb vosaltres a una targeta SD buida. Introduïu la targeta SD a la ranura de la targeta SD a la part posterior de la pantalla. A continuació, engegueu la pantalla i es carregarà la GUI. A continuació, traieu la targeta SD i torneu a connectar l’alimentació.
Després de carregar correctament el codi, engegem el projecte. Mostra el text "Connectant …" durant uns segons a la pantalla. Després de connectar-se a Internet, el projecte es connecta a una emissora de ràdio predefinida. El maquinari funciona com s’esperava, però ara anem a veure la part del programari del projecte.
Pas 6: el codi del projecte
En primer lloc, deixeu-me que us mostri alguna cosa. El codi del projecte és inferior a 140 línies de codi. Penseu-hi, podem construir una ràdio per Internet amb una pantalla de 3,5”amb 140 línies de codi, això és increïble. Tot això ho podem fer amb diverses biblioteques, per descomptat, que contenen milers de línies de codi. Aquest és el poder d’Arduino i de la comunitat de codi obert. Facilita les coses als creadors.
En aquest projecte, estic utilitzant la biblioteca VS1053 per a la placa ESP32.
Al principi, hem de definir el SSID i la contrasenya de la xarxa Wi-Fi. A continuació, hem de desar algunes estacions de ràdio aquí. Necessitem l’URL de l’amfitrió, el camí on es troba el flux i el port que hem d’utilitzar. Desem tota aquesta informació en aquestes variables.
char ssid = "el teuSSID"; // el vostre SSID de xarxa (nom) char pass = "la vostra contrasenya wifi"; // la vostra contrasenya de xarxa
// Poques estacions de ràdio
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};
He inclòs 4 emissores de ràdio en aquest exemple.
A la funció de configuració adjuntem interrupcions als botons, inicialitzem el mòdul de descodificació MP3 i ens connectem al Wi-Fi.
configuració nul·la () {
Serial.begin (9600); retard (500); SPI.begin ();
pinMode (previousButton, INPUT_PULLUP);
pinMode (nextButton, INPUT_PULLUP);
attachInterrupt (digitalPinToInterrupt (previousButton), previousButtonInterrupt, FALLING);
attachInterrupt (digitalPinToInterrupt (nextButton), nextButtonInterrupt, FALLING); initMP3Decoder (); connectToWIFI (); }
En la funció de bucle, primer comprovem si l’usuari ha seleccionat una emissora de ràdio diferent de la que obtenim dades. Si és així, ens connectem a la nova emissora de ràdio; en cas contrari, obtenim dades del flux i les enviem al mòdul de descodificació MP3.
bucle buit () {if (radioStation! = anteriorRadioStation) {station_connect (radioStation); previousRadioStation = estació de ràdio; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}
Això és tot! Quan l'usuari prem un botó, es produeix una interrupció i canvia el valor d'una variable que indica a quin flux s'ha de connectar.
void IRAM_ATTR previousButtonInterrupt () {
static unsigned long last_interrupt_time = 0;
temps sense interrupció llarg sense signar = millis (); if (interrupt_time - last_interrupt_time> 200) {if (radioStation> 0) radioStation--; else radioStation = 3; } last_interrupt_time = hora_interrupció; }
Per actualitzar la pantalla, simplement enviem algunes ordres al port sèrie.
void drawRadioStationName (int id) {Ordre de cadena; switch (id) {cas 0: command = "p1.pic = 2"; Serial.print (ordre); endNextionCommand (); trencar; // Cas 1 de la ràdio del Regne Unit de 1940: command = "p1.pic = 3"; Serial.print (ordre); endNextionCommand (); trencar; // KOSMOS GREEK cas 2: ordre = "p1.pic = 4"; Serial.print (ordre); endNextionCommand (); trencar; // REAL FM GREC cas 3: ordre = "p1.pic = 5"; Serial.print (ordre); endNextionCommand (); trencar; // SKAI 100.3 GREC}}
Ara fem una ullada a la interfície gràfica d’usuari de la pantalla de Nextion. La interfície gràfica d’expressió de Nextion consisteix en una imatge de fons i una imatge que mostra el nom de l’estació de ràdio. La placa ESP32 envia ordres per canviar el nom de l'emissora de ràdio a partir de les imatges incrustades. És molt fàcil. Mireu el tutorial de visualització de Nextion que he preparat fa temps per obtenir més informació. Podeu dissenyar ràpidament la vostra pròpia GUI si ho desitgeu i mostrar-hi més coses.
Com sempre, podeu trobar el codi del projecte adjunt en aquest manual.
Pas 7: Pensaments finals i millores
Aquest projecte és molt senzill. Volia treballar amb un esquelet senzill del projecte Internet Radio. Ara que una primera versió del projecte està a punt, podem afegir-hi moltes funcions per millorar-lo. Primer de tot, he de dissenyar un recinte per allotjar tota l’electrònica.
En aquest llibre sobre les ràdios més belles que s’hagin fet mai, hi ha ràdios molt divertides per triar com a recinte d’aquest projecte. Crec que construiré un recinte al voltant d'aquesta espectacular ràdio Art Deco. Què en penseu, us agrada l'aspecte d'aquesta ràdio o preferiu alguna cosa més moderna? Tens alguna altra idea de recinte? A més, us agrada aquest projecte de ràdio per Internet i quines funcions creieu que cal afegir-hi per fer-lo més útil? M'encantaria llegir els vostres pensaments i idees, així que envieu-los a la secció de comentaris que hi ha a continuació.
Recomanat:
Domòtica controlada per Internet / núvol mitjançant Esp8266 (aREST, MQTT, IoT): 7 passos (amb imatges)
Automatització domèstica controlada per Internet / núvol mitjançant Esp8266 (aREST, MQTT, IoT): TOTS els crèdits a http://arest.io/ per al servei al núvol !! IoT el tema més discutit del món ara mateix !! Els servidors i serveis al núvol que ho fan possible són el punt d’atracció del món actual … EXCLUIR LA BARRERA DE DISTÀNCIA va ser i és el
Control de ràdio RF 433MHZ mitjançant HT12D HT12E - Fer un control remot RF mitjançant HT12E i HT12D amb 433mhz: 5 passos
Control de ràdio RF 433MHZ mitjançant HT12D HT12E | Fer un control remot RF mitjançant HT12E i HT12D amb 433 mhz: en aquest instructiu us mostraré com fer un control remot RÀDIO mitjançant un mòdul receptor de transmissor 433 mhz amb codificació HT12E i amp; IC descodificador HT12D. En aquest instructiu, podeu enviar i rebre dades mitjançant COMPONENTS molt econòmics COM: HT
Ràdio per Internet / Ràdio web amb Raspberry Pi 3 (sense cap): 8 passos
Ràdio per Internet / Ràdio web amb Raspberry Pi 3 (sense cap): HI: Voleu allotjar la vostra pròpia ràdio a Internet, aleshores esteu al lloc adequat. Intentaré elaborar el màxim possible. He provat diverses maneres en què la majoria necessitaven una targeta de so que em vaig resitir a comprar. però va aconseguir fi
Controlar Arduino mitjançant un telèfon intel·ligent mitjançant USB amb l'aplicació Blynk: 7 passos (amb imatges)
Controlar Arduino mitjançant un telèfon intel·ligent mitjançant USB amb l’aplicació Blynk: en aquest tutorial, aprendrem a utilitzar l’aplicació Blynk i Arduino per controlar la llum, la combinació es farà a través del port sèrie USB. la solució més senzilla que controla remotament el vostre Arduino o c
Ràdio despertador per Internet per £ 1: 5 passos (amb imatges)
Ràdio despertador per Internet de 1 lliura: de manera que, com moltes persones, tinc un telèfon intel·ligent antic i, ja que sabem, hi ha una infinitat d’usos que es poden fer. podeu connectar el vostre iPhone