diff --git a/main.py b/main.py index ed4d839..3618a80 100644 --- a/main.py +++ b/main.py @@ -3,6 +3,11 @@ import requests from rpi_ws281x import * import RPi.GPIO as GPIO import os +from datetime import datetime + +led_power = 'True' +idle_mode = 1 +power_button_pressed = 'false' # LED strip configuration: LED_COUNT = 60 # Number of LED pixels. @@ -14,7 +19,12 @@ LED_BRIGHTNESS = 255 # Set to 0 for darkest and 255 for brightest LED_INVERT = False # True to invert the signal (when using NPN transistor level shift) LED_CHANNEL = 0 # set to '1' for GPIOs 13, 19, 41, 45 or 53 -def check_internet(url='http://www.google.com/', timeout=5): +def debug_print(message: str): + now = datetime.now() + current_time = now.strftime("%H:%M:%S") + print('[DEBUG]['+current_time+'] '+message) + +def check_internet(url='http://www.google.com/', timeout=1): try: _ = requests.head(url, timeout=timeout) return True @@ -33,18 +43,22 @@ def wheel(pos): def rainbowCycle(strip, wait_ms=5, iterations=10): for j in range(256*iterations): + if power_button_pressed == 'True': + break + elif idle_mode > 1: + break for i in range(strip.numPixels()): strip.setPixelColor(i, wheel((int(i * 256 / strip.numPixels()) + j) & 255)) strip.show() time.sleep(wait_ms/1000.0) -def setColor(strip, color, iterations=10, wait_ms=10): +def setColor(strip, color, wait_ms=10): for i in range(strip.numPixels()): strip.setPixelColor(i, color) strip.show() time.sleep(wait_ms/1000.0) -def blink(strip, color1, color2, iterations=10, wait_ms=10): +def blink(strip, color1, color2): for i in range(strip.numPixels()): strip.setPixelColor(i, color1) strip.show() @@ -57,19 +71,16 @@ def blink(strip, color1, color2, iterations=10, wait_ms=10): def change_idle_mode(channel): global idle_mode idle_mode += 1 - if idle_mode == 6: + if idle_mode == 8: idle_mode = 1 - print('Change Idlemode executed') + debug_print('Change Idlemode executed') def power_toggle(channel): global power_button_pressed power_button_pressed = 'True' - print('Toggle Power executed') + debug_print('Toggle Power executed') if __name__ == '__main__': - - led_power = 'True' - idle_mode = 1 strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL) strip.begin() GPIO.setmode(GPIO.BOARD) @@ -81,7 +92,7 @@ if __name__ == '__main__': try: while True: try: - print('Button pressed: '+str(power_button_pressed)) + debug_print('Button pressed: '+str(power_button_pressed)) if str(power_button_pressed) == 'True': if led_power == 'True': led_power = 'False' @@ -93,7 +104,6 @@ if __name__ == '__main__': pass if led_power == 'True': - print('Power: True') if check_internet() == False: blink(strip, Color(255,0,0), Color(255,255,255)) else: @@ -107,11 +117,14 @@ if __name__ == '__main__': setColor(strip, Color(0,0,255)) elif idle_mode == 5: setColor(strip, Color(125,245,255)) + elif idle_mode == 6: + setColor(strip, Color(255,0,100)) + elif idle_mode == 7: + setColor(strip, Color(0,255,255)) else: blink(strip, Color(255,0,0), Color(0,0,0)) time.sleep(1) else: - print('Power: False') setColor(strip, Color(0,0,0)) time.sleep(1) except KeyboardInterrupt: