我将如何不断更新脚本/程序中的变量?

时间:2019-01-31 15:19:50

标签: python-3.x loops variables temperature

我正在尝试制造各种恒温器。为此,我将使用带有DHT22温度传感器的Pi3和Python3。

我需要的是对温度进行轮询并自动更新相应的变量。

尝试使用任何类型的While True:语句都会导致我正在测试的gui,而不会打开。

我迷路了(是的,此代码已被其他人破解了。大声笑)

#! python3
import time
import RPi.GPIO as GPIO
import string
import tkinter
import tkinter.ttk
import Adafruit_DHT
from tkinter import messagebox
from tkinter import *

root = Tk()
root.title('PiTEST')
root.configure(background='black')

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

sensor = Adafruit_DHT.DHT22
pin = 4

def PRINTTEST():
    print(temperature, humidity)

TESTTEXT = Label(root,text="TESTING",fg="white",bg="black",font='Consolas 20 bold')
TESTTEXT.grid(row=1,column=1,sticky="W,S,E")

B1 = tkinter.Button(root,bd=5,text="TEST",bg="gray",fg="white",command=PRINTTEST,height=4,width=20)
B1.grid(row=2,column=1,sticky="N,S,E,W",padx=8,pady=8)

while True:
    humidity, temperature = Adafruit_DHT.read_retry(sensor, pin)
    temperature = temperature * 9/5.0 + 32

root.mainloop()

GPIO.cleanup()

1 个答案:

答案 0 :(得分:1)

这是一个没有GPIO内容的代码示例:

#! python3
import time
import string
import tkinter
import random
from tkinter import messagebox
from tkinter import *

root = Tk()
root.title('PiTEST')
root.configure(background='black')

def PRINTTEST():
    temperature = random.randint(0,100)
    humidity = random.randint(0,100)
    print(temperature, humidity)
    root.after(1000, PRINTTEST)

TESTTEXT = Label(root,text="TESTING",fg="white",bg="black",font='Consolas 20 bold')
TESTTEXT.grid(row=1,column=1,sticky="W,S,E")

B1 = tkinter.Button(root,bd=5,text="TEST",bg="gray",fg="white",command=PRINTTEST,height=4,width=20)
B1.grid(row=2,column=1,sticky="N,S,E,W",padx=8,pady=8)


root.mainloop()

这将每秒在终端中打印2个随机整数。