DHT11 是一款低成本温湿度一体化传感器,包含一个电阻式湿度检测元件和一个 NTC 温度测量元件,通过内部 8 位单片机将采集到的数据转换为数字信号输出。DHT11 采用自定义单总线协议。
传感器通信过程分为三个阶段:
阶段 1:主机发送起始信号树莓派 Pico(主机)将 DATA 线拉低至少 18ms然后释放总线,等待 20-40us
阶段 2:传感器响应信号DHT11 检测到起始信号后,会拉低总线 80us接着拉高总线 80us,表明传感器已准备好发送数据
阶段 3:数据传输DHT11 会连续发送 40 位数据(高位在前)
数据格式:8 位湿度整数 + 8 位湿度小数 + 8 位温度整数 + 8 位温度小数 + 8 位校验和校验和为前 4 个字节的和(DHT11 实际只使用整数部分,小数部分固定为 0)
数据读取原理:
位数据判断:传感器发送 0 时:拉低总线 50us,拉高总线 26-28us,传感器发送 1 时:拉低总线 50us,拉高总线 70us,树莓派 Pico 通过测量高电平持续时间来判断数据位是 0 还是 1
数据处理:将 40 位数据拆分为 5 个字节验证校验和是否正确(前 4 字节之和等于校验和字节)提取温度和湿度的整数部分(DHT11 精度为 ±2℃和 ±5% RH)
树莓派 Pico 实现要点:
使用 GPIO 的输入输出模式切换来发送和接收信号
通过精确的延时函数(如 utime.sleep_us ())控制信号时序
采用中断或轮询方式检测总线电平变化
进行校验和验证,确保数据有效性
由于 DHT11 的通信时序要求严格(微秒级),在代码实现时需要精确控制延时,这也是为什么在程序中会频繁使用 utime 模块的延时函数。如果时序控制不当,会导致读取失败或数据错误。

| 🛒传感器扩展板产品链接 | 🛒树莓派Pico核心板链接 |
| DHT11传感器原理图 | DHT11资料 |
| DHT11温湿度传感器 | 树莓派开发板 |
| VCC | 3.3V |
| GND | GND |
| DAT | GP18 |

DHT11温湿度传感器Python源代码(下载这个源代码上传至树莓派pico文件内,直接运行查看数据(如下图))

下面我们在前面的传感器代码上进行升级功能,加个屏把温湿度数据通过显示屏给展示出来。 做成可视化的产品
| 树莓派Pico | 0.96寸OLED显示屏 |
| 3.3v | VCC |
| GND | GND |
| GP17 | SDA |
| GP16 | SCL |

DHT11+0.96寸显示屏Python源代码(下载这个源代码上传至树莓派pico文件内,直接运行查看数据(如下图))


联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意
提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...