ESP8266 - Capteur de porte

Le capteur de porte est un choix populaire pour les systèmes de sécurité, car il peut détecter et surveiller les entrées telles que les portes, les fenêtres et plus encore. Il est également appelé capteur d'entrée, capteur de contact ou capteur de fenêtre.

Ce tutoriel vous explique comment utiliser l'ESP8266 avec le capteur de porte. En détail, nous allons apprendre :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Door Sensor
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 Screw Terminal Adapter

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

Brochage du capteur de porte

Un capteur de porte se compose de deux parties :

  • Un interrupteur à lames avec deux broches
  • Un aimant
Brochage du capteur de porte

Semblable à un interrupteur/bouton classique, il n'est pas nécessaire de différencier les deux broches du commutateur à lames.

Comment ça fonctionne

L'aimant est fixé à la porte/fenêtre (composant mobile), et l'interrupteur à lame est attaché au cadre de la porte (partie fixe). Lorsque la porte est fermée, les deux composants sont en contact :

  • Si l'aimant est proche de l'interrupteur Reed, le circuit de l'interrupteur Reed est fermé.
  • Si l'aimant est éloigné de l'interrupteur Reed, le circuit de l'interrupteur Reed est ouvert.
Capteur de porte : fonctionnement

※ NOTE THAT:

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

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

  • Lorsque l'aimant est proche de l'interrupteur à lame souple, la valeur sur la broche d'entrée de l'ESP8266 est BASSE.
  • Lorsque l'aimant est éloigné de l'interrupteur à lame souple, la valeur sur la broche d'entrée de l'ESP8266 est HAUTE.

Pour déterminer l'état de la porte, nous vérifions 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 s'ouvre ou se ferme en surveillant les changements d'état sur la broche d'entrée de l'ESP8266 :

  • Si l'état passe de BAS à HAUT, l'ouverture de la porte a été détectée
  • Si l'état passe de HAUT à BAS, la fermeture de la porte a été détectée

Diagramme de câblage

Schéma de câblage du capteur de porte ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Comment programmer un capteur de porte

  • Configure le pin ESP8266 en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, le pin D7 est configuré comme une entrée.
pinMode(D7, INPUT_PULLUP);
  • Utilise la fonction digitalRead() pour évaluer l'état de la broche ESP8266.
int door_state = digitalRead(D7);

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

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-door-sensor */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 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); // Configure the ESP8266 pin to the 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

Pour commencer avec l'ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, par exemple (ex. NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Copiez le code et ouvrez-le avec l'Arduino IDE.
  • Cliquez sur le bouton Upload dans l'IDE pour envoyer le code à l'ESP8266.
  • Approchez l'aimant du commutateur à lame souple, puis éloignez-le.
  • Consultez le moniteur série pour le résultat.
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 ESP8266 - Détecter les événements d'ouverture et de fermeture de porte

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-door-sensor */ #define DOOR_SENSOR_PIN D7 // The ESP8266 pin D7 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); // Configure the ESP8266 pin to the 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 has been 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 has been 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 le transférer à l'ESP8266.
  • Approchez l'aimant du contact reed, puis éloignez-le.
  • Consultez le résultat sur le moniteur série.
COM6
Send
The door-closing has been detected The door-opening has been 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!