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

使用W5100S-EVB-Pico读取DHT11时出现OSError: [Errno 110] ETIMEDOUT求助

问题描述

使用Elegoo套件的3引脚DHT11传感器,已按数据手册正确接线,但在搭载MicroPython的W5100S-EVB-Pico上运行代码时,始终出现OSError: [Errno 110] ETIMEDOUT错误。尝试过更换代码、重新接线、观看教程视频,问题仍未解决。

使用的示例代码如下:

代码1

from machine import Pin
import utime as time
from dht import DHT11

dataPin=16

myPin= Pin(dataPin,Pin.OUT,Pin.PULL_DOWN)
sensor=DHT11(myPin)

while True:
    sensor.measure()
    tempC=sensor.temperature()
    hum=sensor.humidity()
    print(tempC,hum)
    time.sleep(1)

代码2

import machine
import dht
import time

sensor = dht.DHT11(machine.Pin(16))

while True:
    try:
        time.sleep(2)
        sensor.measure()
        temp = sensor.temperature() # eg. 23 (°C)
        hum = sensor.humidity()    # eg. 41 (% RH)
        print('Temperature: %3.1f C' %temp)
        print('Humidity: %3.1f %%' %hum)
    except OSError as e:
        print('Failed to read sensor.')

排查与解决建议

  • 修正引脚上拉下拉设置:DHT11需要上拉支持,代码1中设置Pin.PULL_DOWN是错误的,应改为Pin.PULL_UP;若传感器自带上拉电阻,也可直接用Pin.IN模式初始化引脚。
  • 调整引脚初始化逻辑:DHT11引脚为双向传输,无需手动设置为Pin.OUT,MicroPython的DHT库会自动切换引脚模式,建议直接用Pin(16, Pin.IN, Pin.PULL_UP)初始化后传入传感器对象。
  • 提升供电稳定性:DHT11对电源波动敏感,在传感器VCC与GND间并联100nF电容,同时确保VCC接的是Pico的3.3V引脚,避免电压不足或干扰。
  • 延长采样间隔:虽然代码已满足1秒以上的采样要求,可尝试将间隔延长至3秒,确保传感器完成数据准备。
  • 再次核对硬件接线:确认3引脚DHT11的引脚顺序(通常为VCC、DATA、GND),检查GPIO16、3.3V、GND接线是否牢固,无虚焊或接反情况。
  • 验证固件与库兼容性:重新刷入适配W5100S-EVB-Pico的最新MicroPython官方固件,若自带dht库仍有问题,可尝试使用手动实现时序的第三方DHT驱动代码。

内容的提问来源于stack exchange,提问作者Franf

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:22:13