| 
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -17,10 +17,14 @@ from matplotlib.lines import Line2D #Para hacer las líneas de las gráficas | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Variables a utilizar | 
																 | 
																 | 
																#Variables a utilizar | 
															
														
														
													
														
															
																 | 
																 | 
																global isRun #Valor booleano de programa corriendo | 
																 | 
																 | 
																global isRun #Valor booleano de programa corriendo | 
															
														
														
													
														
															
																 | 
																 | 
																global on #Valor booleano del estatus del transistor | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																on = False #Inicializa transistor apagado | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																global on1 #Valor booleano del estatus del transistor | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																global on2 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																global conected | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																conected = False | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																on1 = False #Inicializa transistor 1 apagado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																on2 = False #Inicializa transistor 2 apagado | 
															
														
														
													
														
															
																 | 
																 | 
																isReceiving = False #Valor booleano de recibiendo datos | 
																 | 
																 | 
																isReceiving = False #Valor booleano de recibiendo datos | 
															
														
														
													
														
															
																 | 
																 | 
																isRun = True | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																isRun = False | 
															
														
														
													
														
															
																 | 
																 | 
																dato = 0.0 #Variable del dato convertido a float | 
																 | 
																 | 
																dato = 0.0 #Variable del dato convertido a float | 
															
														
														
													
														
															
																 | 
																 | 
																serialPort = 'COM3' #Puerto al que está conectado el Arduino | 
																 | 
																 | 
																serialPort = 'COM3' #Puerto al que está conectado el Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																baudRate = 9600 #Baudios configurados en Arduino | 
																 | 
																 | 
																baudRate = 9600 #Baudios configurados en Arduino | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -33,32 +37,37 @@ def leer_datos(): | 
															
														
														
													
														
															
																 | 
																 | 
																    time.sleep(1.0) | 
																 | 
																 | 
																    time.sleep(1.0) | 
															
														
														
													
														
															
																 | 
																 | 
																    arduino.reset_input_buffer() #limpia el buffer de datos | 
																 | 
																 | 
																    arduino.reset_input_buffer() #limpia el buffer de datos | 
															
														
														
													
														
															
																 | 
																 | 
																    print("leyendo") | 
																 | 
																 | 
																    print("leyendo") | 
															
														
														
													
														
															
																 | 
																 | 
																    while(isRun): | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        global isReceiving #valor booleano de recibiendo datos | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        global dato #dato a recibir desde Arduino | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        global data #Colección de datos a graficar | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        for i in range(numData): | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            datos = arduino.readline().decode("utf-8").strip() #Lectura del dato | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            print(datos) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            if(datos != ''): #Asegurar que se haya leído un dato | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                print("RECIBIENDO..." + str(i)) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                dato = float(datos) #Conversión del dato en float | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                data[i].append(dato) #Agrega el dato a la colección | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                var.set("TEMPERATURA: " + str(dato) + " °C") #impresión del dato numérico en la interfaz | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            else: | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																                break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            isReceiving = True #Confirmación de que se ha recibido el dato | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    while(conected): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            if(isRun == True): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                global isReceiving #valor booleano de recibiendo datos | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                global dato #dato a recibir desde Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                global data #Colección de datos a graficar | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                for i in range(numData): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    datos = arduino.readline().decode("utf-8").strip() #Lectura del dato | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    print(datos) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    if(datos != ''): #Asegurar que se haya leído un dato | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        print("RECIBIENDO..." + str(i)) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        dato = float(datos) #Conversión del dato en float | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        data[i].append(dato) #Agrega el dato a la colección | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        if(i == 0): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                            var.set("TEMPERATURA 1: " + str(dato) + " °C") #impresión del dato numérico en la interfaz | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        else: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                            var2.set("TEMPERATURE 2: " + str(dato) + " °C") #impresión del dato numérico en la interfaz      | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    else: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                        break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																                    isReceiving = True #Confirmación de que se ha recibido el dato | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Función para iniciar la gráfica | 
																 | 
																 | 
																#Función para iniciar la gráfica | 
															
														
														
													
														
															
																 | 
																 | 
																def iniciarGrafica(self, muestras,lines): | 
																 | 
																 | 
																def iniciarGrafica(self, muestras,lines): | 
															
														
														
													
														
															
																 | 
																 | 
																    global dato | 
																 | 
																 | 
																    global dato | 
															
														
														
													
														
															
																 | 
																 | 
																    if(datos != ''): | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        lines[0].set_data(range(muestras), data[0]) #Se grafica en la línea la colección de datos | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        lines[1].set_data(range(muestras), data[1]) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    #if(datos != ''): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    lines[0].set_data(range(muestras), data[0]) #Se grafica en la línea la colección de datos | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    lines[1].set_data(range(muestras), data[1]) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Establecer conexión con Arduino | 
																 | 
																 | 
																#Establecer conexión con Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																def conectar_serial():  | 
																 | 
																 | 
																def conectar_serial():  | 
															
														
														
													
														
															
																 | 
																 | 
																    global arduino #Variable que va aguardar la conexión | 
																 | 
																 | 
																    global arduino #Variable que va aguardar la conexión | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global conected | 
															
														
														
													
														
															
																 | 
																 | 
																    try: | 
																 | 
																 | 
																    try: | 
															
														
														
													
														
															
																 | 
																 | 
																        arduino = serial.Serial(serialPort, baudRate) #Asignación del objeto a la variable | 
																 | 
																 | 
																        arduino = serial.Serial(serialPort, baudRate) #Asignación del objeto a la variable | 
															
														
														
													
														
															
																 | 
																 | 
																        arduino.timeout = 0.2 #Tiempo a esperar para que haya datos disponibles en el puerto serie  | 
																 | 
																 | 
																        arduino.timeout = 0.2 #Tiempo a esperar para que haya datos disponibles en el puerto serie  | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -67,12 +76,17 @@ def conectar_serial(): | 
															
														
														
													
														
															
																 | 
																 | 
																        btnStart.config(state = "normal") | 
																 | 
																 | 
																        btnStart.config(state = "normal") | 
															
														
														
													
														
															
																 | 
																 | 
																        btnConectar.config(state = "disabled") | 
																 | 
																 | 
																        btnConectar.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																        btnManual.config(state = "normal") | 
																 | 
																 | 
																        btnManual.config(state = "normal") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        btnManual2.config(state = "normal") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        conected = True | 
															
														
														
													
														
															
																 | 
																 | 
																    except: | 
																 | 
																 | 
																    except: | 
															
														
														
													
														
															
																 | 
																 | 
																        print("Error de conexión") | 
																 | 
																 | 
																        print("Error de conexión") | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Hilo para la lectura de datos constante | 
																 | 
																 | 
																#Hilo para la lectura de datos constante | 
															
														
														
													
														
															
																 | 
																 | 
																def iniciar_hilo(): | 
																 | 
																 | 
																def iniciar_hilo(): | 
															
														
														
													
														
															
																 | 
																 | 
																    global thread #Variable donde guardar el hilo | 
																 | 
																 | 
																    global thread #Variable donde guardar el hilo | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global isRun | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnStart.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    isRun = True | 
															
														
														
													
														
															
																 | 
																 | 
																    thread = Thread(target=leer_datos) #Creación del hilo con la función para leer los datos | 
																 | 
																 | 
																    thread = Thread(target=leer_datos) #Creación del hilo con la función para leer los datos | 
															
														
														
													
														
															
																 | 
																 | 
																    thread.start() #Inicio de la lectura | 
																 | 
																 | 
																    thread.start() #Inicio de la lectura | 
															
														
														
													
														
															
																 | 
																 | 
																    btnStart.config(state = "disabled") | 
																 | 
																 | 
																    btnStart.config(state = "disabled") | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -87,15 +101,30 @@ def control1(): | 
															
														
														
													
														
															
																 | 
																 | 
																    global on | 
																 | 
																 | 
																    global on | 
															
														
														
													
														
															
																 | 
																 | 
																    global estado | 
																 | 
																 | 
																    global estado | 
															
														
														
													
														
															
																 | 
																 | 
																    global arduino | 
																 | 
																 | 
																    global arduino | 
															
														
														
													
														
															
																 | 
																 | 
																    if on == False: #Cuando el transistor está apagado | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        on = True #Cambia la variable de condición | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if on1 == False: #Cuando el transistor está apagado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        on1 = True #Cambia la variable de condición | 
															
														
														
													
														
															
																 | 
																 | 
																        btnManual.config(bg = "#55DE1E", text = "ON") #Cambia color y texto del botón | 
																 | 
																 | 
																        btnManual.config(bg = "#55DE1E", text = "ON") #Cambia color y texto del botón | 
															
														
														
													
														
															
																 | 
																 | 
																        estado = "on" #cambia la variable de estado | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        estado = "on1" #cambia la variable de estado | 
															
														
														
													
														
															
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía encender al serial de Arduino | 
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía encender al serial de Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																    else: #Cuando el transistor está encendido | 
																 | 
																 | 
																    else: #Cuando el transistor está encendido | 
															
														
														
													
														
															
																 | 
																 | 
																        on = False #Cambia la variable de condición | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        on1 = False #Cambia la variable de condición | 
															
														
														
													
														
															
																 | 
																 | 
																        btnManual.config(bg = "red", text = "OFF") #Cambia color y texto del botón | 
																 | 
																 | 
																        btnManual.config(bg = "red", text = "OFF") #Cambia color y texto del botón | 
															
														
														
													
														
															
																 | 
																 | 
																        estado = "off" #Cambia la variable de estado | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        estado = "off1" #Cambia la variable de estado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía apagar al serial de Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																def control2(): | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global on2 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global estado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    if on2 == False: #Cuando el transistor está apagado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        on2 = True #Cambia la variable de condición | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        btnManual2.config(bg = "#55DE1E", text = "ON") #Cambia color y texto del botón | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        estado = "on2" #cambia la variable de estado | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía encender al serial de Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    else: #Cuando el transistor está encendido | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        on2 = False #Cambia la variable de condición | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        btnManual2.config(bg = "red", text = "OFF") #Cambia color y texto del botón | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        estado = "off2" #Cambia la variable de estado | 
															
														
														
													
														
															
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía apagar al serial de Arduino | 
																 | 
																 | 
																        arduino.write(estado.encode()) #Se envía apagar al serial de Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Ventana para control según una temperatura dada (Automático) | 
																 | 
																 | 
																#Ventana para control según una temperatura dada (Automático) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -107,24 +136,37 @@ def control1(): | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Función para pausar la gráfica | 
																 | 
																 | 
																#Función para pausar la gráfica | 
															
														
														
													
														
															
																 | 
																 | 
																def pausar(): | 
																 | 
																 | 
																def pausar(): | 
															
														
														
													
														
															
																 | 
																 | 
																     anim.event_source.stop() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																     btnResume.config(state = "normal") | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																     btnPause.config(state = "disabled") | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global isRun | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    isRun = False | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    anim.event_source.stop() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    arduino.close() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnResume.config(state = "normal") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnPause.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Función para continuar graficando | 
																 | 
																 | 
																#Función para continuar graficando | 
															
														
														
													
														
															
																 | 
																 | 
																def reanudar(): | 
																 | 
																 | 
																def reanudar(): | 
															
														
														
													
														
															
																 | 
																 | 
																     anim.event_source.start() | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																     btnResume.config(state = "disabled") | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																     btnPause.config(state = "normal") | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global arduino | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global isRun | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    conectar_serial() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    arduino.reset_input_buffer() #limpia el buffer de datos | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    isRun = True | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    anim.event_source.start() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnResume.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnPause.config(state = "normal") | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																#Función para finaliar la conexión con Arduino | 
																 | 
																 | 
																#Función para finaliar la conexión con Arduino | 
															
														
														
													
														
															
																 | 
																 | 
																def desconectar_serial(): | 
																 | 
																 | 
																def desconectar_serial(): | 
															
														
														
													
														
															
																 | 
																 | 
																    global isRun | 
																 | 
																 | 
																    global isRun | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    global conected | 
															
														
														
													
														
															
																 | 
																 | 
																    anim.event_source.stop() | 
																 | 
																 | 
																    anim.event_source.stop() | 
															
														
														
													
														
															
																 | 
																 | 
																    isRun = False | 
																 | 
																 | 
																    isRun = False | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    conected = False | 
															
														
														
													
														
															
																 | 
																 | 
																    arduino.close() | 
																 | 
																 | 
																    arduino.close() | 
															
														
														
													
														
															
																 | 
																 | 
																    btnPause.config(state = "disabled") | 
																 | 
																 | 
																    btnPause.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																    btnResume.config(state = "disabled") | 
																 | 
																 | 
																    btnResume.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnManual.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    btnManual2.config(state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																     | 
																 | 
																 | 
																     | 
															
														
														
													
														
															
																 | 
																 | 
																#Variables a graficar | 
																 | 
																 | 
																#Variables a graficar | 
															
														
														
													
														
															
																 | 
																 | 
																muestras = 100 #Número de datos a visualizar | 
																 | 
																 | 
																muestras = 100 #Número de datos a visualizar | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																			
																		
																	
																	
																		
																			
																		
																	
																	
																 | 
																@ -151,6 +193,7 @@ root= tk.Tk() | 
															
														
														
													
														
															
																 | 
																 | 
																root.title("Sistema de calentamiento") | 
																 | 
																 | 
																root.title("Sistema de calentamiento") | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																var = tk.StringVar() | 
																 | 
																 | 
																var = tk.StringVar() | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																var2 = tk.StringVar() | 
															
														
														
													
														
															
																 | 
																 | 
																frame = tk.Frame(root, bd=2) | 
																 | 
																 | 
																frame = tk.Frame(root, bd=2) | 
															
														
														
													
														
															
																 | 
																 | 
																frame.grid(column=0, row=3, columnspan=2, sticky="nsew") | 
																 | 
																 | 
																frame.grid(column=0, row=3, columnspan=2, sticky="nsew") | 
															
														
														
													
														
															
																 | 
																 | 
																frame1 = tk.Frame(root) | 
																 | 
																 | 
																frame1 = tk.Frame(root) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -170,11 +213,17 @@ root.rowconfigure(3, weigh=5) | 
															
														
														
													
														
															
																 | 
																 | 
																canvas = FigureCanvasTkAgg(fig, master=frame) | 
																 | 
																 | 
																canvas = FigureCanvasTkAgg(fig, master=frame) | 
															
														
														
													
														
															
																 | 
																 | 
																canvas.get_tk_widget().pack(padx=0, pady=0, expand=True, fill='both')  | 
																 | 
																 | 
																canvas.get_tk_widget().pack(padx=0, pady=0, expand=True, fill='both')  | 
															
														
														
													
														
															
																 | 
																 | 
																labelBlank = tk.Label(frame1, text="") | 
																 | 
																 | 
																labelBlank = tk.Label(frame1, text="") | 
															
														
														
													
														
															
																 | 
																 | 
																labelBlank.grid(row=0, column=4, pady=2, padx=155) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelBlank.grid(row=0, column=4, pady=2, padx=25) | 
															
														
														
													
														
															
																 | 
																 | 
																btnManual = tk.Button(frame1, text = "OFF", command = control1, bg = "red", state = "disabled") | 
																 | 
																 | 
																btnManual = tk.Button(frame1, text = "OFF", command = control1, bg = "red", state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																btnManual.grid(row=0, column=6, pady=2, padx=10) | 
																 | 
																 | 
																btnManual.grid(row=0, column=6, pady=2, padx=10) | 
															
														
														
													
														
															
																 | 
																 | 
																labelState = tk.Label(frame1, text="Transistor State:") | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelState = tk.Label(frame1, text="Transistor 1 State:") | 
															
														
														
													
														
															
																 | 
																 | 
																labelState.grid(row=0, column=5, pady=2, padx=5) | 
																 | 
																 | 
																labelState.grid(row=0, column=5, pady=2, padx=5) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelBlank2 = tk.Label(frame1, text="") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelBlank2.grid(row=0, column=7, pady=2, padx=125) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																btnManual2 = tk.Button(frame1, text = "OFF", command = control2, bg = "red", state = "disabled") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																btnManual2.grid(row=0, column=9, pady=2, padx=10) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelState2 = tk.Label(frame1, text="Transistor 2 State:") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelState2.grid(row=0, column=8, pady=2, padx=5) | 
															
														
														
													
														
															
																 | 
																 | 
																#btnOnOff = tk.Button(frame2, text = "ON/OFF", command = control2) | 
																 | 
																 | 
																#btnOnOff = tk.Button(frame2, text = "ON/OFF", command = control2) | 
															
														
														
													
														
															
																 | 
																 | 
																#btnOnOff.grid(row=0, column=1, pady=2, padx=10) | 
																 | 
																 | 
																#btnOnOff.grid(row=0, column=1, pady=2, padx=10) | 
															
														
														
													
														
															
																 | 
																 | 
																btnConectar = tk.Button(frame1, text = "Connect", command = conectar_serial, bg="#00F1FC") | 
																 | 
																 | 
																btnConectar = tk.Button(frame1, text = "Connect", command = conectar_serial, bg="#00F1FC") | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -187,8 +236,10 @@ btnResume = tk.Button(frame1, text = "Resume", command = reanudar, bg="#00F428", | 
															
														
														
													
														
															
																 | 
																 | 
																btnResume.grid(row=0, column=3, pady=2, padx=10) | 
																 | 
																 | 
																btnResume.grid(row=0, column=3, pady=2, padx=10) | 
															
														
														
													
														
															
																 | 
																 | 
																btnDesconectar = tk.Button(frame2, text='Disconnect', command = desconectar_serial, bg="#FE5E5E") | 
																 | 
																 | 
																btnDesconectar = tk.Button(frame2, text='Disconnect', command = desconectar_serial, bg="#FE5E5E") | 
															
														
														
													
														
															
																 | 
																 | 
																btnDesconectar.grid(row=0, column=0, pady=2, padx=10) | 
																 | 
																 | 
																btnDesconectar.grid(row=0, column=0, pady=2, padx=10) | 
															
														
														
													
														
															
																 | 
																 | 
																labelData = tk.Label(frame2, textvariable=var) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																labelData.grid(row=0, column=4, pady=2, padx=500) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelData = tk.Label(frame2, textvariable=var, font="Helvetica 10 bold") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelData.grid(row=1, column=1, pady=2, padx=230) | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelData2 = tk.Label(frame2, textvariable=var2, font="Helvetica 10 bold") | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																labelData2.grid(row=1, column=2, pady=2, padx=1) | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																barraMenu = tk.Menu(frame0) | 
																 | 
																 | 
																barraMenu = tk.Menu(frame0) | 
															
														
														
													
														
															
																 | 
																 | 
																barra1 = tk.Menu(barraMenu) | 
																 | 
																 | 
																barra1 = tk.Menu(barraMenu) | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																			
																		
																	
																 | 
																@ -201,4 +252,3 @@ anim = animation.FuncAnimation(fig, iniciarGrafica, fargs=(muestras, lines), int | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																
 | 
															
														
														
													
														
															
																 | 
																 | 
																root.geometry('1000x600') | 
																 | 
																 | 
																root.geometry('1000x600') | 
															
														
														
													
														
															
																 | 
																 | 
																root.mainloop() | 
																 | 
																 | 
																root.mainloop() | 
															
														
														
													
														
															
																 | 
																 | 
																
 | 
																 | 
																 | 
																 |