venerdì 13 settembre 2013

RaspiCam seconda puntata




Fatte le prime prove con la telecamerina che si comporta egregiamente come mera macchina fotografica, adesso sono passato a realizzare un sistema di scatto foto in automatico per costruire un archivio di foto per time lapse. Per evitare che la semplice istruzione
raspistill - o nomefile.jpg
alla seconda esecuzione sovrascriva il file della foto, ho trovato questo escamotage:
raspistill -o myimage_%06d.jpg
in questa maniera, utilizzando il comando -tl che consente alla RaspiCam di continuare a scattare foto per un tempo espresso in millisecondi, si evita che continui a scattare utilizzando sempre lo stesso nome peril file della foto sovrascrivendolo. Cosi' infatti si ottiene una serie di file numerati myimage_000001.jpg in avanti
l'istruzione completa e':
raspistill -o myimage_%06d.jpg -tl 60000 -t 7200000
in questo caso la RaspiCam scatta una foto ogni 60 secondi (-tl) (60 x 1000millisec.) e lo fa per un tempo (-t) di 2 ore ( 60s x 60m x 2h x 1000millisecondi).
In questa maniera, pero', la capienza del disco potrebbe essere messa a dura prova, infatti le immagini a grandezza standard occupano circa 3 MB ognuna, quindi ho pensato di copiare le immagini ottenute su un server ftp, in maniera da non riempire il disco.
ho scritto questo semplice file da far girare per salvare i file immagini su uno spazio ftp e successivamente cancellarli in locale. La procedura deve essere ancora perfezionata, in quanto non ci sono controlli dell'avvenuto upload, in questo modo, se qualcosa andasse storto, andando avanti comunque lo script, cancellerebbe le immagini senza averle salvate, e noi rimarremmo a bocca asciutta!
Una altra successiva implementazione dovra' per forza prevedere la rinominazione dei file in funzione del tempo, poiche' in questa versione, dopo aver fatto girare lo script di salvataggio delle immagini, se il programma Raspistill venisse fermato, alla sua ripartenza comincerebbe da capo con la numerazione, ed al passo successivo, cioe' all'upload saremmo sempre nella condizione di sovrascittura delle immagini sul server ftp, avendo le seconde immagini lo stesso nome delle prime
. Insomma, c'e' ancora da lavorare, comunque fino a qui le immagini sono sequenziali, e possono essere salvate su di uno spazio ftp e cancellate da locale.
Di seguito lo script creato:
#!/bin/bash

# Configurazione Timelapse
HOST="ftp.tognozzi.net"
USER="XXXXXXXXXXXXXX"
PASS="XXXXXXXXXXXXX"
PATH_RMT="/www.tognozzi.net/XXXXXXXXXXXXXXX"
PATH_LCL="/home/pi/raspicam/"
FILE="*.jpg"

# Rendo attiva la cartella con il file da copiare
cd $PATH_LCL

# Connessione al server FTP e trasferimento file
ftp -n -i $HOST <<EOF
user $USER $PASS
binary
cd $PATH_RMT
mput $FILE
quit
EOF
# chiusa la connessione cancello le foto in locale
cd $PATH_LCL
sudo rm $FILE
Che ne dite?
Stay Tuned
Tecnogeppetto

Nessun commento: