Raspberry : Surveiller les oiseaux

Avec un rapsberry et une caméra vous pouvez facilement mettre en place une serveillance de la mangeoire à oiseaux du jardin que vous avez installé. Félicitation !

On suppose que vous avez un raspberry (zéro ou  plus) et une caméra.

Mettez à jour votre systéme via les commandes :

$ sudo apt update

$ sudo apt upgrade

Relancez votre raspberry.

On va continuer en installant "motion" via la commande :

$ sudo apt install motion

On va activer la caméra dans l'utilitaire de configuration du raspberry.

"Interfacing options" :

"PI Camera" :

Redémarrez.

Pour vérifier que votre caméra fonctionne passez la commande suivante :

$ raspistill -o image01.jpg -t 5000

 Et aprés 5 secondes vous devez obtenir une image dans le dossier courant. En cas de message d'anomalie il est probable que vous avez monté la caméra l'invers.

Retourner la mappe et recommencez.

Vérifiez dans le fichier "/etc/motion/motion.conf" que le répertoire de sortie des images est "/var/lib/motion". Il faut rechercher le paramètre "target_dir". Pour le reste le fichier voici les modifcation que j'ai apporté :

A faire

  • Afin de na pas enregistrer les images sur la carte SD pour ne pas la fatiguer et la saturer je génère les images sur une petite clé USB connectée au Raspberry. Il faut donc chnager le "target_dir".
  • Afin de pouvoir accéder aux images à partir d'un autre ordinateur vous devez modifier les lignes :
    • stream_localhost off en stream_localhost on
    • webcontrol_localhost off en webcontrol_localhost on
  • Afin d'agrandir l'image générée je modifie les lignes (les données doivent être des multiples de 16) :
    • width 320 en 640
    • height 240 en 480
  • En fonction de la manière dont la caméra sera placée il vous faudra retourner l'image pour l'avoir à l'endroit. Pour cela aller à la ligne "rotate" et indiquez 180 à la place de 0.

Pour connaitre les résolutions supportées par votre webcam passez les commandes suivantes :

$ sudo apt-get install v4l-conf

puis testez votre webcam :

$ sudo v4l2-ctl --list-formats-ext

Ensuite, motion utlise la caméra via le périphérique "/dev/video" comme indiqué dans son fichier de configuration. Pour créer ce lien il faut passer la commande :

$ sudo modprobe bcm2835-v4l2

Et pour rendre ce chargement permanent vous devez éditez le fichier "/etc/module" et y ajouter "bcm2835-v4l2 " sur une ligne vide.

On lance "motion" via la commande :

$ sudo motion

ou on reboute sa rapsberry.

Vérifiez que vous avez bien des images générées dans le dossier "/var/lib/motion".

Le soucis avec motion est qu'il génère de nombreux fichiers résultant des photos comme vous pouvez le voir su dessous  :

mais il ne supprime rien.

Il vous appartient de supprimer ces fichier afin d'éviter la saturation du périphérique sur lequel vous enregistrez les images.

On va ajouter une tache cron qui se lancera autmotiquement toutes les 30 minutes afin de supprimer les fichiers images générées.

On commence par créer le script suivant :

#!/bin/bash

find /var/lib/motion -maxdepth 1 -type f -name "*.jpg" -exec rm -f {} \;

Enregsitrez le sous le nom de "supprmotion.sh". Rendez le exécutable via la commande :

$ chmod +x supprmotion.sh

Copiez le dans le répertoire "/sbin/ :

$ sudo cp supprmotion.sh /sbin/

Créez le cron pour root via la commande :

sudo crontab -e

Ajoutez cette ligne :

30 * * * * /sbin/supprmotion.sh

Enregistrez et quittez.

Lancez motion. Vous devriez pouvoir accéder aux images via votre navigateurs et les fichiers seront supprimés tous les 30 minutes.

Dernière chose à faire : lancer motion automatiquement au démarrage de la machine.

Paasez la commande suivante :

$ sudo systemctl enable motion

et modifiez le fichier "/etc/default/motion" en mettant "yes" à la place de "no" sur la ligne :

# set to 'yes' to enable the motion daemon
start_motion_daemon=no

puis modifiez le fichier  /etc/motion/motion.conf  en mettant :

daemon on

Fait le 10/12/2017

Tags: