Arduino Nano - Türsensor

Der Türsensor ist eine beliebte Wahl für Sicherheitszwecke. Er wird verwendet, um Eingänge wie Türen und Fenster zu erkennen und zu überwachen. Dieses Gerät wird auch als Eingangssensor, Kontaktsensor oder Fenstersensor bezeichnet.

Dieses Tutorial erklärt dir, wie man den Arduino Nano mit dem Türsensor verwendet. Im Detail werden wir Folgendes lernen:

Erforderliche Hardware

1×Official Arduino Nano
1×Alternativ: DIYables ATMEGA328P Nano Development Board
1×USB-A-zu-Mini-B-Kabel
1×Türsensor
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano

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

Türsensor-Pinbelegung

Ein Türsensor besteht aus zwei Teilen:

  • Ein Magnet.
  • Ein Reed-Schalter, der zwei Anschlüsse hat: Ähnlich wie ein gewöhnlicher Schalter oder Knopf ist es nicht notwendig, die beiden Anschlüsse zu unterscheiden.
Türsensor-Pinbelegung

Wie es funktioniert

Der Magnet ist am Tür-/Fensterteil befestigt (dem beweglichen Teil), und der Reed-Schalter ist am Türrahmen befestigt (dem statischen Element). Die beiden Bauteile kommen in Kontakt, wenn die Tür geschlossen ist:

  • Wenn der Magnet in der Nähe des Reed-Schalters ist, ist der Reed-Schalter-Schaltkreis geschlossen
  • Wenn der Magnet vom Reed-Schalter entfernt ist, ist der Reed-Schalter-Schaltkreis offen
Türsensor: wie er funktioniert

※ Notiz:

Der Reed-Schalter liefert weder LOW noch HIGH an seinen Pins. Er ist entweder geschlossen oder offen. Je nachdem, wie wir ihn mit dem Arduino Nano verbinden, kann der Pin den Wert LOW, HIGH oder einen schwebenden Wert (unvorhersehbar) annehmen. Um den schwebenden Wert zu verhindern, muss am Arduino Nano-Pin ein Pull-up- oder Pull-down-Widerstand verwendet werden.

Wenn wir einen Pin des Reed-Schalters mit GND verbinden und den anderen Pin des Reed-Schalters an einen Eingangspin des Arduino Nano über einen Pull-Up-Widerstand (intern oder extern) anschließen:

  • Wenn der Magnet in der Nähe des Reed-Schalters ist, ist der Wert am Arduino-Eingangspin niedrig
  • Wenn der Magnet vom Reed-Schalter entfernt ist, ist der Wert am Arduino-Eingangspin hoch

Um den Zustand der Tür zu bestimmen, schauen wir einfach auf 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.

Wir können auch erkennen, wann die Tür geöffnet oder geschlossen wird, indem wir nach einer Veränderung des Zustands des Arduino-Eingangpins suchen:

  • Wenn der Zustand von LOW auf HIGH wechselt, wird das Türöffnungsereignis erkannt.
  • Wenn der Zustand von HIGH auf LOW wechselt, wird das Türschließungsereignis erkannt.

Verdrahtungsdiagramm

Schaltplan für Arduino Nano Türsensor

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

Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.

Wie man einen Türsensor programmiert

  • Initialisieren Sie den Pin des Arduino Nano im digitalen Eingangsmodus, indem Sie die pinMode() Funktion verwenden. Zum Beispiel kann der folgende Code verwendet werden, um Pin 2 als Eingang zu setzen.
pinMode(2, INPUT_PULLUP);
  • Verwendet die Funktion digitalRead(), um den Zustand des Arduino Nano-Pins zu ermitteln.
int door_state = digitalRead(2);

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

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-door-sensor */ #define DOOR_SENSOR_PIN 2 // The Arduino Nano 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 arduino 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

  • Kopiere den Code und öffne ihn mit der Arduino IDE.
  • Klicke auf den Upload-Button in der Arduino IDE, um den Code zu kompilieren und auf den Arduino Nano hochzuladen.
  • Bringe den Magneten nah an den Reed-Schalter und bewege ihn dann wieder weg.
  • Schau dir das Ergebnis im Serial Monitor an.
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-Code – Türöffnungs- und Türschließungsereignisse erkennen

/* * Dieser Arduino Nano Code wurde von newbiely.de entwickelt * Dieser Arduino Nano 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/arduino-nano-door-sensor */ #define DOOR_SENSOR_PIN 2 // The Arduino Nano 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 arduino 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 ... } }
  • Kopiere den Code und öffne ihn in der Arduino IDE.
  • Klicke auf die Hochladen-Schaltfläche, um den Code auf den Arduino Nano zu übertragen.
  • Bringe den Magneten nahe an den Reed-Schalter und bewege ihn danach wieder weg.
  • Sieh dir das Ergebnis im seriellen Monitor an.
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.

Funktionsreferenzen

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