Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


J'ai fait de la vidéoprotection

Rédigé par dada / / 1 commentaire


Nan, je déconne ! J'ai fait de la vidéosurveillance. Il faut savoir appeler un chat un chat et je vous redirige vers cet article histoire de bien rigoler. Bref.

La genèse

Après avoir découvert la présence d'excréments sur la terrasse du jardin familial, nous avons déclaré que c'était de la merde de loir. Ni une, ni deux, on installe une cage pour capturer l'animal et le renvoyer chez le voisin plus loin. Il s'est avéré que nous nous sommes plantés et que c'était les rejets d'un hérisson !

Du coup, pour m'amuser, et ayant déjà une partie de la configuration disponible, j'ai décidé de mettre en place un système pour voir la créature se balader.

Le matériel

En photo, ça ne donne pas grand chose mais c'est rigolo :

  • Un Raspberry Pi B de 2011
  • Une webcam USB
  • Une batterie externe de 6 000 mAh
  • Un projecteur avec détecteur de mouvement

Configuration du Raspberry Pi

Raspbian

Pour commencer, installez l’indétrônable Raspbian dans la carte SD de votre Raspberry. Pensez à prendre une carte avec un peu d'espace disque. Ceci dit, ce n'est pas la peine d'en prendre une de 32 ou 64Go si, comme moi, vous utilisez le RPi 1 : cette vieille bête ne permet pas de jouer avec des grosses définitions. Oubliez le 1080p ou le 720p, ça sera bien moins.

Note : J'ai récemment appris que Ubuntu avait enfin une version dédiée au nano-ordinateur. C'est cool mais elle n'est compatible qu'avec les RPi modèles 2 à 4 : mon vieux jouet de 2011 n'est pas supporté.

Motion

Comme plus ou moins tout le monde, c'est Motion que j'utilise. Cet outil permet de détecter des mouvements en analysant, en gros, les changements de couleur des pixels. C'est très simple et très efficace.

Pour l'installer :
apt install motion
Niveau configuration, voici ce que j'ai modifié dans /etc/motion/motion.conf
daemon on
framerate 24
threshold 500
pre_capture 2
post_capture 2
Le fichier est assez long et indigeste. Je n'ai absolument pas tout lu. Si vous voulez en faire le tour, préparez un peu de café.

En faisant mes tests, je me suis rendu compte que si je voulais avoir le meilleur équilibre entre la puissance du RPi et la qualité/fluidité de la vidéo, je devais garder la résolution par défaut (320x240) et passer le framerate à 24. Augmenter l'une ou l'autre de ces variables sur un modèle B non overclockable, c'est mettre la machine à genou très vite.

Niveau détection du mouvement, le hérisson étant une petite créature, j'ai pas mal augmenté la sensibilité de Motion en la passant de 1500 à 500.

Si vous êtes des pros en matière de vidéo, je suis preneur d'info (simples) autour des réglages.

Au passage, je remercie ma nièce et son doudou pour le test grandeur nature de déclenchement de l'enregistrement :


Voyez qu'on ne fait pas de miracle avec ce genre de matos et que ça donne une ambiance flippante à une scène qui ne montre qu'une peluche de chat au bout d'un bambou.

Maintenant que le RPi fonctionne, que Motion tourne quand on le lui demande et que la batterie est chargée, y'a plus qu'à se préparer à allumer le dispositif à la tombée de la nuit. Si j'en crois mes logs, j'ai tout branché à 19h56. D'après ce site, j'ai maximum 7h devant moi.

Et le projecteur ?

L'animal que je cible dort le jour et se déplace de nuit. Ma webcam est toute naze. Du coup, il me faut un truc qui éclaire la zone filmée en cas de passage de la bête. Un petit projecteur avec détecteur de mouvement fait le boulot.  

Un projecteur qui fonctionne sur batterie et une batterie pour le RPi : oui, pas moyen de tirer un câble électrique jusqu'à la zone cible.

Le résultat

On s'en doute, toute cette opération repose sur une chance folle. Et je crois avoir eu de la chance :


C'est mignon, non ? Moi, je suis très fier !

Si on s'amuse à récapituler la chance qu'il a fallu pour avoir 20 secondes d'images floues :
  • La lumière s'est allumée quand le hérisson est passé
  • Motion a bien sauvegardé le passage de la bête
  • La batterie a tenu jusqu'au passage de la cible
  • La webcam posée en équilibre n'est pas tombée
  • Tout ce bordel était au bon endroit
  • Quand la batterie a lâché, l'arrêt brutal du RPi n'a pas corrompu les vidéos
  • Branché peu avant 20h, tout s'est arrêté vers 1h20. Loin des 7h théoriques
Bref. Courage à toutes celles et ceux qui n'ont pas la chance de profiter d'un peu de verdure.

Des bisous

1 commentaire

#1  - StefOfficiel a dit :

Hey ! Sympa, pour ce qui est de la batterie, tu n'as pas des vieux téléphones ? Souvent la batterie a plutôt une longue vie dans la journée, en y mettant un adaptateur et un câble qui va bien, le smartphone peut redistribuer l'énergie au Rpi !

Pour ce qui est du risque de corruption des vidéos, le Raspbian ne peut pas connaître le niveau de la batterie externe ? Et de là, configurer l'extinction de la machine, avec l'arrêt propre des services au moment où il reste X% de batterie ?

Sinon, tu as aussi le même principe de bidouille, mais ici avec un vieux smartphone Android, Root, le déclenchement de lumière est le flash du tel et les 1080p peuvent être atteint, la batterie externe pour renforcer la batterie du tel, tu tiens facilement une nuit, et si tu capte l'appareil, tu peux en faire une caméra IP via son WiFi !

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est le cinquième caractère du mot ctpk84ay ?

Fatal error :
type : 8
message : file(): read of 8192 bytes failed with errno=21 Is a directory
file : /core/lib/class.plx.template.php
line : 229

See https://www.php.net/manual/en/errorfunc.constants.php about type of error