Olá, como estão? A princípio hoje iremos fazer um anunciador de presença com o microcontrolador Arduino UNO, sensor de presença PIR HC-SR501 e modulo mp3 DFR0299 (MP3-TF-16P).
Componentes Utilizados
Funcionamento do Projeto Anunciador de Presença com Arduíno
Nós iremos desenvolver um anunciador de presença para que quando entre alguém aqui na loja ele toque um áudio. Por exemplo “Olá seja muito bem-vindo, a WJ Componentes Eletrônicos”.
Montagem do Circuito do Projeto Anunciador de Presença com Arduíno
Logo após a compra dos componentes na WJ Componentes, vamos à montagem! Então para realizar essa montagem iremos nos basear no post anterior que abordamos mais profundamente referente ao modulo DFR0299, clique aqui para acessar o post.
Em seguida sobre o sensor PIR HC-SR501 a pinagem dele é simples. Contudo o primeiro pino VCC (5 ~ 12V) o segundo saída digital e por final o terceiro é GND. Então para ele também não é preciso a utilização de nenhum tipo de biblioteca específica. Logo após, agora que sabemos a pinagem e tensão dele, podemos começar a montagem do circuito. Então para isso ligamos a saída digital do HC-SR501 no pino 7 do Arduíno. Em seguida o modulo DFR0299 ligamos o RX no pino 11 do Arduino e o TX no pino 10. Então segue abaixo uma imagem do circuito.
Contudo para o áudio você pode gravar você mesmo falando ou utilizar um site que pega o texto e gera um áudio. Por exemplo um deles é o Soar que foi que utilizamos nesse projeto.
Código-fonte do Projeto Anunciador de Presença com Arduíno
Em seguida segue abaixo o código-fonte completo do projeto.
//Bibliotecas ----------------------------------------------------------------------------------------
#include "SoftwareSerial.h" // Biblioteca para Serial
#include "DFRobotDFPlayerMini.h" // Biblioteca MP3-TF-16P
//Definições -----------------------------------------------------------------------------------------
#define pinRX 10 // Define pino do RX
#define pinTX 11 // Define pino do TX
#define pir 7 // Define pino do Sensor PIR
//Declaração de Objetos ------------------------------------------------------------------------------
SoftwareSerial mp3_playerSerial(pinRX, pinTX); // Criar o objeto Software Serial
DFRobotDFPlayerMini mp3_player; // Criar objeto do MP3-TF16P
//Setup ----------------------------------------------------------------------------------------------
void setup(){
Serial.begin(9600); // Inicializa o Serial
pinMode(pir, INPUT); // Configura pino pir como INPUT
//MP3-TF-16P
mp3_playerSerial.begin(9600); // Inicia o Serial do Software Serial
if (!mp3_player.begin(mp3_playerSerial)) { // Comunicação realizada pelo Software Serial
Serial.println("Falha ao iniciar:"); // Imprime na Serial
Serial.println("1.Confira as conexões!"); // Imprime na Serial
Serial.println("2.Confira o cartão SD!"); // Imprime na Serial
while(true){} // Loop Infinito
}
Serial.println("DFPlayer ligado!"); // Imprime na Serial
delay(100); // Espera 0,1s
Serial.print("Numero de arquivos no cartão SD: ");
Serial.println(mp3_player.readFileCounts()); // Conta quantos arquivos tem no SD
mp3_player.setTimeOut(500); // Timeout serial 500ms
mp3_player.play(1); // Coloca musica um na linha de reprodução
}
//Loop -----------------------------------------------------------------------------------------------
void loop(){
if(digitalRead(pir) == HIGH){ // Verifica se o pino pir esta ligado
mp3_player.start(); // Se tiver inicia a música
delay(10000); // Espera 10s
}
else{
mp3_player.stop(); // Se não para a música
}
}
Vamos dar uma olhada mais de perto no código:
Incluindo Bibliotecas
Primeiramente temos que incluir as bibliotecas que iremos utilizar em nosso projeto.
//Bibliotecas ----------------------------------------------------------------------------------------
#include "SoftwareSerial.h" // Biblioteca para Serial
#include "DFRobotDFPlayerMini.h" // Biblioteca MP3-TF-16P
Definição de Pinos
Em seguida definimos os pinRX e pinTX.
//Definições -----------------------------------------------------------------------------------------
#define pinRX 10 // Define pino do RX
#define pinTX 11 // Define pino do TX
Declaração de Objetos
Então declaramos 2 variável global, sendo elas cont e pause.
//Declaração de Objetos ------------------------------------------------------------------------------
SoftwareSerial mp3_playerSerial(pinRX, pinTX); // Criar o objeto Software Serial
DFRobotDFPlayerMini mp3_player; // Criar objeto do MP3-TF16P
Funções Setup
Logo após vamos para a função setup iniciamos o serial e o modulo MP3, com a primeira música que será nosso áudio que irá ser reproduzido
//Setup ----------------------------------------------------------------------------------------------
void setup(){
Serial.begin(9600); // Inicializa o Serial
pinMode(pir, INPUT); // Configura pino pir como INPUT
//MP3-TF-16P
mp3_playerSerial.begin(9600); // Inicia o Serial do Software Serial
if (!mp3_player.begin(mp3_playerSerial)) { // Comunicação realizada pelo Software Serial
Serial.println("Falha ao iniciar:"); // Imprime na Serial
Serial.println("1.Confira as conexões!"); // Imprime na Serial
Serial.println("2.Confira o cartão SD!"); // Imprime na Serial
while(true){} // Loop Infinito
}
Serial.println("DFPlayer ligado!"); // Imprime na Serial
delay(100); // Espera 0,1s
Serial.print("Numero de arquivos no cartão SD: ");
Serial.println(mp3_player.readFileCounts()); // Conta quantos arquivos tem no SD
mp3_player.setTimeOut(500); // Timeout serial 500ms
mp3_player.play(1); // Coloca musica um na linha de reprodução
}
Funções Loop
Em seguida agora na função loop, será onde iremos verificar se o sensor de presença detectou algo ou não. Entretanto caso tenha iremos reproduzir nosso áudio após isso ele esperara 10 segundos.
//Loop -----------------------------------------------------------------------------------------------
void loop(){
if(digitalRead(pir) == HIGH){ // Verifica se o pino pir esta ligado
mp3_player.start(); // Se tiver inicia a música
delay(10000); // Espera 10s
}
else{
mp3_player.stop(); // Se não para a música
}
}
E assim encerramos o projeto Arduíno com MP3.
Agradecemos sua Presença
Por fim, espero que tenham gostado e aprendido. Compartilhe com seus colegas e deixe um comentário de qual projeto deveria ser o próximo aqui no Blog da WJ Componentes!!
Enfim estarei deixando os arquivos do código-fonte e Fritzing, software e sites utilizados e deixarei também o GitHub da biblioteca utilizada.
Fique à vontade para tirar suas dúvidas nos comentários.
Software e Sites Utilizados
GitHub das Bibliotecas Utilizadas
Post Relacionados
Posts mais Recentes
- Programando Relé RF 4331 -Instruções de emparelhamento do modo de alternância Modo de… Leia mais: Programando Relé RF 433
- Acionando motor DC por meio do pino “Touch” do ESP-32Neste projeto, vamos explorar uma aplicação ainda mais dinâmica e… Leia mais: Acionando motor DC por meio do pino “Touch” do ESP-32
- Acendendo led RGB por meio do pino “Touch” do ESP-32No último post, exploramos o fascinante mundo dos pinos touch… Leia mais: Acendendo led RGB por meio do pino “Touch” do ESP-32
- Utilizando os Pinos touch do ESP32Nesse projeto Vamos aprender a usar os pinos touch´s do… Leia mais: Utilizando os Pinos touch do ESP32
- Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduinoeste guia, vou levá-lo através dos passos para programar uma… Leia mais: Como Programar e Localizar o Endereço de uma Tela OLED I2C com Arduino
Julio Cesar Bonow Manoel
Cursando Engenharia da Computação pelo Centro Universitário Facens e atua no desenvolvimento de projetos na WJ Componentes. Participante da equipe de robótica Omegabotz.
Deixe um comentário