Blog der Heimetli Software AG

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