公告
  
欢迎回来!目前功能升级完毕,
本站限时免费查看资料,请尽快注册账号,后续将限制游客访问~

朕已阅

首页 动态 版块 商城 我的
 退出
游客  
等级:
金币:
经验值:

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

  8067 
 0
 6
RASPI   ydxhuo.com 

一: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资料

二:硬件连接

提醒:请按下图的引脚标识接线,务必不能接错。如果接错线通电后会导致设备烧毁!

Image


接好线后的实图如下:

Image

三:Python测试代码

dht11 下载这个dht11的源代码上传至树莓派pico文件内,直接运行查看数据(如下图)


如果你还没有搭建好树莓派Python编程环境可参考这个帖子→:如何搭建Python编程环境



Image


可以对着传感器吹口热气或手捂着观察温湿度数据是否发生变化

在程序中我们加入了环境状态判断

当温度低于18.5℃时状态为:“温度偏低”,

当温度在18.5℃~27.5℃之间状态为:“舒适温度”

当温度高于29℃时状态为:“舒适温度”



四:升级功能

上面的程序只是测试传感器功能是否正常,我们要再次升级功能让其脱离电脑也能使用,那么我们加个显示屏和报警器。实现将温度展现在显示屏上并且温度高了自动报警。请严格按下图的引脚标识进行连接,务必不能接错,接错会损坏设备!

Image

五:Python程序(升级功能)

DHT11传感器+显示屏源代码下载这个源代码Zip压缩包,在解压出来将里面所有文件全部上传至树莓派pico文件内,直接运行查看数据(如下图)


如果你还没有搭建好树莓派Python编程环境可参考这个帖子→:如何搭建Python编程环境


Image




程序全部上传后,运行直接观察结果。后续只需要给主板单独供电即可正常显示! 无需再次连接电脑。(参考下面演示视频)


 

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

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

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



标签:
作者签名:    楼主  2025-08-26 23:14:48
回复列表
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
您的IP: 216.73.216.47 , 2026-01-27 19:30:08
Powered by YDXHUO _VERSION
© 2017-2026 跃动芯火版权
(6) 分享
分享

请保存二维码或复制链接进行分享

取消
已有0次打赏