Letzte Woche ist das neue Versuchsobjekt – Raspberry PI angekommen und gestern hatte ich endlich mal ein wenig Zeit damit zu spielen!
Herausgekommen ist ein einfacher Zähler (via Taster), der mittels LED signalisiert dass er gedrückt wurde.
In Anlehnung an eine Bestehende Lösung bei uns im Hause habe ich das Ganze so gebaut dass der letzte Zählstand auch einen Neustart überlebt und manuell auf 0 gesetzt werden muss.
Da meine Erfahrung mit Python sehr gering ist, habe ich einfach mal die Bash bemüht und ein kleines Script gebastelt das erst den Pin 25 auf Eingang (kleiner schwarzer Taster in der Mitte) umschaltet und anschließend den Pin 24 auf Ausgang (grüne LED).
Dann wird eine Schleife gestartet welche auf eine Zustandsänderung reagiert (/sys/class/gpio/gpio25/value) und gleich die LED für kurze Zeit zum Leuchten bringt. Der aktuelle Zählerstand wird dann noch nach /var/tmp/counter1.txt gesichert und wieder von vorne begonnen.
Hier das kleine Script „counter.sh“:
#!/bin/bash
if [ -f „/var/tmp/counter1.txt“ ]; then
anz=$(cat /var/tmp/counter1.txt)
fiif [ ! -d „/sys/class/gpio/gpio25“ ]; then
echo „25“ > /sys/class/gpio/export
fiif [ ! -d „/sys/class/gpio/gpio24“ ]; then
echo „24“ > /sys/class/gpio/export
fiSTATUS=$(cat /sys/class/gpio/gpio25/direction)
if [ „$STATUS“ == „out“ ]; then
echo „in“ > /sys/class/gpio/gpio25/direction
fiSTATUS=$(cat /sys/class/gpio/gpio24/direction)
if [ „$STATUS“ == „out“ ]; then
echo „out“ > /sys/class/gpio/gpio24/direction
fiwhile true; do
WERT=$(head -n 1 /sys/class/gpio/gpio25/value)
if [ „$WERT“ != „$LASTWERT“ ]; then
if [ „$WERT“ != „1“ ]; then
anz=$((anz+1))
echo $anz
echo $anz > /var/tmp/counter1.txt
echo 1 > /sys/class/gpio/gpio24/value
sleep 0.01
echo 0 > /sys/class/gpio/gpio24/value
fi
fiLASTWERT=$WERT
done
Nicht wirklich aufregend, aber dafür einfach und es macht genau das was es machen soll.
Schneller Lernerfolg, macht Lust auf mehr – da findet sich sicher noch eine Sinnvolle Aufgabe für das kleine Gerät…!