Arduino - Capteur de Mouvement - Lecteur MP3
Dans ce tutoriel, nous allons explorer l'utilisation d'Arduino, d'un capteur de mouvement HC-SR501 et d'un lecteur MP3 pour déclencher la lecture d'un fichier audio enregistré lors de la détection d'un mouvement. Ce projet est polyvalent et peut être adapté pour des applications telles que la diffusion automatique d'instructions ou d'avertissements audio enregistrés dès qu'une présence humaine est détectée.
Préparation du matériel
Or you can buy the following sensor kits:
1 | × | DIYables Sensor Kit (30 sensors/displays) | |
1 | × | DIYables Sensor Kit (18 sensors/displays) |
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.
Sur le lecteur MP3 et le capteur de mouvement
Si vous ne connaissez pas le lecteur MP3 et le capteur de mouvement (brochage, fonctionnement, programmation...), renseignez-vous sur ces derniers dans les tutoriels suivants :
Diagramme de câblage
This image is created using Fritzing. Click to enlarge image
Paramétrage initial du capteur de mouvement
Time Delay Adjuster | Screw it in anti-clockwise direction fully. |
Detection Range Adjuster | Screw it in clockwise direction fully. |
Repeat Trigger Selector | Put jumper as shown on the image. |
Préparation
- Pré-enregistrez le fichier mp3 que nous voulons jouer sur la carte micro SD.
- Insérez la carte micro SD dans le module lecteur MP3.
- Connectez le module lecteur MP3 à Arduino.
- Connectez le haut-parleur au module lecteur MP3.
- Connectez le haut-parleur à une source d'alimentation.
- Connectez le capteur de mouvement à l'Arduino.
Code Arduino - Capteur de mouvement contrôle un lecteur MP3
/*
* Ce code Arduino a été développé par newbiely.fr
* Ce code Arduino est mis à disposition du public sans aucune restriction.
* Pour des instructions complètes et des schémas de câblage, veuillez visiter:
* https://newbiely.fr/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]);
}
}
Étapes rapides
- Connectez l'Arduino au PC via un câble USB
- Ouvrez l'IDE Arduino, sélectionnez la bonne carte et le bon port
- Copiez le code ci-dessus et ouvrez-le avec l'IDE Arduino
- Cliquez sur le bouton Upload dans l'IDE Arduino pour charger le code sur l'Arduino
- Déplacez votre main devant le capteur
- Écoutez l'audio du lecteur MP3