ESP32 - Bewegingssensor MP3-speler

In deze handleiding verkennen we hoe u de ESP32 samen met een HC-SR501 bewegingssensor en een MP3-speler gebruikt om de afspelen van een vooraf opgenomen audiobestand te starten zodra beweging wordt gedetecteerd. Dit project is veelzijdig en kan worden aangepast voor diverse toepassingen, zoals het automatisch afspelen van audio-instructies of waarschuwingen bij detectie van menselijke aanwezigheid.

Over MP3-speler en Bewegingssensor

Bent u niet vertrouwd met MP3-spelers en bewegingssensoren, inclusief hun pinout, functionaliteit en programmering? Ontdek uitgebreide tutorials over deze onderwerpen hieronder:

Aansluitschema

ESP32 Bewegingssensor MP3-speler Aansluitschema

This image is created using Fritzing. Click to enlarge image

Als u niet weet hoe u ESP32 en andere componenten van stroom moet voorzien, vindt u instructies in de volgende tutorial: Hoe ESP32 van stroom te voorzien.

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 ESP32.
  • Verbind de speaker met de MP3-speler module.
  • Verbind de speaker met een voedingsbron.
  • Sluit de bewegingssensor aan op de ESP32.
  • Stel de bewegingssensor in volgens onderstaande tabel
Time Delay Adjuster Draai deze volledig tegen de klok in.
Detection Range Adjuster Draai deze volledig met de klok mee.
Repeat Trigger Selector Plaats de jumper zoals afgebeeld in de afbeelding.
esp32 bewegingssensor initiële instelling

ESP32 Code - Bewegingssensor bestuurt MP3-speler

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-motion-sensor-mp3-player */ #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 MOTION_SENSOR_PIN 21 // The ESP32 pin GPIO21 connected to motion sensor's pin int prev_motion_state; // the previous state of motion sensor int motion_state; // the current state of motion sensor void setup() { Serial.begin(9600); Serial2.begin(9600, SERIAL_8N1, 16, 17); 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++) { Serial2.write(frame[i]); } }

Snelle Stappen

  • Als dit uw eerste keer is dat u de ESP32 gebruikt, zie hoe de omgeving in te stellen voor ESP32 in Arduino IDE.
  • Maak de bedrading zoals in bovenstaande afbeelding.
  • Verbind het ESP32-bord met uw PC via een micro USB-kabel.
  • Open Arduino IDE op uw PC.
  • Selecteer het juiste ESP32-bord (bijv. ESP32 Dev Module) en de COM-poort.
  • Verbind ESP32 met PC via USB-kabel.
  • Open Arduino IDE, selecteer het juiste bord en poort.
  • Kopieer de bovenstaande code en open deze in Arduino IDE.
  • Klik op de Upload-knop in Arduino IDE om de code naar ESP32 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.

※ 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!