- Components necessaris
- Esquema de connexions
- Preparació per a fitxers d'àudio
- Explicació del codi
- Prova del reproductor d'àudio ESP32
Els reproductors de música DIY són divertits de construir i prèviament vam crear uns quants reproductors de música mitjançant Arduino i un mòdul MP3 dedicat. Ara estem utilitzant ESP32 per crear un reproductor d'àudio interessant, en el qual podeu produir efectes de so simplement connectant un altaveu addicional a ESP32. Aquí utilitzarem LM386 i un altaveu amb ESP32 per reproduir fitxers de música. La sortida d'àudio pot no ser forta, però aquesta aplicació mostra la capacitat de la placa ESP32 per reproduir fitxers d'àudio.
Components necessaris
- ESP32
- Mòdul amplificador LM386
- Altaveu de 8 ohm
- Jumper Wires
Esquema de connexions
A continuació es mostra el diagrama de circuits per al reproductor de música ESP32-

Per reproduir so a ESP32, necessitem un altaveu. L'altaveu es connecta a través del mòdul Amplificador d'àudio LM386. Els pins Vcc i GND del mòdul amplificador estan connectats a VIN i GND d’ESP32 mentre que el pin IN del mòdul amplificador està connectat a GPIO 25 pins d’ESP32. GPIO 25 és un dels 2 pins DAC (convertidor digital a analògic).
Així serà la configuració completa del reproductor de música ESP32:

LM386 és un CI d'amplificador d'àudio. Podeu obtenir més informació sobre LM386 seguint l'enllaç.
Preparació per a fitxers d'àudio
Per reproduir sons d’àudio a la placa ESP32, necessitem fitxers d’àudio en format .wav perquè ESP32 només pot reproduir un fitxer d’àudio en format .wav .
Per tant, el primer pas serà obtenir el fitxer que voleu reproduir a ESP32. Després, descarregueu i instal·leu l'aplicació Audacity Audio Editor. Aquesta aplicació s'utilitzarà per canviar el tipus de fitxer, la freqüència de mostra i altres propietats.
Un cop finalitzada la instal·lació, obriu l'aplicació Audacity i aneu a Fitxer> Obre i seleccioneu el fitxer d'àudio que voleu editar.
El primer que calia canviar és la freqüència de mostreig. Per reproduir un fitxer d’àudio a ESP32, una freqüència de mostreig de 8000 a 16000 serà bona ja que l’ESP32 no té molta memòria. Canvieu la tarifa del projecte a 16000.

Després, aneu a Fitxer> Exporta> Exporta com a WAV per desar el fitxer d'àudio en format .wav .

Ara, a la finestra següent, seleccioneu WAV (Microsoft) com a tipus de fitxer i PCM de 8 bits sense signar com a format de codificació i, a continuació, feu clic a Desa.

Ara necessitem una aplicació Hex Editor per generar codis Hex per al fitxer d'àudio. Per tant, descarregueu i instal·leu l'Editor hexagonal (HxD) des de l'enllaç indicat. Després, obriu l'aplicació i aneu a Fitxer> obre i obriu el fitxer.wav . Això generarà el codi hexadecimal per al fitxer.wav .

A continuació, utilitzeu ctrl + A per seleccionar el codi complet i, a continuació, aneu a Edita> Copia com> C per copiar el codi en format Idioma C.

A continuació, enganxeu aquest codi a Arduino IDE.
Explicació del codi
El codi complet del reproductor d'àudio ESP32 Contactless es dóna al final de la pàgina. Aquí expliquem algunes parts importants del codi. En aquest programa, farem servir la biblioteca d’àudio XT DAC de XTronical. La biblioteca d’àudio XT DAC es pot descarregar des d’aquí.
Com és habitual, inicieu el codi incloent totes les biblioteques necessàries. El fitxer SoundData.h conté el codi hexadecimal del fitxer.Wav que es vol reproduir.
#include "SoundData.h" #include "XT_DAC_Audio.h"
A la següent línia, creeu un objecte de tipus XT_Wav_Class que la classe d’àudio DAC utilitzi per passar les dades .wav com a paràmetre. DacAudio, l'objecte principal de la classe de reproductor en què 25 és el número de pin DAC on està connectat el pin d'amplificador.
XT_Wav_Class Sound (mostra); XT_DAC_Audio_Class DacAudio (25,0);
Dins de la funció setup () , inicialitzeu el monitor sèrie a una velocitat de transmissió de 115200 per a la depuració.
configuració nul·la () {Serial.begin (115200);
Dins de la funció loop () , empleneu la memòria intermèdia de so amb dades i comproveu si el so s’està reproduint o no, en cas contrari, reproduïu el so al bucle.
bucle buit () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Prova del reproductor d'àudio ESP32
Un cop el codi estigui llest, connecteu l'altaveu a GPIO 25 d'ESP32 mitjançant LM386 o qualsevol altre mòdul amplificador. Ara connecteu l’ESP32 a l’ordinador portàtil i pengeu el codi. Un cop carregat el codi, ESP32 comença a reproduir l'àudio. La qualitat del so es pot canviar mitjançant el potenciòmetre del mòdul Amplificador.
Espero que us hagi agradat el projecte. A continuació es mostra un vídeo de treball i un codi complet, el fitxer de capçalera SoundData.h es pot descarregar des d’aquí. Si teniu dubtes, deixeu-los a la secció de comentaris.
