From bc9b611d5437d6ae8adea4a0242aab57db237c68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ebbe=20Ba=C3=9F?= Date: Mon, 8 Nov 2021 21:36:55 +0100 Subject: [PATCH] Added main files --- main.py | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ start.sh | 3 ++ 2 files changed, 91 insertions(+) create mode 100644 main.py create mode 100644 start.sh diff --git a/main.py b/main.py new file mode 100644 index 0000000..060667e --- /dev/null +++ b/main.py @@ -0,0 +1,88 @@ +try: + import RPi.GPIO as GPIO +except: + pass +import time +import requests +from rpi_ws281x import * +import configparser +import os + +# LED strip configuration: +LED_COUNT = 60 # Number of LED pixels. +LED_PIN = 18 # GPIO pin connected to the pixels (18 uses PWM!). +#LED_PIN = 10 # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0). +LED_FREQ_HZ = 800000 # LED signal frequency in hertz (usually 800khz) +LED_DMA = 10 # DMA channel to use for generating signal (try 10) +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 + +config = configparser.ConfigParser() + +def check_internet(url='http://www.google.com/', timeout=5): + try: + _ = requests.head(url, timeout=timeout) + return True + except requests.ConnectionError: + return False + +def wheel(pos): + """Generate rainbow colors across 0-255 positions.""" + if pos < 85: + return Color(pos * 3, 255 - pos * 3, 0) + elif pos < 170: + pos -= 85 + return Color(255 - pos * 3, 0, pos * 3) + else: + pos -= 170 + return Color(0, pos * 3, 255 - pos * 3) + +def rainbowCycle(strip, wait_ms=10, iterations=10): + """Draw rainbow that uniformly distributes itself across all pixels.""" + for j in range(256*iterations): + 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): + 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): + for i in range(strip.numPixels()): + strip.setPixelColor(i, color1) + strip.show() + time.sleep(1) + for i in range(strip.numPixels()): + strip.setPixelColor(i, color2) + strip.show() + time.sleep(1) + +def write_file(): + config.write(open('./config.ini', 'w')) + +if __name__ == '__main__': + strip = Adafruit_NeoPixel(LED_COUNT, LED_PIN, LED_FREQ_HZ, LED_DMA, LED_INVERT, LED_BRIGHTNESS, LED_CHANNEL) + strip.begin() + + if not os.path.exists('./config.ini'): + config[''] = {'led_power': True, 'timer': True, 'start_time': '06:00', 'stop_time': '22:00'} + + write_file() + + led_power = config.get('', 'led_power') + else: + led_power = config.get('', 'led_power') + + try: + while True: + if led_power == True: + setColor(strip, Color(0,0,0)) + else: + setColor(strip, Color(255,0,0)) + except KeyboardInterrupt: + setColor(strip, Color(0,0,0)) \ No newline at end of file diff --git a/start.sh b/start.sh new file mode 100644 index 0000000..4a5494e --- /dev/null +++ b/start.sh @@ -0,0 +1,3 @@ +screen -m -d python +sleep 5 +screen -S python -X stuff 'python3 /home/pi/main.py\n'