新手到Python,开始搞乱DHT11温度/湿度传感器,Raspberry Pi 3和Python 3。
我正在使用Python的标准Adafruit DHT11 Library。
从GPIO 27阅读
我可以在GUI窗口中显示温度。我所坚持的是如何让GUI以设定的速率更新/刷新温度,这样它就是一个" live"显示当前温度。现在,如果我关闭并重新打开脚本,我只能从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()
答案 0 :(得分:1)
在程序开始时创建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
一次。然后它将一直运行,直到您的程序退出。