Nieuwbouw Rozenstraat/Voorheuvel Zeist - Timelapse

Buiten o.a. het bouwen van websites, verzorgen van de beste hosting voor mijn klanten, onderhoud en ouderwetse service doe ik ook nog weleens wat eigen projectjes.

Voor dit project gebruik ik een Raspberry Pi 3. Door middel van de aangesloten Picam, een script en een cronjob wordt er elke minuut een foto gemaakt en geupload naar de webserver. Via een klein stukje javascript word de foto op de webpagina ook daadwerkelijk elke 60 seconden gerefreshed zodat de kijker niet zijn browser hoeft te refresehen. Voor de liefhebbers hieronder de benodigde bestanden voor als je dit zelf ook wilt proberen.

Ik ga ervanuit dat je wat basiskennis hebt maar dan is het een eitje.

Hardware

Software

  • Ik heb Jessie Light geinstalleerd op de Pi en daarna alle updates uitgevoerd.
  • Ik heb hierna een script gemaakt met hulp van deze webpagina en deze op de pi geinstalleerd.
  • Hierna heb ik een cronjob gemaakt die elke minuut een foto maakt en deze upload naar de webserver.
  • Hierna kan je jouw fotos heel simpel tonen op jouw website.

Dat is alles en het werkt naar volle tevredenheid.

Met hulp van onderstaande stappen kan jij dat zelf ook in no time. Ik hoop dat je er wat aan hebt. 

Scripts

pi:$ sudo nano camerascript.sh

Onderstaand script bewaar je als (naam kan je zelf bedenken) camerascript.sh

filename=$(date -u +"%Y%m%d%H%M%S").jpg
date=$(date +"%d-%m-%Y")
tijd=$(date +"%H:%M")
host=ftphost
user=usernamehier
pass=passwordvanftpuser

#Capture image
raspistill -q 20 -n -t 100 -o /tmp/$filename
#Optional, Toevoegen text en datum + tijd
convert /tmp/$filename $filename -pointsize 36 -fill white -annotate +118+1600 '© Marcedwin.nl' \ -pointsize 36 -fill white -annotate +2169+1600 $date \ -pointsize 36 -fill white -annotate +2386+1600 $tijd /tmp/$filename
ftp -ivn $host << EOF
user $user $pass
#Optional, uncomment when connecting succeeds, but uploading is not
#passive
put /tmp/$filename $filename
put /tmp/$filename latest.jpg
bye
EOF
#Remove transfered image file This is optional, as /tmp gets cleaned up after each reboot
rm /tmp/$filename

 

Cronjob

pi:$ cronjob -e

Vul onderaan je cronjob toe (aanpassen naar wens, onderstaand voorbeeld loopt elke minuut):

* * * * *  /home/pi/camerascript.sh

Website java script

Op de webpagina waar je de afbeelding plaatst neem je deze op met:

<img src="/pad/naar/jouw/afbeelding/watjijwilt.jpg" name="refresh">

En hierbij plaats je een javascript dat zorgt voor herladen van alleen de afbeelding, dus niet de hele pagina.

<script type="text/javascript" language="JavaScript">// <![CDATA
[var t = 60 // interval in seconds
image = "pad/naar/jouw/afbeelding/watjijwilt.jpg" //name of the image
function Start() {
tmp = new Date();
tmp = "?"+tmp.getTime()
document.images["refresh"].src = image+tmp
setTimeout("Start()", t*1000)
} Start();
// ]]></script>

Veel succes ermee.

Timelaps

Na uiteindelijk Anderhalf jaar is dit het resultaat.