使用DHT11传感器实时监测温度和湿度

在屏幕上显示环境数据

import time
import Adafruit_DHT
from unihiker import GUI  # 导入行空板GUI库

# 初始化
gui = GUI()  # 创建GUI对象
dht_sensor = Adafruit_DHT.DHT11  # 传感器类型
dht_pin = 10  # 传感器连接的GPIO引脚（行空板P10）

# 创建显示文本
temp_text = gui.draw_text(text="温度: -- °C", x=120, y=100, font_size=24, color="#FF0000")
humi_text = gui.draw_text(text="湿度: -- %", x=120, y=150, font_size=24, color="#0000FF")
title = gui.draw_text(text="温湿度监测", x=120, y=50, font_size=30, color="#333333")

# 添加装饰线
gui.draw_line(x1=50, y1=80, x2=190, y2=80, width=2, color="#CCCCCC")

def update_sensor_data():
   while True:
       # 读取温湿度数据
       humidity, temperature = Adafruit_DHT.read_retry(dht_sensor, dht_pin)
       
       if humidity is not None and temperature is not None:
           # 更新显示文本
           temp_text.config(text=f"温度: {temperature}°C")
           humi_text.config(text=f"湿度: {humidity}%")
           
           # 根据温度改变颜色提示
           if temperature > 30:
               temp_text.config(color="#FF0000")  # 高温红色
           elif temperature < 10:
               temp_text.config(color="#0000FF")  # 低温蓝色
           else:
               temp_text.config(color="#00AA00")  # 舒适绿色
       else:
           temp_text.config(text="温度: 读取失败")
           humi_text.config(text="湿度: 读取失败")
       
       time.sleep(2)  # 每2秒更新一次

# 启动程序
try:
   update_sensor_data()
except KeyboardInterrupt:
   gui.clear()  # 清空屏幕
   print("程序已停止")