Détecteur de mouvement avec le Raspberry

Le détecteur de mouvement est un composant de base pour la construction d’un système de sécurité.

C’est facile à trouver sur Internet et ça coûte vraiment pas cher (en tous cas celui que j’ai acheté).

Couplé au Raspberry, j’ai fait un petit test pour construire un début de système de surveillance.

Le principe

Le détecteur de mouvement détecte les zones de chaleur en mouvement dans sa zone de détection. Le corps humain émettant de la chaleur, quand une personne passe dans cette zone de détection, un signal est émis en sortie sur le détecteur. En récupérant ce signal sur le Raspberry, on détecte un mouvement. Reste à coder la réaction à ce mouvement. Dans un article précédent, j’avais testé l’envoi d’un sms sur mon téléphone. Du coup, j’ai réutilisé ce bout de code pour m’alerter par sms de l’intrusion de quelqu’un chez moi. (Pensez à sortir le chat :-))

 

Montage

Pas besoin d’autre chose que du capteur (pas de résistance ou autre à ajouter).

 

Le détecteur dispose de 3 connecteurs :

  • un qui correspond à l’alimentation (à brancher sur la broche GPIO d’alimentation du raspberry)
  • un qui correspond à la masse (à brancher sur la broche GPIO de masse du raspberry)
  • un dernier qui renvoi le signal sur détection de mouvement (à brancher sur une autre broche du GPIO, par exemple la dernière : 26)

Remarque : pour savoir le type des différents connecteurs (alimentation, masse et signal), il faut enlever l’espèce de 1/2 sphère et on accède alors à leur marquage (respectivement UCC, GND et OUT)

Pas nécessaire d’utiliser une plaque de prototypage (sauf pour s’exercer à son utilisation si comme moi vous êtes débutants).

Bien entendu il faut placer le détecteur orienté vers la zone à surveiller (la porte d’entrée dans mon cas).

Le code

Le code commenté en Python pour faire fonctionner tout ça :

# Gestion des ports GPIO
import RPi.GPIO as GPIO
# Gestion du temps pour utiliser sleep
import time
# Gestion des url pour envoi sms via http
import urllib.request

smsEnvoye=False

# on définit que le signal doit être détecté sur la broche 21 en entrée (IN)
GPIO.setmode(GPIO.BCM)
numGpioSignal = 21
GPIO.setup(numGpioSignal,GPIO.IN)

try :
    while True:
    if GPIO.input(numGpioSignal):
        # Mouvement détecté, on envoie le sms si pas déjà fait
        if not smsEnvoye :
            urllib.request. urlopen('https://smsapi.free-mobile.fr/sendmsg?user=votre_user&pass=votre_identification&msg=INTRUSION')
            print("Mouvement détecté!")
            smsEnvoye=True
        time.sleep(1)

except KeyboardInterrupt: # on sort par un Ctrl+C
    print("Terminé!")
    # réinitialisation des ports GPIO pour sortir proprement
    GPIO.cleanup()

Réglage de la sensibilité du détecteur

Le détecteur de mouvement a deux petits potentiomètres sur le coté. Ils permettent de régler respectivement la sensibilité du capteur et la durée du signal de sortie quand un mouvement est détecté.

En jouant sur ces deux potentiomètres, on trouve facilement le réglage qui va bien.

Pas mal non ?

Amusez-vous bien !