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

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
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.
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
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