Mittwoch, 24. Juli 2013

Raspberry Pi Ampelsteuerung GPIO Ports

Als ich mir einen Raspberry Pi zulegte, 
war schnell klar: "Der soll mehr machen als nur die Basis für XBMC sein." 

Und so hatte ich endlich einen Grund mir eine Ampel in die Wohnung zu stellen.

So sieht das ganze fertig aus:



Was soll das ganze?

Ich "brauchte" eine einfache Anzeige für gelaufene Backups, anstehende Server Updates etc.

Was braucht man also dafür?

  1. RaspberryPi
  2. Ampel
  3. Lochrasterplatine
  4. Flachbandkabel
  5. Relais, etc

Die Ansteuerung ist sehr leicht über die GPIO Ports zu realisieren.

Hier mal die scripts für den RaspberryPi:

#!/bin/sh
while : ;do
excode=$(wget -q -O - http://jenkins:8080/rssLatest|grep -c 'Defekt\|defekt\|broken')
wget -q -O - http://jenkins:8080/rssLatest || excode="1"

echo "0" > /sys/class/gpio/gpio18/value

if [ $excode -eq 1 ] ; then

   echo "0" > /sys/class/gpio/gpio17/value
   echo "1" > /sys/class/gpio/gpio23/value
   else 
   echo "0" > /sys/class/gpio/gpio23/value
   echo "1" > /sys/class/gpio/gpio17/value
fi
sleep 60
done

-----------------------------------------------------------------

root ~/.config # cat /storage/.config/autostart.sh 
#!/bin/bash

echo "17" > /sys/class/gpio/export
echo "18" > /sys/class/gpio/export
echo "23" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction
echo "out" > /sys/class/gpio/gpio18/direction
echo "out" > /sys/class/gpio/gpio23/direction

for a in 1 0 1 0 1 0
  do
    for i in 17 18 23
    do echo "$a" > /sys/class/gpio/gpio$i/value
    sleep 0.1
  done
done
for a in 1 0
  do
    for i in 17 18 23
    do echo "$a" > /sys/class/gpio/gpio$i/value
  done
  sleep 0.4
done

for a in 1 0
  do
    for i in 17 23
    do echo "$a" > /sys/class/gpio/gpio$i/value
  done
  sleep 0.4
done

for a in 1 0
  do
    for i in 18
    do echo "$a" > /sys/class/gpio/gpio$i/value
  done
  sleep 0.4
done

sleep 3
nohup /storage/jenkins_cron.sh &