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()