L'histoire

L'arrivée dans une maison avec jardin, m'a permit de réaliser un vieux projet : fabriquer une cabane à oiseaux et ajouter un truc pour faire des photos des clients à plumes.
Il existe des réalisations similaire sur le net, par exemple celle-ci
Feeder Tweeter.

Voici à quoi ressemble mon projet :

A droite la cabane avec une coupelle pour les graines et à gauche la maison qui héberge le Raspberry et la caméra.

Le principe de base est le suivant : si un oiseau se présente devant la caméra, le Raspberry Pi prend une photo et la pousse sur Flickr.

Pour ce projet, j'ai eu de besoin de :

  • 1 Raspberry Pi
  • 1 caméra pi cam
  • Une carte SD avec Debian
  • Un verre de lunette pour réduire la distance de mise au point de la caméra.
  • Quelques heures en recherche et en codage / débug.
  • Un peu de bricolage et de colle.

Voilà le résultat :

Alimentation électrique

Initialement j'avais essayé d'alimenter le rpi avec un panneau solaire, mais il s'avère que sauf à investir 300 Euros c'est impossible.
J'ai essayé cette solution qui parait plus abordable.
Mais, non cela ne fonctionne pas !
La discussion suivante fait le point.

Quelques dizaines d'euros de perdu ... :(

Finalement, j'ai passé un cable électrique en volant. Simple et efficace.

Debian

Rien de spécial sur ce point, il existe des tonnes de tutos expliquant comment installer raspbian sur une carte SD depuis Linux ou Windows ou OSX.

Pi Cam

J'ai choisi cette caméra pour la tester plutot qu'une caméra USB.
Mis à part la fonction mask_file qui ne fonctionne pas au niveau de Motion, elle fait le job.

Motion

Motion s'occupe de la détection de mouvement et de la prise de photo. Si un oiseau rentre dans le champs de la caméra : click clack merci Kodak, Motion détecte le mouvement et prend une photo.
Pour la configuration, je me suis inspiré de cet artice : Caméra de surveillance avec un Raspberry Pi

J'ai fait quelques modifications dans le fichier /etc/motion/motion.conf, surtout pour réduire la taille des photos qui seront envoyés sur Flickr en passant par ma ligne ADSL.

width 800
height 800

Le paramètre suivant demande à Motion d'attendre 3 secondes entre chaque photos. Sans ce paramètre Motion prendrait des centaines de photos parce qu'un oiseau ca bouge beaucoup.

minimum_frame_time 3

Ce paramètre fixe le nom de la photo.

picturefilename %Y%m%d/%Hh/%v-%Y%m%d%H%M%S-%q

Pousser les photos sur Flickr

J'ai cherché une solution pour stocker les photos et ainsi les partager. Je ne peux pas les héberger chez moi, je n'ai plus le fibre (fibre ou maison, il faut choisir).
J'ai trouvé un outil permettant d'envoyer les photos sur flickr. Ca fonctionne bien, c'est gratuit (pour le moment) et presque illimité.

Les pistes d'améliorations

J'avais prévu d'ajouter un capteur de température/pression en suivant ce tuto pour la connexion sur le GPIO et en utilisant ce script pour relever les informations. Mais le Raspberry Pi 1 n'a pas assez de ressource pour gérer Motion et le module de température.
Un upgrade avec un Raspberry Pi 2 ou 3 est prévu pour l'hiver prochain :)

J'aimerais faire de la reconnaissance faciale pour identifier les oiseaux et faire du tri, voire des stats. J'ai trouvé quelques articles, il faut que je teste.

Enfin je me pose la question de faire des vidéos plutot que des photos. Mais dans ce cas quid de l'hébergement ? Peut-être via Youtube ou Dailymotion. Mais l'uplink de l'ADSL limitera la taille des fichiers à envoyer. Il reste la possibilité de faire du gif. La encore, il faut que je teste.