树莓派资料
显示屏资料
系统下载
树莓派Pico
首页 动态 发帖 版块 我的
 退出
游客  
等级:
金币:
经验值:

树莓派Pico使用DHT11环境温湿度传感器读取数据Python使用资料

  7528 
 0
 4
RASPI   RASPI 

一:DHT11温湿度传感器介绍


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 模块的延时函数。如果时序控制不当,会导致读取失败或数据错误。

传感器参数

Image


🛒传感器扩展板产品链接
🛒树莓派Pico核心板链接
DHT11传感器原理图DHT11资料

二:硬件连接

DHT11温湿度传感器树莓派开发板
VCC3.3V
GNDGND
DATGP18

Image

三:Python编程代码

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



Image



四:进阶升级功能

下面我们在前面的传感器代码上进行升级功能,加个屏把温湿度数据通过显示屏给展示出来。 做成可视化的产品


树莓派Pico0.96寸OLED显示屏
3.3vVCC
GNDGND
GP17SDA
GP16SCL

Image

五:进阶Python源代码

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


ImageImage




技术支持(对本页存在疑难问题可联系我们工程师)

联系人:张工
电话:0755-32914578
QQ:2251000002
微信:扫下方二维码添加,请备注来意

提供:人工智能,IOT物联网,工控数显,嵌入式软硬件开发,科创教育,产品定制,生产,方案解决...



标签:
作者签名: www.raspi.cc   楼主  2025-08-26 23:14:48
回复列表
Powered by RASPI _VERSION
© 2017-2025 树莓派极客版权
您的IP: 18.97.9.171 , 2025-11-12 18:56:20
Powered by RASPI _VERSION
© 2017-2025 树莓派极客版权