ESP32 S3 - Türsensor

Lernen Sie, wie Sie mit Ihrem ESP32 S3 und einem magnetischen Türsensor den Zustand von Türen und Fenstern erkennen. Dieses einsteigerfreundliche Tutorial führt Sie durch alles, was Sie benötigen, um Öffnungs- und Schließereignisse mit dem ESP32 S3-Board zuverlässig zu überwachen.

Was Sie bauen werden:

  1. Eine Schaltung, die den magnetischen Türsensor mit dem ESP32 S3 verbindet
  2. Arduino-Code, der den Sensorzustand liest und erkennt, ob die Tür offen oder geschlossen ist
  3. Arduino-Code, der die Übergangsereignisse beim Öffnen und Schließen der Tür erkennt
  4. Eine Ausgabe im Seriellen Monitor, die den Türzustand in Echtzeit anzeigt
ESP32 S3 - Türsensor

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×(Optional) DC-Stromanschluss
1×Breadboard
1×Verbindungskabel
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.

Überblick über Door Sensor

Der Türsensor (auch bekannt als Eingangssensor, Kontaktsensor oder Fenstersensor) wird häufig in Sicherheits- und Automatisierungsanwendungen eingesetzt, um zu erkennen, ob ein Eingang wie eine Tür oder ein Fenster offen oder geschlossen ist. Er besteht aus zwei separaten Komponenten — einem Magneten und einem Reedschalter —, die zusammenarbeiten, um dem ESP32 S3 ein einfaches und zuverlässiges digitales Signal zu liefern.

Wichtige Spezifikationen

Der Türsensor ist ein passives Zweidraht-Bauteil, das keine eigene externe Stromversorgung benötigt. Der Reedschalter ist ein magnetischer Schließer oder Öffner, der seinen Zustand ändert, wenn der zugehörige Magnet in die Nähe gebracht wird. Da sich der Sensor elektrisch genau wie ein Taster oder Schalter verhält, genügt der interne Pull-up-Widerstand des ESP32 S3, um ihn an jedem digitalen Eingangspin zuverlässig auszulesen.

Pinbelegung des Türsensors

Der Türsensor besteht aus zwei Komponenten, die für einen korrekten Betrieb gemeinsam montiert werden müssen.

Pinbelegung des Türsensors
  1. Magnet: Der bewegliche Teil — befestigen Sie ihn an der Tür oder dem Fenster selbst
  2. Reedschalter (zwei Drähte): Der feste Teil — befestigen Sie ihn am Türrahmen; verbinden Sie einen Draht mit GND und den anderen mit einem Eingangspin des ESP32 S3 mit Pull-up-Widerstand

Wie der Türsensor funktioniert

Der Magnet und der Reedschalter werden als zusammengehöriges Paar an der Tür bzw. am Fensterrahmen montiert. Der Magnet wird am beweglichen Teil (der Tür) befestigt, während der Reedschalter am Rahmen fixiert wird — beide Komponenten müssen sich bei geschlossener Tür in unmittelbarer Nähe befinden.

Befindet sich der Magnet in der Nähe des Reedschalters, schließen sich die internen Kontakte des Schalters und bilden einen geschlossenen Stromkreis. Wenn sich die Tür öffnet und der Magnet sich entfernt, öffnen sich die Kontakte wieder und unterbrechen den Stromkreis. Wenn Sie einen Draht des Reedschalters mit GND und den anderen mit einem Eingangspin des ESP32 S3 verbinden, der mit einem Pull-up-Widerstand konfiguriert ist, liest der Pin LOW, wenn die Tür geschlossen ist, und HIGH, wenn sie offen ist.

※ Notiz:

Genau wie bei einem Taster MÜSSEN Sie am mit dem Reedschalter verbundenen Pin des ESP32 S3 einen Pull-up- oder Pull-down-Widerstand verwenden, um einen schwebenden Eingangszustand zu vermeiden.

Also:

  • Ist der Eingangspin des ESP32 S3 LOW, ist die Tür geschlossen
  • Ist der Eingangspin des ESP32 S3 HIGH, ist die Tür geöffnet
  • Wechselt der Eingangspin des ESP32 S3 von LOW auf HIGH, wird die Tür geöffnet
  • Wechselt der Eingangspin des ESP32 S3 von HIGH auf LOW, wird die Tür geschlossen

Verdrahtungsdiagramm

Schließen Sie den Reedschalter des Türsensors wie im folgenden Diagramm gezeigt an den ESP32 S3 an. Ein Draht des Reedschalters wird mit GND verbunden, der andere mit einem digitalen Eingangspin des ESP32 S3, der den internen Pull-up-Widerstand des Boards nutzt, um bei geöffnetem Schalter einen definierten Logikpegel aufrechtzuerhalten.

ESP32 S3 Türsensor Verdrahtungsdiagramm

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

Sicherheitshinweise

Der Reedschalter ist ein passives Niederspannungs-Bauteil mit geringem Strom, das sicher direkt an die GPIO-Pins des ESP32 S3 angeschlossen werden kann. Aktivieren Sie immer den internen Pull-up-Widerstand (INPUT_PULLUP), um bei geöffnetem Schalter einen schwebenden Eingang zu vermeiden; ohne ihn erhalten Sie sprunghafte und unzuverlässige Messwerte. Halten Sie die Sensorkabel von Leitungen mit hohem Strom fern, um induzierte elektrische Störungen zu vermeiden, die Fehlauslösungen verursachen könnten.

Türsensor-Pin ESP32 S3 Pin
Kabel 1 (Reedschalter) GND
Kabel 2 (Reedschalter) GPIO2

Wie man den Türsensor programmiert

Die Programmierung des ESP32 S3 zum Auslesen des Türsensors entspricht dem Vorgehen bei einem Taster oder Schalter. Die wichtigsten Schritte sind, den Pin mit dem internen Pull-up-Widerstand zu initialisieren und dann in jedem Schleifendurchlauf den digitalen Zustand zu lesen.

Schritt 1: Den Pin des ESP32 S3 initialisieren

pinMode(2, INPUT_PULLUP);

Schritt 2: Den Türzustand lesen

int doorState = digitalRead(2);

ESP32 S3 Code - Öffnungs- und Schließzustand der Tür prüfen

Der folgende Code liest kontinuierlich den Reedschalter an GPIO2 und gibt in jedem Schleifenzyklus den aktuellen Türzustand — offen oder geschlossen — im Seriellen Monitor aus. Er konfiguriert den Pin mit dem internen Pull-up-Widerstand, sodass außer den Sensorkabeln keine externen Komponenten benötigt werden.

/* * 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 */ /* * 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 */ #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32-S3 pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Folgen Sie dem obigen Verdrahtungsdiagramm, um den Reedschalter des Türsensors mit dem ESP32 S3 zu verbinden.
  3. Verbinden Sie Ihren ESP32 S3 über USB Typ-C mit Ihrem Computer.
  4. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  5. Wählen Sie Ihr ESP32 S3-Board im Menü Tools > Board aus.
  6. Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code zu übertragen.
  7. Öffnen Sie den Seriellen Monitor, indem Sie auf das entsprechende Symbol klicken oder Ctrl+Shift+M drücken.
  8. Stellen Sie die Baudrate im Dropdown-Menü des Seriellen Monitors auf 115200 ein.
  9. Bewegen Sie den Magneten nah an den Reedschalter, dann wieder weg, und beobachten Sie die Ausgabe.
  10. Profi-Tipp: Verwenden Sie INPUT_PULLUP statt INPUT, um keinen externen Pull-up-Widerstand hinzufügen zu müssen — der eingebaute Pull-up des ESP32 S3 übernimmt das für Sie.

Ausgabe im Seriellen Monitor

Wenn Sie den Magneten zum Reedschalter hin und von ihm weg 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-03-10 08:45:01] The door is open [2026-03-10 08:45:02] The door is open [2026-03-10 08:45:03] The door is closed [2026-03-10 08:45:04] The door is closed [2026-03-10 08:45:05] The door is closed [2026-03-10 08:45:06] The door is open [2026-03-10 08:45:07] The door is open
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

ESP32 S3 Code - Öffnungs- und Schließereignisse der Tür erkennen

Der folgende Code verfolgt den vorherigen und den aktuellen Zustand des Reedschalters, um genau den Moment zu erkennen, in dem die Tür von geschlossen zu offen (ein Öffnungsereignis) oder von offen zu geschlossen (ein Schließereignis) wechselt. Pro Ereignis wird nur eine einzige Meldung ausgegeben, was ideal ist, um Aktionen wie Alarme oder Protokolleinträge auszulösen.

/* * 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 */ /* * 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 */ #define DOOR_SENSOR_PIN 2 // ESP32-S3 pin GPIO2 connected to door sensor's pin int currentDoorState; // current state of door sensor int lastDoorState; // previous 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 currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }

Schnelle Schritte

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Folgen Sie dem obigen Verdrahtungsdiagramm, um den Reedschalter des Türsensors mit dem ESP32 S3 zu verbinden.
  3. Verbinden Sie Ihren ESP32 S3 über USB Typ-C mit Ihrem Computer.
  4. Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  5. Wählen Sie Ihr ESP32 S3-Board im Menü Tools > Board aus.
  6. Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code zu übertragen.
  7. Öffnen Sie den Seriellen Monitor und stellen Sie die Baudrate auf 115200 ein.
  8. Bewegen Sie den Magneten nah an den Reedschalter und dann wieder weg, um beide Ereignisse auszulösen.
  9. Profi-Tipp: Verwenden Sie das Öffnungsereignis, um einen Timer zu starten, und das Schließereignis, um ihn zu stoppen — so können Sie berechnen, wie lange die Tür jeweils offen war.

Ausgabe im Seriellen Monitor

Wenn Türübergänge auftreten, 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-03-10 08:46:12] The door-closing event is detected [2026-03-10 08:46:15] The door-opening event is detected [2026-03-10 08:46:20] The door-closing event is detected [2026-03-10 08:46:24] The door-opening event is detected
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen

Der Türsensor in Kombination mit dem ESP32 S3 ermöglicht eine Vielzahl praktischer Sicherheits- und Automatisierungsprojekte, von einfachen Alarmen bis hin zu integrierten Smart-Home-Systemen.

  1. Heimsicherheitsalarm: Lösen Sie einen Summer aus oder senden Sie eine Push-Benachrichtigung, sobald eine Tür oder ein Fenster unerwartet geöffnet wird.
  2. Intelligente Türklingel: Erkennen Sie, wenn eine Tür geöffnet wird, und melden Sie ein Zutrittsereignis über einen angeschlossenen Lautsprecher oder ein Display.
  3. Energieeffizienz-Monitor: Erfassen Sie, wie oft und wie lange Kühlschrank- oder Schranktüren offen stehen, um Energieverschwendung zu reduzieren.
  4. Zutrittskontrollprotokoll: Zeichnen Sie Zeitstempel von Öffnungs- und Schließereignissen auf einer SD-Karte oder einem Cloud-Server für Prüfprotokolle auf.
  5. Kindersicherung: Alarmieren Sie Eltern, wenn eine verbotene Tür (etwa eine Garage oder ein Gartentor) geöffnet wird.
  6. Automatische Beleuchtung: Schalten Sie beim Öffnen einer Tür das Raumlicht ein und schalten Sie es aus, nachdem die Tür eine festgelegte Zeit lang geschlossen war.

Video Tutorial

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

Fordern Sie sich selbst heraus

Sobald Ihr Türsensor funktioniert, probieren Sie diese Herausforderungen aus, um Ihre ESP32 S3-Kenntnisse zu vertiefen — beginnend mit einfachen Ergänzungen bis hin zu fortgeschrittenen vernetzten Funktionen.

  1. Anfänger: Fügen Sie eine LED hinzu, die leuchtet, wenn die Tür offen ist, und erlischt, wenn sie geschlossen ist.
  2. Anfänger: Zählen Sie, wie oft die Tür seit dem Einschalten des Boards geöffnet wurde, und zeigen Sie die Gesamtzahl im Seriellen Monitor an.
  3. Fortgeschritten: Fügen Sie einen Summer hinzu, der bei jedem erkannten Öffnungsereignis 2 Sekunden lang ertönt.
  4. Fortgeschritten: Zeigen Sie den aktuellen Türzustand (OFFEN / GESCHLOSSEN) in Echtzeit auf einem OLED- oder LCD-Display an.
  5. Experte: Bauen Sie einen Türöffnungs-Timer, der jedes Mal misst, wie viele Sekunden die Tür offen bleibt, und die längste Dauer im Seriellen Monitor protokolliert.
  6. Experte: Erstellen Sie ein WLAN-verbundenes Alarmsystem, das bei jeder Änderung des Türzustands eine HTTP-Anfrage an einen Hausautomatisierungsserver sendet.

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