Anunciador de Presença com Arduíno

,

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).

DFR0299 (MP3-TF-16P) - WJ Componentes
Arduíno UNO
Sensor de Presença HC-SR501 - WJ Componentes

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.

Pinout Sensor de Presença HC-SR501 - WJ Componentes 2

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.

Montagem do Circuito Eletrônico na Protoboard - Anunciador de Presença com Arduíno

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.

Site que transforma texto em áudio - Anunciador de Presença com Arduíno

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

    Julio Cesar Bonow Manoel

    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

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *