elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


  Mostrar Temas
Páginas: [1]
1  Programación / Scripting / [Python] leer puerto serie desde PyQt5 y arduino y mostrase interfaz grafica en: 30 Octubre 2016, 02:01 am
Buenos dias, estoy realizando pruebas con un sensor de temperatura en arduino, estoy utilizando la libreria PySerial para mostrar los datos en python. Pero estos datos son muy planos. Y quiero mostrarlos en una interfas grafica de PyQt5, pero no lo he logrado.En el campo ldt_sensor debo mostrar el dato leído por el sensor. Si alguien me pudiera dicir que estoy haciendo mal le agradeceria. Este es el codigo en PyQt5. Gracias.

Código
  1. import sys
  2. import serial
  3. import time
  4. import pylab
  5. from PyQt5.QtWidgets import (QApplication, QWidget,QToolTip,
  6.                             QPushButton, QMessageBox, QLabel, QLineEdit)
  7. from PyQt5.QtGui import QIcon, QFont
  8. from PyQt5.QtCore import QCoreApplication
  9. serie = serial.Serial('COM3', 9600, timeout = 1)
  10. class Ejemplo(QWidget):
  11.  
  12.    def __init__(self):
  13.        super().__init__()
  14.  
  15.        self.initUI()
  16.  
  17.  
  18.    def initUI(self):
  19.  
  20.        QToolTip.setFont(QFont('Arial', 10))
  21.  
  22.        self.setToolTip('Es un mensaje de prueba <b>QWidget</b> widget')
  23.        # En este ejemplo, creamos un botón de salida. Al hacer clic en el botón, la aplicación termina.
  24.        qbtn = QPushButton('Salir', self)
  25.        qbtn.clicked.connect(QCoreApplication.instance().quit)
  26.        qbtn.resize(qbtn.sizeHint())
  27.        qbtn.move(50, 50)
  28.        #Colocamos un mensaje en el boton
  29.        btn = QPushButton('Boton', self)
  30.        btn.setToolTip('Boton de prueba <b>QPushButton</b> widget')
  31.        btn.resize(btn.sizeHint())
  32.        btn.move(50, 80)
  33.  
  34.        #Creamos un Label para escribir testo
  35.        lbl = QLabel('Prueba label 1', self)
  36.        lbl.resize(lbl.sizeHint())
  37.        lbl.move(45, 120)            
  38.        #creamos un cajon para ingresar datos
  39.        ldt = QLineEdit('Prueba Texto 1', self)
  40.        ldt.resize(ldt.sizeHint())
  41.        ldt.move(120, 120)
  42.        #Segundo label
  43.        lbl_sensor = QLabel('Prueba Sensor', self)
  44.        lbl_sensor.resize(lbl_sensor.sizeHint())
  45.        lbl_sensor.move(45, 170)
  46.        #segundo cajon
  47.    def sensor(): # Funcion para mostrar los datos en la interfas grafica
  48.  
  49.        while True:
  50.  
  51.            dato = serie.readline()# comunicacion serial.
  52.            ldt_sensor = QLineEdit(self) # caja donde se muestra el dato enviado por el sensor.
  53.            ldt_sensor.resize(ldt_sensor.sizeHint())
  54.            ldt_sensor.move(120, 165)
  55.            ldt_sensor = dato
  56.  
  57.  
  58.    #definimos la ventana medidas, Titulo de la ventana, colocamos un icono.    
  59.        self.setGeometry(300, 300, 300, 220)# X y Y situan la ventana metodo setGeometry
  60.        self.setWindowTitle("Mostrar icono en la ventana") #muestra el titulo en la ventana
  61.        self.setWindowIcon(QIcon('F:\PyQt\ventana_icono\pyserial.png'))#muestra un icono en la parte izquierda de la ventana    
  62.        self.show()
  63.    #definimos una clase para crear un mensaje de confirmacion si queremos salir
  64.    def closeEvent(self, event):
  65.        reply = QMessageBox.question(self, 'Mensaje',
  66.            "Deseas Salir de la aplicacion?", QMessageBox.Yes |
  67.            QMessageBox.No, QMessageBox.No)
  68.  
  69.        if reply == QMessageBox.Yes:
  70.            event.accept()
  71.        else:
  72.            event.ignore()        
  73.  
  74. if __name__=='__main__':
  75.  
  76.    app = QApplication(sys.argv)
  77.    ex = Ejemplo()
  78.    sys.exit(app.exec_())
   
MOD: etiqueta GeSHi.

Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines