覆盆子中的传感器读数

山姆

我有以下代码。该代码仅显示运行该代码时的传感器读数,不会自动更新。任何人都可以帮助使传感器实时读取吗?

from PyQt4 import QtGui
from PyQt4 import QtCore
import sys
import Adafruit_DHT
sensor_args = { '11': Adafruit_DHT.DHT11,
        '22': Adafruit_DHT.DHT22,
        '2302': Adafruit_DHT.AM2302 }

humidity, temperature = Adafruit_DHT.read_retry(11, 4)

def main():
    app    = QtGui.QApplication(sys.argv)
    tabs   = QtGui.QTabWidget()
    tab1   = QtGui.QWidget()   
    tab2   = QtGui.QWidget()

    tabs.setWindowTitle('Weather')
    tabs.resize(250, 150)

    vBoxlayout1 = QtGui.QVBoxLayout()
    vBoxlayout2 = QtGui.QVBoxLayout()
    vBoxlayout1.addWidget(QtGui.QLabel('Temp={:0.1f}'.format(temperature) ))
    vBoxlayout2.addWidget(QtGui.QLabel('Humidity={:0.1f}%'.format(humidity) ))
    vBoxlayout1.setAlignment(QtCore.Qt.AlignCenter)
    vBoxlayout2.setAlignment(QtCore.Qt.AlignCenter)

    tab1.setLayout(vBoxlayout1)
    tab2.setLayout(vBoxlayout2)  

    tabs.addTab(tab1,"Temp")
    tabs.addTab(tab2,"Humidity")

    print 'Temp={0:0.1f}*  Humidity={1:0.1f}%'.format(temperature, humidity)

    tabs.show()

    sys.exit(app.exec_())

if ___name___ == '___main___':
    main()
乙二醛

您的代码只读取一次传感器,因此它永远不会改变,请执行一个线程,以使读取不会中断主线程。

from PyQt4 import QtGui
from PyQt4 import QtCore
import sys

import Adafruit_DHT


class Thread(QtCore.QThread):
    data_sensors = QtCore.pyqtSignal(tuple)

    def run(self):
        while True:
            humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, 4)
            self.data_sensors.emit((humidity, temperature))


class TabWidget(QtGui.QTabWidget):
    def __init__(self, parent=None):
        super(TabWidget, self).__init__(parent=parent)
        tab1 = QtGui.QWidget()
        tab2 = QtGui.QWidget()

        self.setWindowTitle('Weather')
        self.resize(250, 150)

        vBoxlayout1 = QtGui.QVBoxLayout()
        vBoxlayout2 = QtGui.QVBoxLayout()
        self.lTemp = QtGui.QLabel('Temp={:0.1f}'.format(0))
        vBoxlayout1.addWidget(self.lTemp)
        self.lHumidity = QtGui.QLabel('Humidity={:0.1f}%'.format(0))
        vBoxlayout2.addWidget(self.lHumidity)

        vBoxlayout1.setAlignment(QtCore.Qt.AlignCenter)
        vBoxlayout2.setAlignment(QtCore.Qt.AlignCenter)

        tab1.setLayout(vBoxlayout1)
        tab2.setLayout(vBoxlayout2)

        self.addTab(tab1, "Temp")
        self.addTab(tab2, "Humidity")

        thread = Thread(self)
        thread.data_sensors.connect(self.update_Sensors)
        thread.start()

    def update_Sensors(self, data):
        humidity, temperature = data
        self.lTemp.setText('Temp={:0.1f}'.format(temperature))
        self.lHumidity.setText('Humidity={:0.1f}%'.format(humidity))


def main():
    app = QtGui.QApplication(sys.argv)
    tabs = TabWidget()
    tabs.show()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

的NodeJS覆盆子串口错误的数据

来自分类Dev

的NodeJS覆盆子串口错误的数据

来自分类Dev

覆盆子和arduino的电源

来自分类Dev

优化SQL查询的传感器读数

来自分类Dev

尝试使用覆盆子在i2c中读取倍数地址

来自分类Dev

在覆盆子上每分钟crontab

来自分类Dev

Flutter蓝牙扫描-未检测到覆盆子

来自分类Dev

在覆盆子上每分钟crontab

来自分类Dev

覆盆子pi蓝牙和乐高头脑风暴

来自分类Dev

python人脸检测覆盆子pi与picamera

来自分类Dev

覆盆子和互联网之间的路由问题

来自分类Dev

覆盆子pi 3上的python脚本被阻止

来自分类Dev

覆盆子:没有互联网,但 SSH 工作

来自分类Dev

在 Kivy 标签中显示来自 python 程序的心跳传感器读数

来自分类Dev

实时传感器读数存储在数据文件中

来自分类Dev

具有hddtemp的SSD温度传感器读数

来自分类Dev

CPU温度传感器读数错误?

来自分类Dev

2 个传感器读数融合(偏航、俯仰)

来自分类Dev

如何获取最新硬件的传感器读数?

来自分类Dev

具有hddtemp的SSD温度传感器读数

来自分类Dev

如何使用像 A/D 转换器这样的 arduino 将 3 个模拟信号从 3 个电位计转换为覆盆子?

来自分类Dev

使用无头覆盆子pi的simplecv运行python脚本

来自分类Dev

上的覆盆子裨问题解码utf-8的

来自分类Dev

在子网上ping覆盆子pis时,为什么会丢包?

来自分类Dev

使用无头覆盆子pi的simplecv运行python脚本

来自分类Dev

如何设置一个覆盆子的GPIO来接收浮点数

来自分类Dev

Moto 360中的传感器列表

来自分类Dev

Webots与Pycharm中的马达/传感器

来自分类Dev

消除传感器测量中的峰值