Arduino Mega - Capteur de porte

Ce guide vous montre comment utiliser un Arduino Mega et un capteur de porte pour vérifier si votre porte ou fenêtre est ouverte ou fermée. Nous apprendrons comment installer le capteur de porte, le connecter à l'Arduino, et comment écrire un programme pour l'Arduino afin de lire l'état du capteur.

Arduino Mega door sensor

Matériel requis

1×Arduino Mega
1×Câble USB 2.0 type A/B
1×Capteur de porte
1×Recommandé: Screw Terminal Block Shield for Arduino Uno/Mega
1×Recommandé: Breadboard Shield for Arduino Mega
1×Recommandé: Enclosure for Arduino Mega

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (30 capteurs/écrans)
1×Kit de Capteurs DIYables (18 capteurs/écrans)
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

Le capteur de porte a deux parties.

  • Un interrupteur à lames avec deux bornes métalliques
  • Un aimant
Door Sensor Pinout

Comme un interrupteur normal ou un bouton, vous n'avez pas besoin de distinguer les deux broches de l'interrupteur à lames.

Fonctionnement

Un aimant est fixé à la porte ou à la fenêtre, qui bouge. L'interrupteur à lames est fixé au cadre de la porte, qui reste immobile. Lorsque la porte se ferme, l'aimant et l'interrupteur à lames se rapprochent.

  • Lorsque l'aimant est proche de l'interrupteur à lames, le circuit se ferme.
  • Lorsque l'aimant est éloigné de l'interrupteur à lames, le circuit s'ouvre.
Door Sensor How It Works Pinout

※ Note:

L'interrupteur à lames ne fournit pas de signal bas ou haut par lui-même. Il indique seulement ouvert ou fermé. La façon dont vous le connectez à l'Arduino Mega détermine si la broche lit LOW, HIGH, ou flotte (imprévisible). Pour éviter le flottement, ajoutez une résistance de tirage vers le haut (pull-up) ou vers le bas (pull-down) à la broche de l'Arduino Mega.

Si nous connectons une broche de l'interrupteur à lames à la masse, et l'autre broche à une broche d'entrée de l'Arduino Mega avec une résistance pull-up (elle peut être intégrée ou ajoutée séparément) :

  • Lorsque l'aimant est proche de l'interrupteur à lames, la broche d'entrée de l'Arduino Mega affiche LOW.
  • Lorsque l'aimant est éloigné de l'interrupteur à lames, la broche d'entrée de l'Arduino Mega affiche HIGH.

Donc :

  • Pour voir si la porte est ouverte ou fermée, regardez la broche de l'Arduino Mega.
    • Si la broche est LOW, la porte est fermée.
    • Si la broche est HIGH, la porte est ouverte.
  • Pour savoir quand la porte s'ouvre ou se ferme, surveillez les changements sur cette broche :
    • Un changement de LOW à HIGH signifie que la porte s'ouvre.
    • Un changement de HIGH à LOW signifie que la porte se ferme.

Schéma de câblage

Arduino Mega Door Sensor Wiring Diagram

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Comment programmer pour le capteur de porte

  • Sur l'Arduino Mega, une broche est configurée comme entrée numérique en utilisant la fonction pinMode(). Par exemple, la broche 9.
pinMode(9, INPUT_PULLUP);
  • Lit l'état de la broche sur l'Arduino Mega en utilisant la fonction digitalRead().
int door_state = digitalRead(9);

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

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-door-sensor */ #define DOOR_SENSOR_PIN 9 // The Arduino Mega pin connected to door sensor's pin int door_state; void setup() { Serial.begin(9600); // initialize serial 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

Suivez ces étapes une par une.

  • Connectez les composants en suivant le schéma.
  • Connectez l'Arduino Mega à votre ordinateur avec un câble USB.
  • Ouvrez l'IDE Arduino sur votre ordinateur.
  • Choisissez la bonne carte : Arduino Mega, et le bon port COM.
  • Copiez le code ci-dessus et ouvrez-le dans l'IDE Arduino.
  • Cliquez sur le bouton Upload pour envoyer le code à l'Arduino Mega.
  • Approchez l'aimant de l'interrupteur à lames, puis éloignez-le.
  • Vérifiez les résultats dans 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 Mega - Détecter les événements d'ouverture et de fermeture de porte

/* * Ce code Arduino Mega a été développé par newbiely.fr * Ce code Arduino Mega 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-mega/arduino-mega-door-sensor */ #define DOOR_SENSOR_PIN 9 // The Arduino Mega 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 serial 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 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 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 dans l'IDE Arduino pour télécharger le code sur votre Arduino Mega.
  • Approchez un aimant de l'interrupteur à lames, puis éloignez-le.
  • Vérifiez les résultats dans le Moniteur série.
COM6
Send
The door closing is detected The door opening is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Vidéo

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !