ESP32 - MP3-Player mit Bewegungssensor

In diesem Leitfaden werden wir untersuchen, wie man den ESP32, einen HC-SR501-Bewegungssensor und einen MP3-Player verwendet, um die Wiedergabe einer voraufgenommenen Audiodatei zu starten, wenn Bewegung erkannt wird. Dieses Projekt bietet Vielseitigkeit und kann für verschiedene Anwendungen angepasst werden, z. B. durch automatisierte Audioanweisungen oder Warnungen, wann immer menschliche Präsenz erkannt wird.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×HC-SR501 Bewegungssensor
1×Serieller MP3-Player-Modul
1×Micro-SD-Karte
1×3.5mm Aux-Lautsprecher
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über MP3-Player und Bewegungssensor

Sind Sie mit MP3-Playern und Bewegungsensoren, einschließlich ihrer Pinbelegungen, Funktionalität und Programmierung, nicht vertraut? Entdecken Sie unten umfassende Tutorials zu diesen Themen:

Verdrahtungsdiagramm

ESP32 Bewegungsensor MP3-Player Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

Vorbereitung

  • Speichern Sie vorab die aufgezeichnete MP3-Datei, die wir abspielen möchten, auf der Micro-SD-Karte.
  • Stecken Sie die Micro-SD-Karte in das MP3-Player-Modul.
  • Schließen Sie das MP3-Player-Modul an den ESP32 an.
  • Schließen Sie den Lautsprecher an das MP3-Player-Modul an.
  • Schließen Sie den Lautsprecher an eine Stromquelle an.
  • Schließen Sie den Bewegungssensor an den ESP32 an.
  • Nehmen Sie die Einstellungen für den Bewegungssensor gemäß der untenstehenden Tabelle vor.
Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
ESP32 Bewegungssensor Initialeinstellung

ESP32-Code - Bewegungssensor steuert MP3-Player

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/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]); } }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet an.
  • Verkabeln Sie die Verdrahtung wie im obigen Bild.
  • Schließen Sie das ESP32-Board über ein Micro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Verbinden Sie den ESP32 mit dem PC über ein USB-Kabel.
  • Öffnen Sie die Arduino-IDE, wählen Sie das richtige Board und den Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Schaltfläche Upload, um den Code auf den ESP32 hochzuladen.
  • Bewegen Sie Ihre Hand vor dem Sensor.
  • Hören Sie die Audioausgabe des MP3-Players.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!