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:
*/5 * * * * /home/pi/TakeAndUpload.sh
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/
#!/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"
Qui ho postato anche uno script PHP (Smart Sort Gallery) per visualizzate le foto inviate su una pagina web.