venerdì 13 settembre 2013

RaspiCam la telecamerina III parte


Allora, dopo aver installato la RaspiCam sulla Raspberry Pi ed aver fatto le prime foto di test, ho cercato di fare in maniera di ottenere una serie di foto per costruire filmati in time lapse. Abbiamo visto nell'articolo precedente come ho cercato di risolvere il problema della sovrascittura, ma il sistema cosi come impostato, non risolve il problema.

Oggi ho cercato di approcciare il tutto in un altro modo, facendo scattare Raspistill solo una foto alla volta, senza utilizzare la funzione timelapse interna al programma (-tl), mentre ho deciso di utilizzare crontab per la definizione del numero deglil scatti. In questo modo possimao anche far eseguire piu' istruzioni consecutive al sistema, come quella di fare l'upload delle foto sul file server in FTP e la loro successiva cancellazione in locale.


Ecco cosa ho fatto:
Partendo dall'inizio:
da /home/pi
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install ftp
mkdir cronfiles
per ottenere /home/pi/cronfiles
cd cronfiles
sudo vi cronscatta.cron
che contiene questo:
#=================================================================
#                TEST SCATTO FOTO OGNI TOT  MINUTI
#     utilizzo RASPISTILL per scattare 1 foto alla volta
#     utilizzo crontab per ripetere l'operazione ogni TOT minuti
#     fatta la foto, provvedo all'upload e poi cancello la foto
#     una accortezza nell'associare l'ora al nome della foto
#     per evitare di sovrascriverla ad ogni upload
#              per farlo ogni minuto
#     * * * * * /home/pi/raspicam/scatta_up_cancella.sh
#              per farlo ogni 5 minuti:
#     */5 * * * * /home/pi/raspicam/scatta_up_cancella.sh
#              per farlo ogni 25 minuti:
#     */25 * * * * /home/pi/raspicam/scatta_up_cancella.sh
#=================================================================

MAILTO=""
*/5 * * * * /home/pi/raspicam/scatta_up_cancella.sh >/dev/null


poi:
mkdir /home/pi/raspicam
cd /home/pi/raspicam
sudo vi /home/pi/raspicam/scatta_up_cancella.sh
con questo contenuto:
#!/bin/sh

# scatta_up_ecancella.sh
#
#
# Created by Valerio on 31/07/13.
# Copyright 2013 __MyCompanyName__. All rights reserved.
#
#
# setta il nome del file inserendo la data e l'ora x evitare
# di sovrascrivere al prox passaggio
# poi copia il file su server ftp
# dunque cancella il jpg in locale

echo "Content-type: image/jpg";
echo;

filename=$(date -u +"%Y%m%d_%H%M%S").tlapse.jpg


# Configurazione Server FTP
HOST="ftp.tognozzi.net"
USER="XXXXXXXXXXXXX"
PASS="XXXXXXXXXXXX"
PATH_RMT="/www.tognozzi.net/XXXXXXXXX"
PATH_LCL="/home/pi/raspicam/"
#FILE="*.jpg"

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

# Scatto la foto con i parametri impostati
#raspistill  -w 1024 -h 768 -o /home/pi/raspicam/$filename -t 3000  -n -ex au
to  - awb auto
raspistill  -o /home/pi/raspicam/$filename -t 3000  -n -ex auto  -awb auto

# Connessione al server FTP e trasferimento file
ftp -n -i $HOST <user $USER $PASS
binary
cd $PATH_RMT
mput $filename
quit
EOF


# chiusa la connessione  cancello le foto in locale
cd $PATH_LCL
sudo rm $filename


# FINE

per rendere eseguibile il file

chmod +rx scatta_up_cancella.sh
e quindi si fa leggere a crontab il file preparato di schedulazione delle attivita':
sudo /usr/bin/crontab /home/pi/cron/cronscatta.cron

a questo punto il sistema dovrebbe si  sincronizzare con crontab e la Raspberry pi comincia a fare le foto volute, le trasferice sul server ftp, e le cancella in locale.


Cosa ne pensate?
Per la gestione di crontab ho seguito le indicazioni di questo sito
Stay Tuned
Tecnogeppetto

Nessun commento: