Arduino Nano - Capteur de porte

Le capteur de porte est un choix populaire pour des raisons de sécurité. Il est utilisé pour détecter et surveiller les entrées, telles que les portes et les fenêtres. Cet appareil est également appelé capteur d'entrée, capteur de contact ou capteur de fenêtre.

Ce tutoriel vous explique comment utiliser l'Arduino Nano avec le capteur de porte. Nous verrons en détail :

Préparation du matériel

1×Arduino Nano
1×USB A to Mini-B USB cable
1×Door Sensor
1×(Optional) 9V Power Adapter for Arduino Nano
1×(Recommended) Screw Terminal Adapter for Arduino Nano

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du capteur de porte

Le schéma des broches du capteur de porte

Un capteur de porte se compose de deux parties :

  • Un aimant.
  • Un interrupteur à lames souples qui possède deux broches : Semblable à un interrupteur/bouton ordinaire, il n'est pas nécessaire de différencier les deux broches.
Schéma de brochage du capteur de porte

Comment ça fonctionne

L'aimant est fixé à la porte/fenêtre (la partie qui bouge), et l'interrupteur à lame souple est fixé au cadre de la porte (l'élément statique). Les deux composants entrent en contact lorsque la porte est fermée :

  • Lorsque l'aimant est près de l'interrupteur à lames, le circuit de l'interrupteur à lames est fermé.
  • Lorsque l'aimant est éloigné de l'interrupteur à lames, le circuit de l'interrupteur à lames est ouvert.
Capteur de porte : fonctionnement

※ NOTE THAT:

L'interrupteur à lame ne fournit pas de sortie soit LOW soit HIGH sur ses broches. Il est soit fermé soit ouvert. Selon la manière dont nous le connectons à l'Arduino Nano, la broche peut avoir une valeur LOW, HIGH, ou une valeur flottante (imprévisible). Pour éviter la valeur flottante, une résistance de tirage vers le haut ou vers le bas doit être utilisée sur la broche de l'Arduino Nano.

Si nous connectons une broche de l'interrupteur à lame à GND et l'autre broche de l'interrupteur à lame à une broche d'entrée de l'Arduino Nano avec une résistance de tirage (interne ou externe) :

  • Lorsque l'aimant est proche de l'interrupteur à lames, la valeur sur la broche d'entrée de l'Arduino est BASSE
  • Lorsque l'aimant est éloigné de l'interrupteur à lames, la valeur sur la broche d'entrée de l'Arduino est HAUTE

Pour déterminer l'état de la porte, nous regardons simplement l'état de la broche d'entrée de l'Arduino :

  • Si l'état est BAS, la porte est fermée
  • Si l'état est ÉLEVÉ, la porte est ouverte

Nous pouvons également détecter quand la porte est ouverte ou fermée en recherchant un changement dans l'état de la broche d'entrée de l'Arduino :

  • Si l'état passe de BAS à ÉLEVÉ, l'événement d'ouverture de porte est détecté
  • Si l'état passe de ÉLEVÉ à BAS, l'événement de fermeture de porte est détecté

Diagramme de câblage

Schéma de câblage du capteur de porte Arduino Nano

This image is created using Fritzing. Click to enlarge image

Comment programmer un capteur de porte

  • Initialisez la broche de l'Arduino Nano en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, le code suivant peut être utilisé pour définir la broche 2 comme une entrée.
pinMode(2, INPUT_PULLUP);
  • Utilise la fonction digitalRead() pour déterminer l'état du pin de l'Arduino Nano.
int door_state = digitalRead(2);

Code Arduino Nano - Vérifier l'état d'ouverture et de fermeture de la porte

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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"); } }

Étapes rapides

  • Copiez le code et ouvrez-le avec l'IDE Arduino.
  • Cliquez sur le bouton Upload de l'IDE Arduino pour compiler et téléverser le code vers l'Arduino Nano.
  • Approchez l'aimant du contact reed puis éloignez-le.
  • Consultez le résultat sur le moniteur série.
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  

Code Arduino Nano - Détecter les événements d'ouverture et de fermeture de porte

/* * Ce code Arduino Nano a été développé par newbiely.fr * Ce code Arduino Nano est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/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 ... } }
  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload pour transférer le code vers l'Arduino Nano.
  • Approchez l'aimant du contact à lames souples puis éloignez-le.
  • Consultez le résultat sur le moniteur série.
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Références de fonction

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!