Einen GPIO-Pin auf dem Raspberry PI überwachen und loggen
Das folgende bash-Script überwacht ein GPIO-Pin vom Raspberry PI und loggt die Zustandsänderungen in einem File.
Dass das Logfile im Directory /var/www liegt, hat einen einfachen Grund: so kann man es direkt mit dem Web-Browser ansehen !
Das kommentierte Script
#!/bin/bash
# Den Pin als Eingang definieren
echo "4" > /sys/class/gpio/export
echo "in" > /sys/class/gpio/gpio4/direction
# Den Zustand des Eingangs lesen
previous=$(cat /sys/class/gpio/gpio4/value)
# Endlose Schleife
while true
do
# Den Zustand des Eingangs lesen
pin=$(cat /sys/class/gpio/gpio4/value)
# Wenn der Zustand geändert hat
if [ $pin -ne $previous ]
then
if [ $pin -lt $previous ]
then
# Eingeschaltet
echo "$(date '+%d.%m.%Y %H:%M') ein" >> /var/www/log.txt
else
# Ausgeschaltet
echo "$(date '+%d.%m.%Y %H:%M') aus" >> /var/www/log.txt
fi
fi
previous=$pin
sleep 0.5
done
Das Script herunterladen
Das Script muss natürlich ausführbar sein. Das machen Sie mit dem Befehl chmod 755 logger auf der Kommandozeile oder mit Ihrem Lieblings-Filemanager.
Das Script muss mit root-Rechten laufen. Auf der Kommandozeile kann es so gestartet werden:
sudo ./logger
Das Web-Interface
Ganz einfach: im Browser die IP-Adresse vom PI gefolgt von /log.txt eingeben und schon erscheint das Logfile im Browser. Funktioniert sogar mit IE8 !
Beispiel:
http://192.168.1.21/log.txt