Raspberry Pi - Capteur de porte

Le capteur de porte est une fonctionnalité courante dans les systèmes 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 de contact, capteur d'entrée ou capteur de fenêtre.

Ce tutoriel vous explique comment utiliser un Raspberry Pi avec le capteur de porte. En détail, nous apprendrons :

Préparation du matériel

1×Raspberry Pi 4 Model B
1×Door Sensor
1×(Optional) Screw Terminal Block Shield for Raspberry Pi
1×(Optional) USB-C Power Cable with On/Off Switch for Raspberry Pi 4B
1×(Optional) Plastic Case and Cooling Fan for Raspberry Pi 4B
1×(Optional) HDMI Touch Screen Monitor for Raspberry Pi

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 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 de l'interrupteur à lames.

Comment ça fonctionne

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

  • Lorsque l'aimant est proche 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 Comment ça Marche brochage

※ Note:

L'interrupteur à lames ne fournit pas de valeurs BASSE ou HAUTE sur ses broches. Il est soit fermé soit ouvert. La valeur de la broche connectée au Raspberry Pi peut être BASSE, HAUTE ou une valeur flottante (imprévisible). Pour éviter la valeur flottante, nous devons utiliser une résistance de tirage vers le haut ou vers le bas sur la broche du Raspberry Pi.

Si nous connectons une broche de l'interrupteur à lames à la masse (GND) et l'autre broche de l'interrupteur à lames à une broche d'entrée du Raspberry Pi avec une résistance de pull-up (interne ou externe) :

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

Pour connaître l'état de la porte, nous devons simplement vérifier l'état de la broche d'entrée du Raspberry Pi :

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

Pour détecter les événements d'ouverture/fermeture de porte, nous pouvons surveiller le changement d'état sur le broche d'entrée du Raspberry Pi :

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

Diagramme de câblage

Schéma de câblage du capteur de porte Raspberry Pi

This image is created using Fritzing. Click to enlarge image

Pour simplifier et organiser votre câblage, nous vous recommandons d'utiliser un Screw Terminal Block Shield pour Raspberry Pi. Ce shield garantit des connexions plus sûres et plus faciles à gérer, comme illustré ci-dessous :

Raspberry Pi Screw Terminal Block Shield

Comment programmer un capteur de porte

  • Initialisez la broche Raspberry Pi en mode d'entrée numérique en utilisant la fonction GPIO.setup(). Par exemple, le code suivant peut être utilisé pour initialiser la broche 13 en tant qu'entrée :
GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
  • Utilise la fonction GPIO.input() pour déterminer l'état de la broche du Raspberry Pi.
door_state = GPIO.input(DOOR_SENSOR_PIN) # État de la porte

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

Étapes rapides

  • Assurez-vous que vous avez Raspbian ou tout autre système d'exploitation compatible avec Raspberry Pi installé sur votre Pi.
  • Assurez-vous que votre Raspberry Pi est connecté au même réseau local que votre PC.
  • Assurez-vous que votre Raspberry Pi est connecté à internet si vous devez installer des bibliothèques.
  • Si c'est la première fois que vous utilisez Raspberry Pi, consultez Installation du logiciel - Raspberry Pi..
  • Connectez votre PC au Raspberry Pi via SSH en utilisant le client SSH intégré sur Linux et macOS ou PuTTY sur Windows. Consultez comment connecter votre PC à Raspberry Pi via SSH.
  • Assurez-vous que vous avez installé la bibliothèque RPi.GPIO. Si ce n'est pas le cas, installez-la en utilisant la commande suivante :
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Créez un fichier de script Python door_sensor.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-door-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the sensor is connected DOOR_SENSOR_PIN = 16 # Setup the GPIO pin as an input GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state == GPIO.HIGH: print("Door is OPEN") else: print("Door is CLOSED") time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en exécutant la commande suivante dans le terminal :
python3 door_sensor.py
  • Approchez l'aimant du détecteur à lames, puis éloignez-le.
  • Vérifiez le résultat sur le terminal.
PuTTY - Raspberry Pi
Door is OPEN Door is OPEN Door is OPEN Door is CLOSED Door is CLOSED Door is CLOSED Door is CLOSED Door is CLOSED Door is OPEN Door is OPEN

Le script s'exécute en boucle infinie jusqu'à ce que vous appuyiez sur Ctrl + C dans le terminal.

Vous remarquerez que le code continue d'imprimer l'état actuel de la porte. Si vous souhaitez imprimer l'état de la porte uniquement lorsqu'il change, consultez la session suivante.

Code Raspberry Pi - Détecter les événements d'ouverture et de fermeture de porte

  • Créez un fichier de script Python door_sensor_events.py et ajoutez le code suivant :
# Ce code Raspberry Pi a été développé par newbiely.fr # Ce code Raspberry Pi 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/raspberry-pi/raspberry-pi-door-sensor import RPi.GPIO as GPIO import time # Set the GPIO mode to BCM GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the sensor is connected DOOR_SENSOR_PIN = 17 # Setup the GPIO pin as an input GPIO.setup(DOOR_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Variable to store the previous state of the door sensor prev_door_state = GPIO.HIGH try: while True: # Read the state of the door sensor (HIGH when open, LOW when closed) door_state = GPIO.input(DOOR_SENSOR_PIN) if door_state != prev_door_state: if door_state == GPIO.HIGH: print("Door is OPEN") else: print("Door is CLOSED") prev_door_state = door_state time.sleep(0.1) # Add a small delay to avoid excessive reads except KeyboardInterrupt: print("Exiting...") GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 door_sensor_events.py
  • Approchez l'aimant de l'interrupteur à lames, puis éloignez-le.
  • Vérifiez le résultat sur le terminal.
PuTTY - Raspberry Pi
Door is OPEN Door is CLOSED
  • Vous verrez que l'état de la porte est imprimé uniquement lorsque l'état change.

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!