Arduino - Sensor de Movimento - MP3 Player
Neste tutorial, vamos explorar o uso do Arduino, de um sensor de movimento HC-SR501 e de um MP3 player para iniciar a reprodução de um arquivo de áudio gravado ao detectar movimento. Este projeto é versátil e pode ser adaptado para aplicações como reproduzir automaticamente instruções ou avisos de áudio gravados sempre que a presença de uma pessoa for detectada.
Hardware Necessário
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | |
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgação: Alguns dos links desta seção são links de afiliado da Amazon. Podemos receber uma comissão pelas compras feitas por meio desses links, sem custo adicional para você. Agradecemos o seu apoio.
Sobre MP3 Player e Sensor de Movimento
Se você ainda não conhece o MP3 player e o sensor de movimento (pinagem, como funcionam, como programar ...), aprenda sobre eles nos seguintes tutoriais:
Diagrama de Ligação

This image is created using Fritzing. Click to enlarge image
Configuração Inicial do Sensor de Movimento
| Ajuste de Tempo de Atraso | Gire-o totalmente no sentido anti-horário. |
| Ajuste de Alcance de Detecção | Gire-o totalmente no sentido horário. |
| Seletor de Disparo Repetido | Coloque o jumper como mostrado na imagem. |

Preparação
- Armazene previamente no cartão micro SD o arquivo mp3 gravado que queremos reproduzir.
- Insira o cartão micro SD no módulo MP3 player
- Conecte o módulo MP3 player ao Arduino
- Conecte o alto-falante ao módulo MP3 player a um
- Conecte o alto-falante a uma fonte de energia.
- Conecte o sensor de movimento ao Arduino.
Código Arduino - Sensor de Movimento Controla MP3 Player
/*
* Este código de Arduino foi desenvolvido por pt.newbiely.com
* Este código de Arduino é disponibilizado ao público sem nenhuma restrição.
* Para tutoriais completos e diagramas de ligação, visite:
* https://pt.newbiely.com/tutorials/arduino/arduino-motion-sensor-mp3-player
*/
#include <SoftwareSerial.h>
#include <Servo.h>
#define CMD_PLAY_NEXT 0x01
#define CMD_PLAY_PREV 0x02
#define CMD_PLAY_W_INDEX 0x03
#define CMD_SET_VOLUME 0x06
#define CMD_SEL_DEV 0x09
#define CMD_PLAY_W_VOL 0x22
#define CMD_PLAY 0x0D
#define CMD_PAUSE 0x0E
#define CMD_SINGLE_CYCLE 0x19
#define DEV_TF 0x02
#define SINGLE_CYCLE_ON 0x00
#define SINGLE_CYCLE_OFF 0x01
#define ARDUINO_RX 7 // Arduino Pin connected to the TX of the Serial MP3 Player module
#define ARDUINO_TX 6 // Arduino Pin connected to the RX of the Serial MP3 Player module
#define MOTION_SENSOR_PIN 2 // Arduino pin connected to motion sensor's pin
SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX);
int prev_motion_state; // the previous state of motion sensor
int motion_state; // the current state of motion sensor
void setup() {
Serial.begin(9600);
mp3.begin(9600);
delay(500); // wait chip initialization is complete
mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card
delay(200); // wait for 200ms
pinMode(MOTION_SENSOR_PIN, INPUT); // set arduino pin to input mode
motion_state = digitalRead(MOTION_SENSOR_PIN);
}
void loop() {
prev_motion_state = motion_state; // save the last state
motion_state = digitalRead(MOTION_SENSOR_PIN); // read new state
if (motion_state == LOW && prev_motion_state == HIGH) { // pin state change: LOW -> HIGH
Serial.println("Motion detected!");
mp3_command(CMD_PLAY, 0x0000); // Play the first mp3 file
}
else
if (motion_state == HIGH && prev_motion_state == LOW) { // pin state change: HIGH -> LOW
Serial.println("Motion stopped!");
}
}
void mp3_command(int8_t command, int16_t dat) {
int8_t frame[8] = { 0 };
frame[0] = 0x7e; // starting byte
frame[1] = 0xff; // version
frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte
frame[3] = command; //
frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback
frame[5] = (int8_t)(dat >> 8); // data high byte
frame[6] = (int8_t)(dat); // data low byte
frame[7] = 0xef; // ending byte
for (uint8_t i = 0; i < 8; i++) {
mp3.write(frame[i]);
}
}
Passos Rápidos
- Conecte o Arduino ao PC via cabo USB
- Abra o Arduino IDE, selecione a placa e a porta corretas
- Copie o código acima e abra-o no Arduino IDE
- Clique no botão Upload no Arduino IDE para carregar o código no Arduino
- Mova sua mão na frente do sensor
- Ouça o áudio do MP3 player