ESP32 S3 - Türsensor - Servomotor

Dieses Tutorial zeigt Ihnen, wie Sie den ESP32 S3 mit einem magnetischen Türsensor und einem Servomotor verwenden, um ein automatisches Positionssteuerungssystem zu bauen, das auf das Öffnen und Schließen einer Tür reagiert. Der ESP32 S3 überwacht ständig den Türsensor und dreht den Servo auf einen Zielwinkel, sobald sich der Türzustand ändert — eine praktische Grundlage für türgekoppelte Verriegelungsmechanismen, Lüftungsklappen und Fahnenanzeigen.

Was Sie bauen werden:

  1. Eine ESP32 S3-Schaltung mit einem magnetischen Türsensor und einem Servomotor, die mit dem Board verdrahtet sind
  2. Einen Sketch, der den Zustand des Türsensors liest und den Servo beim Öffnen der Tür auf 90 Grad und beim Schließen zurück auf 0 Grad dreht
  3. Eine automatische Positionsregelschleife, die sich bei jeder Änderung des Türzustands wiederholt
  4. Eine Grundlage für reale Anwendungen wie türgesteuerte Verriegelungsarme, Lüftungsklappen und visuelle Anzeigen

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×Türsensor
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 Door Sensor

Ein magnetischer Türsensor besteht aus zwei Teilen — einem Reedschaltergehäuse und einem Magneten —, die zusammen den Schaltkreiszustand ändern, wenn sich die Tür öffnet und der Magnet sich vom Reedschalter entfernt. Der ESP32 S3 liest diese digitale Zustandsänderung an einem GPIO-Eingangspin und reagiert, indem er einen Servomotor über ein PWM-Signal an einem zweiten GPIO-Pin ansteuert. Der Servomotor wandelt diese PWM-Pulsbreite in einen präzisen Wellenwinkel um und eignet sich daher ideal für Anwendungen, bei denen ein physischer Aktor automatisch auf Türereignisse reagieren muss.

Wichtige Spezifikationen

Wir haben spezielle Tutorials, die jede Komponente ausführlich behandeln. Jedes Tutorial enthält detaillierte Informationen und Schritt-für-Schritt-Anleitungen zur Pinbelegung der Hardware, zum Funktionsprinzip, zur Verdrahtung mit dem ESP32 S3 und zum Arduino-Code. Mehr dazu erfahren Sie unter den folgenden Links:

Verdrahtungsdiagramm

Schließen Sie den Türsensor und den Servomotor gemäß dem folgenden Diagramm an Ihren ESP32 S3 an und überprüfen Sie jede Verbindung, bevor Sie das Board mit Strom versorgen. Die Signalleitung des Türsensors wird mit einem GPIO des ESP32 S3 verbunden, der als Eingang mit aktiviertem internem Pull-up-Widerstand konfiguriert ist, während die Steuerleitung des Servos mit einem für PWM-Ausgabe konfigurierten GPIO verbunden wird.

ESP32 S3 Türsensor Servomotor Verdrahtungsdiagramm

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

Jumperkabel können sich lösen, wenn Sie das Projekt bewegen. 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:

ESP32 S3 Türsensor Servomotor Verdrahtungsdiagramm (Screw Terminal)

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

Lieber Stiftleisten statt Schrauben? Stecken Sie den ESP32 S3 auf ein GPIO-Breakout-Board für ESP32 S3:

ESP32 S3 Türsensor Servomotor Verdrahtungsdiagramm (GPIO Breakout Board)

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

Sicherheitshinweise

Der Servomotor zieht mehr Strom, als ein einzelner GPIO-Pin des ESP32 S3 sicher liefern kann. Versorgen Sie den Servo daher immer über die 5V-Schiene des Boards (oder eine externe 5V-Versorgung) und nicht über den GPIO-Pin selbst. Die GPIO-Pins des ESP32 S3 arbeiten mit 3,3V-Logik, und die meisten Hobby-Servomotoren akzeptieren ein 3,3V-Steuersignal problemlos. Prüfen Sie dies jedoch im Datenblatt Ihres Servos. Der Türsensor wird an einen GPIO-Eingang mit aktiviertem internem Pull-up-Widerstand angeschlossen, sodass für die Sensorseite der Schaltung kein externer Pull-up-Widerstand erforderlich ist.

Komponente Pin ESP32 S3 Pin
Türsensor Kabel 1 GND
Türsensor Kabel 2 GPIO2
Servomotor VCC (Rot) 5V
Servomotor GND (Braun/Schwarz) GND
Servomotor Signal (Orange/Gelb) GPIO8

ESP32 S3 Code - Türsensor steuert Servomotor

Der folgende Code liest in jedem Schleifendurchlauf den Zustand des Türsensors und dreht den Servomotor auf 90 Grad, wenn die Tür als offen erkannt wird, und anschließend zurück auf 0 Grad, wenn die Tür als geschlossen erkannt wird. Der Sketch nutzt die ESP32Servo-Bibliothek, um das korrekte PWM-Signal für den Servomotor zu erzeugen. Sie müssen diese Bibliothek daher vor dem Hochladen installieren.

/* * 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-door-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-door-sensor-servo-motor */ #include <ESP32Servo.h> #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin #define SERVO_PIN 8 // ESP32-S3 pin GPIO8 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 prev_door_state; // the previous state of door sensor int door_state; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32-S3 pin to input pull-up mode servo.attach(SERVO_PIN); // attaches the servo on pin GPIO8 to the servo object servo.write(angle); door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if(prev_door_state == LOW && door_state == HIGH) { Serial.println("The door-opening event is detected"); // change angle of servo motor if(angle == 0) angle = 90; else if(angle == 90) angle = 0; // control servo motor arccoding to the angle servo.write(angle); } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Verdrahten Sie den Türsensor und den Servomotor gemäß dem obigen Verdrahtungsdiagramm mit dem ESP32 S3.
  3. Verbinden Sie das ESP32 S3-Board über ein USB-Typ-C-Kabel mit Ihrem PC.
  4. Öffnen Sie die Arduino IDE auf Ihrem PC.
  5. Wählen Sie im Menü Tools das richtige ESP32 S3-Board und den COM-Port aus.
  6. Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
  7. Suchen Sie im Suchfeld nach ESP32Servo und finden Sie die Servo-Bibliothek von Kevin Harrington und John K. Bennett.
  8. Klicken Sie auf Install, um die Servomotor-Bibliothek für ESP32 zu installieren.
ESP32 S3 Servomotor-Bibliothek
  1. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf Ihren ESP32 S3 hochzuladen.
Wie man ESP32 S3-Code in der Arduino IDE hochlädt
  1. Bewegen Sie den Magneten nah an den Reedschalter und dann wieder weg, um das Öffnen der Tür zu simulieren.
  2. Beobachten Sie, wie sich der Servomotor beim Öffnen der Tür auf 90 Grad dreht und beim Schließen auf 0 Grad zurückkehrt.
  3. Profi-Tipp: Wenn der Servomotor zuckt oder sich unregelmäßig verhält, versorgen Sie ihn über eine externe 5V-Versorgung statt über den 5V-Pin des ESP32 S3-Boards, da Servos mit hohem Strombedarf Spannungseinbrüche verursachen können, die das Board zurücksetzen.

Ausgabe im Seriellen Monitor

Öffnen Sie den Seriellen Monitor der Arduino IDE mit 9600 Baud, um den Zustand des Türsensors und die Position des Servomotors in Echtzeit zu beobachten.

∞
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:30:01] Door: OPEN Servo: 90 degrees [2026-06-16 09:30:07] Door: CLOSED Servo: 0 degrees [2026-06-16 09:30:13] Door: OPEN Servo: 90 degrees [2026-06-16 09:30:19] Door: CLOSED Servo: 0 degrees
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungs- und Projektideen

Sobald der ESP32 S3 einen Servomotor automatisch als Reaktion auf Türsensor-Ereignisse positionieren kann, können Sie dieses Projekt für eine Vielzahl praktischer Automatisierungs-, Sicherheits- und Robotikanwendungen anpassen.

  1. Türverriegelungsarm: Befestigen Sie einen Verriegelungsarm am Servo, sodass er beim Schließen der Tür in die Verriegelungsposition dreht und beim Öffnen wieder zurückfährt.
  2. Lüftungsklappensteuerung: Verwenden Sie den Servo, um beim Öffnen einer Tür eine Lüftungsklappe zu öffnen und so die Luftzirkulation in geschlossenen Räumen wie Serverräumen oder Lagerbereichen sicherzustellen.
  3. Fahnen- oder Signalanzeige: Drehen Sie eine kleine Fahne oder eine farbige Anzeige in die Position "offen", sobald die Tür angelehnt ist, und liefern Sie so einen aus der Ferne sichtbaren Status.
  4. Schrankverriegelung: Verriegeln Sie eine Schranktür automatisch mit dem Servo, sobald der Türsensor die Tür in geschlossener Position erkennt.
  5. Mehrtür-Koordinator: Überwachen Sie zwei Türsensoren und ordnen Sie deren kombinierte Zustände vier Servopositionen zu, um einen einfachen Verriegelungsmechanismus zwischen zwei benachbarten Türen umzusetzen.
  6. Ereignisgesteuerte Kameraneigung: Montieren Sie eine Kamera auf der Servowelle, sodass das Objektiv automatisch auf den Türeingang zeigt, sobald der Türsensor ein Öffnen erkennt, und so jeden erfasst, der eintritt.

Video Tutorial

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.

Fordern Sie sich selbst heraus

Da Sie nun einen Servomotor mit einem Türsensor am ESP32 S3 automatisch steuern können, probieren Sie diese zunehmend anspruchsvolleren Herausforderungen aus, um Ihr Verständnis zu vertiefen und ein leistungsfähigeres System zu bauen.

  1. Anfänger: Ändern Sie den Ziel-Servowinkel von 90 Grad auf 45 Grad, indem Sie eine einzige Konstante im Sketch anpassen. Laden Sie den Code dann erneut hoch und überprüfen Sie die neue Position.
  2. Anfänger: Fügen Sie einen Zähler im Seriellen Monitor hinzu, der die Gesamtzahl der Türöffnungen seit dem Einschalten des Boards hochzählt und ausgibt.
  3. Fortgeschritten: Verwenden Sie millis() statt delay(), um eine zeitverzögerte Servorückkehr umzusetzen — der Servo fährt beim Öffnen der Tür auf 90 Grad, kehrt aber erst nach 5 Sekunden auf 0 Grad zurück, unabhängig davon, wann die Tür geschlossen wird.
  4. Fortgeschritten: Fügen Sie der Schaltung einen zweiten Servomotor hinzu und steuern Sie beide Servos gleichzeitig, aber in entgegengesetzte Richtungen an — einer öffnet, während der andere schließt.
  5. Experte: Kombinieren Sie Türsensor und Servo mit einem RFID-Leser, sodass sich der Servo erst nach dem Scannen einer gültigen RFID-Karte dreht (entriegelt), während der Türsensor bestätigt, dass die Tür tatsächlich geöffnet wurde.
  6. Experte: Verbinden Sie den ESP32 S3 mit dem WLAN und veröffentlichen Sie den Türzustand und die Servoposition bei jedem Wechsel an einen MQTT-Broker, um eine Fernüberwachung über ein Hausautomatisierungs-Dashboard zu ermöglichen.

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