ESP32 - Türsensor

Der Türsensor (auch bekannt als Türsensor, Kontaktsensor, oder Fenstersensor) wird in vielen Anwendungsbereichen eingesetzt, insbesondere im Sicherheitsbereich. Er wird verwendet, um Eingänge (wie Tür, Fenster ...) zu erkennen oder zu überwachen. Diese Anleitung zeigt dir, wie du den ESP32 mit dem Türsensor verwendest.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
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) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
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.

Über Türsensor

Türsensor-Pinbelegung

Der Türsensor besteht aus zwei Komponenten:

  • Ein Magnet
  • Ein Reed-Schalter, der zwei Drähte hat
Türsensor-Pinbelegung

Genau wie der Schalter bzw. Knopf müssen wir die beiden Adern des Reed-Schalters nicht unterscheiden.

Wie der Türsensor funktioniert

Der Magnet und der Reed-Schalter sind an der Tür bzw. an den Fenstern wie folgt installiert:

  • Der Magnet ist der bewegliche Teil. Er sollte am Tür- oder Fensterrahmen befestigt werden.
  • Der Reed-Schalter ist der feste Teil. Er sollte am Türrahmen befestigt werden.

Die beiden Bauteile stehen in Kontakt, wenn die Tür geschlossen ist.

  • Der Reed-Schalter-Schaltkreis ist geschlossen, wenn er dem Magneten nahe ist.
  • Der Reed-Schalter-Schaltkreis ist offen, wenn er weit vom Magneten entfernt ist.
Türsensor: wie er funktioniert

※ Notiz:

Genau wie bei einem Knopf müssen wir am ESP32-Pin den Pull-Up- oder Pull-Down-Widerstand verwenden, der mit dem Reed-Schalter verbunden ist.

Wenn wir den Reed-Schalter wie folgt anschließen: ein Draht an GND, der andere an den Eingangspin des ESP32 mit einem Pull-up-Widerstand:

  • Der Eingangspin des ESP32 ist niedrig, wenn der Magnet nahe am Reed-Schalter ist
  • Der Eingangspin des ESP32 ist hoch, wenn der Magnet weit vom Reed-Schalter entfernt ist

Also:

  • Wenn der Eingangspin des ESP32 LOW ist, ist die Tür geschlossen
  • Wenn der Eingangspin des ESP32 HIGH ist, ist die Tür geöffnet
  • Wenn der Eingangspin des ESP32 von LOW zu HIGH wechselt, öffnet sich die Tür
  • Wenn der Eingangspin des ESP32 von HIGH zu LOW wechselt, schließt sich die Tür

Schaltplan zwischen Türsensor und ESP32

  • Wie man ESP32 und Türsensor mit einem Steckbrett verbindet Steckbrett
ESP32 Türsensor-Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

So verbinden Sie ESP32 und Türsensor

Wie man den Türsensor programmiert

  • Initialisiert den ESP32-Pin in den digitalen Eingangsmodus durch die Verwendung der pinMode() Funktion. Zum Beispiel: Pin GPIO19
pinMode(19, INPUT_PULLUP);
  • Liest den Zustand des ESP32-Pins mithilfe der digitalRead()-Funktion.
int doorState = digitalRead(19);

ESP32-Code - Türzustand prüfen (offen/geschlossen)

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 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

  • Wenn dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren Sie den Code und laden Sie ihn auf das ESP32-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Hochladen klicken.
  • Bewegen Sie den Magneten nahe dem Reed-Schalter und bewegen Sie ihn anschließend weit vom Reed-Schalter entfernt.
  • Sehen Sie das Ergebnis im Serial Monitor. Es sieht unten so aus:
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

ESP32-Code – Türöffnungs- und Türschließungsereignisse erkennen

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 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 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 ... } }
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino-IDE ein.
  • Kompilieren und den Code auf das ESP32-Board hochladen, indem Sie in der Arduino-IDE auf die Schaltfläche Hochladen klicken.
  • Bringen Sie den Magneten in die Nähe des Reed-Schalters und bewegen Sie ihn anschließend weit vom Reed-Schalter weg.
  • Sehen Sie sich das Ergebnis im seriellen Monitor an. Es sieht wie folgt aus:
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

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