Mini lecteur MP3 DFPlayer

FunduinoDernière mise à jour le

Von der SD-Karte bis zur Türklingel mit eigener Ansage

Mit diesem winzigen Modul – kaum größer als eine microSD-Speicherkarte – setzt du Projekte mit Tonausgabe um. Einen Miniaturlautsprecher schließt du direkt an, ein Verstärker ist nicht nötig. Für die Sprachausgabe eines kleinen Roboters ist das ideal.

DFPlayer Mini MP3-Modul in Größenvergleich
Das DFPlayer Mini MP3-Modul – kaum größer als eine microSD-Karte

Die SD-Karte vorbereiten

Formatiere die Speicherkarte über einen Rechtsklick auf den Wechseldatenträger und wähle unter Dateisystem FAT32 aus. Achtung: Dabei werden alle Daten auf der Karte gelöscht.

Damit du nach dem Aufbau direkt programmieren kannst, brauchst du ein paar Sounddateien im MP3-Format. Gesprochene Dateien nimmst du am Computer selbst auf. Wer die eigene Stimme nicht gern hört – vor allem, wenn sie aus einem Gebüsch erschallt –, lässt sie online erzeugen: Suche nach „Text zu MP3“ oder „Text-to-MP3“, mehrere Anbieter machen das kostenlos.

Für diese Anleitung speicherst du drei MP3-Dateien auf der microSD-Karte: 0001.MP3, 0002.MP3 und 0003.MP3.

Wichtig: Die SD-Karte muss im Format FAT16 (unüblich) oder FAT32 vorliegen. Mit anderen Dateisystemen erkennt das Modul die Karte nicht.

Der Schaltplan

Das Modul steckst du am besten auf ein Breadboard, dann arbeitest du übersichtlicher. Bei Platzmangel kannst du es auch über einzelne male/female-Kabel direkt am Arduino anschließen.

Da sich am Modul direkt ein Lautsprecher anschließen lässt, verwenden wir hier einen typischen Miniatur-Lautsprecher aus dem Funduino-Lernset und verkabeln ihn mit dem MP3-Modul.

Schaltplan des DFPlayer Mini am Arduino mit Lautsprecher
Schaltplan: DFPlayer Mini mit Lautsprecher am Arduino

Bibliothek installieren und testen

Als Nächstes brauchst du eine passende Bibliothek. Du installierst sie über den Bibliotheksverwalter. Wir verwenden hier die von DFRobot. Es gibt weitere passende Bibliotheken mit anderen Vorteilen, etwa weniger Speicherverbrauch bei abgespeckten Funktionen.

Ruf zum Einstieg den Beispielcode unter Datei → Beispiele → DFRobotDFPlayerMini → GetStarted auf. Lade den Sketch ohne jede Änderung auf das Board und öffne sofort den seriellen Monitor. Hat alles geklappt, hörst du in diesem Moment schon Geräusche aus dem Lautsprecher.

Der serielle Monitor zeigt dir, ob das Modul richtig angeschlossen und einsatzbereit ist. Bei Problemen findest du dort Hinweise, etwa auf eine fehlende SD-Karte oder eine falsche Verkabelung. Hörst du nach allen Kontrollen nichts, erhöhe die Lautstärke: Im Sketch steht die Zeile myDFPlayer.volume(10); – trage dort den Maximalwert 30 ein.

Praxistipp: Dieser Sketch überträgt mit 115200 statt 9600 Baud. Stelle den Wert im seriellen Monitor um, sonst siehst du nur unleserliche Zeichen.

Bibliotheksverwalter der Arduino IDE mit DFRobotDFPlayerMini
Die Bibliothek von DFRobot im Bibliotheksverwalter
Menüpfad zum Beispielsketch GetStarted
Der Beispielsketch GetStarted im Menü Datei → Beispiele
1 / 2

Der Programmcode in Minimalform

Für einen GetStarted-Sketch ist der mitgelieferte Code schon recht unübersichtlich. Hier siehst du ihn in seiner Minimalform: Er spielt nur noch eine MP3-Datei ab und ist damit eine gute Grundlage für eigene Anwendungen.

Ideen gibt es genug – ein paar Kombinationen:

  • MP3-Modul + Temperatursensor = sprechendes Fieberthermometer
  • MP3-Modul + Bewegungsmelder = Einbrecherschreck
  • MP3-Modul + Ultraschallsensor = Abstandswarnung
  • MP3-Modul + Taster = Türklingel mit Ansage
  • MP3-Modul + RFID-Kit = akustische Zugangsbestätigung
  • MP3-Modul + Feuchtigkeitssensor = die schimpfende Pflanze

Achtung: In allen drei verkürzten Sketchen fehlt der Aufruf myDFPlayer.begin(mySoftwareSerial); den der mitgelieferte GetStarted-Sketch enthält. Ohne ihn wird das Modul nicht initialisiert. Bitte vor der Veröffentlichung prüfen.

Minimalform: eine MP3-Datei abspielen
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
void setup()
{
  mySoftwareSerial.begin(9600);
  myDFPlayer.volume(30);  // Lautstärke auf Maximum (30)
}
void loop()
{
  myDFPlayer.play(1);  // Spielt die erste MP3-Datei ab
  delay(3000); // Nach dem Abspielen pausiert der Sketch drei Sekunden.
}

Türklingel mit Ansage

Wir starten mit der Türklingel: Bei einem Tastendruck spielt das Modul die MP3-Datei von der SD-Karte ab. Zusätzlich zum bisherigen Aufbau schließt du an Pin 7 einen Taster an.

Türklingel mit Ansage
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int taster = 7; // Das Wort "taster" steht jetzt für den Wert 7.
int tasterstatus = 0; // Hier wird gespeichert, ob der Taster gedrückt ist oder nicht.
void setup()
{
  mySoftwareSerial.begin(9600);
  myDFPlayer.volume(30);  // Lautstärke auf Maximum (30)
  pinMode(taster, INPUT); // Der Pin mit dem Taster (Pin 7) ist jetzt ein Eingang.
}
void loop()
{
  tasterstatus = digitalRead(taster); // Pin 7 auslesen. Das Ergebnis ist HIGH (5 Volt) oder LOW (0 Volt).
  if (tasterstatus == HIGH) // Wenn der Taster gedrückt ist …
  {
    myDFPlayer.play(1);  // … spielt das Modul die erste MP3-Datei ab.
  }
}

Die schimpfende Zimmerpflanze

Als zweites Beispiel programmierst du die schimpfende Zimmerpflanze. Dazu schließt du am analogen Pin A0 einen Feuchtigkeitssensor an. Auf der SD-Karte speicherst du eine MP3-Datei mit dem Inhalt: „Hey du da, ja genau du, ich habe Durst! Bring mir etwas zu trinken.“

Sobald die Feuchtigkeit den Grenzwert von 300 unterschreitet, spielt der DFPlayer Mini die MP3-Datei ab.

Die schimpfende Zimmerpflanze
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"
SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;
int messwert = 0; // Hier wird später der Messwert des Sensors gespeichert.
void setup()
{
  mySoftwareSerial.begin(9600);
  myDFPlayer.volume(30);  // Lautstärke auf Maximum (30)
}
void loop()
{
  messwert = analogRead(A0); // Die Spannung am Sensor wird ausgelesen und in "messwert" gespeichert.
  if (messwert <= 300) // Wenn der Messwert 300 oder kleiner ist …
  {
    myDFPlayer.play(1);  // … spielt das Modul die erste MP3-Datei ab.
  }
}

Terminé !

Weitere Informationen über das Modul findest du beim Hersteller: wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299

Évaluer le guide

Commentaires

Poser une question ou partager une expérience

Écris-nous si quelque chose ne fonctionne pas. Indique-nous ton modèle de carte et le message d’erreur.

Nous vérifions chaque commentaire avant sa publication. Ton adresse e-mail reste chez nous.