ESP32 - Capteur de porte

Le capteur de porte (également connu sous le nom de capteur d'entrée, capteur de contact ou capteur de fenêtre) est largement utilisé dans de nombreux types d'applications, en particulier pour la sécurité. Il est utilisé pour détecter/surveiller les entrées (telles que la porte, la fenêtre ...). Ce tutoriel vous explique comment utiliser l'ESP32 avec le capteur de porte.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Door Sensor
1×(Optional) DC Power Jack
1×Breadboard
1×Jumper Wires
1×(Recommended) ESP32 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

Le capteur de porte a deux composants :

  • Un aimant
  • Un interrupteur à lame souple, qui possède deux fils
Brochage du capteur de porte

Tout comme l'interrupteur/le bouton, nous n'avons PAS besoin de différencier les deux fils de l'interrupteur à lames.

Fonctionnement d'un capteur de porte

L'aimant et l'interrupteur à lame souple sont installés sur la porte/les fenêtres comme suit :

  • L'aimant est la partie mobile. Il doit être attaché à la porte/fenêtre.
  • L'interrupteur à lames est la partie fixe. Il doit être attaché au cadre de la porte.

Les deux composants sont en contact lorsque la porte est fermée.

  • Le circuit à lames souples est fermé lorsqu'il est proche de l'aimant.
  • Le circuit à lames souples est ouvert lorsqu'il est éloigné de l'aimant.
Capteur de porte, comment ça marche

※ NOTE THAT:

Tout comme un bouton, nous DEVONS utiliser une résistance de tirage vers le haut ou vers le bas sur la broche ESP32, qui se connecte à l'interrupteur à lames.

Si nous connectons l'interrupteur à lames comme suit : un fil à la masse (GND), l'autre à la broche d'entrée de l'ESP32 avec une résistance de tirage vers le haut :

  • La broche d'entrée de l'ESP32 est à LOW lorsque l'aimant est proche de l'interrupteur à lame souple.
  • La broche d'entrée de l'ESP32 est à HIGH lorsque l'aimant est éloigné de l'interrupteur à lame souple.

Alors :

  • Si la broche d'entrée de l'ESP32 est à LOW, la porte est fermée
  • Si la broche d'entrée de l'ESP32 est à HIGH, la porte est ouverte
  • Si la broche d'entrée de l'ESP32 passe de LOW à HIGH, la porte s'ouvre
  • Si la broche d'entrée de l'ESP32 passe de HIGH à LOW, la porte se ferme

Schéma de câblage entre le capteur de porte et l'ESP32

Schéma de câblage du capteur de porte ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Comment programmer le capteur de porte

  • Initialise la broche ESP32 en mode entrée numérique en utilisant la fonction pinMode(). Par exemple, la broche GPIO19.
pinMode(19, INPUT_PULLUP);
  • Lit l'état de la broche ESP32 en utilisant la fonction digitalRead().
int doorState = digitalRead(19);

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

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 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"); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'Arduino IDE.
  • Rapprochez l'aimant du contact reed puis éloignez-le.
  • Consultez le résultat sur le moniteur série. Cela ressemble à ce qui suit :.
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 ESP32 - Détecter les événements d'ouverture et de fermeture de porte

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/esp32/esp32-door-sensor */ #define DOOR_SENSOR_PIN 19 // ESP32 pin GPIO19 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 ESP32 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 ... } }
  • Copiez le code ci-dessus et collez-le dans l'IDE Arduino.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload de l'IDE Arduino.
  • Approchez l'aimant du commutateur à lames, puis éloignez-le.
  • Vérifiez le résultat sur le moniteur série. Cela ressemble à ce qui suit :.
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

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