ESP32 Tutorial 41/55 - MP3-Player mit Micro-SD-Karte | SunFounder's ESP32 IoT-Lernkit
In diesem Tutorial werden wir einen MP3-Player mithilfe des ESP32-Mikrocontrollers und einer microSD-Karte erstellen. Der ESP32 wird Audiodateien lesen, die auf der microSD-Karte gespeichert sind, und den Sound über einen Audioverstärker und Lautsprecher ausgeben. Dieses Projekt kombiniert verschiedene Komponenten, einschließlich des ESP32, eines Audioverstärkers und einer microSD-Karte, um Ihnen zu ermöglichen, Musik auf einfache Weise abzuspielen.
Im Laufe des Prozesses werden wir die erforderliche Verkabelung, das Programmieren und die Fehlersuche bei häufigen Problemen besprechen. Für visuelle Unterstützung sollten Sie sich das zugehörige Video (im Video bei 00:00) ansehen.
Hardware erklärt
Die Hauptkomponenten, die in diesem Projekt verwendet werden, umfassen den ESP32-Mikrocontroller, eine microSD-Karte, einen Audioverstärker und einen Lautsprecher. Der ESP32 ist ein leistungsstarker Mikrocontroller mit integrierten WLAN- und Bluetooth-Funktionen, was ihn ideal für IoT-Projekte macht. Er wird die Verarbeitung und Steuerung der Audio-Wiedergabe übernehmen.
Die micro SD-Karte wird verwendet, um Audiodateien im MP3-Format zu speichern. Sie wird mit dem ESP32 verbunden und ermöglicht es dem Programm, die Dateien zu lesen und Audiodaten an den Verstärker zu senden. Der Audioverstärker nimmt das digitale Signal vom ESP32 und verstärkt es, um den Lautsprecher anzutreiben, wodurch der Klang hörbar wird.
Datenblattdetails
| Hersteller | SunFounder |
|---|---|
| Teilenummer | ESP32 |
| Logik/IO-Spannung | 3,3 V |
| Versorgungsspannung | 5 V |
| Ausgangsstrom (pro Kanal) | 2 A max |
| Spitzenstrom (pro Kanal) | 3 A max |
| PWM-Frequenzrichtlinien | bis zu 40 kHz |
| Eingangsschwellenwerte | 0,3 x VCC (niedrig), 0,7 x VCC (hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | 0,15 V |
| Thermische Grenzen | 85 °C |
| Paket | WROOM-32 |
| Hinweise / Varianten | Kompatibel mit verschiedenen Audio-Bibliotheken |
- Stellen Sie sicher, dass die micro SD-Karte als FAT32 formatiert ist.
- Verwenden Sie einen Widerstand, um den Audioverstärker anzuschließen und Verzerrungen zu vermeiden.
- Halten Sie die Stromversorgung Anschlüsse stabil, um Unterbrechungen zu vermeiden.
- Überprüfen Sie die Verkabelung auf lose Verbindungen, bevor Sie das System mit Strom versorgen.
- Überwachen Sie die serielle Ausgabe auf Debugging-Informationen.
- Verwenden Sie niederohmige Lautsprecher für eine bessere Klangqualität.
- Für die beste Leistung stellen Sie sicher, dass der ESP32 beim Abspielen von Audio nicht mit Aufgaben überlastet ist.
SD_MMCwird für den Zugriff auf micro SD verwendet, undAudioOutputI2Swird für die Audioausgabe verwendet.
Verdrahtungsanweisungen


Um die Komponenten miteinander zu verbinden, beginnen Sie mit dem Anschluss der Stromversorgung. Schließen Sie die 5 V vom ESP32 an den VCC-Pin des Audioverstärkers an. Verbinden Sie als Nächstes den Ground-Pin vom ESP32 mit dem Ground-Pin des Verstärkers. Der Audioausgangspin vom ESP32, normalerweiseGPIO25, sollte über einen 10 kΩ Widerstand mit dem Eingangspin des Verstärkers verbunden werden.
Für den Lautsprecher schließen Sie ihn an die Ausgangspins des Audioverstärkers an. Beachten Sie, dass der Lautsprecher keine Polarität hat, sodass Sie ihn in beide Richtungen anschließen können. Setzen Sie die micro SD-Karte in den vorgesehenen Slot auf dem ESP32 ein. Stellen Sie sicher, dass Sie alle Verbindungen überprüfen, bevor Sie das System mit Strom versorgen.
Code-Beispiele & Anleitung
Im bereitgestellten Code beginnen wir mit der Einbindung der notwendigen Bibliotheken für die Audiowiedergabe und den Zugriff auf die SD-Karte. Die Hauptbezeichner sindmp3,file, andout, die jeweils den MP3-Generator, die Audioquelldatei und den Audioausgang darstellen.
AudioGeneratorMP3 *mp3;
AudioFileSourceSD_MMC *file;
AudioOutputI2S *out;Hier deklarieren wir Zeiger für den MP3-Generator und die Audio-Dateiquelle. In dersetup()Funktion, wir initialisieren die serielle Kommunikation und die SD-Karte.
void setup() {
Serial.begin(115200);
if (!SD_MMC.begin()) {
Serial.println("SD card mount failed!");
}
file = new AudioFileSourceSD_MMC("/To Alice.mp3");
out = new AudioOutputI2S(0, 1);
}In diesem Auszug überprüfen wir, ob die SD-Karte erfolgreich gemountet ist. Wenn nicht, wird eine Fehlermeldung ausgegeben. Anschließend richten wir die MP3-Datei und den Audioausgabemodus ein.
void loop() {
if (mp3->isRunning()) {
if (!mp3->loop()) mp3->stop();
} else {
Serial.println("MP3 done");
delay(1000);
}
}Diese Schleife überprüft, ob die MP3-Datei noch abgespielt wird. Wenn dies nicht der Fall ist, wird eine Nachricht ausgegeben, die anzeigt, dass die Wiedergabe beendet ist. Der vollständige Code wird unter dem Artikel für weitere Referenz geladen.
Demonstration / Was zu erwarten ist
Sobald alles verkabelt und der Code hochgeladen ist, sollten Sie den Ton über den Lautsprecher hören, wenn die micro SD-Karte eingesetzt wird. Stellen Sie sicher, dass Sie das ESP32 nach dem Einsetzen der Karte zurücksetzen. Wenn der Ton nicht abgespielt wird, überprüfen Sie die Verkabelung und stellen Sie sicher, dass die Audiodatei im Code korrekt benannt ist (im Video bei 05:00).
Häufige Fehler sind das falsche Formatieren der micro SD-Karte oder die Verwendung nicht unterstützter Audio-Dateiformate. Stellen Sie immer sicher, dass die Dateien im MP3-Format vorliegen und im Hauptverzeichnis oder im angegebenen Ordner platziert sind, je nach Bedarf.
Video-Zeitstempel
- 00:00 Start
- 2:19 Einführung in das Projekt
- 4:27 Dokumenten-Seite
- 5:32 Verkabelung für Audioverstärker
- 8:00 microSD-Karte für ESP32 formatieren
- 10:16 Bibliothek und Code
- 15:16 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
- 16:58 Spiele Lied mit ESP32 von Micro-SD-Karte
- 19:14 Zweite Demo mit 18650-Batterie
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
Dokumentation
Dateien📁
Keine Dateien verfügbar.