Posted on Leave a comment

Capteur de mouvement HC-SR501 avec Raspberry Pi

Dans ce tutoriel, nous utilisons un capteur de mouvement pour détecter une présence. Avec un script Python sur le Raspberry Pi, nous surveillerons si des mouvements sont détectés. Lorsque vous aurez terminé ce tutoriel, vous pourrez connecter le capteur HC-SR501 à votre Pi via les broches GPIO. Vous aurez également le code de base pour convertir le signal de sortie du capteur en informations utilisables dans votre script Python.

Ce dont vous aurez besoin pour ce tutoriel

Tout d’abord, vous devez avoir un Raspberry Pi 3 avec la dernière version de Raspbian. Cette version comprend “Thonny”. Nous utiliserons cet EDI convivial pour écrire notre code Python. Si vous n’êtes pas familier avec Python ou avec Thonny ou avec les broches GPIO, je vous suggère de consulter nos tutoriels “Débuter à programmer en Python sur Raspberry Pi” et/ou “Commencer à programmer les GPIO du Raspberry Pi” pour une introduction rapide.

Ensuite, vous aurez besoin d’un peu de matériel supplémentaire:

  • un breadboard (nous utilisons un breadboard de 400 points)
  • un capteur de mouvement PIR HC-SR501
  • des câbles Dupont
  • un T-cobbler
  • un câble GPIO 40 broches

Raspberry Pi GPIO discovery kit

Si vous manquez des pièces, n’hésitez pas à visiter notre boutique. Nous avons un kit bien conçu contenant toutes les pièces dont vous avez besoin pour démarrer.

Le capteur de mouvement PIR HC-SR501

PIR signifie Détection Infrarouge Passive. Le capteur mesure les variations de la lumière infrarouge. Comme nous émettons tous une lumière infrarouge, les variations infrarouges sont détectées par le capteur lorsque nous nous déplaçons devant le capteur. Lorsque cela se produit, le capteur définira la sortie du signal sur haut. Comme le signal de sortie est de 3,3 V, le signal de sortie peut être directement connecté à une broche d’entrée GPIO du Raspberry Pi.

Le module peut être configuré comme suit:

capteur de mouvement PIR HC-SR501
  • Jumper set: Le jumper est utilisé pour contrôler le mode de déclenchement. Lorsque le jumper est en position “L”, le mode est défini comme “mode de déclenchement non répété”, ce qui signifie que lorsque le module fournit une tension HAUTE en raison de mouvement humain, il ne se déclenchera plus, même si un autre mouvement humain est détecté. Lorsque le jumper est en position “H”, le module est configuré en “mode de déclenchement répété”, ce qui signifie que le temps de retard sera recalculé lorsqu’un deuxième mouvement humain est détecté pendant son temps de retard.
  • Sensitivity adjust: pour ajuster la plage de détection
  • Time Delay Adjust

Mettre en place la partie matérielle

Avant de brancher des câbles sur les broches GPIO de votre Raspberry Pi, assurez-vous d’éteindre correctement le Pi et de retirer le câble d’alimentation de la carte mère!

capteur de mouvement PIR HC-SR501 connecté au Raspberry Pi
  • connectez le câble 40 broches sur les broches GPIO de votre Pi (si nécessaire, retirez d’abord le cache de votre Pi)
  • branchez le T-cobbler sur le breadboard comme indiqué sur la figure ci-dessus ou ci-dessous
  • branchez l’autre extrémité du câble 40 broches dans le T-cobbler
  • reliez la broche VCC du capteur à une broche 5V (fil rouge)
  • reliez la broche OUTPUT du capteur à la broche 23 (fil jaune)
  • connectez le GND du capteur à une broche GPIO GND (fil noir)
capteur de mouvement PIR HC-SR501 connecté au Raspberry Pi

Ecrire le code

Le but est d’écrire un programme Python très simple qui nous permet de visualiser quand du mouvement a été détecté. Pour écrire le code, nous utilisons l’EDI Thonny. Vous pouvez trouver Thonny dans le menu d’applications de votre Raspberry Pi.

Écrivez ou collez le code suivant dans l’EDI:

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
PIR_PIN = 23
GPIO.setup(PIR_PIN, GPIO.IN)

print('Starting up the PIR Module (click on STOP to exit)')
time.sleep(1)
print ('Ready')

while True:
if GPIO.input(PIR_PIN):
print('Motion Detected')
time.sleep(1)

Quelques explications à propos du code:

  • GPIO.setmode (GPIO.BCM): L’option GPIO.BCM signifie que nous faisons référence aux broches par le numéro “Broadcom SOC channel”, ce sont les numéros après “GPIO”
  • GPIO.setwarnings (False): nous l’utilisons ceci pour éviter les messages d’avertissement.
  • GPIO.setup(PIR_PIN,GPIO.IN): nous définissons la broche PIR-pin (= 23) comme une broche d’entrée
  • time.sleep(1) On attend 1 seconde pour être certain que le capteur soit stabilisé.
  • while True: est une boucle à l’infinie (jusqu’à ce que nous interrompons le programme)
  • Attention, Python est sensible aux espaces. Ne supprimez pas le “tab” avant la ligne de code quit suit la commande “while”
  • if GPIO.input(PIR_PIN): si la broche PIR est haute (le capteur a détecté un mouvement)
  • time.sleep(1) On attend 1 seconde avant de poursuivre la boucle
capteur de mouvement PIR HC-SR501 script Python

Lorsque vous avez terminé avec le code, cliquez sur le bouton RUN. Vous verrez un message à l’écran lorsque le capteur détecte un mouvement.

Pour arrêter le programme, cliquez simplement sur le bouton STOP.

Toutes nos félicitations! Avec cette configuration, vous pouvez intégrer la détection de mouvement dans votre code. Vous pouvez également utiliser le script pour traiter le résultat dans une application dans laquelle vous souhaitez surveiller la présence humaine. Ayez encore beaucoup de plaisir!

Laissez nous un commentaire

Your email address will not be published. Required fields are marked *

Abonnez-vous à notre newsletter

En vous abonnant, vous acceptez notre politique de protection de la vie privée.