在 GUI 中显示 DHT11 的温度 - 自动刷新?

2024-05-27

Python 新手,开始接触 DHT11 温度/湿度传感器、Raspberry Pi 3 和 Python 3。

我正在使用标准Adafruit DHT11 库 https://github.com/adafruit/Adafruit_Python_DHT对于Python。

从 GPIO 27 读取

我可以在 GUI 窗口中很好地显示温度。我所困扰的是如何让 GUI 以设定的速率更新/刷新温度,以便它是当前温度的“实时”显示。现在,如果我关闭并重新打开脚本,我只能从 GUI 中获取更改。请参阅下面的我的代码:

    from tkinter import *
    import tkinter.font
    import Adafruit_DHT

    temp = 0

    win = Tk()
    win.title("Temperature")
    win.geometry("100x100")

    def READ():
        global temp
        humidity, temperature = Adafruit_DHT.read_retry(11, 27)
        temp = temperature * 9/5.0 + 32
        Label (win, text=str(temp), fg="black", bg="white", font="36").grid(row=0, column=0)

    if (temp >= 0):
        READ()

    mainloop()

创建Label在程序开始时一次,并保存参考:

the_label = Label (win, text="", fg="black", bg="white", font="36")
the_label.grid(row=0, column=0)

接下来,创建一个获取值并更新标签的函数:

def READ():
    global temp
    humidity, temperature = Adafruit_DHT.read_retry(11, 27)
    temp = temperature * 9/5.0 + 32
    the_label.configure(text=str(temp))

接下来,创建一个调用该函数的新函数,然后安排自己在延迟后再次调用:

def read_every_second():
    READ()
    root.after(1000, read_every_second)

最后,打电话read_every_second在程序开始时一次。然后它将运行直到您的程序退出。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 GUI 中显示 DHT11 的温度 - 自动刷新? 的相关文章

随机推荐