Tabla de contenido:

Radio por Internet usando un ESP32: 7 pasos (con imágenes)
Radio por Internet usando un ESP32: 7 pasos (con imágenes)

Video: Radio por Internet usando un ESP32: 7 pasos (con imágenes)

Video: Radio por Internet usando un ESP32: 7 pasos (con imágenes)
Video: 🖥️ Servidor Web en Arduino ESP32 y ESP8266 (🤩 Guiá Completa) 2024, Junio
Anonim
Image
Image
Radio por Internet usando un ESP32
Radio por Internet usando un ESP32
Radio por Internet usando un ESP32
Radio por Internet usando un ESP32

Queridos amigos, ¡bienvenidos a otro Instructable! Hoy vamos a construir un dispositivo de radio por Internet con una gran pantalla de 3,5”utilizando una placa ESP32 económica. Lo crea o no, ahora podemos construir una radio por Internet en menos de 10 minutos y con menos de 30 $. Hay mucho que cubrir, así que comencemos.

Hace unos meses, completé un proyecto de Arduino FM Radio que funciona muy bien y, en mi opinión, se ve aún mejor. Si quieres ver cómo construí este proyecto, puedes leer el Instructable aquí. El problema es que, aunque esta radio se ve bien, no es práctica porque vivo en un pequeño pueblo del sur de Grecia y las grandes estaciones de radio griegas que prefiero escuchar, no tienen transmisores por aquí. Entonces, escucho mis radios favoritas en línea en mi computadora portátil o tableta, lo cual tampoco es tan práctico. Entonces, hoy voy a construir un dispositivo de radio por Internet para poder escuchar mis estaciones de radio favoritas de todo el mundo.

Como puede ver, una primera versión del proyecto está lista en una placa de pruebas. Vamos a encenderlo. Como puede ver, el proyecto se conecta a Internet y luego transmite música desde estaciones de radio predefinidas.

He sintonizado la emisora de radio Real FM de Atenas y con estos botones podemos cambiar la emisora de radio que estamos escuchando. He guardado mis estaciones de radio favoritas en la memoria del ESP32 para poder acceder a ellas fácilmente. Con este potenciómetro, puedo cambiar el volumen del altavoz. Muestro el nombre de la emisora de radio que estamos escuchando en una gran pantalla de 3,5”con una interfaz de usuario retro. El proyecto funciona bien y es muy fácil de construir.

Puede construir el mismo proyecto en menos de 10 minutos, pero necesita tener algo de experiencia. Si este es su primer proyecto, considere construir uno más simple primero, para ganar algo de experiencia. Consulte mis Instructables para obtener ideas de proyectos simples y cuando se sienta más cómodo con Arduino, la electrónica regresa para construir este proyecto genial. Empecemos ahora a construir nuestra propia radio por Internet.

ACTUALIZACIÓN 6/6/2019

El problema del ruido se ha resuelto agregando un transformador aislador. Consulte el diagrama esquemático actualizado. ¡Gracias!

Paso 1: obtenga todas las piezas

Obtenga todas las piezas
Obtenga todas las piezas

Vamos a necesitar las siguientes partes:

  • ESP32 ▶
  • Decodificador MP3 ▶
  • Transformador de aislamiento ▶
  • Amplificador ▶
  • Altavoz de 3 W ▶
  • Pantalla Nextion de 3,5 "▶
  • Botones pulsadores ▶
  • Protoboard ▶
  • Cables ▶

El costo total del proyecto es de alrededor de 40 $, pero si no usa una pantalla, el costo del proyecto es de alrededor de 20 $. Cosas asombrosas. ¡Podemos construir nuestra propia radio por Internet con solo 20 $!

Paso 2: placa ESP32

Image
Image
Tablero ESP32
Tablero ESP32
Tablero ESP32
Tablero ESP32

El corazón del proyecto es, por supuesto, la potente placa ESP32. Si no está familiarizado con él, el chip ESP32 es el sucesor del popular chip ESP8266 que hemos usado muchas veces en el pasado. ¡El ESP32 es una bestia! Ofrece dos núcleos de procesamiento de 32 bits que operan a 160MHz, una gran cantidad de memoria, WiFi, Bluetooth y muchas otras características con un costo de alrededor de 7 $. ¡Cosas asombrosas!

Por favor, mire la revisión detallada que he preparado para esta placa. He adjuntado el video en este Instructable. ¡Ayudará a comprender por qué este chip cambiará la forma en que hacemos las cosas para siempre! Una de las cosas más emocionantes del ESP32 es que, aunque es tan poderoso, ofrece un modo de suspensión profunda que requiere solo 10μΑs de corriente. Esto hace que el ESP32 sea el chip ideal para aplicaciones de baja potencia.

En este proyecto, la placa ESP32 se conecta a Internet y luego recibe datos MP3 de la estación de radio que estamos escuchando y envía algunos comandos a la pantalla.

Paso 3: Decodificador MP3

Decodificador MP3
Decodificador MP3
Decodificador MP3
Decodificador MP3

A continuación, los datos MP3 se envían al módulo decodificador MP3 mediante la interfaz SPI. Este módulo usa el VS1053 IC. Este IC es un decodificador de MP3 de hardware dedicado. Obtiene los datos MP3 del ESP32 y los convierte muy rápido en una señal de audio.

La señal de audio que emite en este conector de audio es débil y ruidosa, por lo que debemos eliminarla del ruido y amplificarla. (Si está utilizando auriculares, no es necesario eliminar el ruido ni amplificar la señal). Por eso estoy usando un transformador de aislamiento para eliminar el audio del ruido y un amplificador de audio PAM8403 para amplificar la señal de audio y luego enviarla. a un orador. También conecté dos botones al ESP32 solo para cambiar el flujo de MP3 del que estamos obteniendo datos y una pantalla Nextion para mostrar la estación de radio que estamos escuchando.

Paso 4: Pantalla Nextion

Image
Image
Conectando todas las partes
Conectando todas las partes

Elegí usar una pantalla Nextion para este proyecto ya que es muy fácil de usar. Solo necesitamos conectar un cable para controlarlo.

Las pantallas Nextion son un nuevo tipo de pantallas. Tienen su propio procesador ARM en la parte posterior que es responsable de controlar la pantalla y crear la interfaz gráfica de usuario. Entonces, podemos usarlos con cualquier microcontrolador y lograr resultados espectaculares. He preparado una revisión detallada de esta pantalla Nextion que explica en profundidad cómo funcionan, cómo usarlas y sus inconvenientes. Puedes leerlo aquí o ver el video adjunto.

Paso 5: Conexión de todas las piezas

Conectando todas las partes
Conectando todas las partes
Conectando todas las partes
Conectando todas las partes

Todo lo que tenemos que hacer ahora es conectar todas las partes juntas de acuerdo con este diagrama esquemático. Puede encontrar el diagrama esquemático adjunto aquí. La conexión es sencilla.

Sin embargo, hay dos cosas a tener en cuenta. El módulo decodificador de MP3 emite una señal estéreo, pero solo estoy usando un canal de audio en este proyecto. Para obtener la señal de audio, conecté un cable de audio al conector de audio del módulo y lo corté para revelar cuatro cables en el interior. Conecté dos de los cables. Uno de ellos es el GND y el otro es la señal de audio de uno de los dos canales de audio. Si lo desea, puede conectar ambos canales al módulo amplificador y controlar dos altavoces.

Cada canal de audio debe pasar por el transformador de aislamiento para eliminar cualquier ruido presente antes de conectarse al amplificador

Para enviar datos a la pantalla, solo necesitamos conectar un cable al pin TX0 del ESP32. Después de conectar las partes, tenemos que cargar el código en el ESP32 y tenemos que cargar la GUI en la pantalla de Nextion.

Para cargar la GUI en la pantalla de Nextion, copie el archivo InternetRadio.tft que voy a compartir con usted en una tarjeta SD vacía. Coloque la tarjeta SD en la ranura para tarjetas SD en la parte posterior de la pantalla. Luego encienda la pantalla y se cargará la GUI. Luego retire la tarjeta SD y vuelva a conectar la alimentación.

Después de cargar correctamente el código, encienda el proyecto. Muestra el texto "Conectando …" durante unos segundos en la pantalla. Después de conectarse a Internet, el proyecto se conecta a una estación de radio predefinida. El hardware funciona como se esperaba, pero ahora veamos el lado del software del proyecto.

Paso 6: el código del proyecto

El Código del Proyecto
El Código del Proyecto
El Código del Proyecto
El Código del Proyecto

Primero que nada, déjame mostrarte algo. El código del proyecto tiene menos de 140 líneas de código. Piénselo, podemos construir una radio por Internet con una pantalla de 3,5”con 140 líneas de código, esto es asombroso. Podemos lograr todo esto utilizando, por supuesto, varias bibliotecas que contienen miles de líneas de código. Este es el poder de Arduino y la comunidad de código abierto. Facilita las cosas a los creadores.

En este proyecto, estoy usando la biblioteca VS1053 para la placa ESP32.

Primero, tenemos que definir el SSID y la Contraseña de la red Wi-Fi. A continuación, tenemos que guardar algunas estaciones de radio aquí. Necesitamos la URL del host, la ruta donde se encuentra la transmisión y el puerto que debemos usar. Guardamos toda esta información en estas variables.

char ssid = "suSSID"; // su SSID de red (nombre) char pass = "yourWifiPassword"; // su contraseña de red

// Pocas estaciones de radio

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

He incluido 4 estaciones de radio en este ejemplo.

En la función setup adjuntamos interrupciones a los botones, inicializamos el módulo decodificador MP3 y nos conectamos al wifi.

configuración vacía () {

Serial.begin (9600); retraso (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ón de bucle, en primer lugar, verificamos si el usuario ha seleccionado una estación de radio diferente a la que estamos obteniendo los datos. Si es así, nos conectamos a la nueva estación de radio; de lo contrario, obtenemos datos del flujo y los enviamos al módulo Decodificador de MP3.

bucle vacío () {if (radioStation! = previousRadioStation) {station_connect (radioStation); previousRadioStation = radioStation; } if (client.available ()> 0) {uint8_t bytesread = client.read (mp3buff, 32); player.playChunk (mp3buff, bytesread); }}

¡Eso es todo! Cuando el usuario presiona un botón, ocurre una interrupción y cambia el valor de una variable que le dice a qué flujo conectarse.

void 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--; si no radioStation = 3; } last_interrupt_time = interrupt_time; }

Para actualizar la pantalla, simplemente enviamos algunos comandos al puerto serie.

void drawRadioStationName (int id) {Comando de cadena; cambiar (id) {caso 0: comando = "p1.pic = 2"; Serial.print (comando); endNextionCommand (); rotura; // Caso 1 de la radio del Reino Unido de 1940: command = "p1.pic = 3"; Serial.print (comando); endNextionCommand (); rotura; // KOSMOS GRIEGO caso 2: comando = "p1.pic = 4"; Serial.print (comando); endNextionCommand (); rotura; // REAL FM GRIEGO caso 3: comando = "p1.pic = 5"; Serial.print (comando); endNextionCommand (); rotura; // SKAI 100.3 GRIEGO}}

Ahora echemos un vistazo a la GUI de Nextion Display. La GUI de Nextion consta de una imagen de fondo y una imagen que muestra el nombre de la estación de radio. La placa ESP32 envía comandos para cambiar el nombre de la estación de radio de las imágenes incrustadas. Es muy fácil. Mire el tutorial de visualización de Nextion que preparé hace algún tiempo para obtener más información. Puede diseñar rápidamente su propia GUI si lo desea y mostrar más cosas en ella.

Como siempre, puede encontrar el código del proyecto adjunto en este Instructable.

Paso 7: Reflexiones finales y mejoras

Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras
Reflexiones finales y mejoras

Este proyecto es muy sencillo. Quería un esqueleto de proyecto de radio por Internet simple para trabajar. Ahora que una primera versión del proyecto está lista, podemos agregarle muchas características para mejorarla. En primer lugar, necesito diseñar un gabinete para albergar todos los componentes electrónicos.

En este libro sobre las radios más bellas jamás creadas, hay radios geniales para elegir como gabinete para este proyecto. Creo que voy a construir un recinto alrededor de esta espectacular radio Art Deco. ¿Qué te parece, te gusta el aspecto de esta radio o prefieres algo más moderno? ¿Tiene alguna otra idea de recinto? Además, ¿te gusta este proyecto de radio por Internet y qué características crees que debemos agregar para que sea más útil? Me encantaría leer sus pensamientos e ideas, así que publíquelos en la sección de comentarios a continuación.

Recomendado: