Arduino - Türsensor

Der Türsensor wird im Sicherheitsbereich häufig verwendet. Er dient dazu, Zugänge zu erkennen bzw. zu überwachen (wie Türen, Fenster ...). Der Türsensor ist auch als Eingangs-, Kontakt- oder Fenstersensor bekannt.

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Türsensor
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables STEM V3 Starter-Kit (Arduino 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

Pinbelegung

Der Türsensor besteht aus zwei Komponenten:

  • Ein Reed-Schalter mit zwei Stiften
  • Ein Magnet
Türsensor-Pinbelegung

Wie bei einem normalen Schalter oder Knopf müssen wir die beiden Pins des Reed-Schalters nicht unterscheiden.

So funktioniert es

Der Magnet ist am beweglichen Teil der Tür bzw. des Fensters befestigt, und der Reed-Schalter ist am Türrahmen (festen Teil) befestigt. Die beiden Komponenten stehen in Kontakt, wenn die Tür geschlossen ist.

  • Wenn der Magnet dem Reed-Schalter nahe ist, ist der Reed-Schalterkreis geschlossen.
  • Wenn der Magnet weit vom Reed-Schalter entfernt ist, ist der Reed-Schalterkreis offen.
Türsensor Funktionsweise Pinbelegung

※ Notiz:

Der Reed-Schalter selbst liefert an seinen Pins kein LOW oder HIGH. Er befindet sich lediglich im geschlossenen oder offenen Zustand. Je nachdem, wie wir seine Pins mit dem Arduino verbinden, kann der Wert am Pin LOW, HIGH oder schwebend sein (unvorhersehbarer Wert). Um den schwebenden Wert zu vermeiden, müssen wir am Arduino-Pin einen Pull-up- oder Pull-down-Widerstand verwenden.

Wenn wir einen Pin des Reed-Schalters mit GND verbinden, wird der andere Pin des Reed-Schalters mit dem Eingangs-Pin des Arduino über einen Pull-up-Widerstand (intern oder extern) verbunden:

  • Wenn der Magnet dem Reed-Schalter nahe ist, ist der Wert am Arduino-Eingangspin niedrig
  • Wenn der Magnet weit vom Reed-Schalter entfernt ist, ist der Wert am Arduino-Eingangspin hoch

Also:

  • Um den Zustand der Tür zu prüfen, überprüfen wir einfach den Zustand des Arduino-Eingangspins:
    • Wenn der Zustand LOW ist, ist die Tür geschlossen
    • Wenn der Zustand HIGH ist, ist die Tür offen
  • Um die Türöffnungs- und Türschließungsereignisse zu erkennen, können wir die Zustandsänderung am Arduino-Eingangspin erkennen:
    • Wenn sich der Zustand von LOW zu HIGH ändert, wird das Türöffnungsereignis erkannt
    • Wenn sich der Zustand von HIGH zu LOW ändert, wird das Türschließungsereignis erkannt

Verdrahtungsdiagramm

Arduino Türsensor-Schaltplan

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

Wie man einen Türsensor programmiert

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

Arduino-Code - Prüfe den Zustand der Tür (offen oder geschlossen)

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino 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

  • Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den Arduino hochzuladen.
  • Bewegen Sie den Magneten in die Nähe des Reed-Schalters und verschieben Sie ihn anschließend weit vom Reed-Schalter weg.
  • Sehen Sie das Ergebnis im Seriellen Monitor.
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-Code – Erkennung von Türöffnungs- und Türschließungsereignissen

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino 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/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin 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 arduino 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 öffnen Sie ihn mit der Arduino IDE
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den Arduino hochzuladen
  • Bewegen Sie den Magneten nahe am Reed-Schalter und bewegen Sie ihn anschließend vom Reed-Schalter weg.
  • Sehen Sie das Ergebnis im Serial Monitor.
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!