alarme de détection de mouvement maison

J’ai bricolé une alarme de détection de mouvement basée simplement sur la webcam de mon PC. Le principe est le suivant, un logiciel sur le PC détecte tout mouvement avec la webcam, fait une courte vidéo de l’évènement qu’il place dans un répertoire. Ensuite un script détecte le rajout d’un fichier et envoie un mail automatique. Dans le même temps, le répertoire où se trouve les fichiers vidéos est rendu accessible sur internet.

Pour le logiciel de détection de mouvement, j’ai utilisé motion qu’on trouvera par ici. Pour l’installation je suis parti des sources, il suffit de taper successivement

    autoreconf -fiv
    ./configure
    make
    

Puis en tant que root

make install

J’ai dû installer également le package lib64microhttpd-devel même si je ne me sers pas du serveur web httpd local. Le fichier de configuration se trouve par défaut sous /usr/local/etc/motion, il faudra renommer le fichier motion-dist.conf en motion.conf. Personnellement je n’ai fait que changer la variable target_dir pour indiquer le répertoire d’accueil des vidéos. Sur ma configuration, ce répertoire est un partage réseau qui se trouve physiquement sur mon serveur Dell PowerEdge.

Sur le serveur, j’ai rendu le répertoire accessible via le web en configurant apache avec restriction d’accès en rajoutant également une règle au firewall shorewall. Pour que le serveur soit visible d’internet, j’ai utilisé les services gratuits de no ip qui permet de nommer votre serveur sur internet avec un nom compréhensible et de rediriger les requêtes vers l’adresse IP fournie par le fournisseur d’accès. Sur le routeur de mon réseau, j’ai enfin rajouté une redirection vers le port d’apache.

Pour terminer j’ai créé un script basé sur le package inotify-tools et mutt pour envoyer un mail dès qu’un nouveau fichier fait son apparition.

#!/bin/bash
inotifywait -m /var/httpd/webcam -e create -e moved_to |
    while read path action file; do
        echo "Le fichier '$file' est apparu dans le répertoire '$path' via '$action'"
	echo "Webcam : nouveau fichier" | mutt -s "Un nouveau fichier vidéo a été créé" -- maildenvoi
    done
    

Dans la pratique, on reçoit le mail qui signale la création d’un fichier et on va visualiser ensuite le fichier sur internet.

Tout cela n’est pas très écolo et monopolise 2 ordinateurs, il faudra que j’optimise tout cela sur une seule machine, et pourquoi pas tenter l’expérience Rasbperry.

Laisser un commentaire