RPi Webcam update

Sterk vereenvoudigd script.

Na enige jaren onafgebroken een wolkencamera on line te hebben gehad, vond ik het tijd worden voor een ‘çlean-up’. De RPi Webcam was begonnen in mei 2013 met een eenvoudig script, maar werd later toch met de nodige extra’s uitgebreid. Ongeveer een jaar later kwam daar nog een aanvullende Dropbox toepassing bij. Vorig jaar heb ik zelfs de hele software veranderd naar een geavanceerde Rpi Cam Web Interface met de nodige toeters en bellen.

Allemaal erg mooi, maar met de laatste applicatie merkte ik wel dat de WiFi verbinding regelmatig uitviel op de RPi versie 1 type A (een oude model dus). Hierdoor viel de camera regelmatig stil, vooral als ik niet thuis was. Lastig, dus maar op zoek gegaan naar een oplossing.

Om de WiFi regelmatig te testen op connectie kun je een programmaatje (shell script) maken wat door de crontab (robot) wordt aangeroepen:

#!/bin/sh

TESTIP=192.168.178.1

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

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

De TESTIP is het adres van de router. In wifi.log schrijf ik het resultaat van de test. Dit script met de naam testwifi.sh wordt in de /etc/crontab (dit is de system-wide crontab) uitgevoerd met deze regel:

*/10 *  * * *   root    /home/pi/testwifi.sh

Elke 10 minuten wordt er dus gekeken of de WiFi nog verbinding heeft en zo niet dan wordt deze opnieuw gestart. Dus opnieuw verbinding zoeken met behulp van de gegevens in de file /etc/wpa_supplicant/wpa_supplicant.conf:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid=”PA3ANG”
psk=”wachtwoord”
key_mgmt=WPA-PSK
}

Nu ik toch bezig was wilde weer terug naar het eenvoudige webcam script van 2014. Ik had een script met de naam elapse.sh geschreven, met de mogelijkheid om verschillende formaten aan te kunnen bieden plus een website met php mogelijkheid. Redelijk zwaar. In eerste instantie met lighttpd en daarna zelfs met apache. Nou kan de RPi dat makkelijk aan, maar ik houd wel van KISS (Keep It Simple Stupied) en ik kwam een ‘ingebouwde’ webserver gebaseerd op Python tegen die ook nog eens onderdeel is van het standaard RPi pretpakket. Je hoeft dus geen aparte webserver te gebruiken, mits je html gebruikt (dus geen php) en simpele rechttoe rechtaan geschreven pagina’s gebruikt. Wel heb ik daarnaast een ftp mogelijkheid geïnstalleerd en via GitHub een Dropbox upload applicatie.

#!/bin/bash

picture=/var/www/webcam/stills/still.jpg

while [ true ]; do

directory=`date +%Y%m%d`
snaptime=`date +%H%M`
datetext=`date +%d/%m/%Y`
timetext=`date +%H:%M`

raspistill -o $picture -w 720 -h 405 -q 30 -awb auto -sa -70 -br 54

convert $picture -pointsize 20 -fill yellow -annotate +20+30 ‘RPi-Webcam|JO32am’ $picture
convert $picture -pointsize 16 -fill yellow -annotate +230+30 $datetext $picture
convert $picture -pointsize 16 -fill yellow -annotate +320+30 $timetext $picture
convert $picture -pointsize 16 -fill yellow -annotate +620+30 ‘©pa3ang’ $picture

ftp -n pa3ang.nl <<END_SCRIPT
quote USER ftp_user
quote PASS ftp_wachtwoord
binary
put $picture /public_html/webcam/stills/still.jpg
quit
END_SCRIPT

./dropbox_uploader.sh upload $picture $directory/$snaptime.jpg

while [ `date +%H%M` -eq $snaptime ]; do
sleep 1
done

done

Toen ik deze eenvoudige wijze van beeldopslag weer aanzette, merkte ik dat er geen tekst meer op de wolkenfoto was afgebeeld. Hiervoor maar weer google gebruiken en ja hoor, er is een speciaal programmaatje beschikbaar met de naam convert. Even met apt-get installeren en voila ik kan op de foto weer mijn eigen graffiti kwijt.

still

Het raam kan ook wel een schoonmaakbeurt gebruiken zie ik.

Ten slotte nog een toevoeging gemaakt in de /etc/rc.local zodat het programma automatisch start bij het aanzetten van de RPi:

#!/bin/sh -e
# rc.local
# This script is executed at the end of each multiuser runlevel.
# Print the IP address
_IP=$(hostname -I) || true
if [ “$_IP” ]; then
printf “My IP address is %s\n” “$_IP”
fi

#START WEBCAM SESSION
cd /home/pi/webcam
python -m SimpleHTTPServer >/dev/null 2>&1 &
sudo -u pi /home/pi/elapse.sh &

exit 0

Zorg ervoor dat de SimpelHTTPServer naar /dev/null schrijft! anders stopt de server. Ook moet je even opletten met de eigenaarschap van scripts in de /home/pi directory. Ik roep overigens het elapse.sh script aan met -u pi (gebruik user pi) omdat de dropbox api bij mij is ingesteld op gebruiker pi.

Samenvattend heb ik dus nu een superlichte webcam / wolkencamera server, voorzien van een 10 minuten wifi waakhond. Je kunt de server vinden op pa3ang.xs4all.nl en dat is mijn hostnaam thuis. Via de router is de server veilig aangesloten op de buitenwereld.

Raspberry Pi – Zero

Kleiner kan bijna niet.

En toen was er opeens een superkleine RPi. Op Thanksgiving Day in Engeland werd ploteseling the Raspberry Pi Zero aangekondigd. Nou aangekondigd hij was per direct leverbaar en dus na één dag al weer uitverkocht. Gelukkig kon ik via The Pi Hut een doosje met inhoud op tijd bemachtigen.

SAMSUNG DIGITAL CAMERA

De RPi Zero kost $5, maar ja een kitje met verzenden kost iets meer. Je krijgt een printje waar uitsluitend kleine connectoren op gebruikt zijn. Dus een mini HDMI en mini USB connectors. Hierdoor heb je al snel een verloopstekker nodig. Ook is er geen GPIO connector aangesoldeerd, en hiervoor kun je kiezen uit Male recht en haaks en Female recht.

Wat kunnen we van deze Raspberry variant verwachten? Nou eigenlijk een gewoon functionerende Raspberry Pi die de voor de RPi beschikbare operating systemen moeiteloos kan verwerken. Hij is wel iets minder krachtig dan de nieuwe RPi 2, maar toch nog steeds sneller dan de oorspronkelijke RPi type A, B en B+. De Zero draait op 1 GHz en heeft 512 Mb aan boord.

Pi-Zero

Er is geen separate audio uitgang. Hiervoor wordt de HDMI gebruikt. De GPIO is volledig compatible met de RPi 2.

Het bestelde doosje kwam na een paar dagen binnen en dus konden we vrij snel operationeel zijn. Even een SD kaartje met een werkende image (waar dus al een WiFi code op is aangebracht) erin en kijken of de Zero opstart. Via de verloop mini-HDMI de monitor aansluiten en met een USB HUB de voeding en dongeltjes verbinden.

SAMSUNG DIGITAL CAMERA

Genoeg toepassingen denkbaar om met dit mini computertje applicaties te schrijven in Python. Toch net even anders dan Arduino en makkelijker op de nemen in de Internet of Things toekomst.

 

Raspberry Pi 2, Model B 1GB

De nieuwste en snellere Raspberry Pi.

Waren de berichten bij de release van de Raspberry Pi Type B + halverwege 2014 nog, dat er voorlopig geen nieuwe (processor technisch) verbeterde versie zou worden uitgebracht, nu een half jaar later heb ik een ‘supersnelle’ Linux computer op mijn bureau staan / liggen: de Raspberry Pi 2, Model B 1 GB.

SNC17130

Deze RPi is qua vormfactor gelijk aan de Model B+, dus met 4 USB2 poorten, HDMI, gecombineerde AV connector, 100Mb LAN, micro USB voeding en de 40polige GPIO. Verder de aansluiting voor de RPi CSI camera en de connector voor de toekomstige RPi DSI TFT scherm. Maar….. deze versie 2 heeft een heel belangrijke hardware verbetering, er is op het board namelijk een QUAD Core Broadcom BCM2836 CPU met 1GB RAM geplaatst! Er is dus een volledig nieuwe processor toegepast waardoor de performance een factor 6 verbeterd is t.o.v. versie 1 type B met 512 MB RAM.

(more…)

Raspberry Pi Type B+

Beetje nieuw, niet echt maar wel handig.

Er is een ‘verbeterde’ versie van de RPi type B. Hij is gedoopt de B+ en heeft de volgende voor ons radiomakkers toch wel interessante verbeteringen:

  • Meer GPIO, 40 pin in plaats van 26
  • Meer USB Poorten, 4 in plaats van 2
  • Micro SD slot
  • Energie zuiniger (verbeterde voedingscircuit)
  • Beter on board audio
  • Nettere layout

RPI type B+

 

(more…)

Upgrade RPi Webcam

De RPi webcam geïntegreerd in moderne webapplicaties.

Al geruime tijd heb ik een webcam (weather cam) on line staan. Uit een experiment geboren werd het alras serieus. Want wat bleek. Toen ik de webcam weer offline haalde, kreeg ik een mail vanuit Milaan om toch vooral door te gaan. Er was een enthousiasteling die van elke dag een filmpje maakte. De webcam maakt elke minuut een snapshot (in diverse formaten) en van die 60*24=1440 foto’s kun je inderdaad eenvoudig een 1:35 minuten durend filmpje maken. Een voorbeeld vindt je hier:



(more…)

RPi ontwikkelingen

Twee nieuwe opsteekmodules met interessante mogelijkheden.

In de afgelopen weken heb ik me weer wat meer bezig gehouden met de Raspberry Pi (RPi).

20140321_190432_800x600DVMEGA D-STAR modem links, Wolfson Audio Card rechts.

Tijdens een email wisseling met Guus, PE1PLM kwam ik erachter dat hij een beperkt aantal D-STAR GMSK transceiver bordjes, gebaseerd op Arduino, zou produceren welke rechtstreeks  op een Raspberry Pi GPIO geprikt worden. Deze bordjes zijn een spin-off van zijn dvmega project. Ik ben erg blij met het aanbod van Guus dat hij mij een dergelijk bordje wilde leveren en ben dus nu de trotse bezitter van een RPi-DVAP hotspot. Compacter kun je het gewoon niet hebben. De bedoeling is om radioamateur minnend Nederland te laten zien wat je met een RPi kunt doen (eind april hou ik een lezing over de RPi voor de afdeling Twente in het Hamnus). Natuurlijk hebben al veel amateurs geëxperimenteerd met een RPi in combinatie met een DVAP, DVRPTR of GMSK modem plus een analoge 9K6 transceiver, maar deze vorm is wel heel uitnodigend om daadwerkelijk gebruik te maken van een RPi. Er zijn op internet vele voorbeelden te vinden van het gebruik van een RPi voor D-STAR, maar deze combinatie is tot nu toe de meest compacte vorm. Geen extra kabels. Slechts een 5 Volt USB voeding en een draadloze WiFi connectie zijn genoeg om een volwaardige D-STAR hotspot te realiseren. Meer info op de site van Guus. O ja, de RPi is een Type A in een PiBow behuizing. De SD kaart heeft een westerndstar image. Het voordeel hiervan is dat je niet veel van Linux (het operating systeem van de RPi) hoeft te weten om de boel aan de praat te krijgen.

Ja en dan de RPi aan de rechter kant op de foto. Dit een nieuw add-on board voor de Raspberry Pi en is ontwikkeld door Elements14. Op hun site kun je al heel veel informatie vinden. Het is een welkome aanvulling en zeker voor de radioamateur. Immers we doen erg veel met de geluidskaart tegenwoordig en de RPi heeft standaard alleen maar een (koptelefoon)uitgang. Er ontbreekt dus een eenvoudige ‘stereo’ ingang, nodig voor bijvoorbeeld SDR/IQ decodering. De door Elements14 geleverde soundkaart is overigens ook voor de audiofielen een mooie aanvulling.

36208_12_element_14_launches_raspberry_pi_sound_card

Goed, hoe krijg je het ding aan de praat? Nou dat viel nog niet mee, maar dat was meer eigenwijsheid en het niet hebben van een SD kaart welke groot genoeg was dan de support en documentatie van de leverancier(s) en de diverse bloggers.
Je kunt namelijk op de site van Elements14 een image dowloaden die de nodige drivers, instellingen en software bezit voor de nieuwe soundkaart. Deze image is gebaseerd op de Raspbian distributie, maar is wel 8Gb groot. Je moet dus gewoon een 8Gb of nog beter 16Gb SD kaart meebestellen. Er was ook een recept om een bestaande Raspbian kernel te upgraden, maar daarvoor heb je wel een stabiele RPi nodig (dus met LAN kabel) en geduld! Beide had ik niet en dus ben ik de volgende dag even naar de plaatselijke electronicawinkel gegaan voor een grotere SD kaart.

Nadat ik de image met Win32DiskImager op een 16Gb heb geladen is het een fluitje van een cent… een super fluitje met een super geluid moet ik zeggen. De RPi start meteen op met de X11 Desktop en biedt ook een 5 tal HD geluidsfragmenten. Koptelefoon aansluiten (wel een goede natuurlijk) en de Music Player starten.

Wolfson Image

Op de ASLA mixer is te zien dat er naast de standaard bcm2835 audio een snd_rpi_wsp device is. Dit is dus de Wolfson kaart!  De S/PDIF uitgangen en ‘on-board’ versterker heb ik nog niet geprobeerd, maar ik heb er alle vertrouwen in dat deze functionaliteiten ook goed werken.

De Wolfson kaart integreert 1:1 met de RPi en ik heb een combinatie gemaakt met een Type A kaart en een PiBow Type A behuizing. Met wat kleine modificaties aan de bovenste behuizingslaag (gat boren en GPIO uitsparing wat vergroten) is de geluidskaart stevig te monteren. In vergelijk met een externe USB geluidkaart met overeenkomende specificaties (24-bit, 192kHz) is de Wolfson absoluut niet duur en je houd de configuratie mooi compact en bezet niet een USB slot. Ik heb de kaart uiteraard betrokken bij mijn huisleverancier.

Applicaties die nu uitgeprobeerd moeten worden zijn:

  • SDR /IQ ontvangst met 192kHz bandbreedte (Linrad)
  • Streamen op internet van audio ( Darkice, Icecast2)
  • Internet Radio maar nu met speakers. (zie blog)
  • Media Center – HD Media Player

en voor de radioamateur WSPR en de vele andere audio gebaseerde modulatie en communicatiesoorten (PSK31, CW, etc.). Maar daarover schrijf ik wellicht eens in een volgend blog.