Arduino Nano ESP32 - Türsensor

Der Türsensor (auch bekannt als Türsensor, Kontaktsensor oder Fenstersensor) wird in vielen Anwendungen weit verbreitet, insbesondere im Sicherheitsbereich. Er wird verwendet, um Zugänge (wie Tür und Fenster) zu erkennen bzw. zu überwachen. Dieses Tutorial enthält Anleitungen dazu, wie man den Arduino Nano ESP32 mit dem Türsensor verwendet.

Erforderliche Hardware

1×Arduino Nano ESP32
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 Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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 den Türsensor

Türsensor-Pinbelegung

Der Türsensor besteht aus zwei Bauteilen:

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

Genauso wie bei einem Schalter oder Knopf müssen wir die beiden Drähte des Reed-Schalters nicht unterscheiden.

Wie Türsensoren funktionieren

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 an der Tür oder am Fenster befestigt werden.
  • Der Reed-Schalter ist der feste Teil. Er sollte am Türrahmen angebracht werden.

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

  • Der Schaltkreis des Reed-Schalters ist geschlossen, wenn er in der Nähe des Magneten ist
  • Der Schaltkreis des Reed-Schalters ist geöffnet, wenn er weit vom Magneten entfernt ist
Türsensor – wie er funktioniert

※ Notiz:

Genauso wie ein Taster müssen wir den Pull-up- oder Pull-down-Widerstand am Pin des Arduino Nano ESP32 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 LOW, wenn der Magnet in der Nähe des Reed-Schalters ist.
  • Der Eingangspin des ESP32 ist HIGH, 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 sich der Eingangspin des ESP32 von LOW zu HIGH ändert, öffnet sich die Tür.
  • Wenn sich der Eingangspin des ESP32 von HIGH zu LOW ändert, schließt sich die Tür.

Schaltplan zwischen Türsensor und Arduino Nano ESP32

Arduino Nano ESP32 Türsensor-Schaltplan

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

Wie programmiert man einen Türsensor

  • Initialisiert den Pin des Arduino Nano ESP32 in den digitalen Eingangsmodus, indem die Funktion pinMode() verwendet wird. Beispielsweise Pin D2
pinMode(D2, INPUT_PULLUP);
  • Liest den Zustand des Arduino Nano ESP32-Pins mithilfe der digitalRead() Funktion.
int door_state = digitalRead(D2);

Arduino Nano ESP32 Code - Türzustand prüfen (offen und geschlossen)

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode } void loop() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Schnelle Schritte

  • Wenn Sie Arduino Nano ESP32 zum ersten Mal verwenden, lesen Sie wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
  • Kopieren Sie den obigen Code und fügen Sie ihn in die Arduino IDE ein.
  • Kompilieren und den Code auf das Arduino Nano ESP32-Board hochladen, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
  • Bewegen Sie den Magneten in die Nähe des Reed-Schalters und bewegen Sie ihn anschließend vom Reed-Schalter weg.
  • Schauen Sie sich das Ergebnis im Serial Monitor an. Es sieht wie folgt 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  

Arduino Nano ESP32-Code - Erkennung von Türöffnungs- und Türschließungsereignissen

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-esp32/arduino-nano-esp32-door-sensor */ #define DOOR_SENSOR_PIN D2 // The Arduino Nano ESP32 pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } 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) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (prev_door_state == HIGH && door_state == 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 Sie den Code und laden Sie ihn auf das Arduino Nano ESP32-Board hoch, indem Sie in der Arduino IDE auf die Schaltfläche Upload klicken.
  • Bewegen Sie den Magneten zuerst nahe am Reed-Schalter und danach weiter weg vom Reed-Schalter.
  • Überprüfen Sie das Ergebnis im Serial Monitor. 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!