ESP8266 - Bewegungssensor MP3-Player

Diese Anleitung zeigt Ihnen, wie Sie den ESP8266, einen HC-SR501-Bewegungssensor und einen MP3-Player verwenden, um die Wiedergabe einer aufgenommenen Audiodatei auszulösen, sobald Bewegung erkannt wird. Dieses Projekt ist vielseitig und kann für Anwendungen angepasst werden, z. B. um automatisch aufgezeichnete Audiodateien mit Anweisungen oder Warnungen abzuspielen, sobald eine menschliche Präsenz erkannt wird.

Erforderliche Hardware

1×ESP8266 NodeMCU
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 ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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

Wenn Sie nichts über MP3-Player und Bewegungssensoren wissen (Pinbelegung, wie sie funktionieren, wie man sie programmiert ...), informieren Sie sich in den folgenden Tutorials darüber:

Verdrahtungsdiagramm

ESP8266 NodeMCU-Bewegungssensor MP3-Player-Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Vorbereitung

  • Speichern Sie vorab die aufgezeichnete MP3-Datei, die wir abspielen möchten, auf der microSD-Karte.
  • Stecken Sie die microSD-Karte in das MP3-Player-Modul.
  • Verbinden Sie das MP3-Player-Modul mit dem ESP8266.
  • Schließen Sie den Lautsprecher an das MP3-Player-Modul an.
  • Schließen Sie den Lautsprecher an eine Stromquelle an.
  • Verbinden Sie den Bewegungsmelder mit dem ESP8266.
  • Stellen Sie die Einstellungen für den Bewegungsmelder gemäß der untenstehenden Tabelle ein.
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.
ESP8266 NodeMCU-Bewegungssensor Ersteinrichtung

ESP8266-Code - Bewegungssensor steuert MP3-Player

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-motion-sensor-mp3-player */ #include <SoftwareSerial.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 ESP8266_RX D5 // The ESP8266 pin connected to the TX of the Serial MP3 Player module #define ESP8266_TX D6 // The ESP8266 pin connected to the RX of the Serial MP3 Player module #define MOTION_SENSOR_PIN D2 // The ESP8266 pin connected to motion sensor's pin SoftwareSerial mp3(ESP8266_RX, ESP8266_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]); } }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schauen Sie sich das Tutorial Anleitung zur Einrichtung der ESP8266-Umgebung in der Arduino IDE an, wenn Sie ESP8266 zum ersten Mal verwenden.
  • Schließen Sie die Bauteile wie im Diagramm gezeigt an.
  • Verbinden Sie das ESP8266-Board über ein USB-Kabel an Ihren Computer.
  • Öffnen Sie die Arduino IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Modul), und den jeweiligen COM-Port.
  • Verbinden Sie den ESP8266 über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino IDE, wählen Sie das richtige Board und den Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Upload-Schaltfläche in der Arduino IDE, um den Code auf den ESP8266 hochzuladen.
  • Bewegen Sie Ihre Hand vor dem Sensor.
  • Spielen Sie den Ton vom MP3-Player ab.

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!