Raspberry Pi - Capteur de mouvement - Relais

Ce didacticiel vous explique comment utiliser un Raspberry Pi et un capteur de mouvement pour contrôler un relais. En détail :

En connectant un relais à une ampoule, une bande LED, un moteur ou un actionneur... nous pouvons ensuite utiliser le Raspberry Pi et le capteur de mouvement pour contrôler l'ampoule, la bande LED, le moteur ou l'actionneur...

Cela peut être appliqué dans un processus d'automatisation qui déclenche des actions lorsque la présence humaine est détectée.

Préparation du matériel

1×Raspberry Pi 5
1×Capteur de mouvement HC-SR501
1×Relais
1×Optionnel: Serrure à solénoïde
1×Adaptateur secteur 12V
1×Connecteur d'alimentation DC
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Raspberry Pi
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Raspberry Pi

Ou vous pouvez acheter les kits suivants:

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 relais et du capteur de mouvement

Si vous n'êtes pas familiarisé avec le relais et le capteur de mouvement (y compris le brochage, la fonctionnalité et la programmation), consultez les tutoriels suivants :

Diagramme de câblage

Schéma de câblage du capteur de mouvement Raspberry Pi avec relais

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

Pour simplifier et organiser votre montage de câblage, nous recommandons l'utilisation d'un shield à bornier à vis pour Raspberry Pi. Ce shield assure des connexions plus sûres et mieux gérées, comme illustré ci-dessous :

Shield à bornier à vis pour Raspberry Pi

Configuration initiale

Time Delay AdjusterScrew it in anti-clockwise direction fully.
Detection Range AdjusterScrew it in clockwise direction fully.
Repeat Trigger SelectorPut jumper as shown on the image.
Configuration initiale du capteur de mouvement Arduino

Code Raspberry Pi

Étapes rapides

  • Assurez-vous d'avoir Raspbian ou tout autre système d'exploitation compatible 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 certaines 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 au Raspberry Pi via SSH.
  • Assurez-vous d'avoir la bibliothèque RPi.GPIO installée. Sinon, 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 motion_sensor_relay.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-motion-sensor-relay import RPi.GPIO as GPIO # Set the GPIO mode (BCM or BOARD) GPIO.setmode(GPIO.BCM) # Define the GPIO pin number to which the relay is connected RELAY_PIN = 12 # Define the GPIO pin number to which the motion sensor is connected MOTION_SENSOR_PIN = 14 # Set up the GPIO pins GPIO.setup(MOTION_SENSOR_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP) # Input with pull-up resistor GPIO.setup(RELAY_PIN, GPIO.OUT) # Output try: while True: motion_state = GPIO.input(MOTION_SENSOR_PIN) if motion_state == GPIO.HIGH: print("The movement is detected") GPIO.output(RELAY_PIN, GPIO.HIGH) # Turn the relay on else: print("The movement is stopped") GPIO.output(RELAY_PIN, GPIO.LOW) # Turn the relay off except KeyboardInterrupt: GPIO.output(RELAY_PIN, GPIO.LOW) # Turn off the relay GPIO.cleanup()
  • Enregistrez le fichier et exécutez le script Python en entrant la commande suivante dans le terminal :
python3 motion_sensor_relay.py
  • Déplacez votre main devant le capteur.
  • Vérifiez l'état du relais, vous verrez que le relais est activé lorsque le mouvement est détecté.

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

Explication du Code

Consultez l'explication ligne par ligne contenue dans les commentaires du code source !

Relais vs module MOSFET

Un relais n'est pas le seul moyen de commuter un appareil. Si votre appareil fonctionne en courant continu (DC), comme une bande LED 12V, une serrure à solénoïde 12V ou un ventilateur 12V, un module MOSFET peut faire le même travail.

Relais Module MOSFET
Ce qu'il peut faire allumer ou éteindre l'appareil allumer ou éteindre l'appareil, et régler sa puissance (PWM)
Bruit à la commutation un clic à chaque fois aucun bruit
Vitesse de commutation lente, quelques millisecondes très rapide
Durée de vie les contacts s'usent après de nombreuses commutations rien ne bouge, donc il dure longtemps
Type d'alimentation AC ou DC DC uniquement
Alimentation de l'appareil toute tension admise par le relais environ 6V ou plus
Isolation du Raspberry Pi oui, entre bobine et contacts oui, par l'optocoupleur PC817
Idéal pour appareils AC, ou simple ON/OFF appareils DC, ou variation de luminosité et de vitesse

Le relais et le module MOSFET s'activent tous les deux quand la broche du Raspberry Pi est à l'état HIGH (GPIO.output(pin, GPIO.HIGH)). Donc, pour un simple ON/OFF, le code ci-dessus reste le même. Seul le câblage change. Le signal 3.3V de la broche du Raspberry Pi suffit pour le module MOSFET. Pour les appareils branchés sur le secteur AC, utilisez toujours le relais.

Pour connaître le brochage, le câblage, le code PWM et les conseils de sécurité du module MOSFET, consultez le tutoriel Raspberry Pi - Module MOSFET.

Vidéo

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