Faire un timelapse avec une Raspberry Pi
16 avril 2018Bonjour à 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