Arduino - Bewegingssensor - MP3 Speler

In deze handleiding gaan we aan de slag met Arduino, een HC-SR501 bewegingssensor en een MP3 speler om bij het detecteren van beweging een opgenomen audiobestand af te spelen. Dit project is veelzijdig en kan worden aangepast voor toepassingen zoals het automatisch afspelen van opgenomen instructies of waarschuwingen zodra een menselijke aanwezigheid wordt gedetecteerd.

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×HC-SR501 Bewegingssensor
1×Seriële MP3 Speler Module
1×Micro SD Kaart
1×3,5 mm Aux Luidspreker
1×Jumper Draden
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over MP3 Speler en Bewegingssensor

Als u niet bekend bent met MP3 speler en bewegingssensor (pinout, werking, programmeren, enz.), leer er meer over in de volgende tutorials:

Aansluitschema

Arduino Bewegingssensor MP3 Speler Aansluitschema

This image is created using Fritzing. Click to enlarge image

Bewegingssensor Begininstellingen

Time Delay Adjuster Draai de schroef volledig tegen de klok in.
Detection Range Adjuster Draai de schroef volledig met de klok mee.
Repeat Trigger Selector Plaats de jumper zoals te zien op de afbeelding.
arduino motion sensor initial setting

Voorbereiding

  • Sla het opgenomen mp3-bestand dat u wilt afspelen vooraf op de micro SD-kaart op.
  • Plaats de micro SD-kaart in de MP3 speler module.
  • Verbind de MP3 speler module met de Arduino.
  • Verbind de luidspreker met de MP3 speler module.
  • Sluit de luidspreker aan op een voedingsbron.
  • Verbind de bewegingssensor met de Arduino.

Arduino Code - Bewegingssensor bestuurt MP3 Speler

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/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]); } }

Snelle Stappen

  • Verbind de Arduino via USB-kabel met uw pc
  • Open de Arduino IDE en selecteer het juiste bord en de juiste poort
  • Kopieer de bovenstaande code en open deze met de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
  • Beweeg uw hand voor de sensor
  • Luister naar het geluid van de MP3 speler

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Reacties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!