ESP8266Audio library reproducir MP3 en ESP8266 y ESP32 con acceso SPIFFS  - How to connect and play MP3


Utilizando la librería ESP8266Audio es posible lograr la reproducción de archivos MP3 en placas ESP8266 y ESP32.
Para este proyecto se ha utilizado un ESP8266 mini Wemos y un ESP32 Wroom y en ambos ha funcionado correctamente la reproducción.
En ambos casos la reproducción fué exitosa empleando las librerías AudioFileSourceSPIFFS.h para acceso SPIFFS, AudioGeneratorMP3.h para la compatibilidad con archivos MP3 y AudioOutputI2SNoDAC.h como salida directa hacia un auricular o amplificador. 

También se definen los punteros mp3, file y out que referenciarán la decodificación mp3, los archivos accedidos mediante SPIFFs y la salida out configurada en modo NoDAC (que aunque suene ilógico, es la librería que si funciona en la salida I2C en vez de la librería DAC I2C que no he logrado hacerla funcionar). El código completo de las librerías necesarias es el siguiente:

 #include "Arduino.h"

#ifdef ESP32
  #include "WiFi.h"
  #include "SPIFFS.h"
#else
  #include "ESP8266WiFi.h" 
#endif
#include "AudioFileSourceSPIFFS.h"
#include "AudioGeneratorMP3.h"
#include "AudioOutputI2SNoDAC.h"

AudioGeneratorMP3 *mp3;
AudioFileSourceSPIFFS *file;
AudioOutputI2SNoDAC *out;

Se ha reducido en este ejemplo el código al mínimo posible, eliminando también de los ejemplos originales, aquellas librerías poco útiles como la librería ID3, etc.
También se ha creado un procedimiento en bucle que permite la reproducción directa y sin limitaciones de cualquier archivo MP3 (a 44.100Hz y128bits).

Aquí un ejemplo sencillo y directo para reproducir en forma ininterrumpida dos archivos mp3:

 #include "Arduino.h"

#ifdef ESP32

  #include "WiFi.h"

  #include "SPIFFS.h"

#else

  #include "ESP8266WiFi.h" 

#endif

#include "AudioFileSourceSPIFFS.h"

//#include "AudioFileSourceID3.h"

#include "AudioGeneratorMP3.h"

#include "AudioOutputI2SNoDAC.h"


AudioGeneratorMP3 *mp3;

AudioFileSourceSPIFFS *file;

AudioOutputI2SNoDAC *out;


void setup() {

  WiFi.mode(WIFI_OFF); 

  Serial.begin(115200);  

  delay(1000);

  SPIFFS.begin();

  out = new AudioOutputI2SNoDAC();

  mp3 = new AudioGeneratorMP3();  

}


void PlayMp3(char* archivo){

  file = new AudioFileSourceSPIFFS(archivo);

  if (file) {      

    mp3->begin(file, out);  

    while(mp3->isRunning()) { // Bucle infinito hasta que termine de sonar cada archivo MP3

      if (!mp3->loop()) mp3->stop();

    }

  }

}

          

void loop() {

  PlayMp3("/test1.mp3");

  PlayMp3("/test2.mp3");

}


Conexionado de la salida de audio en ESP8266 y ESP32

Este código ha sido testeado y funciona perfectamente tanto en ESP8266 como en ESP32. Sin embargo debemos tener en cuenta algunas cuestiones para que en ambas placas la reproducción MP3 sea exitosa.

En el caso de las placas ESP8266 es preciso configurar el IDE Arduino como Generic ESP8266 module, setear la velocidad del CPU en el menu:  Herramientas -> CPU frequency en 160 Mhz y el parámetro IwIP Variant: configurarlo como: v2 Higher Bandwidth (no features)

Para el conexionado de salida de audio debemos utilizar el puerto GPIO03 (RX) junto con el conector GND:

--------------------------------

Para el conexionado de placas ESP32 se utiliza el puerto GPIO22

----------------------------------

Aunque se recomienda utilizar en ambos circuitos un transistor 2N3904 (NFN) para potenciar y limpiar la salida, en ambos circuitos se puede obviar y conectar en forma directa hacia una salida mini Plug de audio para conectarse a un auricular o a un amplificador en forma directa.

En ambas placas, dentro del proyecto .ino debemos crear una carpeta Data donde almacenaremos los dos archivos MP3 (test1.mp3 y test2.mp3) y debemos subirlo al almacenamiento SPIFFS de la placa utilizando -> Herramientas -> ESP8266 Sketch Data Upload o ESP32 Sketch Data Upload según corresponda.

¿Desea contactarse con nosotros?




Escríbanos su consulta en el siguiente formulario:

Apellido y Nombre:

Email:

Repita email:

Consulta:




    Si tiene dudas, consúltenos haciendo click en el botón




    ¿Tiene alguna consulta sobre nuestros cursos ?

    Tiene dos métodos para contactarnos:

    1) Llenando el formulario junto a este cuadro. Este método de consulta le permitirá recibir por email toda la información sobre el curso que usted desea consultar.

    2) Por sistema de Chat: Si ve en la parte inferior derecha una pestaña oscura activa, podrá consultarnos en vivo consultando directamente con el profesor sobre cualquier duda que usted tenga sobre Escuela Informática.

    En Escuela Informática nos preocupamos por responder todas las dudas que usted pueda tener, tanto ahora como durante el curso que usted elija estudiar con nosotros.

    Este emprendimiento educativo fué presentado en el programa de televisión Geeky por canal CN23 como el primer sistema en linea de transmisión de clases presenciales & e-learning simultáneas.

    Conozca mas sobre nuestro emprendimiento escribiéndonos.

      Experiencia empresarial a su servicio


      -Soy CEO de Escuela Informática desde el año 2011 y trabajé durante muchos años capacitando empresas como Edesur, Central Costanera, BGH, Empresas de Marketing de Puerto Madero, además de desempeñarme como docente en el Instituto Nacional de Tecnología Industrial (INTI) durante varios años. Durante estos años desempenándome en el ámbito empresarial, trabajé arduamente en brindar a las empresas educación de calidad y en solucionar las fallas existentes en los sistemas educativos existentes tanto privados como estatales. El desfasaje entre lo que la empresa necesita y la educación provee, es la principal falla de los actuales sistemas educativos. Esa fué la mas grande inspiración para crear Escuela Informática: Acercar educativamente lo que realmente demandan las empresas en todos los niveles informáticos desde Operación, Reparación, Soporte, Desarrollo y programación en todos los niveles que una empresa puede necesitar.

      -= Nuestros cursos =-

      Curso de Técnico en armado y reparación de equipos PC. Hardware, Software, sistemas operativos, recuperación de datos, optimización, virus, Particionamiento, Tendido y armado de cableado UTP y configuración de redes.
      Diseño y programación web Full Stack Developer HTML5, programación PHP, JavaScript, sitios dinámicos con bases de datos MySQL, diseño gráfico, Administración de Hostings, Alta de dominios, Posicionamiento web SEO, AJAX, Backend, Frontend.
      Ruteo avanzado, protocolos de red, manejo de puertos, acceso remoto avanzado, camaras ip, telefonía voip, hacking, vuelnerabilidades de los sistemas operativos, ataques de bajo nivel y de alto nivel, robo de identidad, seguridad.
      NET Visual Studio. Desarrollo de sistemas a medida multipropósito. Programación Orientada a Objetos. Programación de librerias DLL propietarias. Gestión avanzada de Bases de datos MySQL centralizadas y desentralizadas. Sistemas multiusuario.
      Curso de Operador de PC. Manejo de herramientas ofimáticas Word y documentos de Google, Excel y planilla de cálculos de google, PowerPoint, Access y alternativas. Edición ofimática multiusuario. Correo electrónico y telefonía. Secretariado de empresas.
      Cursos de Informática. Cursos de computación a distancia con transmisión de clases en vivo.
      Lenguaje avanzado alternativo Fusion con multiexportación HTML5 Windows exe Android IOS y Flash
      Full Stack Developer Nivel 2 de Programación avanzada en sistemas web en PHP, HTML, JavaScript, Ajax, MySQL
      Curso Intensivo y acelerado de Redes informáticas incluyendo routeo cableado utp protocolos tcpip y netbios netbeui lan man wan ethernet wifi en windows y android

      -= Navegar Escuela Informatica =-



      -= Ultimos contenidos subidos =-


      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática

      24 Septiembre 2022 - Escuela Informática


      -= Comerciales de Escuela Informática =-


      Desarrollo de Software
      25 Abril 2022 - Escuela Informática
      Programación de sistemas a medida para pequeñas medianas y grandes empresas

      Salud
      12 Febrero 2021 - Escuela Informática
      Salud Control sistema médico control de turnos y horarios para clínicas y sanatorios multiusuario

      -=Clases a distancia 2019 =-


      Somos Escuela Informática brindando calidad educativa en cada rincón del país y en el exterior. Desde 2011 con el reconocimiento constante de nuestros alumnos egresados. Desde 2011 formando profesionales de primer nivel en todas las áreas informáticas. Gracias a todos nuestros alumnos por el reconocimiento a este esfuerzo de hacer de Escuela Informática el mejor centro de estudios a distancia.


      - Contáctenos -


      © 2019 Escuela Informática - Cursos de informática a distancia con transmisión de clases en vivo y semi en vivo - e-learning - clases de computación semi presencial - Escuela de informática dual con clases presenciales y transmisión simultánea -