Manual

do

Maker

.

com

Como utilizar o DFPlayer com Arduino, ESP8266, ESP32 etc

Como utilizar o DFPlayer com Arduino, ESP8266, ESP32 etc

Já escrevi um artigo sobre o DFPlayer utilizando-o em modo standalone, de modo que ele seja independente de qualquer MCU. Fiz um projeto de uma imagem que reza o terço para um cliente e o hardware haveria de ser o mais simples possível.

DFPlayer com Arduino

Atualmente me deparei com outro projeto onde preciso tocar áudio MP3 - dessa vez, o som do relógio cuco, cujo projeto (longo) está próximo de ser concluído.

cuco-28-09-225x300.webp

Para evitar um artigo que pareça o livro do "Senhor dos Anéis", estou escrevendo artigos sobre cada componente do relógio, para citá-los posteriormente no artigo do relógio cuco.  Por exemplo:

Controle de LED RGB com PCA9685

Os LEDs que controlarão a iluminação conforme a luz do dia são controlados de forma similar a esse artigo.

Como pegar a hora da Internet com ESP32

Para ajustar as cores conforme a hora do dia, pego a hora do dia periodicamente através de um servidor NTP, assim dispenso o uso de um RTC.

Duas seriais no ESP32

Nesse artigo incluí 2 importantes ítens. Uma das seriais é necessária para o DFPlayer e o motor de passo é o que move a engrenagem dos segundos do relógio cuco.

A biblioteca é compatível com todos os citados no título e o funcionamento é o mesmo. A diferença no ESP32 é que invés de colocar no loop, eu executo o áudio de dentro de uma task que dorme com intervalos regulares de 5 minutos. Tem vários detalhes importantes no código do relógio, será um artigo bastante informativo.

Primeiramente, instale a biblioteca na IDE do Arduino através do menu Sketch > Bibliotecas > Gerenciar bibliotecas. Se estiver usando Atom com PlatformIO, vá à aba PlatformIO Home e clique em **Libraries.**A biblioteca se chama DFRobotDFPlayerMini, não tem novidades.

Wiring

Se quiser ver como utilizar o DFPlayer em modo standalone, recomendo esse artigo. O Wiring é simples, basta seguir o pinout:

dfplayer-pinout-300x170.webp

Coloque VIN da controladora ao VCC do DFPlayer, GND ao GND. Já está feita a alimentação.

Para utilizar a Serial, no Mega você pode escolher uma das 3 disponíveis por hardware. No Leonardo tem duas seriais. Se tiver dúvidas, siga esse artigo, na parte relacionada ao wiring. Se for UNO ou digispark, ou qualquer controladora que tenha apenas 1 serial, você pode seguir as instruções desse artigo.

A conexão serial é simples, TX vai ao RX e vice-versa.

O speaker vai aos pinos SPL_1 e SPK_2. Pronto, está feito o Wiring. Revisando:

  • VCC
  • GND
  • TX
  • RX
  • SPK_1
  • SPK_2

Código para DFPlayer

O código é bastante simples, você pode abrir o exemploda própria biblioteca.

Em um sketch padrão do Arduino, você pode fazer algo como:

#include "DFRobotDFPlayerMini.h"

//cria o objeto
DFRobotDFPlayerMini myDFPlayer;

void setup(){
    Serial1.begin(9600); //TEM que ser 9600 a serial do DFPlayer
    if (!myDFPlayer.begin(Serial1)) {  //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!"));

     //Morre aqui, se não conseguir iniciar o módulo.
     while(true){
      delay(0); // Code to compatible with ESP8266 watch dog.
    }

    //Volume vai de 0 a 30
    myDFPlayer.volume(10);
   //Toca o 1.mp3
    myDFPlayer.play(1);
   //Se quiser tocar o mp3 de dentro de uma pasta:
   myDFPlayer.playFolder(1);

}

void loop(){
    ...
}

Daí tem todos os comandos como next, previous, replay, surffle etc. Você pode dar uma conferida na lista de comandos no site da DFRobot.

SDCard

Tenha-o formatado em FAT32. Podemos ter os arquivos soltos na raiz ou então separados por pastas, até 256 níveis. A amostragem de áudio é boa e o dispositivo responde muito bem aos comandos. Recomendo um cartão micro SD pequeno, como 8GB.

Quando o video estiver pronto, coloco no nosso canal DobitAoByteBrasil no Youtube.

Onde comprar

Esse módulo é do nosso parceiro Curto, recomendo a compra pelo preço e agilidade, além de ele ter esse speaker de 0.5W 8r, que é o ideal para um som de qualidade!

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.