ESP32 S3 - Bewegungssensor - Servomotor

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 mit einem HC-SR501-PIR-Bewegungssensor verwenden, um einen Servomotor automatisch anhand erkannter Bewegungen zu steuern. Durch die Kombination von passiver Infrarot-Bewegungserkennung mit präziser Winkelbewegung können Sie reaktionsschnelle, anwesenheitsgesteuerte Systeme bauen, die sofort reagieren, wenn jemand den Erfassungsbereich betritt.

Was Sie bauen werden:

  1. Eine ESP32 S3-Schaltung mit einem HC-SR501-Bewegungssensor und einem Servomotor, die mit der Platine verdrahtet sind
  2. Einen Sketch, der den Ausgang des Bewegungssensors kontinuierlich an einem digitalen Pin ausliest
  3. Einen Servomotor, der sich automatisch auf 90° dreht, wenn eine Bewegung erkannt wird
  4. Einen Servomotor, der automatisch auf 0° zurückkehrt, wenn keine Bewegung erkannt wird
ESP32 S3 - Bewegungssensor - Servomotor

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
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×Servo-Motor
1×Breadboard
1×Verbindungskabel
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
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.

Kaufhinweis: Falls Sie mehrere Servomotoren verwenden möchten, empfehlen wir die Verwendung des PCA9685 16 Channel PWM Servo Driver Module, um MCU-Pins zu sparen und die Verdrahtung zu vereinfachen.

Überblick über Servo Motor and Motion Sensor

Der PIR-Bewegungssensor HC-SR501 und ein Servomotor sind eine starke Kombination für den ESP32 S3: Der Sensor erkennt Änderungen der Infrarotstrahlung, die durch sich bewegende warme Körper verursacht werden, und gibt ein sauberes digitales HIGH/LOW-Signal aus, während der Servo als direkte Reaktion auf dieses Signal eine präzise, wiederholbare Winkelbewegung ausführt. Zusammen ermöglichen sie eine große Bandbreite anwesenheitsbezogener Automatisierungsprojekte — von automatischen Türen und Sicherheitsauslösern bis hin zu Beleuchtungsarmen und Zugangsschranken.

Wichtige Spezifikationen

Wir haben spezielle Tutorials zu jeder Komponente, die die Pinbelegung der Hardware, die Funktionsprinzipien, die Verdrahtung mit dem ESP32 S3 und vollständige Codebeispiele ausführlich behandeln. Mehr dazu erfahren Sie unter den folgenden Links:

Verdrahtungsdiagramm

Verbinden Sie den HC-SR501 und den Servomotor wie im folgenden Diagramm gezeigt mit Ihrem ESP32 S3. Der HC-SR501 arbeitet mit 5 V, verbinden Sie daher seinen VCC-Pin mit der 5-V-Schiene. Stellen Sie außerdem sicher, dass auch das Stromkabel des Servomotors mit 5 V versorgt wird, um ein zuverlässiges Drehmoment zu erhalten.

Sicherheitshinweise

Servomotoren können unter Last kurzzeitig mehrere hundert Milliampere ziehen, was die USB-Versorgung des ESP32 S3 bei längerer Nutzung belasten kann. Für Tests auf dem Labortisch reicht der USB-Anschluss in der Regel aus; für jeden praktischen Einsatz sollten Sie den Servo über eine eigene externe 5-V-Stromversorgung versorgen und nur die GND-Schiene mit dem ESP32 S3 teilen. Auch der Bewegungssensor HC-SR501 benötigt 5 V an seinem VCC-Pin — ein Anschluss an 3,3 V führt zu fehlerhaften oder ausbleibenden Auslösesignalen.

ESP32 S3 Bewegungssensor Servomotor Verdrahtungsdiagramm

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

Komponente Pin ESP32 S3-Pin
Bewegungssensor VCC 5V
Bewegungssensor GND GND
Bewegungssensor OUT GPIO42
Servomotor GND (Braun/Schwarz) GND
Servomotor VCC (Rot) 5V
Servomotor Signal (Gelb/Orange) GPIO9

Jumperkabel in die Buchsenleisten zu stecken geht schnell, aber die Kabel können herausrutschen. Sie können den ESP32 S3 auf ein Schraubklemmen-Board für ESP32 S3 stecken und die Kabel an seine Schraubklemmen anschließen. So sieht es mit dem Schraubklemmen-Board aus:

ESP32 S3 Bewegungssensor Servomotor Verdrahtungsdiagramm (Screw Terminal)

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:

ESP32 S3 Bewegungssensor Servomotor Verdrahtungsdiagramm (GPIO Breakout Board)

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

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 Bewegungssensor Grundeinstellung

ESP32 S3-Code - Bewegungssensor steuert Servomotor

Der folgende Code verwendet den ESP32 S3, um den digitalen Ausgang des HC-SR501-Bewegungssensors zu lesen und erkannte Bewegungen in einen Winkel des Servomotors umzusetzen. Wenn eine Bewegung erkannt wird, weist der ESP32 S3 den Servo an, sich auf 90° zu drehen; ist keine Bewegung mehr vorhanden, kehrt der Servo auf 0° zurück. Die Bibliothek ESP32Servo übernimmt die Erzeugung des PWM-Signals für den Servo, sodass der Sketch einfach bleibt und sich leicht anpassen lässt.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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-s3/esp32-s3-motion-sensor-servo-motor */ /* * This ESP32-S3 code is created by esp32io.com * * This ESP32-S3 code is released in the public domain * * For more detail (instruction and wiring diagram), visit https://esp32io.com/tutorials/esp32-s3-motion-sensor-servo-motor */ #include <ESP32Servo.h> #define MOTION_SENSOR_PIN 42 // ESP32-S3 pin GPIO42 connected to motion sensor's pin #define SERVO_PIN 9 // ESP32-S3 pin GPIO9 connected to servo motor's pin Servo servo; // create servo object to control a servo // variables will change: int angle = 0; // the current angle of servo motor int lastMotionState; // the previous state of motion sensor int currentMotionState; // the current state of motion sensor void setup() { Serial.begin(9600); // initialize serial pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32-S3 pin to input mode servo.attach(SERVO_PIN); // attaches the servo on pin 9 to the servo object servo.write(angle); currentMotionState = digitalRead(MOTION_SENSOR_PIN); } void loop() { lastMotionState = currentMotionState; // save the last state currentMotionState = digitalRead(MOTION_SENSOR_PIN); // read new state if (currentMotionState == LOW && lastMotionState == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!, rotating servo motor to 90°"); servo.write(90); } else if (currentMotionState == HIGH && lastMotionState == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!, rotating servo motor to 0°"); servo.write(0); } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Komponenten verdrahten: Folgen Sie dem oben gezeigten Verdrahtungsdiagramm, um den HC-SR501-Bewegungssensor und den Servomotor mit Ihrem ESP32 S3 zu verbinden.
  3. ESP32 S3 anschließen: Verbinden Sie die Platine über ein USB-Typ-C-Kabel mit Ihrem Computer.
  4. Arduino IDE einrichten: Wenn Sie den ESP32 S3 zum ersten Mal verwenden, lesen Sie, wie Sie die Umgebung für den ESP32 S3 in der Arduino IDE einrichten.
  5. Platine auswählen: Wählen Sie in der Arduino IDE unter Tools die ESP32 S3-Platine und ihren COM-Port aus.
  6. Bibliothek ESP32Servo installieren: Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE. Geben Sie ESP32Servo in das Suchfeld ein und suchen Sie dann nach der Servo-Bibliothek von Kevin Harrington, John K. Bennett. Klicken Sie auf Install, um die Servomotor-Bibliothek für den ESP32 zu installieren.
ESP32 S3 Servomotor-Bibliothek
  1. Code hochladen: Kopieren Sie den obigen Code, fügen Sie ihn in die Arduino IDE ein und klicken Sie dann auf die Schaltfläche Upload.
Arduino IDE Code hochladen
  1. Seriellen Monitor öffnen: Öffnen Sie den Seriellen Monitor mit 9600 Baud, um den aktuellen Status der Bewegungserkennung und die Aktualisierungen des Servowinkels zu sehen.
  2. Sensor testen: Bewegen Sie Ihre Hand vor dem Bewegungssensor und beobachten Sie, wie der Servomotor auf die erkannte Bewegung reagiert.
  3. Profi-Tipp: Wenn der Servo unregelmäßig zuckt, nachdem der Sensor keine Bewegung mehr erkennt, schalten Sie einen kleinen Kondensator (100–470 µF) zwischen die Versorgungsleitungen des Servos, um Spannungsspitzen zu filtern, die beim Zurückkehren des Motors auf 0° entstehen.

Ausgabe im Seriellen Monitor

Öffnen Sie nach dem Hochladen den Seriellen Monitor mit 9600 Baud. Wenn Sie sich vor dem Sensor bewegen, sehen Sie eine Ausgabe ähnlich der folgenden:

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
2026-06-16 09:22:11 -> Motion: NOT DETECTED | Servo angle: 0° 2026-06-16 09:22:14 -> Motion: DETECTED | Servo angle: 90° 2026-06-16 09:22:17 -> Motion: DETECTED | Servo angle: 90° 2026-06-16 09:22:21 -> Motion: NOT DETECTED | Servo angle: 0°
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungsideen

Die Kombination des ESP32 S3 mit einem Bewegungssensor und einem Servomotor eröffnet eine breite Palette anwesenheitsgesteuerter Aktorprojekte in den Bereichen Hausautomatisierung, Sicherheit und Robotik. Hier sind einige praktische Ideen für den Einstieg:

  1. Automatische Tür oder automatisches Tor: Öffnen Sie mit dem Servo eine Schranke, wenn eine Person im Erfassungsbereich erkannt wird, und schließen Sie sie automatisch wieder, sobald die Bewegung endet.
  2. Schwenkauslöser für Sicherheitskamera: Drehen Sie eine auf einem Servo montierte Kamera in Richtung der erkannten Bewegungszone, um Eindringlinge oder Besucher automatisch ins Bild zu nehmen.
  3. Anwesenheitsgesteuerte Lüftungsklappe: Öffnen oder schließen Sie mit dem Servo eine Lüftungsklappe, wenn sich Personen im Raum befinden, und verbessern Sie so die Effizienz der Klimaanlage.
  4. Berührungslose Zugangsschranke: Heben Sie einen servogetriebenen Arm an, um den Zutritt zu gewähren, wenn sich jemand einem gesperrten Bereich nähert, und senken Sie ihn wieder ab, sobald die Person hindurchgegangen ist.
  5. Auslöser für Futterautomaten: Drehen Sie ein servogesteuertes Ausgaberad, um Futter freizugeben, wenn sich Ihr Haustier der Futterstation nähert.
  6. Alarmverriegelung: Rasten Sie einen servogetriebenen Verriegelungsstift physisch ein oder aus, wenn innerhalb eines Sicherheitsbereichs eine Bewegung erkannt wird.

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.

Fordern Sie sich heraus

Nachdem Ihre ESP32 S3-Schaltung mit Bewegungssensor und Servo nun funktioniert, probieren Sie diese zunehmend schwierigeren Herausforderungen aus, um Ihr Verständnis der PIR-Erkennung und der Servoansteuerung zu vertiefen:

  1. Einsteiger: Ändern Sie den Zielwinkel des Servos im Code von 90° auf 45° oder 180° und beobachten Sie, wie unterschiedlich der Servo auf dieselben Bewegungsereignisse reagiert.
  2. Einsteiger: Fügen Sie nach dem Ende der Bewegung eine Verzögerung ein, bevor der Servo auf 0° zurückkehrt, sodass der Servo seine Position nach der letzten erkannten Bewegung noch einige Sekunden hält.
  3. Fortgeschritten: Fügen Sie dem ESP32 S3 eine LED-Anzeige hinzu, die bei erkannter Bewegung aufleuchtet und so zusätzlich zur Servobewegung einen optischen Hinweis gibt.
  4. Fortgeschritten: Protokollieren Sie Bewegungsereignisse mit Zeitstempel im Seriellen Monitor und zeichnen Sie jeden Wechsel des Sensors von NOT DETECTED zu DETECTED und zurück auf.
  5. Experte: Fügen Sie dem ESP32 S3 ein OLED-Display hinzu, das den aktuellen Bewegungsstatus und die Anzahl der seit dem Einschalten erkannten Bewegungsereignisse anzeigt.
  6. Experte: Bauen Sie ein System mit mehreren Zonen aus zwei HC-SR501-Sensoren, die unterschiedliche Richtungen abdecken und jeweils unabhängig ihren eigenen Servo auslösen, wenn in ihrer Zone eine Bewegung erkannt wird.

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