Webcam wordt Cloudcam

De Raspberry Pi Webcam versimpelt en compacter.

In vorige blogs schreef ik al over de Raspberry Pi Webcam experimenten hier, hier en hier en in dit blog gaan we het er nog een keer over hebben 🙂

Na een periode van experimenteren met de ontvangst van bij mij in de buurt opgestelde weerstations met een rtl_SDR dongle en het rtl_433 decoder programma en het zichtbaar maken van de onderschepte meetresultaten op de snapshot van de webcam, ben ik nu terug naar de meest eenvoudige hardware opstelling en het meest eenvoudige software script. De hardware bestaat enkel nog uit een Raspberry Pi Zero W. Dat is de kleinste Raspberry Pi voorzien van WiFi en Bluetooth. In een mooie kleine behuizing is tevens plaats voor de originele camera module (speciale verloop kabel nodig) en het enige dat je moet aansluiten is een goede USB voeding. (Ik het gemerkt dat er heel veel slechte USB adapters in omloop zijn en ik heb er heel wat weggegooid (gerecycled) ondertussen.) Het geheel op een driepoot en voila, de meest simpele opstelling met een minimum aan energieverbruik.

Had ik in het verleden een script draaien waarbij alle afbeeldingen op Dropbox werden opgeslagen, nu gebruik ik Lookr die gratis opslag biedt en tevens tijdlijn filmpjes creëert. De webcamera stuurt de snapshot naar mijn pa3ang.nl domein en wordt getoond op een eenvoudige pagina pa3ang.nl/webcam en door Lookr opgehaald. Geen toeters en bellen meer. Op de RPiZeroW staat het script en in de crontab zijn 3 events gedefinieerd:

*/1 * * * * /bin/bash /home/pa3ang/elapse.sh
*/10 * * * * /home/pa3ang/testwifi.sh
03 00 * * * /usr/bin/sudo /sbin/shutdown -r now
  • de eerste regel start elke minuut het script elapse.sh (zie hieronder) en de snaphot wordt via ftp naar de pa3ang.nl server gepusht.
  • de tweede regel controleert of de WiFi verbinding nog bestaat. Zo niet dan wordt er opnieuw verbinding gemaakt.
  • de derde crontab regel is een harde reboot van RPiZeroW. Bleek af en toe nodig 🙂

#!/bin/bash

picture=still.jpg

raspistill -o $picture -w 720 -h 405 -q 75 -n -rot 90

convert $picture -pointsize 20 -fill yellow -annotate +20+390 ‘RPiZeroW-Cloudcam’ $picture
convert $picture -pointsize 14 -fill yellow -annotate +230+390 `date +%d-%b-%Y@%R` $picture
convert $picture -pointsize 16 -fill yellow -annotate +620+390 ‘©pa3ang’ $picture

ftp -n pa3ang.nl <<END_SCRIPT
quote USER <username>
quote PASS <password>
binary
put $picture /public_html/webcam.jpg
quit
END_SCRIPT

exit 0

het script voor het testen van de WiFi verbinding is:

#!/bin/sh

TESTIP=192.168.178.1

ping -c4 ${TESTIP} > /dev/null

if [ $? != 0 ]
then
echo “$(date) WiFi seems down, restarting…” >> /home/pa3ang/wifi.log
ifdown –force wlan0
ifup wlan0
else
echo “$(date) WiFi seems up.” >> /home/pa3ang/wifi.log
fi

exit 0

De Webcam heb ik ondertussen Cloudcam gedoopt. Dekt beter de lading van wat er zichtbaar is.