ESP32 S3 - MP3-Player

Der Bau eines MP3-Players mit dem ESP32 S3 ist ein lohnendes Projekt, das zeigt, wie ein Mikrocontroller die Audiowiedergabe von einer Micro-SD-Karte steuern kann. In dieser Anleitung erfahren Sie, wie Sie ein serielles MP3-Player-Modul und einen Lautsprecher an den ESP32 S3 anschließen und ihn anschließend so programmieren, dass er Songs abspielt, pausiert und zwischen ihnen wechselt.

ESP32 S3 - MP3-Player

Was Sie bauen werden:

  1. Einen funktionierenden MP3-Player, der Audiodateien von einer Micro-SD-Karte liest
  2. Ein System, in dem der ESP32 S3 serielle Befehle an das MP3-Modul sendet
  3. Wiedergabesteuerung über physische Tasten (Abspielen, Pause, Weiter, Zurück)
  4. Eine Grundlage, die Sie um eine Lautstärkeregelung per Potentiometer oder Drehgeber erweitern können

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Serieller MP3-Player-Modul
1×Micro-SD-Karte
1×3.5mm Aux-Lautsprecher
1×Breadboard
1×Verbindungskabel
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Überblick über Serial MP3 Player Module and Speaker

Das serielle MP3-Player-Modul fungiert als eigenständiger Audiodecoder, der Befehle über eine serielle UART-Schnittstelle entgegennimmt, MP3-Dateien von einer Micro-SD-Karte liest und das dekodierte Audiosignal über eine 3,5-mm-Aux-Buchse ausgibt. In Kombination mit dem ESP32 S3 lässt sich die Wiedergabe vollständig per Programm steuern, ohne dass auf dem Mikrocontroller selbst eine externe Audiobibliothek benötigt wird.

Wichtige Spezifikationen

Pinbelegung des seriellen MP3-Player-Moduls

Das Modul bietet drei unterschiedliche Schnittstellen für Kommunikation, Audioausgabe und Speicher.

  1. RX-Pin: Dateneingang — mit einem TX-Pin des ESP32 S3 verbinden
  2. TX-Pin: Datenausgang — mit einem RX-Pin des ESP32 S3 verbinden
  3. VCC-Pin: Stromversorgung — mit 3,3 V oder 5 V verbinden
  4. GND-Pin: Massebezug — mit GND verbinden
  5. 3,5-mm-Aux-Buchse: Audioausgang — wird direkt mit dem Lautsprecher verbunden
  6. Micro-SD-Kartensteckplatz: befindet sich auf der Rückseite des Moduls — stecken Sie hier die Karte mit Ihren MP3-Dateien ein
Pinbelegung des seriellen MP3-Player-Moduls

Pinbelegung des Lautsprechers

Ein kompatibler Lautsprecher bietet in der Regel zwei Schnittstellen, um Audio zum Leben zu erwecken.

  1. 3,5-mm-Aux-Stecker: Audiosignaleingang — wird in die Ausgangsbuchse des MP3-Moduls gesteckt
  2. Stromanschluss: USB, 5-V-Netzteil oder eine andere unterstützte Versorgung — versorgt den Verstärker des Lautsprechers

Wie es funktioniert

Stellen Sie zu Beginn sicher, dass Sie Folgendes vorbereitet haben:

  • Stellen Sie eine Sammlung von Songs oder aufgenommenen Audiodateien zusammen, die Sie abspielen möchten, und speichern Sie sie auf einer Micro-SD-Karte.
  • Stecken Sie die Micro-SD-Karte in das MP3-Player-Modul.
  • Verbinden Sie das MP3-Player-Modul mit dem ESP32 S3 und den Lautsprecher mit dem MP3-Player-Modul. Stellen Sie außerdem sicher, dass der Lautsprecher an eine Stromquelle angeschlossen ist.

Jede MP3-Datei auf der Micro-SD-Karte erhält eine ID, beginnend bei 0. Anschließend können Sie den ESP32 S3 anweisen, verschiedene Aktionen mit dem MP3-Player-Modul auszuführen, zum Beispiel:

  • Abspielen: Den ausgewählten Song abspielen.
  • Pause: Den Song pausieren.
  • Nächster Titel: Zum nächsten Song wechseln.
  • Vorheriger Titel: Zum vorherigen Song zurückkehren.
  • Lautstärke ändern: Einstellen, wie laut die Musik ist.

Wenn das MP3-Player-Modul einen Befehl erhält, liest es die MP3-Datei von der Micro-SD-Karte, wandelt sie in ein Audiosignal um und sendet dieses Signal über eine 3,5-mm-Aux-Verbindung an den Lautsprecher.

Verdrahtungsdiagramm

Verbinden Sie die seriellen Pins des MP3-Moduls mit den UART-Pins des ESP32 S3 und stecken Sie den Lautsprecher in die Audiobuchse des Moduls. Stellen Sie sicher, dass sowohl das Modul als auch der Lautsprecher ausreichend mit Strom versorgt werden, bevor Sie Ihren Sketch hochladen.

Sicherheitshinweise

Halten Sie die Signalleitungen kurz, um Störungen zu reduzieren, und schließen Sie die Stromversorgung des Lautsprecherverstärkers niemals direkt an die 3,3-V-Schiene des ESP32 S3 an — verwenden Sie eine separate 5-V-Quelle, um die Platine zu schützen.

ESP32 S3 MP3-Player-Modul Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

ESP32 S3 Code - Musik abspielen

Der folgende Code spielt den ersten auf der Micro-SD-Karte gespeicherten Song ab. Er initialisiert eine Software-Serial-Verbindung zum MP3-Modul und sendet den Abspielbefehl direkt beim Start. Der folgende Code zeigt das einfachstmögliche Wiedergabeszenario, damit Sie Ihre Verdrahtung überprüfen können, bevor Sie Bedienelemente hinzufügen.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-mp3-player */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-mp3-player */ #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 void setup() { Serial.begin(9600); Serial2.begin(9600, SERIAL_8N1, 18, 17); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms mp3_command(CMD_PLAY, 0x0000); // Play mp3 //mp3_command(CMD_PAUSE, 0x0000); // Pause mp3 //mp3_command(CMD_PLAY_NEXT, 0x0000); // Play next mp3 //mp3_command(CMD_PLAY_PREV, 0x0000); // Play previous mp3 //mp3_command(CMD_SET_VOLUME, 30); // Change volume to 30 } void loop() { } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { Serial2.write(frame[i]); } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Befolgen Sie die Anweisungen im obigen Abschnitt Wie es funktioniert — bereiten Sie Ihre Micro-SD-Karte vor und stecken Sie sie in das Modul.
  3. Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  4. Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den ESP32 S3 hochzuladen.
  5. Genießen Sie die Musik.
  6. Profi-Tipp: Wenn kein Ton zu hören ist, überprüfen Sie die RX/TX-Verdrahtung — der RX-Pin des Moduls muss mit dem TX-Pin des ESP32 S3 verbunden sein und umgekehrt.

Ausgabe im Seriellen Monitor

Öffnen Sie den Seriellen Monitor mit 9600 Baud, um die Befehlsbestätigungen des MP3-Moduls zu beobachten. Die folgenden Ausgaben wurden während einer typischen Wiedergabesitzung aufgezeichnet.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-06-16 10:00:01] MP3 module initialised. Playing track 1... [2026-06-16 10:00:05] Playback started successfully. [2026-06-16 10:00:45] Next track command sent. Playing track 2... [2026-06-16 10:01:30] Pause command sent. Playback paused.
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

ESP32 S3 Code - Musik mit Steuertasten abspielen

Der folgende Code erweitert das Grundbeispiel um vier Taster, sodass Sie in Echtzeit mit dem MP3-Player interagieren können. Jeder Taster ist einer Wiedergabeaktion zugeordnet — Abspielen, Pause, Weiter und Zurück — und gibt Ihnen so die direkte Kontrolle, ohne den Code ändern zu müssen.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp32-s3/esp32-s3-mp3-player */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-mp3-player */ #include <ezButton.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 ezButton button_play(4); // create ezButton object that attach to ESP32-S3's pin GPIO4 ezButton button_pause(5); // create ezButton object that attach to ESP32-S3's pin GPIO5 ezButton button_next(6); // create ezButton object that attach to ESP32-S3's pin GPIO6 ezButton button_prev(7); // create ezButton object that attach to ESP32-S3's pin GPIO7 void setup() { Serial.begin(9600); Serial2.begin(9600, SERIAL_8N1, 18, 17); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms button_play.setDebounceTime(50); // set debounce time to 50 milliseconds button_pause.setDebounceTime(50); // set debounce time to 50 milliseconds button_next.setDebounceTime(50); // set debounce time to 50 milliseconds button_prev.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button_play.loop(); // MUST call the loop() function first button_pause.loop(); // MUST call the loop() function first button_next.loop(); // MUST call the loop() function first button_prev.loop(); // MUST call the loop() function first if (button_play.isPressed()) { Serial.println("Play mp3"); mp3_command(CMD_PLAY, 0x0000); } if (button_pause.isPressed()) { Serial.println("Pause mp3"); mp3_command(CMD_PAUSE, 0x0000); } if (button_next.isPressed()) { Serial.println("Play next mp3"); mp3_command(CMD_PLAY_NEXT, 0x0000); } if (button_prev.isPressed()) { Serial.println("Play previous mp3"); mp3_command(CMD_PLAY_PREV, 0x0000); } } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = {0}; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { Serial2.write(frame[i]); } }

Der Schaltplan für den obigen Code:

ESP32 S3 MP3-Player Lautsprecher Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Nun können Sie die Projekte um weitere Funktionen erweitern, zum Beispiel:

Anwendungen

Die Kombination aus ESP32 S3 und MP3-Player-Modul ist vielseitig genug, um zahlreiche praxisnahe Audioprojekte umzusetzen. Nachfolgend finden Sie einige praktische Anwendungsfälle, die sich lohnen.

  1. Umgebungsgeräuschgerät: Spielen Sie Naturgeräusche oder weißes Rauschen in einer Schleife ab, zur Entspannung oder als Einschlafhilfe.
  2. Interaktives Exponat: Lösen Sie thematische Audioclips in Museums- oder Escape-Room-Installationen abhängig von den Aktionen der Besucher aus.
  3. Sprachansagesystem: Geben Sie Statusmeldungen oder Warnungen in Industrie- oder Hausautomationspanels aus.
  4. Lernspielzeug: Spielen Sie Buchstaben des Alphabets, Zahlen oder kurze Lektionen ab, wenn ein Kind eine Taste drückt.
  5. Alarm- und Warnsystem: Geben Sie individuelle Alarmtöne oder gesprochene Warnungen in Sicherheits- oder Überwachungsanwendungen aus.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3 Projekt an.

Herausforderungen

Die Erweiterung Ihres MP3-Player-Projekts ist eine großartige Möglichkeit, Ihre ESP32 S3 Kenntnisse zu vertiefen. Probieren Sie eine der folgenden Herausforderungen aus, um das Projekt weiterzuentwickeln.

  1. Einsteiger: Fügen Sie eine LED hinzu, die synchron zum Wiedergabestatus leuchtet — an während der Wiedergabe, aus bei Pause.
  2. Fortgeschritten: Schließen Sie ein Potentiometer an und ordnen Sie seinen Wert der Lautstärke zu, sodass Sie die Lautstärke mit einem Drehknopf einstellen können.
  3. Experte: Bauen Sie einen Playlist-Manager, der eine Textdatei von der SD-Karte liest, um die Wiedergabereihenfolge festzulegen, und über eine eigene Taste einen Zufallsmodus ermöglicht.

Funktionsreferenzen

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!