Qualche mese fa ho realizzato con il Raspberry Pi delle semplici webcam che inviano su server FTP delle immagini (scattate con il camera module), aggiungendo anche delle scritte e loghi in overlay.
A differenza della webcam che ho montato nella mia stazione meteo, questa non richiede software particolari.
La configurazione software è veramente semplice: un’ installazione standard di Raspbian su SD, con un script che si prende in carico tutto il lavoro (ovvero: scattare la foto, aggiungere le informazioni sopra, inviarla su FTP e scrivere dei log)
Lo script (che trovate in fondo) può essere salvato nella cartella home ed eseguito ad intervalli regolari tramite Cron, per esempio ogni 5 minuti con un’impostazione come questa:
[bash]*/5 * * * * /home/pi/TakeAndUpload.sh[/bash]Che ricordo va inserita digitando “crontab -e” nel terminale.
Gli unici requisiti per il suo funzionamento dello script sono i seguenti:
mkdir /home/pi/images
sudo apt-get install ftp imagemagick
La configurazione è presente in cima all script (nella sezione CONFIGURATION) ed è abbastanza autoesplicativa.
Per l’utilizzo in questione il Raspberry è stato inserito in una scatola stagna di alluminio (di quelle utilizzate per videosorveglianza) che è anche riscaldata tramite una resistenza posta internamente di fronte al vetro.
Questo accorgimento oltre a risolvere il problema della neve e ghiaccio, evita anche l’appannamento del vetro stesso.
La webcam è stata montata in una posizione molto a limite dal punto di vista ambientale, nei pressi del rifugio “La Capanna” sul Monte Falco nell’Appenino Tosco-Romagnolo, a 1488 m ! Ed è in funzione senza alcun problema da quasi un anno a questo indirizzo: http://www.webcamcampigna.it/
[bash title=”TakeAndUpload.sh”] #!/bin/bash
# This script takes a picture with Raspberry Camera, adds text/logo overlays and sends it to FTP server.
# It creates also a logfile in the same folder and sends a status.txt file to server.
# REQUIREMENTS:
# sudo apt-get install ftp imagemagick
# mkdir /home/pi/images
# V0.2
# (C) Alessandro Grechi – http://grechi.it
# Configure the vars in the following section
###############################################
############## START CONFIGURATION ###############
###############################################
#IMAGE SETTINGS
ARGS="-vf -hf -w 1024 -h 720 -q 50 -n -ex auto"
TEXT_TOPLEFT=" Raspbery Pi Camera Script"
TEXT_TOPRIGHT="Date: ${dateTaken} "
TEXT_BOTTOMLEFT="http://grechi.it"
TEXT_BOTTOMRIGHT="(c) Alessandro Grechi "
LOGO_TOPRIGHT="/home/pi/images/logo.png"
#FTP SETTINGS
HOST="ftp.website.it"
USER="user"
PASS="password"
DIR="webcam"
#DATE AND LOG
dateTaken=$(date "+%d/%m/%Y – %H:%M")
now=$(date "+%H%M")
today=$(date "+%d%m%Y")
logfile="/home/pi/images/webcam_$today.log"
###############################################
############## END CONFIGURATION #################
###############################################
cd /home/pi/images
echo "###################################" >> $logfile
echo "starting script $dateTaken" >> $logfile
echo "Taking a Picture" >> $logfile
/opt/vc/bin/raspistill $ARGS -o /home/pi/images/image.jpg >> $logfile
echo "Convert and add overlays" >> $logfile
/usr/bin/convert /home/pi/images/image.jpg \
-gravity NorthWest -background Blue -splice 0x18 -pointsize 15 -fill yellow -annotate 0 ‘${TEXT_TOPLEFT}’ \
-gravity NorthEast -fill yellow -annotate +0+0 ‘${TEXT_TOPRIGHT}’ \
-gravity SouthWest -background Blue -splice 0x18 -pointsize 12 -fill yellow -annotate 0 ‘${TEXT_BOTTOMLEFT}’ \
-gravity SouthEast -fill yellow -annotate +0+0 ‘${TEXT_BOTTOMRIGHT}’ \
-gravity NorthEast $LOGO_TOPRIGHT -geometry +5+19 -composite \
/home/pi/images/image_$now.jpg >> $logfile 2>&1
cputemp=$(/opt/vc/bin/vcgencmd measure_temp)
myip=$(curl –connect-timeout 30 http://ifconfig.me/ip)
uptime=$(uptime)
echo "LastUpdate: $dateTaken | CPU $cputemp | IP: $myip | uptime: $uptime" > /home/pi/images/status.txt
echo "Upload image_$now.jpg to FTP" >> $logfile
# Start the FTP client
ftp -inv $HOST << EOF >> $logfile
user $USER $PASS
cd $DIR
put image_$now.jpg
put status.txt
bye
EOF
echo "Remove image_$now.jpg" >> $logfile
rm -f /home/pi/images/image_$now.jpg
echo "Ok"
[/bash]
Qui ho postato anche uno script PHP (Smart Sort Gallery) per visualizzate le foto inviate su una pagina web.












