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:
- Eine ESP32 S3-Schaltung mit einem magnetischen Türsensor und einem Servomotor, die mit dem Board verdrahtet sind
- 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
- Eine automatische Positionsregelschleife, die sich bei jeder Änderung des Türzustands wiederholt
- Eine Grundlage für reale Anwendungen wie türgesteuerte Verriegelungsarme, Lüftungsklappen und visuelle Anzeigen
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) |
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.

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:

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:

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.
Schnelle Schritte
- Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
- Verdrahten Sie den Türsensor und den Servomotor gemäß dem obigen Verdrahtungsdiagramm mit dem ESP32 S3.
- Verbinden Sie das ESP32 S3-Board über ein USB-Typ-C-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie im Menü Tools das richtige ESP32 S3-Board und den COM-Port aus.
- Klicken Sie auf das Symbol Libraries in der linken Leiste der Arduino IDE.
- Suchen Sie im Suchfeld nach ESP32Servo und finden Sie die Servo-Bibliothek von Kevin Harrington und John K. Bennett.
- Klicken Sie auf Install, um die Servomotor-Bibliothek für ESP32 zu installieren.

- Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
- Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf Ihren ESP32 S3 hochzuladen.

- Bewegen Sie den Magneten nah an den Reedschalter und dann wieder weg, um das Öffnen der Tür zu simulieren.
- Beobachten Sie, wie sich der Servomotor beim Öffnen der Tür auf 90 Grad dreht und beim Schließen auf 0 Grad zurückkehrt.
- 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.
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.
- 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.
- 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.
- 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.
- Schrankverriegelung: Verriegeln Sie eine Schranktür automatisch mit dem Servo, sobald der Türsensor die Tür in geschlossener Position erkennt.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.