Audio por WIFI con ESP32 + MAX98357A

Por fin tras pegarme mucho tiempo con ello, he conseguido reproducir audio con Home Assistant en un ESP32 con un DAC externo y un altavoz.

¿Cuál es la finalidad de esto? Poder poner altavoces inalámbricos, sin necesidad de colocar cables, y poder llevárnoslos a donde queramos, siempre que tengamos la red WIFI configurada en nuestro ESP32.

El esquema de montaje es muy sencillo, solo tenéis que conectar todo tal como viene en la imagen.

Os voy a colgar el código para que sea mas sencillo para todos y os dejaré los materiales necesarios.

Materiales:

Código:

esphome:
  name: "audio"

esp32:
  board: esp32dev
  framework:
    type: arduino

wifi:
  networks:
  - ssid: NOMBRE RED WIFI
    password: CONTRASEÑA WIFI
  - ssid: NOMBRE RED WIFI 2
    password: CONTRASEÑA WIFI 2    

logger:
  
api:

captive_portal:

ota:
  password: "CONTRASEÑA"

switch:
  - platform: restart
    name: "Reinicio ESP32 Media Player"

i2s_audio:
  - id: i2s_out
    i2s_lrclk_pin: GPIO26 #PIN LRC DEL MAX98357A
    i2s_bclk_pin: GPIO27  #PIN BCL DEL MAX98357A

media_player:
  - platform: i2s_audio
    name: ESP32 Media Player
    dac_type: external
    i2s_audio_id: i2s_out
    i2s_dout_pin: GPIO25 #PIN DIN DEL MAX98357A
    mode: stereo
    
web_server:
  port: 80

About Author

Artículos recomendados

4 comentarios

  1. Hola como estas
    Gran aporte el que has hecho, muchas gracias.
    Te hago una pregunta, se puede usar el DAC interno del ESP32 o si o si hay que usar el 98357?
    De ser asi hay algun DAC externo compartible con Home Assistant a parte del 98357?

    Muchas gracias y saludos

    S

    1. gracias por los comentarios.
      si usas el DAC interno que es el pin GPIO25 y GPIO26, no he realizado aun las pruebas con el DAC interno, pero pronto haré las pruebas. entiendo que si pones DAC interno, te dará un voltaje y solo tendrás que conectar un amplificador.
      todos los DAC externos son compatibles, ya que lo que hace que sea compatible es el programa que le carguemos al ESP32 para la conexion con Home Assistant. En otra prueba que realicé, cargue el archivo en un ESP32 Wrover y funciona como si fuera un HomePod.

      no he investigado mucho pero en cuanto tenga tiempo, quiero retomarlo, que ahora mismo estoy de reformas y mi laboratorio está desmantelado.
      cuando lo tenga sin DAC externo, crearé otra publicación.

  2. Hola almogu como estas
    He tenido unas horas para montar el cirguito y no logro sacar audio.
    El ESP32 para estar funcionando ya que el HA dice que esta reproduciendo pero no sale audio por los partantes
    Estoy usando un NodeMcu 32s de 38 pines donde los GPIOs que utilice serian:
    GPIO 25 = DAC_1 EN EL ESP32
    GPIO 26 = DAC_2 EN EL ESP32
    GPIO 27 = NORMAL EN EL ESP32

    Se te ocurre que puede ser?
    Muchas Gracias

    te dejo el codigo

    web_server:
    port: 80

    status_led:
    pin:
    number: GPIO2
    inverted: true

    i2s_audio:
    – id: i2s_out
    i2s_lrclk_pin: GPIO26 #PIN LRC DEL MAX98357A
    i2s_bclk_pin: GPIO27 #PIN BCL DEL MAX98357A

    media_player:
    – platform: i2s_audio
    name: ESP32 Audio
    dac_type: external
    i2s_audio_id: i2s_out
    i2s_dout_pin: GPIO25 #PIN DIN DEL MAX98357A
    mode: stereo

    1. creo recordar que me paso en una prueba y cambié mode: stereo por mode: mono. asegúrate de que el MAX98357A esté bien alimentado con 3-5v. asegura todas las conexiones, asi como el de ganancia. comprueba, voltaje en el MAX…. por si estuviera mal algún cable o protoboard. también puedes probar a cambiar el GPIO25 por el GPIO14.

      web_server:
      port: 80

      i2s_audio:
      – id: i2s_out
      i2s_lrclk_pin: GPIO26 # PIN LRC DEL MAX98357A
      i2s_bclk_pin: GPIO27 # PIN BCL DEL MAX98357A

      media_player:
      – platform: i2s_audio
      name: «ESP32 Media Player»
      dac_type: external
      i2s_audio_id: i2s_out
      i2s_dout_pin: GPIO25 # PIN DIN DEL MAX98357A
      mode: mono

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *