Wie versprochen bin ich wieder da und habe Zeit um mich um mein Projekt zu kümmern.
Ich möchte erläutern, wie es zu meinem Progamm kam und was ich erreichen will. Ich möchte eine Steuerung bauen, bei der viele Temperaturen erfasst und einige In- und Outputs benötigt werden. Da ich in Python absoluter Neuling bin, habe ich mir Codeschnipsel zusammenkopiert und zum Laufen bekommen. Ziel war es eine GUI zu schaffen, wo ich einigermaßen aufgeräumt Dinge platzieren kann, viele Temp-Sensoren abgefragt werden, analoge und digitale Inputs eingehen, und über Relais Geräte gesteuert werden können. Um die Hardware zu testen (die zur Zeit nur auf dem Steckboard existiert) ist dieses Programm entstanden. Es kann also nichts, außer das Interface abzufragen und zu steuern. Der einzig aktive Teil (wo ich später das laufende Programm plazieren würde) ist die blinkende Anzeige, die auf das laufende Programm hinweist.
Code: Alles auswählen
import tkinter as GUI
from queue import Queue
from threading import Thread, Event
from time import sleep
import time#, sys
import gpiozero
from gpiozero import MCP3008
#from gpiozero import LED
#from gpiozero import Button
Poti_1 = MCP3008(0)
Poti_2 = MCP3008(1)
Poti_3 = MCP3008(2)
Poti_4 = MCP3008(3)
Poti_5 = MCP3008(4)
Poti_6 = MCP3008(5)
Poti_7 = MCP3008(6)
Poti_8 = MCP3008(7)
DI_1 = gpiozero.Button(25)
DI_2 = gpiozero.Button(12)
DI_3 = gpiozero.Button(16)
DI_4 = gpiozero.Button(26)
DI_5 = gpiozero.Button(20)
DI_6 = gpiozero.Button(21)
Relay_1 = gpiozero.LED(17)
Relay_2 = gpiozero.LED(18)
Relay_3 = gpiozero.LED(27)
Relay_4 = gpiozero.LED(22)
Relay_5 = gpiozero.LED(5)
Relay_6 = gpiozero.LED(6)
Relay_7 = gpiozero.LED(13)
Relay_8 = gpiozero.LED(19)
# default Werte setzen
Relay_1.on()
sleep(0.1)
Relay_2.on()
sleep(0.1)
Relay_3.on()
sleep(0.1)
Relay_4.on()
sleep(0.1)
Relay_5.on()
sleep(0.1)
Relay_6.on()
sleep(0.1)
Relay_7.on()
sleep(0.1)
Relay_8.on()
sleep(0.1)
Restzeit= 0
ConsoleAnzeige = 0
BlinkAnzeige = 0
tempMax = 50.0
maxPosition = 0
FirstPath = 1
# Sensor Seriennummern zuweisen
Tempsensor = [22,# Anzahl der Sensoren
'/sys/bus/w1/devices/28-01143b9758aa/w1_slave', #sensor1 1m
'/sys/bus/w1/devices/28-01143bd16eaa/w1_slave', #sensor2 1m
'/sys/bus/w1/devices/28-01143e1a7baa/w1_slave', #sensor3
'/sys/bus/w1/devices/28-01143e2e31aa/w1_slave', #sensor4
'/sys/bus/w1/devices/28-01143d695baa/w1_slave', #sensor5
'/sys/bus/w1/devices/28-01143e2445aa/w1_slave', #sensor6
'/sys/bus/w1/devices/28-01143e2e63aa/w1_slave', #sensor7
'/sys/bus/w1/devices/28-01143c5be8aa/w1_slave', #sensor8
'/sys/bus/w1/devices/28-01143c6cc7aa/w1_slave', #sensor9
'/sys/bus/w1/devices/28-01143c5988aa/w1_slave', #sensor10
'/sys/bus/w1/devices/28-01143c6784aa/w1_slave', #sensor11
'/sys/bus/w1/devices/28-01143fa67daa/w1_slave', #sensor12
'/sys/bus/w1/devices/28-012112587e4f/w1_slave', #sensor13
'/sys/bus/w1/devices/28-01211265ff52/w1_slave', #sensor14
'/sys/bus/w1/devices/28-0121125ff38a/w1_slave', #sensor15
'/sys/bus/w1/devices/28-0121126b3fd2/w1_slave', #sensor16
'/sys/bus/w1/devices/28-0121122f9105/w1_slave', #sensor17
'/sys/bus/w1/devices/28-012112616893/w1_slave', #sensor18
'/sys/bus/w1/devices/28-0121126f7458/w1_slave', #sensor19
'/sys/bus/w1/devices/28-0121124dcddb/w1_slave', #sensor20
'/sys/bus/w1/devices/28-012112650020/w1_slave', #sensor21
'/sys/bus/w1/devices/28-012112722655/w1_slave', #sensor22
]
# Array Temp deklarieren
Temp = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
#LabelPos= [_0,_2B,_3B,_4B,_5B,_6B,_7B,_8B,_9B,_10B,_11B,_12B,_2C,_3C,_4C,_5C,_6C,_7C,_8C,_9C,_10C,_11C,_12C]
#tempalle = 0.0
#tempdurch = 0.0
# Temperatur der DS18B20 aus dem Systembus lesen
def readTempSensor(sensorName) :
f = open(sensorName, 'r')
lines = f.readlines()
f.close()
return lines
# Endlosschleife bis alle Daten gelesen werden konnten
def readTempLines(sensorName) :
lines = readTempSensor(sensorName)
while lines[0].strip()[-3:] != 'YES':
time.sleep(0.2)
lines = readTempSensor(sensorName[1])
temperaturStr = lines[1].find('t=')
# Ich überprüfe ob die Temperatur gefunden wurde.
if temperaturStr != -1 :
tempData = lines[1][temperaturStr+2:]
tempCelsius = float(tempData) / 1000.0
# Rückgabe als Array - [0] tempCelsius
return [tempCelsius]
# Programm ausserhalb der Temperaturmessung
def blinken():
global BlinkAnzeige
if BlinkAnzeige == 1:
BlinkAnzeige = 0
else:
BlinkAnzeige = 1
#
#
def einlesen():
tempalle=0.0
for loop in range(1,Tempsensor[0]+1): #Werte in Temp[] einlesen
Temp[loop] = (readTempLines(Tempsensor [loop])[0])
tempalle = tempalle+ Temp[loop]
#
tempdurch = tempalle / Tempsensor[0]
Temp[0]= tempdurch
#
def ausgabeConsole():
global tempMax
global maxPosition
global timeold
tempdurch = Temp[0]
timeold = timeold - 30
tempMax = 0.0
#
print("Durchschnitt: " + "%7.3f"% (tempdurch))
print("Zeit: " + time.strftime('%H:%M:%S'))
print("Sensor Wert Abweichung")
#
for loop in range(1,Tempsensor[0]+1):
print("Sensor " + str(loop) + ": " + "%7.3f"% (Temp[loop]) + " - " + "%7.3f"% (Temp[loop]-tempdurch))
if (Temp[loop]) > tempMax:
tempMax = (Temp[loop])
maxPosition = loop
time.sleep(1)
print("-------------------------------------------")
#
def generate_data(my_queue, event):
global timeold
timeold = 0.0
global Restzeit
while not event.is_set():
data ={}
data['value_sensor_3'] = Poti_1.value
data['value_sensor_4'] = Poti_2.value
my_queue.put(data)
sleep(0.7)
if time.time() > timeold +180: # nur alle 180 sec Sensoren abfragen
timeold = time.time()
einlesen()
Restzeit= (timeold - time.time() +180)
p1 = Poti_1.value * 100
p2 = Poti_2.value * 100
blinken()
if ConsoleAnzeige == 1:
print("Zeit bis Aktualisierung: " + "%4.0f"% ((timeold - time.time()) +180) + " Sekunden")
print ("Anzahl der Sensoren: " + "%4.0f"% Tempsensor[0])
print("Analog Input = Ch1:" +"%4.0f"% p1 + " % -- Ch2:" + "%4.0f"% p2 + " %")
ausgabeConsole()
class Application(GUI.Frame):
def __init__(self, my_queue, thread_kill_event, master=None):
super().__init__(master)
self.my_queue = my_queue
self.thread_kill_event = thread_kill_event
self.grid()
if FirstPath == 1:
self.create_widgets()
self.update_labels()
def create_widgets(self):
global FirstPath
# Rahmen definieren
self._1A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._1B = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1C = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1D = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1E = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1F = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1G = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1H = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1I = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._1J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._10A = GUI.Label(self, bg='red', height=2, width=2, text='')
self._10B = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10C = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10D = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10E = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10F = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10G = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10H = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10I = GUI.Label(self, bg='grey', height=2, width=20, text='')
self._10J = GUI.Label(self, bg='red', height=2, width=2, text='')
self._2A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._3A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._4A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._5A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._6A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._7A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._8A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._9A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._10A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._11A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._12A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._13A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._14A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._15A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._16A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._17A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._18A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._19A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._20A = GUI.Label(self, bg='grey', height=3, width=2, text='')
self._21A = GUI.Label(self, bg='grey', height=3, width=2, text='')
self._22A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._23A = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._2J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._3J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._4J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._5J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._6J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._7J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._8J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._9J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._10J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._11J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._12J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._13J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._14J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._15J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._16J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._17J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._18J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._19J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._20J = GUI.Label(self, bg='grey', height=3, width=2, text='')
self._21J = GUI.Label(self, bg='grey', height=3, width=2, text='')
self._22J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._23J = GUI.Label(self, bg='grey', height=2, width=2, text='')
self._1A.grid(row=0,column=0)
self._1B.grid(row=0,column=1)
self._1C.grid(row=0,column=2)
self._1D.grid(row=0,column=3)
self._1E.grid(row=0,column=4)
self._1F.grid(row=0,column=5)
self._1G.grid(row=0,column=6)
self._1H.grid(row=0,column=7)
self._1I.grid(row=0,column=8)
self._1J.grid(row=0,column=9)
self._10A.grid(row=22,column=0)
self._10B.grid(row=22,column=1)
self._10C.grid(row=22,column=2)
self._10D.grid(row=22,column=3)
self._10E.grid(row=22,column=4)
self._10F.grid(row=22,column=5)
self._10G.grid(row=22,column=6)
self._10H.grid(row=22,column=7)
self._10I.grid(row=22,column=8)
self._10J.grid(row=22,column=9)
self._2A.grid(row=1,column=0)
self._3A.grid(row=2,column=0)
self._4A.grid(row=3,column=0)
self._5A.grid(row=4,column=0)
self._6A.grid(row=5,column=0)
self._7A.grid(row=6,column=0)
self._8A.grid(row=7,column=0)
self._9A.grid(row=8,column=0)
self._10A.grid(row=9,column=0)
self._11A.grid(row=10,column=0)
self._12A.grid(row=11,column=0)
self._13A.grid(row=12,column=0)
self._14A.grid(row=13,column=0)
self._15A.grid(row=14,column=0)
self._16A.grid(row=15,column=0)
self._17A.grid(row=16,column=0)
self._18A.grid(row=17,column=0)
self._19A.grid(row=18,column=0)
self._20A.grid(row=19,column=0)
self._21A.grid(row=20,column=0)
self._22A.grid(row=21,column=0)
self._23A.grid(row=22,column=0)
self._2J.grid(row=1,column=9)
self._3J.grid(row=2,column=9)
self._4J.grid(row=3,column=9)
self._5J.grid(row=4,column=9)
self._6J.grid(row=5,column=9)
self._7J.grid(row=6,column=9)
self._8J.grid(row=7,column=9)
self._9J.grid(row=8,column=9)
self._10J.grid(row=9,column=9)
self._11J.grid(row=10,column=9)
self._12J.grid(row=11,column=9)
self._13J.grid(row=12,column=9)
self._14J.grid(row=13,column=9)
self._15J.grid(row=14,column=9)
self._16J.grid(row=15,column=9)
self._17J.grid(row=16,column=9)
self._18J.grid(row=17,column=9)
self._19J.grid(row=18,column=9)
self._20J.grid(row=19,column=9)
self._21J.grid(row=20,column=9)
self._22J.grid(row=21,column=9)
self._23J.grid(row=22,column=9)
#Temp Sensoren
self.label_1B = GUI.Label(self, bg='yellow', height=1, width=16, text='TempSensoren')
self.label_1B.grid(row=0,column=1)
self.label_2B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_2B.grid(row=1,column=1)
self.label_3B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_3B.grid(row=2,column=1)
self.label_4B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_4B.grid(row=3,column=1)
self.label_5B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_5B.grid(row=4,column=1)
self.label_6B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_6B.grid(row=5,column=1)
self.label_7B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_7B.grid(row=6,column=1)
self.label_8B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_8B.grid(row=7,column=1)
self.label_9B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_9B.grid(row=8,column=1)
self.label_10B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_10B.grid(row=9,column=1)
self.label_11B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_11B.grid(row=10,column=1)
self.label_12B = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_12B.grid(row=11,column=1)
self.label_1C = GUI.Label(self, bg='yellow', height=1, width=16, text='TempSensoren')
self.label_1C.grid(row=0,column=2)
self.label_2C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_2C.grid(row=1,column=2)
self.label_3C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_3C.grid(row=2,column=2)
self.label_4C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_4C.grid(row=3,column=2)
self.label_5C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_5C.grid(row=4,column=2)
self.label_6C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_6C.grid(row=5,column=2)
self.label_7C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_7C.grid(row=6,column=2)
self.label_8C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_8C.grid(row=7,column=2)
self.label_9C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_9C.grid(row=8,column=2)
self.label_10C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_10C.grid(row=9,column=2)
self.label_11C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_11C.grid(row=10,column=2)
self.label_12C = GUI.Label(self, bg='grey', height=2, width=16, text='Sensor')
self.label_12C.grid(row=11,column=2)
#Analog in
self.label_1D = GUI.Label(self, bg='yellow', height=1, width=16, text='Analog Input')
self.label_1D.grid(row=0,column=3)
self.label_2D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_2D.grid(row=1,column=3)
self.label_3D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_3D.grid(row=2,column=3)
self.label_4D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_4D.grid(row=3,column=3)
self.label_5D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_5D.grid(row=4,column=3)
self.label_6D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_6D.grid(row=5,column=3)
self.label_7D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_7D.grid(row=6,column=3)
self.label_8D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_8D.grid(row=7,column=3)
self.label_9D = GUI.Label(self, bg='grey', height=2, width=16, text='Poti')
self.label_9D.grid(row=8,column=3)
#Digital in
self.label_1E = GUI.Label(self, bg='yellow', height=1, width=16, text='Digital Input')
self.label_1E.grid(row=0,column=4)
self.label_2E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_2E.grid(row=1,column=4)
self.label_3E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_3E.grid(row=2,column=4)
self.label_4E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_4E.grid(row=3,column=4)
self.label_5E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_5E.grid(row=4,column=4)
self.label_6E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_6E.grid(row=5,column=4)
self.label_7E = GUI.Label(self, bg='grey', height=2, width=16, text='DI')
self.label_7E.grid(row=6,column=4)
#Relays
self.label_1F = GUI.Label(self, bg='yellow', height=1, width=16, text='Relay Outputs')
self.label_1F.grid(row=0,column=5)
self.out_1 = GUI.Button(self, text=' Relay 1 ', fg='black', command=self.Relays1)
self.out_1.grid(row =1,column=5)
self.out_2 = GUI.Button(self, text=' Relay 2 ', fg='black', command=self.Relays2)
self.out_2.grid(row =2,column=5)
self.out_3 = GUI.Button(self, text=' Relay 3 ', fg='black', command=self.Relays3)
self.out_3.grid(row =3,column=5)
self.out_4 = GUI.Button(self, text=' Relay 4 ', fg='black', command=self.Relays4)
self.out_4.grid(row =4,column=5)
self.out_5 = GUI.Button(self, text=' Relay 5 ', fg='black', command=self.Relays5)
self.out_5.grid(row =5,column=5)
self.out_6 = GUI.Button(self, text=' Relay 6 ', fg='black', command=self.Relays6)
self.out_6.grid(row =6,column=5)
self.out_7 = GUI.Button(self, text=' Relay 7 ', fg='black', command=self.Relays7)
self.out_7.grid(row =7,column=5)
self.out_8 = GUI.Button(self, text=' Relay 8 ', fg='black', command=self.Relays8)
self.out_8.grid(row =8,column=5)
#Misc
self.label_1H = GUI.Label(self, bg='yellow', height=1, width=16, text='Status')
self.label_1H.grid(row=0,column=8)
self.quit = GUI.Button(self, text=' QUIT ', fg='white', bg='red', command=self.exit_cleanup)
self.quit.grid(row=20,column=8, sticky='s')
self.knopf2 = GUI.Button(self, text=' Max Temp Wert ' + "\n" + ' + Console ', fg='red', command=self.console)
self.knopf2.grid(row=20,column=1, sticky='n')
self.knopf3 = GUI.Button(self, text=' aktualisieren ', fg='blue', command=self.aktualisieren)
self.knopf3.grid(row=20,column=2,sticky='n')
self.label_14B = GUI.Label(self, bg='grey', height=2, width=16, text='Durchschnitt')
self.label_14B.grid(row=13,column=1)
FirstPath = 0
def update_labels(self):
global tempMax
self.master.after(500, self.update_labels)
if not self.my_queue.empty():
data = self.my_queue.get()
self.label_2B['text'] = "No 01 = " + "%7.3f"% (Temp[1])
self.label_3B['text'] = "No 02 = " + "%7.3f"% (Temp[2])
self.label_4B['text'] = "No 03 = " + "%7.3f"% (Temp[3])
self.label_5B['text'] = "No 04 = " + "%7.3f"% (Temp[4])
self.label_6B['text'] = "No 05 = " + "%7.3f"% (Temp[5])
self.label_7B['text'] = "No 06 = " + "%7.3f"% (Temp[6])
self.label_8B['text'] = "No 07 = " + "%7.3f"% (Temp[7])
self.label_9B['text'] = "No 08 = " + "%7.3f"% (Temp[8])
self.label_10B['text'] = "No 09 = " + "%7.3f"% (Temp[9])
self.label_11B['text'] = "No 10 = " + "%7.3f"% (Temp[10])
self.label_12B['text'] = "No 11 = " + "%7.3f"% (Temp[11])
self.label_2C['text'] = "No 12 = " + "%7.3f"% (Temp[12])
self.label_3C['text'] = "No 13 = " + "%7.3f"% (Temp[13])
self.label_4C['text'] = "No 14 = " + "%7.3f"% (Temp[14])
self.label_5C['text'] = "No 15 = " + "%7.3f"% (Temp[15])
self.label_6C['text'] = "No 16 = " + "%7.3f"% (Temp[16])
self.label_7C['text'] = "No 17 = " + "%7.3f"% (Temp[17])
self.label_8C['text'] = "No 18 = " + "%7.3f"% (Temp[18])
self.label_9C['text'] = "No 19 = " + "%7.3f"% (Temp[19])
self.label_10C['text'] = "No 20 = " + "%7.3f"% (Temp[20])
self.label_11C['text'] = "No 21 = " + "%7.3f"% (Temp[21])
self.label_12C['text'] = "No 22 = " + "%7.3f"% (Temp[22])
self.label_14B['text'] = "Mittelwert = " + "%7.3f"% (Temp[0])
self.label_2B['bg'] = 'red' if tempMax == Temp[1] else 'grey'
self.label_3B['bg'] = 'red' if tempMax == Temp[2] else 'grey'
self.label_4B['bg'] = 'red' if tempMax == Temp[3] else 'grey'
self.label_5B['bg'] = 'red' if tempMax == Temp[4] else 'grey'
self.label_6B['bg'] = 'red' if tempMax == Temp[5] else 'grey'
self.label_7B['bg'] = 'red' if tempMax == Temp[6] else 'grey'
self.label_8B['bg'] = 'red' if tempMax == Temp[7] else 'grey'
self.label_9B['bg'] = 'red' if tempMax == Temp[8] else 'grey'
self.label_10B['bg'] = 'red' if tempMax == Temp[9] else 'grey'
self.label_11B['bg'] = 'red' if tempMax == Temp[10] else 'grey'
self.label_12B['bg'] = 'red' if tempMax == Temp[11] else 'grey'
self.label_2C['bg'] = 'red' if tempMax == Temp[12] else 'grey'
self.label_3C['bg'] = 'red' if tempMax == Temp[13] else 'grey'
self.label_4C['bg'] = 'red' if tempMax == Temp[14] else 'grey'
self.label_5C['bg'] = 'red' if tempMax == Temp[15] else 'grey'
self.label_6C['bg'] = 'red' if tempMax == Temp[16] else 'grey'
self.label_7C['bg'] = 'red' if tempMax == Temp[17] else 'grey'
self.label_8C['bg'] = 'red' if tempMax == Temp[18] else 'grey'
self.label_9C['bg'] = 'red' if tempMax == Temp[19] else 'grey'
self.label_10C['bg'] = 'red' if tempMax == Temp[20] else 'grey'
self.label_11C['bg'] = 'red' if tempMax == Temp[21] else 'grey'
self.label_12C['bg'] = 'red' if tempMax == Temp[22] else 'grey'
self.label_2D['text'] = "Poti 1 = ""%3.0f"%(Poti_1.value *100)
self.label_3D['text'] = "Poti 2 = ""%3.0f"%(Poti_2.value *100)
self.label_4D['text'] = "Poti 3 = ""%3.0f"%(Poti_3.value *100)
self.label_5D['text'] = "Poti 4 = ""%3.0f"%(Poti_4.value *100)
self.label_6D['text'] = "Poti 5 = ""%3.0f"%(Poti_5.value *100)
self.label_7D['text'] = "Poti 6 = ""%3.0f"%(Poti_6.value *100)
self.label_8D['text'] = "Poti 7 = ""%3.0f"%(Poti_7.value *100)
self.label_9D['text'] = "Poti 8 = ""%3.0f"%(Poti_8.value *100)
self.knopf3['text'] = "Restzeit: " + "%4.0f"%(Restzeit) + " sec" + "\n" + "> aktualisieren <"
if DI_1.is_held:
self.label_2E['text'] = ' TRUE '
self.label_2E['bg'] = 'green'
else:
self.label_2E['text'] = 'Input 1'
self.label_2E['bg'] = 'grey'
if DI_2.is_held:
self.label_3E['text'] = ' TRUE '
self.label_3E['bg'] = 'green'
else:
self.label_3E['text'] = 'Input 2'
self.label_3E['bg'] = 'grey'
if DI_3.is_held:
self.label_4E['text'] = ' TRUE '
self.label_4E['bg'] = 'green'
else:
self.label_4E['text'] = 'Input 3'
self.label_4E['bg'] = 'grey'
if DI_4.is_held:
self.label_5E['text'] = ' TRUE '
self.label_5E['bg'] = 'green'
else:
self.label_5E['text'] = 'Input 4'
self.label_5E['bg'] = 'grey'
if DI_5.is_held:
self.label_6E['text'] = ' TRUE '
self.label_6E['bg'] = 'green'
else:
self.label_6E['text'] = 'Input 5'
self.label_6E['bg'] = 'grey'
if DI_6.is_held:
self.label_7E['text'] = ' TRUE '
self.label_7E['bg'] = 'green'
else:
self.label_7E['text'] = 'Input 6'
self.label_7E['bg'] = 'grey'
self.out_1['text'] =' Relay 1 on ' if Relay_1.value ==0 else ' Relay 1 off '
self.out_2['text'] =' Relay 2 on ' if Relay_2.value ==0 else ' Relay 2 off '
self.out_3['text'] =' Relay 3 on ' if Relay_3.value ==0 else ' Relay 3 off '
self.out_4['text'] =' Relay 4 on ' if Relay_4.value ==0 else ' Relay 4 off '
self.out_5['text'] =' Relay 5 on ' if Relay_5.value ==0 else ' Relay 5 off '
self.out_6['text'] =' Relay 6 on ' if Relay_6.value ==0 else ' Relay 6 off '
self.out_7['text'] =' Relay 7 on ' if Relay_7.value ==0 else ' Relay 7 off '
self.out_8['text'] =' Relay 8 on ' if Relay_8.value ==0 else ' Relay 8 off '
if BlinkAnzeige ==1:
self.label_1H['text'] = ' working '
self.label_1H['fg'] = 'green'
else:
self.label_1H['text'] = ' dreaming '
self.label_1H['fg'] = 'orange'
def exit_cleanup(self):
self.thread_kill_event.set()
self.master.destroy()
def mach_was(self):
if led11.value ==0:
led11.on()
else:
led11.off()
def console(self):
global ConsoleAnzeige
global tempMax
if ConsoleAnzeige == 0:
ConsoleAnzeige = 1
self.knopf2['fg'] ='green'
else:
ConsoleAnzeige = 0
self.knopf2['fg'] ='red'
tempMax = 50.0
def aktualisieren(self):
global Restzeit
global timeold
timeold = 0.0
timeold = time.time()
einlesen()
Restzeit= (timeold - time.time() +180)
def Relays1(self):
Relay_1.on() if Relay_1.value ==0 else Relay_1.off()
def Relays2(self):
Relay_2.on() if Relay_2.value ==0 else Relay_2.off()
def Relays3(self):
Relay_3.on() if Relay_3.value ==0 else Relay_3.off()
def Relays4(self):
Relay_4.on() if Relay_4.value ==0 else Relay_4.off()
def Relays5(self):
Relay_5.on() if Relay_5.value ==0 else Relay_5.off()
def Relays6(self):
Relay_6.on() if Relay_6.value ==0 else Relay_6.off()
def Relays7(self):
Relay_7.on() if Relay_7.value ==0 else Relay_7.off()
def Relays8(self):
Relay_8.on() if Relay_8.value ==0 else Relay_8.off()
def main():
my_queue = Queue()
my_event = Event()
my_thread = Thread(target=generate_data, args=(my_queue, my_event, ))
my_thread.start()
root = GUI.Tk()
app = Application(my_queue, my_event, master=root)
app.master.title('GUI')
app.mainloop()
#root.grid_rowconfigure(0, weight=1)
if __name__ == '__main__':
main()