You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Raspberry Pi Pico W项目中DHT11传感器温湿度均返回-1求助

解决Raspberry Pi Pico W + DHT11返回-1的问题

核心代码问题修正

你的代码存在两个关键错误,这是导致返回-1的主要原因:

  1. 未调用传感器读取方法:DHT11需要主动触发读取操作才能更新温湿度值,直接访问属性会返回默认的-1。
  2. 引脚模式设置错误: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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 12:42:47