09 Temmuz 2020, 05:29:01

Haberler:

Picproje Facebook Sayfası:  https://bit.ly/2pUitll


pyqtdesigner değer güncelleme

Başlatan pax, 20 Nisan 2020, 18:57:21

pax

Arduino ve Raspberry Pi'yi usb ile haberleştiriyorum. Arduino ile ölçtüğüm sensor bilgilerini raspberry pi de pyqt5 ile alıp okuyabiliyorum.  Qtdesigner ile bir ara yüz tasarlamaya çalışıyorum. Arayüz programında sensor değerlerini okuyup yazdırıyorum.
   Problemim değerler güncellenmiyor. İşin bu kısmını başaramadım. bu konuda yardımcı olursanız sevinirim.
from PyQt5 import QtCoreQtGuiQtWidgets
import serial
from time import sleep
from PyQt5
.QtCore import QTimer
ser 
serial.Serial ("/dev/ttyUSB0"38400,timeout=3)
gelen_bilgi ser.read()

class 
Ui_MainWindow(object):
    
def setupUi(selfMainWindow):
        
MainWindow.setObjectName("MainWindow")
        
MainWindow.resize(295302)
        
sizePolicy QtWidgets.QSizePolicy(QtWidgets.QSizePolicy.FixedQtWidgets.QSizePolicy.Fixed)
        
sizePolicy.setHorizontalStretch(0)
        
sizePolicy.setVerticalStretch(245)
        
sizePolicy.setHeightForWidth(MainWindow.sizePolicy().hasHeightForWidth())
        
MainWindow.setSizePolicy(sizePolicy)
        
self.centralwidget QtWidgets.QWidget(MainWindow)
        
self.centralwidget.setObjectName("centralwidget")
        
self.label_sensor1 QtWidgets.QLabel(self.centralwidget)
        
self.label_sensor1.setGeometry(QtCore.QRect(20408136))
        
self.label_sensor1.setObjectName("label_sensor1")
        
self.lcdNumber_sensor_1_deger QtWidgets.QLCDNumber(self.centralwidget)
        
self.lcdNumber_sensor_1_deger.setGeometry(QtCore.QRect(1202015878))
        
self.lcdNumber_sensor_1_deger.setObjectName("lcdNumber_sensor_1_deger")
        
self.label_sensor1_2 QtWidgets.QLabel(self.centralwidget)
        
self.label_sensor1_2.setGeometry(QtCore.QRect(101609136))
        
self.label_sensor1_2.setObjectName("label_sensor1_2")
        
self.lcdNumber_sensor_2_deger QtWidgets.QLCDNumber(self.centralwidget)
        
self.lcdNumber_sensor_2_deger.setGeometry(QtCore.QRect(12014015878))
        
self.lcdNumber_sensor_2_deger.setObjectName("lcdNumber_sensor_2_deger")
        
MainWindow.setCentralWidget(self.centralwidget)
        
self.menubar QtWidgets.QMenuBar(MainWindow)
        
self.menubar.setGeometry(QtCore.QRect(0029534))
        
self.menubar.setObjectName("menubar")
        
MainWindow.setMenuBar(self.menubar)
        
self.statusbar QtWidgets.QStatusBar(MainWindow)
        
self.statusbar.setObjectName("statusbar")
        
MainWindow.setStatusBar(self.statusbar)

        
self.retranslateUi(MainWindow)
        
QtCore.QMetaObject.connectSlotsByName(MainWindow)
        
        
"""  
        self.qTimer = QTimer()
    
        self.qTimer.setInterval(1000) # 1000 ms = 1 s
   
        self.qTimer.timeout.connect(self.sensor1_oku)
      
        self.qTimer.start()
        """
        
self.sensor1_oku(MainWindow)
        
self.sensor2_oku(MainWindow)
        
    
def sensor1_oku(self,MainWindow) :
       
        
ser.write(b'g')
        
sleep(0.03)
        
gelen_bilgi ser.read()
        
bilgi_say ser.inWaiting()
        
gelen_bilgi_ekser.read(bilgi_say)
        
gelen_bilgi += gelen_bilgi_ek
        gelen
=int(gelen_bilgi)
        
sleep(0.03)
        
self.lcdNumber_sensor_1_deger.display(gelen)
        
    
def sensor2_oku(self,MainWindow) :
        
        
ser.write(b'o')
        
sleep(0.03)
        
gelen_bilgi ser.read()
        
bilgi_say ser.inWaiting()
        
gelen_bilgi_ekser.read(bilgi_say)
        
gelen_bilgi += gelen_bilgi_ek
        gelen
=int(gelen_bilgi)
        
sleep(0.03)
        
self.lcdNumber_sensor_2_deger.display(gelen)
        
    
def retranslateUi(selfMainWindow):
        
_translate QtCore.QCoreApplication.translate
        MainWindow
.setWindowTitle(_translate("MainWindow""sensor ölçüm"))
        
self.label_sensor1.setText(_translate("MainWindow""sensor 1"))
        
self.label_sensor1_2.setText(_translate("MainWindow""sensor 2"))


if 
__name__ == "__main__":
    
import sys
    app 
QtWidgets.QApplication(sys.argv)
    
MainWindow QtWidgets.QMainWindow()
    
ui Ui_MainWindow()
    
ui.setupUi(MainWindow)
    
MainWindow.show()
    
sys.exit(app.exec_())


robikod

Timer kullanıyor musunuz ?
Timer kullandığınızda belirli sürelerle yazdırdığınız değerleri, gelen değerlere güncellemek için bir kontrol yapmanız gerekecek.Örneğin 30 sn'de bir Qlabel içerisindeki veriyi güncelleyeceksiniz. Her 30 sn de bir içerisindeki değeri güncelleyecek bir kod yazmanız gerekiyor kodlarınızda böyle bir kısım göremedim.