Projects/Netlight: Difference between revisions

From Hackerspace Amersfoort
Jump to navigation Jump to search
No edit summary
No edit summary
Line 11: Line 11:


http://www.youtube.com/watch?v=uxdJv-h0Fks
http://www.youtube.com/watch?v=uxdJv-h0Fks
===Update 28/07/12===
We made a new relay board so we can control the two light independently, When the raspi is booting both lights are now off.


== People who helped ==
== People who helped ==

Revision as of 15:40, 28 July 2012


Project Netlight
Name Netlight
Start 2012-07-27
End 2012-07-29
Contact User:Pietdv
Website
Information The network traffic light at haxogreen
Status Production


Because of a faulty switch the network at haxogreen 2012 was quite buggy for a while. After a couple of hours we were sick of opening up a terminal and starting a ping to check if the internet was up. We had a raspi and a traffic light available, so we started hacking. We made a little relay board to let the raspi control the traffic light, and wrote a shell script to check if there was an internet connection and set the traffic light to green if there was, to red if there wasn't.

http://www.youtube.com/watch?v=uxdJv-h0Fks

Update 28/07/12

We made a new relay board so we can control the two light independently, When the raspi is booting both lights are now off.

People who helped

Gallery


Script

 #!/bin/sh

IP="8.8.8.8"
TIMEOUT="2"
GPIO_RED="23"
GPIO_GREEN="24"
THRESHOLD="2"

# no user-servicable parts below
echo ${GPIO_RED} > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${GPIO_RED}/direction
echo ${GPIO_GREEN} > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio${GPIO_GREEN}/direction

COUNT=0

while [ 1 ]; do
  ping -c 1 -W 2 -qq ${IP} > /dev/null 2>&1

  ec=$?

  if [ ${ec} -eq 0 ]; then
    COUNT=0
  else
    COUNT=`expr ${COUNT} + 1`
  fi

  if [ ${COUNT} -ge ${THRESHOLD} ]; then
    echo "1" > /sys/class/gpio/gpio${GPIO_RED}/value
    echo "0" > /sys/class/gpio/gpio${GPIO_GREEN}/value
  else
    echo "1" > /sys/class/gpio/gpio${GPIO_GREEN}/value
    sleep 3
    echo "0" > /sys/class/gpio/gpio${GPIO_RED}/value
  fi
done