Installer un détecteur de mouvement et une caméra sur votre Raspberry Pi

Rasberry-Pi2

Avant toute chose, il faut savoir qu’avec les dernières versions de Raspbian, l’installation, la configuration et l’utilisation du capteur de présence s’est nettement amélioré. Désormais, il y a un package officiel et la configuration est plus rapide.

Etape 0 – Matériel

Vous devez vous procurez tout le matériel nécessaire… Je pense notamment au minimum suivant : Raspberry Pi, câble d’alimentation, câble Ethernet (et/ou dongle WiFi compatible), boîtier éventuel.

Précisons que si vous souhaitez utiliser votre Raspberry Pi comme une véritable caméra de sécurité, vous devrez nécessairement investir dans un boîtier. Vous pouvez prendre un boîtier “standard” comme ceux que j’ai présenté dans mes précédents articles mais dans ce cas là, il faut savoir que la nappe et la caméra se trouveront à l’extérieur du boîtier sans réelle protection.

Ou bien, vous pouvez utiliser ce type de boîtier que j’ai trouvé sur eBay pour un peu moins de 20 euros (frais de ports non inclus).

IMG_0771

L’avantage de ce type de boîtier et de protéger votre Raspberry Pi tout en mettant à disposition 2 emplacement sur la partie supérieure pour la caméra et le capteur de mouvements (emplacements qui peuvent en plus pivoter). Attention toutefois, il faut bien noter que ce boîtier vous sera livré en “kit” et qu’il vous appartiendra d’assembler les morceaux (je le précise car moi… ayant lu un peu (trop) rapidement je pensais qu’il allait arriver tout monté) ! :p

Mais en vrai, vous recevrez plutôt ceci :

IMG_0754

Et en vrai, c’est un peu comme du Ikea, ça se monte une fois et ça ne se démonte plus sous risque de casser certaines plaques. Bref, pour ma part, j’en suis satisfait et ça fait parfaitement le job pour le prix ; vous savez maintenant à quoi vous attendre ! 😉

Et pour terminer sur la matériel, pour la caméra vous n’aurez aucune difficulté à brancher la nappe… En revanche, pour le capteur, je vous propose le lien suivant et le schéma dessous qui vaut mieux que de longs discours :

pir_wiring

De cette façon, vous voyez exactement quels sont les pins à utiliser pour connecter votre capteur ! 🙂

Etape 1 – Configuration du motion capteur

A partir de là, on va supposer que vous avez correctement monté votre Raspberry Pi (avec ou sans boîtier) et que vous avez correctement installé Raspbian sur le carte Micro SD de ce dernier. Vous avez également configuré votre Raspbian en définissant votre mot passe, hostname, activé la caméra et avez également procédé aux dernières mise à jour (là encore, je vous renvoi vers mes anciens articles) :

sudo apt-get update && sudo apt-get upgrade -y

Nous allons maintenant installer le package motion disponible qui va nous permettre d’utiliser notre motion sensor.

Pour ce faire :

sudo apt-get install motion

Acceptez l’installation de toutes les dépendances bien entendu.

Globalement, vous avez 2 fichiers de config à connaître par la suite :

  • /etc/motion/motion.conf
  • /etc/default/motion

Pour vérifier le statut de fonctionnement du détecteur, comme pour tout paquet debian, vous pouvez exécutez la commande suivante :

sudo /etc/init.d/motion status

Capture_01

Vous voyez que nous avons un warning message,et que nous devons modifier un paramètre (le seul) qui se trouve dans le fichier /etc/default/motion. Editez le avec votre outil préféré et modifiez le paramètre start_motion_daemon à yes.

Capture_02

Effectuez ensuite un redémarrage du processus avec la commande suivante :

sudo /etc/init.d/motion restart

Globalement, pour notre test, on va laisser la plupart des paramètres avec leurs options par défaut. Il vous appartiendra de les découvrir en fonction de vos tests (j’aborde quelques options intéressantes à la fin de l’article).

Modifiez tout de même les paramètres suivants :

  • stream_localhost off : autoriser le flux vidéo à être accessible depuis Internet et non uniquement sur votre réseau local) – NB : vous devrez tout de même faire vos ouvertures de flux au niveau de votre box Internet !
  • stream_authentication : pour définir un login et mot de passe et protéger ainsi vote flux vidéo
  • webcontrol_localhost off

Normalement, si vous avez tout bien fait, il vous suffit d’effectuer un nouveau restart du processus motion et vous devriez pouvoir vous connecter à l’URL suivante sur votre Raspberry Pi : http://192.168.1.48:8081/ (remplacez 192.168.1.48 par l’IP interne sur votre réseau du Raspberry Pi).

Capture_04

Et là… c’es le drame ! Pour ma part, j’ai d’abord eu quelques soucis avec le flux vidéo puisque tout était gris. Alors que pourtant lorsque j’exécutais des scripts basiques pour tester la caméra cette dernière était fonctionnelle (mais pas avec couplée motion).

J’ai trouvé la réponse à l’adresse suivante : http://raspberrypi.stackexchange.com/questions/10480/raspi-camera-board-and-motion en exécutant la commande suivant :

sudo modprobe bcm2835-v4l2

A noter que cette commande doit être exécutée à chaque redémarrage donc insérez-là au besoin dans le crontab du compte root. Pour ce faire :

sudo crontab -e

Puis ajoutez la ligne suivante :

@reboot sudo modprobe bcm2835-v4l2

Relancez maintenant le motion sensor en tapant simplement motion et agitez quelque-chose devant ce dernier, plusieurs fichiers images devraient désormais s’être créés dans votre dossier utilisateur (/home/pi) par défaut.

Capture_06

Vous avez même du voir la petite lumière rouge de votre caméra s’allumer… 🙂

03-20160206121217-09

Relancez maintenant la commande motion pour démarrer le processus et observez :

Capture_07

Une fois le processus relancé (et la bla-bla passé), j’ai attendu quelques instants et lorsque j’ai passé ma main devant le capteur, celui s’est déclenché et a pris immédiatement une photo (on le voit dans les logs au niveau des 2-3 dernières lignes).

Etape 2 – Démarrer motion via Screen (en tâche de fond)

Pour faire fonctionner le capteur motion en permanence (et non pas uniquement dans votre session utilisateurs lorsque vous êtes connecté), je vous recommande d’utiliser la commande screen (à installer).

sudo apt-get install screen

Cette dernière vous permettra de lancer un processus en tâche de fond (même si vous n’êtes plus connecté en SSH).

Pour ce faire, tapez screen et exécutez la commande motion. Une fois le processus démarré, détachez la console avec le raccourcie clavier CTRL + A + D. Déconnectez-vous. Une fois reconnecté, pour retourner dans cette console tapez screen -r. Pour terminer un screen, tapez simplement Exit.

Etape 3 – Pour aller plus loin

Nous sommes parvenus à utiliser notre caméra couplée à notre détecteur de mouvement et nous avons pu automatiquement générer des photos lorsqu’un événement était détecté.

Il vous appartient maintenant de pousser un peu plus loin les tests notamment en regardant les différents paramètres qui sont à votre disposition avec le package motion (voir le fichier configuration).

Je pense notamment aux paramètres suivants qui pourraient vous intéresser :

  • widthheight : pour définir la hauteur et la largeur de l’image / vidéo qui sera générée
  • pre_capture & post_capture : pour configurer la prise automatique de fichiers images/vidéos avant et après une détection
  • quality : pour configurer le niveau de compression de vos fichier jpeg
  • location_motion_mode & locate_motion_style : pour dessiner un carré autour de ce qui a été détecté
  • text_right & text_left : pour personnaliser les messages qui sont automatiquement ajoutés à vos fichiers
  • on_event_starton_event_endon_picture_save : pour configurer l’exécution d’actions ou de scripts lorsqu’un événement est détecté – c’est là que vous allez pouvoir automatiquement demander l’exécution de vos scripts batch ou python lorsque quelque-chose est détecté ! 😉

Encore un peu de lecture :