ich habe eine Gartenbewässerung gebaut mit einem Raspberry Pi3. Das funktioniert auch alles ganz gut.Jetzt soll noch eine GUI her.
Die tasten funktionieren auch wunderbar. Nur muss ich zum einschalten und zum ausschalten auf den button klicken. Das will ich durch einen Slider den man für das warten bis das Wasser wieder abgestellt werden soll einstellen kann.
Ich möchte also erst den schieberegler auf z.B. 300 Sekunden stellen und dann das Bewässern starten für die 300Sekunden
Leider kriege ich das nicht hin. Mit globalen und lokalen Variable habe ich schon erklärungen gelesen ,krieg ich irgenwie nicht in mein kopf
Bisher sieht es so aus.
Code: Alles auswählen
from tkinter import *
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setwarnings(False)
hochbeet_pin = 33
kirschbaum_pin = 31
rasen_pin = 15
schuppen_pin = 29
teich_pin = 13
GPIO.setup(hochbeet_pin, GPIO.OUT)
GPIO.setup(kirschbaum_pin,GPIO.OUT)
GPIO.setup(rasen_pin, GPIO.OUT)
GPIO.setup(schuppen_pin, GPIO.OUT)
GPIO.setup(teich_pin, GPIO.OUT)
root = Tk() # Fenster erstellen
root.wm_title("Garten GUI") # Fenster Titel
root.config(background = "#FFFFFF") # Hintergrundfarbe des Fensters
# Hier kommen die Elemente hin
leftFrame = Frame(root, width=200, height = 400)
leftFrame.grid(row=0, column=0, padx=10, pady=3)
leftLabel1 = Label(leftFrame, text="Platzhalter Text")
leftLabel1.grid(row=0, column=0, padx=10, pady=3)
leftLabel2 = Label(leftFrame, text="Dies ist ein Text\nmit mehreren Zeilen.")
leftLabel2.grid(row=1, column=0, padx=10, pady=3)
imageEx = PhotoImage(file = '200x200')
Label(leftFrame, image=imageEx).grid(row=2, column=0, padx=10, pady=3)
rightFrame = Frame(root, width=800, height = 600)
rightFrame.grid(row=0, column=1, padx=10, pady=3)
#E1 = Entry(rightFrame, width=50)
#E1.grid(row=0, column=0, padx=10, pady=3)
def schuppen():
GPIO.output(schuppen_pin, True)
def hochbeet():
GPIO.output(hochbeet_pin, True)
def rasen():
GPIO.output(rasen_pin, True)
def kirschbaum():
GPIO.output(kirschbaum_pin, True)
def teich():
GPIO.output(teich_pin, True)
def aus():
GPIO.output(schuppen_pin, False)
GPIO.output(hochbeet_pin, False)
GPIO.output(rasen_pin, False)
GPIO.output(teich_pin, False)
GPIO.output(kirschbaum_pin, False)
def auto():
GPIO.output(schuppen_pin, True)
sleep (warten,get())
GPIO.output(schuppen_pin, False)
sleep 1
GPIO.output(hochbeet_pin, True)
sleep (warten,get())
GPIO.output(hochbeet_pin, False)
sleep 1
GPIO.output(rasen_pin, True)
sleep (warten,get())
GPIO.output(rasen_pin, False)
sleep 1
GPIO.output(teich_pin, True)
sleep (warten,get())
GPIO.output(teich_pin, False)
sleep 1
GPIO.output(kirschbaum_pin, True)
sleep (warten,get())
GPIO.output(kirschbaum_pin, False)
buttonFrame = Frame(rightFrame)
buttonFrame.grid(row=1, column=0, padx=10, pady=3)
B1 = Button(buttonFrame, text="Gewächshaus", bg="#FFFF00", width=15, command=schuppen)
B1.grid(row=0, column=0, padx=20, pady=10)
B2 = Button(buttonFrame, text="Hochbeet", bg="#FFFF00", width=15, command=hochbeet)
B2.grid(row=0, column=1, padx=20, pady=10)
B3 = Button(buttonFrame, text="Kirschbaum", bg="#FFFF00", width=15, command=kirschbaum)
B3.grid(row=1, column=0, padx=20, pady=10)
B4 = Button(buttonFrame, text="Rasen", bg="#FFFF00", width=15, command=rasen)
B4.grid(row=1, column=1, padx=20, pady=10)
B5 = Button(buttonFrame, text="Teich", bg="#FFFF00", width=15, command=teich)
B5.grid(row=2, column=0, padx=20, pady=10)
B6 = Button(buttonFrame, text="AUS", bg="#FF0000", width=15, command=aus)
B6.grid(row=2, column=1, padx=20, pady=10)
B7 = Button(buttonFrame, text="AUTOMATIK", bg="#FF0000", width=15, command=auto)
B7.grid(row=3, column=2, padx=20, pady=10)
warten = Scale(rightFrame, from_=30, to=1200, resolution=10, orient=HORIZONTAL, length=400)
warten.grid(row=2, column=0, padx=10, pady=3)
root.mainloop() # GUI wird upgedatet. Danach keine Elemente setzen
kann mir da jemand helfen?
Danke