#!/usr/bin/python3
import tkinter as tk
import RPi.GPIO as GPIO
from time import sleep
class GUI:
def __init__(self, gpiopin=3, debug=False):
self.gpiopin = gpiopin
GPIO.setmode(GPIO.BOARD)
GPIO.setup(gpiopin, GPIO.OUT)
GPIO.setwarnings(False)
self.DEBUG = debug
self.led_status = False
self.scale_vorhanden = False
self.scale_wert = 0
self.bewaesserung = True
self.master = tk.Tk()
self.master.protocol("WM_DELETE_WINDOW", self.quit)
self.main_menu()
self.master.mainloop()
def main_menu(self):
self.master.geometry("450x140+100+100")
self.master.title("Hauptmenue")
self.led_button = tk.Button(master=self.master, text="LED", command=self.led_menu)
self.led_button.place(x=10, y=20, height=100, width=100)
self.exit_button = tk.Button(master=self.master, bg="#229", fg="white", text="Exit", command=self.quit)
self.exit_button.place(x=340, y=20, height=100, width=100)
def led_menu(self):
self.led_master = tk.Toplevel()
self.led_master.title("Bewaesserung")
self.led_master.geometry("500x170+100+100")
self.led_exit_button = tk.Button(self.led_master, text="Hauptmenue", fg="red", command=self.led_master.destroy)
self.led_exit_button.place(x=400, y=140, height=30, width=100)
self.led_tgl_button = tk.Button(self.led_master, text="LED Toggle",command=self.led_toggle)
self.led_tgl_button.place(x=340, y=20, height=100, width=100)
self.scale1 = tk.Scale(self.led_master, from_=0, to=200, length=200, orient=tk.HORIZONTAL)
self.scale1.place(x=10, y=20)
self.set_scale_button = tk.Button(self.led_master, text="Setzen", command=self.scale_value)
self.set_scale_button.place(x=10, y=70)
def led_toggle(self):
if self.led_status == False:
GPIO.output(self.gpiopin, True)
self.led_status = True
self.led_tgl_button.config(bg="green",text="Bewaesserung\n laeuft")
else:
GPIO.output(self.gpiopin, False)
self.led_status = False
self.led_tgl_button.config(bg="red", text="Bewaesserung\n kann\n gestartet\n werden")
def led_automatisch(self):
wert = 0
while (wert < self.scale_wert):
GPIO.output(self.gpiopin, True)
wert += 1
self.printD(wert)
else:
GPIO.output(self.gpiopin, False)
self.printD("Done")
def scale_value(self):
self.scale_wert = self.scale1.get()
self.led_automatisch()
def printD(self, text):
if self.DEBUG:
print(text)
def quit(self):
GPIO.cleanup()
self.master.destroy()
print("Quit")
if __name__ == '__main__':
try:
tkinter_app = GUI(gpiopin=3, debug=True)
except (KeyboardInterrupt, SystemExit):
print("Schliesse Programm.")