Contrôler un détecteur de mouvement avec prise de vue à l’aide un Raspberry pi

Contrôler un détecteur de mouvement avec prise de vue à l’aide un Raspberry pi

Il s'agit d'un tout petit appareil faisant office d'ordinateur et ayant la forme d'une seule et simple carte mère. Il est pratique à manipuler, de par sa petite taille et son faible poids, peu cher et facile à utiliser tout en préservant une très bonne performance. Il fournit également un ensemble de broches GPIO (entrée/sortie à usage général) qui vous permettent de contrôler les composants électroniques pour l'informatique physique et l'exploration de l'Internet des objets (IoT).

Que peut-on faire avec un Raspberry Pi ?

Le Raspberry Pi offre un nombre illimité de choses à faire. Il est parfait pour ceux qui cherchent à améliorer leurs compétences informatiques ou pour les personnes qui ont besoin de quelque chose pour laisser libre cours à leur imagination. Dans cet article, nous allons apprendre à construire notre propre système de détection de mouvement en capturant l’image de l’objet détecté. C’est l’un des moyens les plus simples d’explorer les grandes possibilités du Raspberry. Appelons notre projet MDIC.

Prérequis

Quelques connaissances de base sont nécessaires pour réussir ce projet : 

– Accès au Raspberry (via SSH ou en le connectant directement à un écran) ;

– Connaissances de base en Python (pour pouvoir lire et comprendre le code Python).

Outre ces prérequis techniques, d’autres éléments matériels sont nécessaires :

1- Raspberry Pi

2- Raspberry Pi Camera Module V2

3- PIR sensor (capteur de mouvement)

4- Câble cavalier female/female

 

Raccordement de la caméra au Raspberry

Le raccordement de la caméra est très simple.

– Tirer délicatement sur les bords du clip en plastique du port ;

– Insérer le câble ruban du module caméra (s’assurer que le câble est dans la bonne direction) ;

– Remettre le clip en plastique en place.

Une fois le raccordement effectué, il faut activer le module sur le Raspberry. 

Ouvrir le terminal en tant qu’utilisateur « root » et saisir « raspi-config » ;

Sélectionner « Interfacing Options » ;

Activer la caméra et redémarrer le Raspberry.

Bingo ! La caméra est activée, prête à prendre les photos de l’intrus.

Connexion du capteur de mouvement au Raspberry

Très simple, il suffit de faire les bons branchements (comme indiqué sur la figure ci-dessous) et raccorder :

  • la corde rouge VCC au pin 2
  • la sortie jaune OUT au pin 16
  • la ground noire GND au pin 6

Résultat attendu

Puisque nous avons réussi à connecter tous les éléments, commençons à mettre en place la partie logique de notre projet en Python : détecter le mouvement et capturer l’image du déclencheur.

En se connectant à la Raspberry, sous le répertoire /home, il faut créer deux répertoires : « mdic » et « mdic_code ».

Dans « mdic_code », créer un fichier mdic.py et coller le code ci-dessous :

#!/usr/bin/python
# -*- coding: utf-8 -*-
import RPi.GPIO as GPIO
import time
import subprocess
from picamera import PiCamera
import os
import time
# Use BCM GPIO references
# instead of physical pin numbers
GPIO.setmode(GPIO.BCM)
# Define GPIO to use on Pi
GPIO_PIR = 7
print 'PIR Module Test (CTRL-C to exit)'
# Set pin as input
GPIO.setup(GPIO_PIR, GPIO.IN) # Echo
Current_State = 0
Previous_State = 0
camera = PiCamera()
try:
    print 'Waiting for PIR to settle ...'
  # Loop until PIR output is 0
    while GPIO.input(GPIO_PIR) == 1:
        Current_State = 0
    print ' Ready'
  # Loop until users quits with CTRL-C
    while True:
    # Read PIR state
        Current_State = GPIO.input(GPIO_PIR)
        if Current_State == 1 and Previous_State == 0:
      # PIR is triggered
            print ' Motion detected!'
      # Record previous state
            camera.start_preview()
            time.sleep(1)
            t = time.localtime()
            current_time = time.strftime('%H:%M:%S', t)
            camera.capture('/home/pi/Documents/cam/mvt_pic/img_'+ current_time + '.jpg')
            camera.stop_preview()
            Previous_State = 1
        elif Current_State == 0 and Previous_State == 1:
      # PIR has returned to ready state
            print ' Ready'
            Previous_State = 0
    # Wait for 10 milliseconds
        time.sleep(0.01)
except KeyboardInterrupt:
    print ' Quit'
  # Reset GPIO settings
    GPIO.cleanup()

Sauvegardez et rendons le fichier exécutable en faisant (chmod +x).

Tout est bon, nous pouvons maintenant bien placer le capteur devant le coffre-fort, lancer le script et attendre que le voleur passe.

Axes d’améliorations

Vous envoyer l’image capturée asur votre adresse mail ou jouer une musique lorsqu’un mouvement est détecté.

Il est possible et facile avec Raspberry de créer un projet simple et intéressant, vous pouvez également créer des choses plus compliquées.