Installation d’un système de videosurveillance à base de raspberry pi et motion
J’ai décidé d’utiliser mon raspberry pour faire de la vidéo surveillance de ma maison en mon absence.
L’objectif est de pouvoir faire de la surveillance temps réel mais également lors de la détection de mouvements d’envoyer une alerte via twitter ou par e-mail et generer une vidéo.
Que faut ‘il ? :
- Un raspberry
- Une carte SD
- une Webcam à la norme UCVIDEO de préférence pour eviter les problèmes de compatibilité.
- un accés à internet pour le raspberry
- un routeur configurable pour de la redirection de port/adresse
Comment fait on ? :
Phase 1 : Installation
installer une debian sur la sd du raspbery : de nombreux tuto sont dispo sur le net
installer motion (sudo apt-get install motion)
installer wput pour nous permettre d’envoyer la vidéo ou les images par ftp
donner une ip fixe au raspeberry http://www.pihomeserver.fr/2013/05/24/raspberry-pi-home-server-donner-une-ip-statique-a-votre-machine/
comme j’ai décidé d’envoyer des tweets lors de la détection de mouvement j’ai installé le script ttytter pour faire ca en ligne de commande depuis motion.conf
installer ttytter http://www.floodgap.com/software/ttytter/ puis suivre les instructions de configuration
l’envoi de mail via exim (http://www.sbprojects.com/projects/raspberrypi/exim4.php)
connecter la webcam
Phase 2 : le paramètrage
Le fichier de config est motion.conf dans /etc/motion
lancer motion à la main (/etc/motion) et vérifier que tout se passe bien dans cet écran:
pas d’erreurs : on continue.
Sinon corrigez. Pour moi par exemple je ne pouvais pas dépasser 320×240 même si dans motion.conf je précisais 640×480 il m’a suffi de changer le mode V412 pour accéder à du 640×480 avec ma webcam hercules Twist
D’un autre coté si ces images doivent être consultées depuis un smartphone sans connexion 3G cela ne sert a rien de faire des images en 640×480
Phase 3 : les réglages
les images générées par motion sont accessibles via un navigateur : pour cela plusieurs chose à vérifier :
le port utilisé par motion pour la diffusion des images : 8081 par défaut (webcam_port 8081)
le paramétrage autorisant l’accès à distance : webcam_localhost on à passer à off
demander une identification lors de l’arrivée sur cette page : control_authentication username:password
la qualité des jpg en % à été passée à 80 % (webcam_quality 80)
donc sur un autre PC en tapant ipdemonraspberry:8081
je dois obtenir une image issue de ma webcam.
Autres réglages
J’ai passé le auto_brightness à on
Le texte surimprimé à l’image est dans la partie text_ , modifiez suivant les besoins : entre autre j’ai passe text_double à on pour mieux voir
on peut changer le type de vidéo genérée par le ffmpeg_video_codec swf ou ffmpeg_video_codec mpeg4
Phase 4 : Action !
les actions
il y en a de plusieurs type , on_event_start, on_picture_saven, on_motion_detected
Il y a de nombreuses variables en %qqchose pour les noms de fichiers, les dates, heures …
voici mon utilisation à moi : on sauvegarde les images dans un ftp
on_picture_save wput %f ftp://user:password@myftppserver/mywebcamhomedirectory/%f
Ce qui signifie que les images sont envoyées dans myftpserver dans le dossier mywebcamhomedirectory avec le nom %f de motion qui est le nom complet de l’image
increment – anneemoisjourheureminuteseconde.type de fichier choisi dans motion.conf
Regarder dans motion.con pour les %f et autres
Lors de la détection de mouvement on envoie un mail et un twitt avec
on_motion_detected echo ‘Alerte %H %M’ | /etc/ttytter -script
sinon
# Command to be executed when a motion frame is detected (default: none)
; on_motion_detected value
on_motion_detected echo « Alerte# »|mail -s « alerte » myadress@fai.fr
on_motion_detected echo ‘Alerte %H %M’ | /etc/ttytter -script
on peut même lancer un mp3 (installer mplayer pour cela) : c’est super quand la sortie son du raspberry est reliè à des HP !!!
on_motion_detected mplayer sirene.mp3
sinon on peut tout regrouper dans un même script
on_motion_detected ./script_a_lancer
Divers
ne pas oublier de relancer motion après chaque changement de configuration :
La quantité de pixels modifiés entre 2 images pour déclencher un événement est threshold 1500
Faites tous les réglages dans vos scripts dans le motion.conf et lancez le manuellement puis quand tout est OK , lancer dans init.d
éditer /etc/default/motion
# set to ‘yes’ to enable the motion daemon
start_motion_daemon=yes
dans le fichier de conf de motion mode daemon on ou off
Et voila !!
D’accord mais je veux y accéder depuis m’importe ou
La redirection de port est ton amie, si tu ne sais pas ce que c’est passe ton chemin
Sinon :
On a vu que dans motion.conf le port utilisé est 8081, une redirection de ce port de mon ip publique vers ce même port du raspberry est à mettre en place
Lecture pour tous
et donc dans un navigateur en tapant monipfixe:8081 j’arrive sur le raspberry : c’est magique !!!
Trucs en vrac
on peut ajouter autant de ligne on-save, on_… que l’on a besoin d’actions
exemple
Déclencher qq chose des la détection de mouvement (on_motion_detected)
on_motion_detected echo « Alerte# »|mail -s « alerte » myadress@fai.fr
on_motion_detected echo ‘Alerte %H %M’ | /etc/ttytter -script
Jouer avec motion.conf pour voir ce que ca fait et faire sudo /etc/init.d/motion restart à chaque fois pour voir les modifs
lectures :
http://blueberry4pi.com/2012/10/29/video-surveillance-depuis-raspberry-pi/