Raspberry Pi Pico W项目中DHT11传感器温湿度均返回-1求助
解决Raspberry Pi Pico W + DHT11返回-1的问题
核心代码问题修正
你的代码存在两个关键错误,这是导致返回-1的主要原因:
- 未调用传感器读取方法:DHT11需要主动触发读取操作才能更新温湿度值,直接访问属性会返回默认的-1。
- 引脚模式设置错误:DHT11采用单总线通信,引脚应设置为输入模式并启用上拉(内部或外部),而非输出+下拉。
修正后的代码:
from machine import Pin import utime as time from dht import DHT11 # 设置引脚为输入模式,启用内部上拉电阻 pin = Pin(13, Pin.IN, Pin.PULL_UP) sensor = DHT11(pin) while True: try: # 触发传感器读取数据 sensor.measure() temperature = sensor.temperature() humidity = sensor.humidity() print(f"Temperature: {temperature}°C, Humidity: {humidity}%") except OSError as e: print(f"读取失败: {e}") # DHT11最低读取间隔为2秒,避免频繁请求导致传感器无响应 time.sleep(2)
硬件排查步骤
如果修正代码后仍未解决,按以下步骤排查:
- 强制添加外部上拉电阻:在DHT11的DATA引脚和3.3V之间接一个10kΩ电阻,Pico内部上拉可能不足以稳定单总线信号。
- 确认接线正确性:
- VCC引脚接Pico的3.3V(绝对不能接5V,会损坏Pico引脚)
- GND引脚接Pico的GND
- DATA引脚接Pico的GPIO13
- 检查传感器方向:DHT11引脚顺序通常为「VCC(左)、DATA(中)、GND(右)」,对照传感器外壳标识确认,接反会导致无响应。
- 测试电源稳定性:如果Pico通过USB供电,尝试更换USB线或电源适配器,避免电压波动影响传感器工作;必要时给传感器单独提供3.3V电源(注意与Pico共地)。
- 验证引脚可用性:换一个普通GPIO引脚(如GPIO14)测试,排除引脚损坏的可能。
内容的提问来源于stack exchange,提问作者cashsugar123
相关产品推荐
相关产品推荐

