Faire un timelapse avec une Raspberry Pi

Faire un timelapse avec une Raspberry Pi

16 avril 2018 0 Par Jérôme Ferrari

Bonjour à tous,

Pour mon premier article, je voulais commencer par quelque chose de simple et facile à mettre en place.

Actuellement, je travaille avec un groupe d’étudiants à la création d’une serre aquaponique.

En attendant que la serre soit entièrement prête pour accueillir les plantes et les poissons, nous avons décidé de faire un timelapse des semis en train de grandir.

Pour des raisons de coûts et de simplicité, nous nous sommes dirigés vers une raspberry pi ainsi que son module caméra.

Maintenant passons à la partie codage:

Dans un premier temps, on active grâce à la commande suivante les éléments qui nous intéressent.

sudo raspi-config

 

5. Interfacing options

-> P1 Camera (afin d'autoriser l'accès au module camera)

-> P2 SSH (afin de pouvoir travailler à distance en ligne de commande)

-> P3 VNC (afin de pouvoir voir à distance les photos prises)

Pour le SSH, j’utilise Putty. Pour la partie VNC, j’utilise VNC Viewer. Pour la capture de photo, j’utilise sur la raspberry la commande Rapistill

Une fois reconnecté en SSH,  on crée un dossier :

sudo mkdir /home/pi/greenhousetimelapse

On va dans le dossier:

cd /home/pi/greenhousetimelapse

On teste que la camera fonctionne bien grâce à la commande:

raspistill -w 1280 -h 1024 -o image001.jpg

Cela doit créer un fichier image001.jpg dans le dossier.

L’étape suivante consiste à créer un script bash pour faire une photo et la dater.

cd /home/pi/bin
sudo nano greenhousetimelapse.bash

On écrit dans le fichier les lignes suivantes:

#!/bin/bash
output_dir=/home/pi/greenhousetimelapse
heure=$(date +%H%M)
jour=$(date +%Y%m%d'_')

raspistill -w 1280 -h 720 -o $output_dir/Image_$jour$heure.jpg

Puis on fait un ctrl-o, ctrl-x pour sauvegarder.

Puis donner les bons droits de lecture/écriture sur le fichier:

sudo chmod 744 /home/pi/bin/greenhousetimelapse.bash

Vous pouvez faire un test du script avec la commande suivante:

. /home/pi/bin/greenhousetimelapse.bash

Normalement une photo nommée de la façon suivante Image_20180416_1300.jpg doit se trouver dans le dossier /home/pi/greenhousetimelapse

Une fois le fichier créé et testé, on va faire en sorte qu’il soit lancé tous les X temps. Pour moi, je prends une photo toutes les 30 minutes.

Pour cela, on exécute la commande:

sudo crontab -e

Si jamais on vous demande de choisir un éditeur, choisissez la solution 2 comme l’exemple ci-après

no crontab for root - using an empty one
Select an editor.  To change later, run 'select-editor'.
1. /bin/ed
2. /bin/nano        <---- easiest
3. /usr/bin/vim.tiny
Choose 1-3 [2]: 2
crontab: installing new crontab

Lorsque cela est ok, rajoutez la ligne suivante à la fin du fichier:

*/30 * * * * . /home/pi/bin/greenhousetimelapse.bash

Pour calibrer cette ligne, je vous renvoie vers un site plutôt bien fait.

https://crontab-generator.org/

Pour ma part, je fais un reboot pour vérifier que tout fonctionne correctement.

sudo reboot

Voilà!!! Maintenant vous savez enregistrer une photo via la caméra, vous savez programmer une tâche pour qu’elle s’exécute tous les X temps!

Pour récupérer les photos dans le dossier, j’utilise VNC Viewer pour faire le transfert.

Je mettrai prochainement la vidéo du résultat final.

J’espère que cet article vous aura aidé. N’hésitez pas à me faire part des modifications que je dois apporter pour être plus clair.

@Bientôt

Ferrader