ESP32 S3 - Bewegungssensor - Piezo-Summer
Dieses Tutorial zeigt Ihnen, wie Sie einen HC-SR501-Bewegungssensor und einen Piezo-Summer an eine ESP32 S3-Platine anschließen und sie so programmieren, dass sie mit einem Ton auf Bewegung reagiert. Sie bauen zwei praktische Projekte: eines, das bei erkannter Bewegung einen einfachen Ton abspielt, und ein weiteres, das eine vollständige Melodie abspielt, die durch Bewegung ausgelöst wird.
Was Sie bauen werden:
- Einen einfachen, bewegungsgesteuerten Tonalarm mit dem ESP32 S3 und dem HC-SR501-Sensor
- Einen bewegungsgesteuerten Melodie-Player mit einem passiven Piezo-Summer
- Automatisches Stoppen des Tons, wenn keine Bewegung erkannt wird
- Eine Grundlage für praxistaugliche Sicherheits- und Benachrichtigungssysteme
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
| 1 | × | DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten) | |
| 1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Überblick über Piezo Buzzer and Motion Sensor
Der HC-SR501 ist ein passiver Infrarot-Bewegungssensor (PIR), der Bewegungen erkennt, indem er die Infrarotstrahlung misst, die von warmen Körpern wie Menschen oder Tieren ausgeht. Der Piezo-Summer wandelt elektrische Signale in hörbare Töne um und ist damit ein ideales Ausgabegerät für bewegungsgesteuerte Warnungen. Zusammen bilden diese beiden Komponenten den Kern vieler praktischer Sicherheits- und Benachrichtigungssysteme.
Wir haben spezielle Tutorials zum Piezo-Summer und zum Bewegungssensor. Jedes Tutorial enthält ausführliche Informationen und Schritt-für-Schritt-Anleitungen zur Pinbelegung der Hardware, zum Funktionsprinzip, zur Verdrahtung mit dem ESP32 S3 und zum ESP32 S3-Code. Mehr dazu erfahren Sie unter den folgenden Links:
Wichtige Spezifikationen
- Betriebsspannung des HC-SR501: 5V–20V DC
- Erkennungsbereich des HC-SR501: bis zu 7 Meter (einstellbar)
- Erkennungswinkel des HC-SR501: bis zu 120°
- Spannung des aktiven Piezo-Summers: 3–24V DC
- Passiver Piezo-Summer: benötigt ein PWM-Signal, um Töne und Melodien zu erzeugen
Bitte beachten Sie, dass dieses Tutorial einen 3–5V-Summer verwendet, Sie es aber für einen 12V-Summer anpassen können. Mehr über die Auswahl an Summern erfahren Sie im ESP32 S3 - Summer Tutorial.
Verdrahtungsdiagramm
Verbinden Sie den HC-SR501-Bewegungssensor und den Piezo-Summer gemäß den folgenden Diagrammen mit Ihrem ESP32 S3 und achten Sie bei beiden Komponenten auf die richtige Polarität.
Das Verdrahtungsdiagramm mit Stromversorgung über USB-Kabel

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Modulkabel und dicke Kabel sitzen oft nicht gut in den Buchsenleisten. Ein Schraubklemmen-Board für ESP32 S3 löst dieses Problem. Stecken Sie den ESP32 S3 darauf und schrauben Sie die Kabel fest. So sieht es mit dem Schraubklemmen-Board aus:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Ein GPIO-Breakout-Board für ESP32 S3 geht ebenfalls. Neben den S-, 3,3V- und GND-Pins für jeden GPIO hat es zusätzliche 3,3V- und 5V-Pins:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Das Verdrahtungsdiagramm mit Stromversorgung über 5V-Netzteil

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Möchten Sie einen saubereren und sichereren Aufbau? Der ESP32 S3 passt auf ein Schraubklemmen-Board für ESP32 S3, das jeden Pin zu einer Schraubklemme macht. Die Pins ändern sich nicht. Schließen Sie jedes Kabel einfach an die passende Schraubklemme an:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sie können auch ein GPIO-Breakout-Board für ESP32 S3 verwenden. Jeder GPIO hat eigene S-, 3,3V- und GND-Pins, sodass die Modulkabel direkt aufgesteckt werden:

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Sicherheitshinweise
Der Sensor HC-SR501 benötigt 5V–20V an seinem VCC-Pin, während die GPIO-Pins des ESP32 S3 mit 3,3-V-Logikpegeln arbeiten. Das Ausgangssignal des Sensors beträgt typischerweise 3,3 V und ist damit mit den Eingängen des ESP32 S3 kompatibel. Überprüfen Sie immer, dass der Pluspol des Summers mit dem vorgesehenen GPIO-Pin und der Minuspol mit GND verbunden ist, um eine Verpolung zu vermeiden.
Grundeinstellung
| Einsteller für Erkennungsbereich | Drehen Sie ihn vollständig im Uhrzeigersinn. |
| Einsteller für Verzögerungszeit | Drehen Sie ihn vollständig gegen den Uhrzeigersinn. |
| Wahlschalter für wiederholte Auslösung | Setzen Sie den Jumper wie im folgenden Bild. |

ESP32 S3-Code - Einfacher Ton
Der folgende Code programmiert den ESP32 S3 so, dass er den HC-SR501-Bewegungssensor überwacht und den Piezo-Summer sofort aktiviert, sobald eine Bewegung erkannt wird. Ist keine Bewegung vorhanden, bleibt der Summer still. So entsteht ein einfaches akustisches Warnsystem. Laden Sie diesen Sketch auf Ihren ESP32 S3 hoch und testen Sie ihn, indem Sie Ihre Hand vor dem Sensor bewegen.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Führen Sie die Verdrahtung wie im obigen Diagramm gezeigt durch.
- Verbinden Sie die ESP32 S3-Platine über ein USB-Typ-C-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie die richtige ESP32 S3-Platine und den COM-Port aus.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Kompilieren Sie den Code und laden Sie ihn auf die ESP32 S3-Platine hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
- Bewegen Sie Ihre Hand vor dem Sensor.
- Hören Sie auf den Ton des Piezo-Summers.
- Profi-Tipp: Stellen Sie die Potentiometer für Empfindlichkeit und Verzögerung am HC-SR501 ein, um den Erkennungsbereich und die Dauer, die der Summer nach dem Ende der Bewegung ertönt, genau abzustimmen.
Zeilenweise Code-Erklärung
Der obige ESP32 S3-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
ESP32 S3-Code - Melodie
Der folgende Code erweitert das Projekt, indem er eine vollständige Melodie über einen passiven Piezo-Summer abspielt, sobald der HC-SR501 eine Bewegung erkennt. Dieser Ansatz nutzt die PWM-Frequenzsteuerung, um einzelne Musiknoten zu erzeugen, und die Wiedergabe stoppt automatisch, wenn keine Bewegung erkannt wird. Folgen Sie den nachstehenden Schritten, um die Header-Datei für die Tonhöhen einzurichten, die dieser Sketch benötigt.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Erstellen Sie die Datei pitches.h in der Arduino IDE wie folgt:
- Klicken Sie entweder auf die Schaltfläche direkt unter dem Symbol des Seriellen Monitors und wählen Sie New Tab, oder verwenden Sie die Tasten Ctrl+Shift+N.

- Geben Sie der Datei den Namen pitches.h und klicken Sie auf die Schaltfläche OK.

- Kopieren Sie den folgenden Code und fügen Sie ihn in die erstellte Datei pitches.h ein.
- Kompilieren Sie den Code und laden Sie ihn auf die ESP32 S3-Platine hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
- Bewegen Sie Ihre Hand vor dem Sensor.
- Hören Sie auf die Melodie des Piezo-Summers.
- Profi-Tipp: Ersetzen Sie das Melodie-Array im Sketch durch Ihre eigene Notenfolge, um die Warnmelodie zu personalisieren.
Zeilenweise Code-Erklärung
Der obige ESP32 S3-Code enthält eine zeilenweise Erklärung. Bitte lesen Sie die Kommentare im Code!
※ Notiz:
Der obige Code verwendet die Funktion delay(). Diese blockiert anderen Code während der Melodiewiedergabe. Um das Blockieren von anderem Code zu vermeiden, verwenden Sie stattdessen die Bibliothek ezBuzzer. Diese Bibliothek ist dafür ausgelegt, dass der Summer piept oder eine Melodie abspielt, ohne anderen Code zu blockieren.
Ausgabe im Seriellen Monitor
Öffnen Sie nach dem Hochladen des Codes den Seriellen Monitor in der Arduino IDE (Baudrate auf 9600 einstellen). Sie sollten eine Ausgabe ähnlich den folgenden Werten sehen, wobei die Zeitstempel die Momente wiedergeben, in denen eine Bewegung erkannt wird und wieder endet.
Anwendungen
Mit dem ESP32 S3 gebaute bewegungsgesteuerte Summersysteme sind praktische und vielseitige Komponenten für eine Vielzahl realer Projekte im Haushalt, im Büro und in der Industrie.
- Heimsicherheitsalarm: Lösen Sie einen Alarm aus, wenn ein Eindringling einen Raum oder gesperrten Bereich betritt.
- Türklingelsystem: Piepen Sie automatisch, wenn sich jemand einer Tür oder einem Eingang nähert.
- Kindersicherheits-Monitor: Warnen Sie Eltern, wenn ein Kind einen gefährlichen Bereich wie eine Treppe oder den Poolbereich betritt.
- Kundenbegrüßung im Einzelhandel: Spielen Sie einen Begrüßungston ab, wenn ein Kunde ein Geschäft betritt.
- Wildtiererkennung: Lösen Sie einen Summer aus, wenn sich Tiere einem Garten oder geschützten Bereich nähern.
- Belegungsanzeige im Büro: Geben Sie eine Warnung aus, wenn jemand einen unbesetzten Besprechungsraum betritt.
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.
Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.
Herausforderungen
Diese Herausforderungen sollen Ihr Verständnis des ESP32 S3, der Bewegungserkennung und der Summersteuerung über die in diesem Tutorial vorgestellten Grundlagen hinaus erweitern.
- Einsteiger: Ändern Sie den Code so, dass der Summer bei erkannter Bewegung dreimal piept (kurze Impulse), anstatt dauerhaft zu ertönen.
- Fortgeschritten: Fügen Sie neben dem Summer eine LED-Anzeige hinzu, sodass Licht und Ton bei erkannter Bewegung gemeinsam aktiviert werden und beide ausgehen, wenn die Bewegung endet.
- Experte: Implementieren Sie mithilfe der internen Uhr des ESP32 S3 eine zeitbasierte Stummschaltung, sodass der Summer während der Nachtstunden (z. B. 22 Uhr bis 7 Uhr) deaktiviert ist, auch wenn eine Bewegung erkannt wird.