Manual
do
Maker
.
com
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.
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.
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.
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.
Se quiser ver como utilizar o DFPlayer em modo standalone, recomendo esse artigo. O Wiring é simples, basta seguir o pinout:
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:
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.
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.
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!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.