Tabla de contenido:
- Paso 1: obtenga todas las piezas
- Paso 2: placa ESP32
- Paso 3: Decodificador MP3
- Paso 4: Pantalla Nextion
- Paso 5: Conexión de todas las piezas
- Paso 6: el código del proyecto
- Paso 7: Reflexiones finales y mejoras
Video: Radio por Internet usando un ESP32: 7 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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
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
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
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
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
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
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
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:
Radio por Internet BOSEBerry Pi: 4 pasos (con imágenes)
BOSEBerry Pi Internet Radio: ¡Me encanta escuchar la radio! Estaba usando una radio DAB en mi casa, pero encontré que la recepción era un poco irregular y el sonido seguía interrumpiéndose, así que decidí construir mi propia radio por Internet. Tengo una fuerte señal wifi en mi casa y el hermano digital
Sistema de riego por goteo conectado a Internet controlado por retroalimentación de humedad del suelo (ESP32 y Blynk): 5 pasos
Sistema de riego por goteo conectado a Internet controlado por retroalimentación de humedad del suelo (ESP32 y Blynk): preocúpese por su jardín o sus plantas cuando se vaya de vacaciones, u olvídese de regar su planta a diario. Bueno, aquí está la solución Es un sistema de riego por goteo controlado por la humedad del suelo y conectado globalmente controlado por ESP32 en la parte frontal del software i
Radio por Internet con tecnología Raspberry Pi: 5 pasos (con imágenes)
Radio por Internet con tecnología Raspberry Pi: hay algo satisfactorio en girar los diales y presionar botones, como los de las radios antiguas. Lamentablemente, muchas de estas radios están averiadas o las estaciones se han silenciado. Afortunadamente, no es demasiado difícil actualizar cualquier radio a una radio por Internet usando
Radio por Internet / Radio web con Raspberry Pi 3 (sin cabeza): 8 pasos
Radio por Internet / Radio web con Raspberry Pi 3 (sin cabeza): HOLA. ¿Quieres tu propio alojamiento de radio a través de Internet? Entonces estás en el lugar correcto. Intentaré elaborar tanto como sea posible. He intentado varias formas, la mayoría de ellas necesitaban una tarjeta de sonido que no estaba dispuesto a comprar. pero se las arregló para fi
Radio reloj despertador por Internet de £ 1: 5 pasos (con imágenes)
Radio reloj despertador por Internet de £ 1: Como muchas personas, tengo un teléfono inteligente antiguo y, como sabemos, hay una miríada de usos que se les puede dar. Aquí haré un radio reloj con Internet que costará mucho menos que esos elegantes puedes conectar tu iPhone a