5 import RPi.GPIO as GPIO
10 GPIO.setup(17, GPIO.IN, pull_up_down=GPIO.PUD_UP)
12 LED_COUNT = 1024 # Number of LED pixels.
13 LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!).
14 #LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).
15 LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz)
16 LED_DMA = 10 # DMA channel to use for generating signal (try 10)
17 LED_BRIGHTNESS = 128 # Set to 0 for darkest and 255 for brightest
18 LED_INVERT = False # True to invert the signal (when using NPN transistor level shift)
19 LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53
25 strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL)
28 server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
29 server.bind((bind_ip, bind_port))
31 print 'Listening on {}:{}'.format(bind_ip, bind_port)
35 pixels.append(tuple((0,0,0)))
39 pixel_status.append(0)
42 print "Starting Server"
44 def led_timeout(strip,pixel):
45 pixel_status[pixel] = time.time() + 30
47 if (pixel_status[i] < time.time()) & (pixel_status[i] != 0):
48 strip.setPixelColor(i, Color(0,0,0))
51 input_state = GPIO.input(17)
52 if input_state == False:
56 strip.setPixelColor(i, Color(0,0,0))
61 strip.setPixelColor(i, pixels[i])
64 data, addr = server.recvfrom(1024)
66 elements=format(data).split(",")
68 print "Kill the sniffer and start over"
70 color=elements[0].split(":")
71 pixel_color=pixels[int(color[1])]
75 led_timeout(strip,int(color[1]))
76 if (int(elements[1])==0):
77 strip.setPixelColor(int(color[1]), Color(0,0,0))
79 strip.setPixelColor(int(color[1]), Color(green, int(elements[1]), blue))
80 pixels[int(color[1])] =(int(elements[1]),green,blue)
82 strip.setPixelColor(int(color[1]), Color(int(elements[1]), red, blue))
83 pixels[int(color[1])] =(red,int(elements[1]),blue)
85 strip.setPixelColor(int(color[1]), Color(green, red, int(elements[1])))
86 pixels[int(color[1])] =(red,green,int(elements[1]))