Temperatur-Regelung mit Temp-Wert Eingabe über 'Slider'
Verfasst: Sonntag 26. November 2017, 21:19
Hallo
Ich habe mir vor einem Monat einen Raspberry Pi 3 zugelegt, Damit versuche ich eine Heizungsregelung zu realisieren. Also 8 Räume Temperatur und ein Raum Luftfeuchtigkeit regeln.Die GUI ist schon fast fertig und läuft. Die Uhrzeit und 11 Temperaturen werden bereits angezeigt.Von Python habe ich vor einem Monat das erste mal was gehört. Aber mit recherchieren, abgucken und viel ausprobieren bin ich mit Tkinter eigentlich ganz gut zurecht gekommen. Mein Derzeitiges Problem ist die Temperatur-Regelung. Der Ansatz ist die gemessene Raumtemperatur mit einer Variablen die mit einem
'Slider' eingestellt wird zu vergleichen. Wenn ich bei 'if temp >= show :' anstelle show eine Zahl eingebe dann geht das wunderbar, was mich zu dem Ergebnis bringt das show hier zu verwenden nicht der richtige Weg ist.
Das hier ist natürlich nur der temp-Regeler. Ich teste das immer separat, und wenn es dann geht wird es ins Hauptprogramm integriert.
Ich hoffe das was alle Anfänger hier hoffen. Das es nur eine "Kleinigkeit"ist und das mir jemand den entsprechenden Denkanstoß geben kann mit dem ich das Problem lösen kann.
from Tkinter import *
root = Tk()
ausgabe = Label(root, bg="gold" , width=60, height=20)
ausgabe1 = Label(root, bg="gold" , width=60, height=20)
ausgabe.grid(row=0, column=0, padx=0, pady=0)
ausgabe1.grid(row=0, column=1, padx=0, pady=0)
ausgabe2 = Label(root, bg="gold" , width=60, height=20)
ausgabe2.grid(row=0, column=2, padx=0, pady=0)
def show(val):
show= w1.get()
print(show)
w1 = Scale(ausgabe1, from_=5, to=42, command=show)
w1.pack()
def temp():
f = open('/sys/bus/w1/devices/28-0417301cdfff/w1_slave')
f.readline()
s = f.readline()
n=s.find('t=')
t=float(s[n+2:]) / 1000
ausgabe2.config(text= '%.0f °C' % t)
print t
if temp >= show :
ausgabe.config( text="warm")
else:
ausgabe.config(text="kalt")
root.after(3000,temp3)
temp()
root.mainloop()
Ich habe mir vor einem Monat einen Raspberry Pi 3 zugelegt, Damit versuche ich eine Heizungsregelung zu realisieren. Also 8 Räume Temperatur und ein Raum Luftfeuchtigkeit regeln.Die GUI ist schon fast fertig und läuft. Die Uhrzeit und 11 Temperaturen werden bereits angezeigt.Von Python habe ich vor einem Monat das erste mal was gehört. Aber mit recherchieren, abgucken und viel ausprobieren bin ich mit Tkinter eigentlich ganz gut zurecht gekommen. Mein Derzeitiges Problem ist die Temperatur-Regelung. Der Ansatz ist die gemessene Raumtemperatur mit einer Variablen die mit einem
'Slider' eingestellt wird zu vergleichen. Wenn ich bei 'if temp >= show :' anstelle show eine Zahl eingebe dann geht das wunderbar, was mich zu dem Ergebnis bringt das show hier zu verwenden nicht der richtige Weg ist.
Das hier ist natürlich nur der temp-Regeler. Ich teste das immer separat, und wenn es dann geht wird es ins Hauptprogramm integriert.
Ich hoffe das was alle Anfänger hier hoffen. Das es nur eine "Kleinigkeit"ist und das mir jemand den entsprechenden Denkanstoß geben kann mit dem ich das Problem lösen kann.
from Tkinter import *
root = Tk()
ausgabe = Label(root, bg="gold" , width=60, height=20)
ausgabe1 = Label(root, bg="gold" , width=60, height=20)
ausgabe.grid(row=0, column=0, padx=0, pady=0)
ausgabe1.grid(row=0, column=1, padx=0, pady=0)
ausgabe2 = Label(root, bg="gold" , width=60, height=20)
ausgabe2.grid(row=0, column=2, padx=0, pady=0)
def show(val):
show= w1.get()
print(show)
w1 = Scale(ausgabe1, from_=5, to=42, command=show)
w1.pack()
def temp():
f = open('/sys/bus/w1/devices/28-0417301cdfff/w1_slave')
f.readline()
s = f.readline()
n=s.find('t=')
t=float(s[n+2:]) / 1000
ausgabe2.config(text= '%.0f °C' % t)
print t
if temp >= show :
ausgabe.config( text="warm")
else:
ausgabe.config(text="kalt")
root.after(3000,temp3)
temp()
root.mainloop()