import dht
import machine
import time

# 全局配置
DHT_PIN = 14  # DHT22数据引脚连接到GPIO14

def read_sensor_data():
    """读取DHT22传感器数据"""
    sensor = dht.DHT22(machine.Pin(DHT_PIN))
    try:
        sensor.measure()
        temperature = sensor.temperature()
        humidity = sensor.humidity()
        return temperature, humidity
    except OSError as e:
        print(f"传感器读取错误: {e}")
        return None, None

def display_data(temperature, humidity):
    """格式化并显示温湿度数据"""
    if temperature is not None and humidity is not None:
        print(f"温度: {temperature}°C | 湿度: {humidity}%")
    else:
        print("无法获取传感器数据")

def main():
    """主函数,程序入口点"""
    print("DHT22温湿度监控系统启动...")
    try:
        while True:
            # 读取传感器数据
            temperature, humidity = read_sensor_data()
            # 显示数据
            display_data(temperature, humidity)
            # 等待2秒(DHT22最小采样间隔)
            time.sleep(2)
    except KeyboardInterrupt:
        print("\n程序已停止")
    except Exception as e:
        print(f"发生错误: {e}")

# 程序入口
if __name__ == "__main__":
    main()