Play music files with the MP3 Player module

In our today's blog contribution it is about the AZ-Delivery MP3 player module.

This module allows to play it to you taped linguistic files or music files of a Micro-SD memory map.

To build the project after you need:

AZ-Delivery player MP3 module
AZ-Delivery Mikrokontroller, compatibly with Arduino UN R3
E
in Breadboard with cable bridges, as for example in ours Breadboard set
1x 1K Ω opposition
1x loudspeaker 8 Ω to 2 watts
1x microSD map

 

First we become a look at the module from above:

MP3 Player modules pinout

Because the Pins on the module are not marked themselves, we orientate ourselves by the indentation on top in the module. The MicroSD-map plumb line points down.

We connect the module as follows:

Mikrokontroller, compatibly with Arduino UN R3

MP3 Module

5 V

VCC

GND

GND

Pin 11 ~

RX with 1KΩ opposition

Pin 10 ~

TX

 

Loudspeaker

MP3 Module

+

SPK1

-

SPK2

 

 

mp3 player breadboard connection

 

The preparation

As the first we must prepare a micro-SD memory map. We recommend to format the map (FAT32).

The titles use addressed the library which we in the order into which the files on the map were copied independent of the name.

We copy the desired audio-files in.WAV or.MP3 format on the memory map and insert this in the map reader on the module MP3.

The library

We use the library DFPlayerMini von DFRobot for the control. You are able to do this on https://github.com/DFRobot/DFRobotDFPlayerMini download.

The sketch

We use the example "GetStarted" which you under "file" → "examples" → "DFRobotDFPlayerMini" → "GetStarted" find, and adapt some lines:


in the set-up part we regulate the volume to the security first under it, while we change the value for myDFPlayer.volume on 5.

Then we comment out the order “myDFPlayer.next (), so that the reproduction jumps not all 3 seconds on the next song.

The modified example looks as follows:

 

/***************************************************

DFPlayer - A Mini player MP3 For Arduino
 <https://www.dfrobot.com/product-1121.html>
 
 ***************************************************
 This example shows the BASIC function of library for DFPlayer.
 
 Created in 2016-12-07
 By [Angelo qiao] (Angelo.qiao@dfrobot.com)
 
 GNU Lesser general public License.
 Lake <http://www.gnu.org/licenses/> for details.
 All above must Be included in any redistribution
 ****************************************************/

/ *********** Notice and trouble shooting ***************
 1. Connection and slide grief can Be found here
 <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
 2. This code is tested on Arduino UN, Leonardo, Mega boards.
 ****************************************************/

#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); //RX, TX
DFRobotDFPlayerMini myDFPlayer;
void printDetail(uint8_t type, int value);

void set-up()
{
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  
  Serial.println();
  Serial.println(AND THE FOLLOWING("DFRobot DFPlayer Mini demo"));
  Serial.println(AND THE FOLLOWING("Initializing DFPlayer... (May take 3~5 seconds)"));
  
  if (!myDFPlayer.begin(mySoftwareSerial)) {  //Use softwareSerial to communicate with mp3.
    Serial.println(AND THE FOLLOWING("Unable to begin:"));
    Serial.println(AND THE FOLLOWING("1. Please recheck the connection!"));
    Serial.println(AND THE FOLLOWING("2. Please insert the SD card!"));
    while(true){
      delay(0); //Code to compatible with ESP8266 watch dog.
    }
  }
  Serial.println(AND THE FOLLOWING("DFPlayer Mini online."));
  
  myDFPlayer.volume(5);  //Set volume value. From 0 to 30
  myDFPlayer.play(1);  //Play the ridge mp3
}

void loop()
{
  static unsigned long timer = millis();
  
  if (millis() - timer > 3000) {
    timer = millis();
 //myDFPlayer.next ();//Play next mp3 eve 
  }
  
  if (myDFPlayer.available()) {
    printDetail(myDFPlayer.readType(), myDFPlayer.Read()); //Print the detail message from DFPlayer to acts different errors and states.
  }
}

void printDetail(uint8_t type, int value){
  switch (type) {
    case Time-out:
      Serial.println(AND THE FOLLOWING("Time Out!"));
      break;
    case WrongStack:
      Serial.println(AND THE FOLLOWING("Stack Wrong!"));
      break;
    case DFPlayerCardInserted:
      Serial.println(AND THE FOLLOWING("Card Inserted!"));
      break;
    case DFPlayerCardRemoved:
      Serial.println(AND THE FOLLOWING("Card Removed!"));
      break;
    case DFPlayerCardOnline:
      Serial.println(AND THE FOLLOWING("Card online!"));
      break;
    case DFPlayerPlayFinished:
      Serial.print(AND THE FOLLOWING("Number:"));
      Serial.print(value);
      Serial.println(AND THE FOLLOWING(" Play Finished!"));
      break;
    case DFPlayerError:
      Serial.print(AND THE FOLLOWING("DFPlayerError:"));
      switch (value) {
        case Busy:
          Serial.println(AND THE FOLLOWING("Card found"));
          break;
        case Sleeping:
          Serial.println(AND THE FOLLOWING("Sleeping"));
          break;
        case SerialWrongStack:
          Serial.println(AND THE FOLLOWING("Get Wrong of stack"));
          break;
        case CheckSumNotMatch:
          Serial.println(AND THE FOLLOWING("Check Sum need match"));
          break;
        case FileIndexOut:
          Serial.println(AND THE FOLLOWING("File index Out of Bound"));
          break;
        case FileMismatch:
          Serial.println(AND THE FOLLOWING("Cannot Finding file"));
          break;
        case Advertise:
          Serial.println(AND THE FOLLOWING("In Advertise"));
          break;
        default:
          break;
      }
      break;
    default:
      break;
  }
}

 

After we have the code highly loaded, the reproduction MP3 starts.

Now with this module you can give to her mike controller's projects a voice. Or instead of easy peep noises you are able to do the alarm sirens from theirs preferential science fiction series widergeben.

 

Who is gifted hand, can obstruct the loudspeaker including Arduino in a nice case, and extend by functional keys (According to, Quietly, Before, Back, etc.)

 

MP3 Speaker

MP3 Loudspeaker inner life

 

We hope to you our today's contribution has liked, and are to be found out tensely what you have moved for projects with our module MP3.

Send us, nevertheless, simply a photo of your ready project - we would be glad very much.

 

A lot of fun while copying wishes you

Markus Neumann

Team AZ-Delivery

 

 

For arduinoProjects for beginners

13 comments

Ingo

Ingo

Aus der ausführlichen Dokumentation zum MP3-Modul (im Verzeichnis /doc der Bibliothek) geht hervor, dass man mit dem Modul nur Dateien abspielen kann (eigentlich auch ohne Arduino). Zur Anzeige des Namens benutze ich ein SD-Kartenmodul (SPI Reader Micro Speicher SD TF Karte Memory Card Shield Modul), in welchem ich eine SD-Karte mit exakt der gleichen Dateistruktur stecke. Dort kann ich die Dateinamen auslesen (aber leider nicht abspielen) und anzeigen. Läuft bei mir prima mit dem Arduino Nano – auch wenn es im Speicher etwas eng ist.

Harald Friedrich

Harald Friedrich

Die MP3 Dateinamen auf der SD-Karte müssen alle eine Nummer vorangestellt bekommen. Gibt es eine Möglichkeit, den kompletten Namen des aktuell gespielten Files heraus zu bekommen, um ihn auf einem Display anzuzeigen? Ansonsten ist das Modul als MP3-Player eigentlich unbrauchbar?!?

Holger

Holger

Hallo HaMa, den Widerstand solltest du nicht weglassen, sonst gibt es Probleme mit 3,3 Volt,
Auch bei mir lief der Player mit dem vorgegebenem Programm nicht. Zum Haareraufen!!
Aber so ging es:
#include “Arduino.h”
#include “SoftwareSerial.h”
#include “DFRobotDFPlayerMini.h”

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX
DFRobotDFPlayerMini myDFPlayer;

void setup()
{
mySoftwareSerial.begin(9600);
Serial.begin(115200);

Serial.println(); Serial.println(F(“DFRobot DFPlayer Mini Demo”)); Serial.println(F(“Initializing DFPlayer … (May take 3~5 seconds)”)); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F(“Unable to begin:”)); Serial.println(F(“1.Please recheck the connection!”)); Serial.println(F(“2.Please insert the SD card!”)); while(true){ delay(0); // Code to compatible with ESP8266 watch dog. } } Serial.println(F(“DFPlayer Mini online.”)); myDFPlayer.volume(5); //Set volume value. From 0 to 30 //myDFPlayer.play(3); //Play the first mp3

}

void loop()
{

myDFPlayer.play(1); //Play next mp3 eve */ delay(5000); myDFPlayer.stop();

}

Ha Ma

Ha Ma

Habe den Aufbau mit einem D1 Mini ausprobiert und nicht zum laufen gebracht.
Den 1k Widerstand an Rx habe ich weggelassen. Mehrere Ports ausgetestet, bleibt immer bei ´unable to begin ˋ stehen. Mit 2 player ausgetestet. Läuft der Player mit dem D1 Mini?

Währe dankbar für einen Tipp.

Jens

Jens

Ein großer Kondensator 470 – 1000uF an V+5 und GND nahe am Modul tut dem Modul bei großer Lautstärke gut. Vor allem auf dem Breadbord, wo die Kabel schnell mal wackeln…
Achtung, 11 vom Arduino geht über 1k an RX des Moduls und TX Modul an 10 Arduino. Wer sicher sein will kann in beide Leitungen 1k machen.

Tom

Tom

Hallo, ich habe es einmal angeschlossen, funktionierte einwandfrei, nun hab ich es nochmal sauber auf das Breadboard gesteckt und jetzt funktioniert nichts mehr. Über der seriellen Monitor erfahre ich, dass das MP3 Player Modul “unable” ist und dass ich Verbindungen überprüfen soll und die micro SD Karte. Beides ist korrekt. Ist das Player Modul defekt?

ocram

ocram

hmm ich bekomme es nicht zum laufen.
ich habe es an einen nano von euch angeschlossen aber ich bekomme nur verstümmelte messages via serial . Es werden keine MP3 gefunden. hat jemand vielleicht eine Idee was ich falsch mache?

azdeliver

azdeliver

Wenn es möglich ist, nach dem Programmieren den CHIP alleine zu verwenden, dann würde ich mehrere Kaufen wollen. Ansonsten macht das keinen Sinn mit dem großen Arduinoboard dazu. VG

Matthias Zeller

Matthias Zeller

Sehr gut beschrieben.
Alles hat auf Anhieb geklappt.
Vielen Dank :-)

Gastleser

Gastleser

Interessant. :) Kann ich auch einen Lautsprecher mit 4 Ohm verwenden? Muss ich da etwas beachten?

Gonzo

Gonzo

warum spielt der Player immer nur einen titel ab

tbretz

tbretz

@Veit
Hallo,
mit dem “DFRobotDFPlayerMini.h” bekomme ich das Modul auch nicht zum laufen.

Bei mir läuft es nur mit dem “DFMiniMp3.h” “DFPlayer Mini Mp3 by Makuna”

Veit

Veit

Haben sie das Modul schon mal mit dem ESP32 getestet?
Ich habe dazu das hier gefunden:
https://github.com/pcbreflux/espressif/blob/master/esp32/arduino/sketchbook/ESP32_DFPlayer_full/ESP32_DFPlayer_full.ino

Allerdings kommt bei mir immer die Ausgabe: “Please recheck the connection”

Leave a comment

All comments are moderated before being published

Recommended blog posts

  1. Install ESP32 now from the board manager
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP programming via WLAN