- Erforderliche Komponenten
- Schaltplan
- Vorbereitungen mit Audiodateien
- Code Erklärung
- Testen des ESP32 Audio Players
Es macht Spaß, DIY-Musikplayer zu bauen, und wir haben zuvor einige Musikplayer mit Arduino und einem speziellen MP3-Modul gebaut. Jetzt verwenden wir ESP32, um einen interessanten Audio-Player zu erstellen, in dem Sie Soundeffekte erzielen können, indem Sie einfach einen zusätzlichen Lautsprecher an ESP32 anschließen. Hier verwenden wir LM386 und einen Lautsprecher mit ESP32 zum Abspielen von Musikdateien. Die Audioausgabe ist möglicherweise nicht laut, aber diese Anwendung zeigt die Fähigkeit der ESP32-Karte, Audiodateien abzuspielen.
Erforderliche Komponenten
- ESP32
- Verstärkermodul LM386
- 8 Ohm Lautsprecher
- Überbrückungsdrähte
Schaltplan
Der Schaltplan für den ESP32 Music Player ist unten angegeben.
Um Sound auf ESP32 abzuspielen, benötigen wir einen Lautsprecher. Der Lautsprecher wird über das Audioverstärkermodul LM386 angeschlossen. Die Vcc- und GND-Pins des Verstärkermoduls sind mit VIN und GND des ESP32 verbunden, während der IN-Pin des Verstärkermoduls mit dem GPIO 25-Pin des ESP32 verbunden ist. GPIO 25 ist einer der 2 DAC-Pins (Digital-Analog-Wandler).
So sieht das komplette Setup für ESP32 Music Player aus:
LM386 ist ein Audioverstärker-IC. Weitere Informationen zu LM386 erhalten Sie über den Link.
Vorbereitungen mit Audiodateien
Um Audio - Sounds auf dem ESP32 Board zu spielen, müssen wir Audiodateien im .wav - Format, da ESP32 kann eine Audiodatei in spielen .wav nur Format.
Der erste Schritt besteht also darin, die Datei abzurufen, die Sie auf ESP32 abspielen möchten. Laden Sie anschließend die Audacity Audio Editor App herunter und installieren Sie sie. Diese App wird verwendet, um den Dateityp, die Abtastrate und andere Eigenschaften zu ändern.
Öffnen Sie nach Abschluss der Installation die Audacity-App, gehen Sie zu Datei> Öffnen und wählen Sie die zu bearbeitende Audiodatei aus.
Das erste, was geändert werden musste, ist die Abtastrate. Für die Wiedergabe einer Audiodatei auf ESP32 ist eine Abtastrate von 8000 bis 16000 gut, da ESP32 nicht viel Speicher hat. Ändern Sie also die Projektrate auf 16000.
Danach Navigieren auf Datei> Exportieren> Exportieren als WAV die Audio-Datei speichern .wav - Format.
Wählen Sie nun im nächsten Fenster WAV (Microsoft) als Dateityp und Unsigned 8-Bit PCM als Codierungsformat aus und klicken Sie dann auf Speichern.
Jetzt brauchen wir eine Hex Editor App, um Hex Codes für die Audiodatei zu generieren. Laden Sie den Hex Editor (HxD) über den angegebenen Link herunter und installieren Sie ihn. Öffnen Sie danach die App, gehen Sie zu Datei> Öffnen und öffnen Sie die WAV-Datei . Dadurch wird der Hex-Code für die WAV-Datei generiert.
Verwenden Sie dann Strg + A , um den vollständigen Code auszuwählen, und gehen Sie dann zu Bearbeiten> Kopieren als> C, um den Code im C-Sprachformat zu kopieren.
Fügen Sie diesen Code dann in die Arduino IDE ein.
Code Erklärung
Der vollständige Code für den kontaktlosen ESP32-Audio-Player finden Sie am Ende der Seite. Hier erklären wir einige wichtige Teile des Codes. In diesem Programm verwenden wir die XT DAC Audio-Bibliothek von XTronical. Die XT DAC Audio-Bibliothek kann hier heruntergeladen werden.
Starten Sie den Code wie gewohnt, indem Sie alle erforderlichen Bibliotheken einschließen. Die Datei SoundData.h enthält den Hex-Code für die abzuspielende WAV-Datei .
#include "SoundData.h" #include "XT_DAC_Audio.h"
In der nächsten Zeile erstellen ein Objekt vom Typ XT_Wav_Class , die von dem DAC Audioklasse verwendet wird, vorbei .wav Daten als Parameter. DacAudio, das Hauptobjekt der Player-Klasse, bei dem 25 die DAC-Pin-Nummer ist, an der der Verstärker-Pin angeschlossen ist.
XT_Wav_Class Sound (Beispiel); XT_DAC_Audio_Class DacAudio (25,0);
Innerhalb der setup () Funktion, initialisieren Sie den Serial Monitor mit einer Baudrate von 115200 für Debugging - Zwecke.
void setup () {Serial.begin (115200);
Füllen Sie innerhalb der Funktion loop () den Soundpuffer mit Daten und prüfen Sie, ob der Sound abgespielt wird oder nicht. Wenn nicht, spielen Sie den Sound in der Loop ab.
void loop () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }}
Testen des ESP32 Audio Players
Sobald der Code fertig ist, schließen Sie den Lautsprecher über LM386 oder ein anderes Verstärkermodul an GPIO 25 von ESP32 an. Verbinden Sie nun den ESP32 mit dem Laptop und laden Sie den Code hoch. Sobald der Code hochgeladen ist, beginnt ESP32 mit der Wiedergabe des Audios. Die Klangqualität kann mit dem Potentiometer des Verstärkermoduls geändert werden.
Ich hoffe, Ihnen hat das Projekt gefallen. Ein funktionierendes Video und ein vollständiger Code sind unten angegeben. Die Header-Datei SoundData.h kann hier heruntergeladen werden. Wenn Sie irgendwelche Zweifel haben, lassen Sie sie im Kommentarbereich.