Sommario:

Radio Internet utilizzando un ESP32: 7 passaggi (con immagini)
Radio Internet utilizzando un ESP32: 7 passaggi (con immagini)

Video: Radio Internet utilizzando un ESP32: 7 passaggi (con immagini)

Video: Radio Internet utilizzando un ESP32: 7 passaggi (con immagini)
Video: Setup e blink della scheda ESP-WROOM-32 (ESP32) con Arduino IDE - Video 639 2024, Dicembre
Anonim
Image
Image
Radio Internet utilizzando un ESP32
Radio Internet utilizzando un ESP32
Radio Internet utilizzando un ESP32
Radio Internet utilizzando un ESP32

Cari amici benvenuti in un altro Instructable! Oggi costruiremo un dispositivo Internet Radio con un grande display da 3,5 pollici utilizzando una scheda ESP32 economica. Che tu ci creda o no, ora possiamo costruire una Internet Radio in meno di 10 minuti e con meno di 30$. C'è molto da coprire quindi, iniziamo!

Alcuni mesi fa, ho completato un progetto di Arduino FM Radio che funziona alla grande e secondo me sembra ancora migliore. Se vuoi vedere come ho costruito questo progetto puoi leggere l'Instructable qui. Il problema è che, sebbene questa radio sembri bella, non è pratica perché vivo in una piccola città nel sud della Grecia e le grandi stazioni radio greche che preferisco ascoltare, non hanno trasmettitori da queste parti. Quindi, ascolto le mie radio preferite online sul mio laptop o tablet, il che non è altrettanto pratico. Quindi, oggi costruirò un dispositivo radio Internet per poter ascoltare le mie stazioni radio preferite di tutto il mondo!

Come puoi vedere, una prima versione del progetto è pronta su una breadboard. Accendiamolo. Come puoi vedere, il progetto si connette a Internet e quindi trasmette musica in streaming da stazioni radio predefinite.

Mi sono sintonizzato sulla stazione radio Real FM di Atene e usando questi pulsanti possiamo cambiare la stazione radio che stiamo ascoltando. Ho salvato le mie stazioni radio preferite nella memoria dell'ESP32 in modo da potervi accedere facilmente. Con questo potenziometro posso modificare il volume dell'altoparlante. Mostro il nome della stazione radio che stiamo ascoltando su un grande display da 3,5 pollici con un'interfaccia utente retrò. Il progetto funziona bene ed è molto facile da costruire.

Puoi costruire lo stesso progetto in meno di 10 minuti ma devi avere una certa esperienza. Se questo è il tuo primo progetto, considera di crearne uno più semplice per acquisire esperienza. Controlla i miei Instructables per semplici idee di progetto e quando ti senti più a tuo agio con Arduino, l'elettronica torna per costruire questo fantastico progetto. Iniziamo ora a costruire la nostra Internet Radio.

AGGIORNAMENTO 6/6/2019

Il problema del rumore è stato risolto aggiungendo un trasformatore di isolamento. Controlla il diagramma schematico aggiornato. Grazie!

Passaggio 1: ottenere tutte le parti

Ottieni tutte le parti
Ottieni tutte le parti

Avremo bisogno delle seguenti parti:

  • ESP32 ▶
  • Decodificatore MP3 ▶
  • Trasformatore di isolamento ▶
  • Amplificatore ▶
  • Altoparlante 3W ▶
  • Display Nextion da 3,5" ▶
  • Pulsanti ▶
  • Tagliere ▶
  • Fili ▶

Il costo totale del progetto è di circa 40$ ma se non si utilizza un display il costo del progetto è di circa 20$. Roba incredibile. Possiamo costruire la nostra radio Internet con soli 20$!

Passaggio 2: scheda ESP32

Image
Image
Scheda ESP32
Scheda ESP32
Scheda ESP32
Scheda ESP32

Il cuore del progetto è, ovviamente, la potente scheda ESP32. Se non lo conosci, il chip ESP32 è il successore del popolare chip ESP8266 che abbiamo usato molte volte in passato. L'ESP32 è una bestia! Offre due core di elaborazione a 32 bit che operano a 160 MHz, un'enorme quantità di memoria, WiFi, Bluetooth e molte altre funzionalità con un costo di circa 7 $! Roba incredibile!

Si prega di guardare la recensione dettagliata che ho preparato per questa scheda. Ho allegato il video su questo Instructable. Aiuterà a capire perché questo chip cambierà per sempre il modo in cui creiamo le cose! Una delle cose più eccitanti dell'ESP32 è che anche se è così potente, offre una modalità di sospensione profonda che richiede solo 10μΑs di corrente. Ciò rende ESP32 il chip ideale per applicazioni a bassa potenza.

In questo progetto la scheda ESP32 si connette a Internet e poi riceve i dati MP3 dalla stazione radio che stiamo ascoltando, e invia alcuni comandi al display.

Passaggio 3: decodificatore MP3

Decodificatore MP3
Decodificatore MP3
Decodificatore MP3
Decodificatore MP3

I dati MP3 vengono quindi inviati al modulo di decodifica MP3 utilizzando l'interfaccia SPI. Questo modulo utilizza l'IC VS1053. Questo circuito integrato è un decodificatore MP3 hardware dedicato. Ottiene i dati MP3 dall'ESP32 e li converte molto velocemente in un segnale audio.

Il segnale audio emesso da questo jack audio è debole e rumoroso, quindi dobbiamo eliminarlo dal rumore e amplificarlo. (Se stai usando le cuffie, il segnale non ha bisogno di essere cancellato dal rumore o amplificato.) Ecco perché sto usando un trasformatore di isolamento per cancellare l'audio dal rumore e un amplificatore audio PAM8403 per amplificare il segnale audio e poi inviarlo a un oratore. Ho anche collegato due pulsanti all'ESP32 solo per cambiare il flusso MP3 da cui riceviamo i dati e un display Nextion per visualizzare la stazione radio che stiamo ascoltando.

Passaggio 4: visualizzazione successiva

Image
Image
Collegamento di tutte le parti
Collegamento di tutte le parti

Ho scelto di utilizzare un display Nextion per questo progetto poiché è molto facile da usare. Abbiamo solo bisogno di collegare un filo per controllarlo.

I display Nextion sono un nuovo tipo di display. Hanno il proprio processore ARM sul retro che è responsabile della guida del display e della creazione dell'interfaccia utente grafica. Quindi, possiamo usarli con qualsiasi microcontrollore e ottenere risultati spettacolari. Ho preparato una recensione dettagliata di questo display Nextion che spiega in modo approfondito come funzionano, come usarli e i loro svantaggi. Potete leggerlo qui o guardare il video allegato.

Passaggio 5: collegamento di tutte le parti

Collegamento di tutte le parti
Collegamento di tutte le parti
Collegamento di tutte le parti
Collegamento di tutte le parti

Tutto quello che dobbiamo fare ora è collegare tutte le parti insieme secondo questo diagramma schematico. Potete trovare il diagramma schematico allegato qui. La connessione è semplice.

Ci sono due cose da notare però. Il modulo di decodifica MP3 emette un segnale stereo ma sto usando solo un canale audio in questo progetto. Per ottenere il segnale audio, ho collegato un cavo audio al jack audio del modulo e l'ho tagliato per rivelare quattro fili all'interno. Ho collegato due dei fili. Uno di questi è il GND e l'altro è il segnale audio di uno dei due canali audio. Se lo desideri, puoi collegare entrambi i canali al modulo amplificatore e pilotare due altoparlanti.

Ciascun canale audio deve passare attraverso il trasformatore di isolamento per eliminare qualsiasi rumore presente prima di collegarsi all'amplificatore

Per inviare i dati al display, dobbiamo solo collegare un filo al pin TX0 dell'ESP32. Dopo aver collegato le parti, dobbiamo caricare il codice su ESP32 e dobbiamo caricare la GUI sul display Nextion.

Per caricare la GUI sul display Nextion, copia il file InternetRadio.tft che condividerò con te su una scheda SD vuota. Inserisci la scheda SD nello slot per schede SD sul retro del display. Quindi accendi il display e la GUI verrà caricata. Quindi rimuovere la scheda SD e collegare nuovamente l'alimentazione.

Dopo aver caricato con successo il codice, accendiamo il progetto. Visualizza il testo “Connecting…” per alcuni secondi sul display. Dopo la connessione a Internet, il progetto si connette a una stazione radio predefinita. L'hardware funziona come previsto ma ora vediamo il lato software del progetto.

Step 6: Il Codice del Progetto

Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto
Il Codice del Progetto

Prima di tutto, lascia che ti mostri una cosa. Il codice del progetto è inferiore a 140 righe di codice. Pensaci, possiamo costruire una Internet Radio con un display da 3,5 pollici con 140 righe di codice, è fantastico. Possiamo ottenere tutto questo usando ovviamente varie librerie che contengono migliaia di righe di codice. Questa è la potenza di Arduino e della comunità Open Source. Rende le cose facili per i creatori.

In questo progetto, sto usando la libreria VS1053 per la scheda ESP32.

Per prima cosa dobbiamo definire l'SSID e la Password della rete Wi-Fi. Successivamente, dobbiamo salvare alcune stazioni radio qui. Abbiamo bisogno dell'URL dell'host, del percorso in cui si trova lo stream e della porta che dobbiamo usare. Salviamo tutte queste informazioni in queste variabili.

char ssid = "yourSSID"; // il tuo SSID di rete (nome) char pass = "yourWifiPassword"; // la tua password di rete

// Poche stazioni radio

char *host[4] = {"149.255.59.162", "radiostreaming.ert.gr", "realfm.live24.gr", "secure1.live24.gr"}; char *percorso[4] = {"/1", "/ert-kosmos", "/realfm", "/skai1003"}; int porta[4] = {8062, 80, 80, 80};

Ho incluso 4 stazioni radio in questo esempio.

Nella funzione di configurazione alleghiamo gli interrupt ai pulsanti, inizializziamo il modulo decoder MP3 e ci colleghiamo al Wi-Fi.

void setup() {

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

pinMode(previousButton, INPUT_PULLUP);

pinMode(nextButton, INPUT_PULLUP);

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

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

Nella funzione loop, prima di tutto, controlliamo se l'utente ha selezionato una stazione radio diversa da quella da cui stiamo ricevendo i dati. Se è così, ci colleghiamo alla nuova stazione radio altrimenti otteniamo i dati dal flusso e li inviamo al modulo MP3 Decoder.

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

È tutto! Quando l'utente preme un pulsante, si verifica un'interruzione e cambia il valore di una variabile che indica a quale flusso connettersi.

void IRAM_ATTR previousButtonInterrupt() {

statico senza segno lungo last_interrupt_time = 0;

unsigned long interrupt_time = millis(); if (ora_interruzione - ora_ultima_interruzione > 200) { if(radioStation>0) radioStation--; altrimenti radioStation = 3; } last_interrupt_time = interrupt_time; }

Per aggiornare il display, inviamo semplicemente alcuni comandi alla porta seriale.

void drawRadioStationName(int id){ Comando stringa; switch (id) { case 0: comando = "p1.pic=2"; Serial.print(comando); endNextionCommand(); rottura; //1940 Radio UK Caso 1: comando = "p1.pic=3"; Serial.print(comando); endNextionCommand(); rottura; //KOSMOS GREEK caso 2: comando = "p1.pic=4"; Serial.print(comando); endNextionCommand(); rottura; //REAL FM GREEK caso 3: comando = "p1.pic=5"; Serial.print(comando); endNextionCommand(); rottura; //SKAI 100.3 GRECO } }

Ora diamo un'occhiata alla GUI di Nextion Display. La GUI di Nextion consiste in un'immagine di sfondo e un'immagine che mostra il nome della stazione radio. La scheda ESP32 invia comandi per modificare il nome della stazione radio dalle immagini incorporate. È molto facile. Si prega di guardare il tutorial sul display Nextion che ho preparato qualche tempo fa per ulteriori informazioni. Puoi progettare rapidamente la tua GUI se lo desideri e visualizzare più cose su di essa.

Come sempre trovate il codice del progetto allegato in questo Instructable.

Passaggio 7: considerazioni finali e miglioramenti

Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti
Considerazioni finali e miglioramenti

Questo progetto è molto semplice. Volevo un semplice scheletro di progetto di Internet Radio con cui lavorare. Ora che una prima versione del progetto è pronta, possiamo aggiungere molte funzionalità per migliorarla. Prima di tutto, devo progettare un contenitore per ospitare tutta l'elettronica.

In questo libro sulle radio più belle mai realizzate ci sono radio molto interessanti tra cui scegliere come custodia per questo progetto. Penso che costruirò un recinto attorno a questa spettacolare radio Art Déco. Cosa ne pensi, ti piace il look di questa radio o preferisci qualcosa di più moderno? Hai altre idee per la custodia? Inoltre, ti piace questo progetto di Internet Radio e quali caratteristiche pensiamo di dover aggiungere per renderlo più utile? Mi piacerebbe leggere i tuoi pensieri e le tue idee, quindi pubblicali nella sezione commenti qui sotto.

Consigliato: