Código - IvanJVR/ArquitecturaComputadoras GitHub Wiki
Desglose detallado de cada uno de los pasos para el código final que será utilizado para el correcto funcionamiento.
Código Arduino
Archivo .ino
float temperatura, humedad, valorhum, valortemp, luminosidad, valorlum;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("Comunicacion establecida");
}
void loop() {
if(Serial.available()){
switch(Serial.read()){ //Se recibe un mensaje del serial, mencionando que valor es el que quiere medir
case 49: //1 Se recibe un 1 como caracter para temperatura
for(int i =0; i<25; i++){ //Se realiza la medición 25 veces y se hace la conversión para guardarlo en la variable valortemp
temperatura = analogRead(1);
valortemp += (5.0*temperatura*100.0/1024.0);
}
valortemp = valortemp/25; //Se promedia el valor de las 25 mediciones
Serial.println(valortemp);//Temperatura //Se envía al serial
break;
case 50: //2 Se recibe un 1 como caracter para humedad
humedad = analogRead(0); //Se lee el valor en el puerto A0
//valorhum = (100-((humedad/10.23)));
valorhum = ((1024-humedad)/674)*100; //Se hace la conversión con los valores caracterizados, 350 como máxima humedad 1024 como seco
if (valorhum >= 100)
valorhum = 100; //En caso de recibir un valor mayor, se ajusta a 100%
//Serial.println(humedad);
Serial.println(valorhum);//Humedad //Se envía al serial
break;
case 51:
luminosidad = analogRead(2); //Se lee el valor en el puerto A2
valorlum = ((1024-luminosidad)/342)*100; //Se hace la conversión con los valores caracterizados, 682 como máxima luz 1024 como oscuro
if (valorlum >= 100)
valorlum = 100; //En caso de recibir un valor mayor, se ajusta a 100%
Serial.println(valorlum);//Luminosidad //Se envía al serial
break;
}
delay(100); //Se aplica un delay para evitar problemas
Serial.read(); //Se vuelve a leer para quitar el "return" que está guardado en el buffer
}
}
Codigo Python
Archivo .py utilizado en la raspberry
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, QTableWidget,QTableWidgetItem,QVBoxLayout
from time import sleep
import time
from threading import Thread
import BlynkLib
import serial
import board
import digitalio
from PIL import Image, ImageDraw, ImageFont
import adafruit_ssd1306
from gpiozero import LED #Se importan todas las librerías
# Initialize Blynk
blynk = BlynkLib.Blynk('6NrT6x2zQwq_pzZmvZmt4K1UwqR5QTKe') #Se incluye el token para la sincronización
s=serial.Serial('/dev/ttyACM0',9600) #Se establece la conexión para el arduino
s.flush() #Se limpia el buffer
time.sleep(1) #Se espera un segundo para asegurarse que se estableción la comunicación
data = s.readline().decode() #Se lee la confirmación de conexión
WIDTH = 128
HEIGHT = 32
BORDER = 5
oled_reset = None
i2c = board.I2C()
oled = adafruit_ssd1306.SSD1306_I2C(WIDTH, HEIGHT, i2c, addr=0x3C, reset=oled_reset) #Se realizan las configuraciones para la pantallita OLED
motor = LED(23) #Se establece el pin de la bomba de agua(Se activa a través de un puente H)
motor.off() #Inicia apagado
seleccion = 1 #Se inicia con el sensor de humedad seleccionado para la interfaz gráfica
listaHumedad = [0,0,0,0,0,0,0,0,0,0] #Se inicia con valores el 0 el arreglo de la variable humedad
listaTemperatura = [0,0,0,0,0,0,0,0,0,0] #Se inicia con valores el 0 el arreglo de la variable temperatura
listaLuz = [0,0,0,0,0,0,0,0,0,0] #Se inicia con valores el 0 el arreglo de la variable luz
#def regar(luz, temp, hum):
def medirVariables(thread_name, thread_ID, thread_planta): #Se utiliza un hilo para actualizar los valores de las variables
while True:
global listaHumedad, listaTemperatura, listaLuz, seleccion
for j in range(10): #Se utiliza el for para llenar la tabla en la interfaz gráfica
if seleccion == 1 :
item = QtWidgets.QTableWidgetItem(listaHumedad[j]) #Se lee el arreglo de humedad para ponerlo en la tabla
elif seleccion == 2:
item = QtWidgets.QTableWidgetItem(listaTemperatura[j]) #Se lee el arreglo de temperatura para ponerlo en la tabla
elif seleccion == 3:
item = QtWidgets.QTableWidgetItem(listaLuz[j]) #Se lee el arreglo de luz para ponerlo en la tabla
item.setTextAlignment(QtCore.Qt.AlignCenter)
thread_planta.tableWidget.setItem(j,1,item) #Se actualizan los valores en la tabla
#print (type(listaHumedad[0]))
oled.fill(0) #Las siguientes líneas ponen el valor más reciente de la variable seleccionada en la pantallita OLED
image = Image.new("1", (oled.width, oled.height))
draw = ImageDraw.Draw(image)
font = ImageFont.load_default()
if seleccion == 1 :
text = "Humedad="+str(listaHumedad[0]).rstrip()+"%"
elif seleccion == 2:
text = "Temperatura="+str(listaTemperatura[0]).rstrip()+"°C"
elif seleccion == 3:
text = "Lux="+str(listaLuz[0]).rstrip()+"%"
text = text.rstrip()
# Draw Some Text
(font_width, font_height) = font.getsize(text)
draw.text(
(oled.width // 2 -font_width // 2, oled.height // 2 -font_height // 2),
text,
font=font,
fill=255,
)
oled.image(image)
oled.show()
if int(float(listaLuz[0])) <= 20 and (int(float (listaTemperatura[0])) <= 25 or int(float(listaHumedad[0]))<= 30): #Se establecen condiciones para prender la bomba de agua
if int(float(listaHumedad[0])) <= 70:
motor.on()
else:
motor.off()
else:
motor.off()
for i in range(9): #Se mueven los valores del arreglo para incluir el valor más reciente
listaHumedad[9-i]=listaHumedad[9-i-1]
listaTemperatura[9-i]=listaTemperatura[9-i-1]
listaLuz[9-i]=listaLuz[9-i-1]
print(str(thread_name) +" "+ str(thread_ID));
s.write(b"1")#Se pide el valor de Temperatura
temp_value = s.readline().decode()
listaTemperatura[0] = temp_value #Se guarda el valor en el espacio 0 del arreglo
print("La temperatura es: "+temp_value)
time.sleep(0.1) #Se hace el mismo delay que en el Arduino
s.write(b"2")#Se pide el valor de Humedad
humidity_value = s.readline().decode()
listaHumedad[0] = humidity_value #Se guarda el valor en el espacio 0 del arreglo
print("La humedad es: "+humidity_value)
time.sleep(0.1) #Se hace el mismo delay que en el Arduino
s.write(b"3")#Se pide el valor de Luminosidad
lux_value = s.readline().decode()
listaLuz[0] = lux_value #Se guarda el valor en el espacio 0 del arreglo
print("La luminosidad es: "+lux_value)
time.sleep(0.8) #Se agrega un delay para completar un segundo de espera entre mediciones
def actualizarBlynk(thread_name, thread_ID): #Se utiliza un hilo para actualizar los valores en blynk
while True:
blynk.run()
# Register Virtual Pin
@blynk.VIRTUAL_READ(2) #Función utilizada para comunicarse con Blynk
def my_read_handler():
blynk.virtual_write(2, listaLuz[0]) #Se manda el valor más reciente de luz
blynk.virtual_write(1, listaTemperatura[0]) #Se manda el valor más reciente de temperatura
blynk.virtual_write(3, listaHumedad[0]) #Se manda el valor más reciente de humedad
class Ui_Planta(object):
def setupUi(self, Planta): #Código obtenido de QtDesigner
Planta.setObjectName("Planta")
Planta.resize(992, 649)
palette = QtGui.QPalette()
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 128, 191))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 106, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 56, 84))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(134, 197, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 220, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 128, 191))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 106, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 56, 84))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(134, 197, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 220, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Inactive, QtGui.QPalette.ToolTipText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.WindowText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Button, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 128, 191))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Light, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 106, 159))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Midlight, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Dark, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 56, 84))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Mid, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Text, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.BrightText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 42, 63))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ButtonText, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Base, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 85, 127))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Window, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.Shadow, brush)
brush = QtGui.QBrush(QtGui.QColor(196, 220, 255))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.AlternateBase, brush)
brush = QtGui.QBrush(QtGui.QColor(255, 255, 220))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipBase, brush)
brush = QtGui.QBrush(QtGui.QColor(0, 0, 0))
brush.setStyle(QtCore.Qt.SolidPattern)
palette.setBrush(QtGui.QPalette.Disabled, QtGui.QPalette.ToolTipText, brush)
Planta.setPalette(palette)
self.centralwidget = QtWidgets.QWidget(Planta)
self.centralwidget.setObjectName("centralwidget")
self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
self.horizontalLayoutWidget.setGeometry(QtCore.QRect(10, 10, 971, 111))
self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
self.horizontalLayout.setObjectName("horizontalLayout")
self.pushButton = QtWidgets.QPushButton(self.horizontalLayoutWidget)
self.pushButton.setStyleSheet("background-color: rgb(207, 229, 255);")
self.pushButton.setText("")
icon = QtGui.QIcon()
icon.addPixmap(QtGui.QPixmap("/home/pi/Documents/Arq de computadoras/Final/humedadSinFondo.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton.setIcon(icon)
self.pushButton.setIconSize(QtCore.QSize(100, 100))
self.pushButton.setObjectName("pushButton")
self.horizontalLayout.addWidget(self.pushButton)
self.pushButton_2 = QtWidgets.QPushButton(self.horizontalLayoutWidget)
self.pushButton_2.setStyleSheet("background-color: rgb(207, 229, 255);")
self.pushButton_2.setText("")
icon1 = QtGui.QIcon()
icon1.addPixmap(QtGui.QPixmap("/home/pi/Documents/Arq de computadoras/Final/temperatura.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_2.setIcon(icon1)
self.pushButton_2.setIconSize(QtCore.QSize(100, 100))
self.pushButton_2.setObjectName("pushButton_2")
self.horizontalLayout.addWidget(self.pushButton_2)
self.pushButton_3 = QtWidgets.QPushButton(self.horizontalLayoutWidget)
self.pushButton_3.setStyleSheet("background-color: rgb(207, 229, 255);")
self.pushButton_3.setText("")
icon2 = QtGui.QIcon()
icon2.addPixmap(QtGui.QPixmap("/home/pi/Documents/Arq de computadoras/Final/luminosidad.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off)
self.pushButton_3.setIcon(icon2)
self.pushButton_3.setIconSize(QtCore.QSize(100, 100))
self.pushButton_3.setObjectName("pushButton_3")
self.horizontalLayout.addWidget(self.pushButton_3)
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(20, 140, 941, 418))
self.tableWidget.setLayoutDirection(QtCore.Qt.LeftToRight)
self.tableWidget.setSizeAdjustPolicy(QtWidgets.QAbstractScrollArea.AdjustIgnored)
self.tableWidget.setAlternatingRowColors(True)
self.tableWidget.setShowGrid(True)
self.tableWidget.setGridStyle(QtCore.Qt.SolidLine)
self.tableWidget.setRowCount(10)
self.tableWidget.setColumnCount(2)
self.tableWidget.setObjectName("tableWidget")
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(0, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(1, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(1, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(2, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(2, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(3, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(3, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(4, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(4, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(5, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(5, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(6, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(6, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(7, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(7, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(8, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(8, 1, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(9, 0, item)
item = QtWidgets.QTableWidgetItem()
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(9, 1, item)
self.tableWidget.horizontalHeader().setDefaultSectionSize(450)
self.tableWidget.verticalHeader().setDefaultSectionSize(37)
Planta.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(Planta)
self.menubar.setGeometry(QtCore.QRect(0, 0, 992, 26))
self.menubar.setObjectName("menubar")
Planta.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(Planta)
self.statusbar.setObjectName("statusbar")
Planta.setStatusBar(self.statusbar)
self.retranslateUi(Planta)
QtCore.QMetaObject.connectSlotsByName(Planta)
self.tableWidget.setHorizontalHeaderLabels("Tiempo (s);Valor Humedad (%)".split(";")) #Se establece el valor inicial para el encabezado de la tabla
for i in range(10):
item = QtWidgets.QTableWidgetItem("Hace "+str((i+1))+" segundo")
item.setTextAlignment(QtCore.Qt.AlignCenter)
self.tableWidget.setItem(i,1,item)
def retranslateUi(self, Planta): #Se llenan los valores de tiempo de la tabla
_translate = QtCore.QCoreApplication.translate
Planta.setWindowTitle(_translate("Planta", "Sistema de riego App"))
__sortingEnabled = self.tableWidget.isSortingEnabled()
self.tableWidget.setSortingEnabled(False)
item = self.tableWidget.item(0, 0)
item.setText(_translate("Planta", "Hace 1 segundo"))
item = self.tableWidget.item(1, 0)
item.setText(_translate("Planta", "Hace 2 segundos"))
item = self.tableWidget.item(2, 0)
item.setText(_translate("Planta", "Hace 3 segundos"))
item = self.tableWidget.item(3, 0)
item.setText(_translate("Planta", "Hace 4 segundos"))
item = self.tableWidget.item(4, 0)
item.setText(_translate("Planta", "Hace 5 segundos"))
item = self.tableWidget.item(5, 0)
item.setText(_translate("Planta", "Hace 6 segundos"))
item = self.tableWidget.item(6, 0)
item.setText(_translate("Planta", "Hace 7 segundos"))
item = self.tableWidget.item(7, 0)
item.setText(_translate("Planta", "Hace 8 segundos"))
item = self.tableWidget.item(8, 0)
item.setText(_translate("Planta", "Hace 9 segundos"))
item = self.tableWidget.item(9, 0)
item.setText(_translate("Planta", "Hace 10 segundos"))
self.tableWidget.setSortingEnabled(__sortingEnabled)
self.pushButton.clicked.connect(self.onClicked1) #Se agregan listeners para cada botón
self.pushButton_2.clicked.connect(self.onClicked2)
self.pushButton_3.clicked.connect(self.onClicked3)
def onClicked1(self): #Si se hace click en humedad, se establece selección como 1 y se actualiza el encabezado
global seleccion
seleccion = 1
self.tableWidget.setHorizontalHeaderLabels("Tiempo (s);Valor Humedad (%)".split(";"))
def onClicked2(self): #Si se hace click en temperatura, se establece selección como 2 y se actualiza el encabezado
global seleccion
seleccion = 2
self.tableWidget.setHorizontalHeaderLabels("Tiempo (s);Valor Temperatura (°C)".split(";"))
def onClicked3(self): #Si se hace click en luminosidad, se establece selección como 3 y se actualiza el encabezado
global seleccion
seleccion = 3
self.tableWidget.setHorizontalHeaderLabels("Tiempo (s);Valor Luminosidad (%)".split(";"))
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Planta = QtWidgets.QMainWindow()
ui = Ui_Planta()
ui.setupUi(Planta)
Planta.show()
threadV = Thread(target = medirVariables, args=("Midiendo",1001, ui)) #Se inicializan los threads
threadB = Thread(target = actualizarBlynk, args= ("Blynkeando", 1002))
threadV.start() #Se ejecutan los threads
threadB.start()
sys.exit(app.exec_())