人若无名 便可潜心练剑.|

hazy1k

园龄:7个月粉丝:14关注:0

2024-08-23 09:05阅读: 80评论: 0推荐: 0

第18章 DHT11湿温度实验

第十八章 DHT11湿温度实验

1. 导入

温湿度也是我们日常常见的指标, 我们使用的是 DHT11 数字温湿度传感器。这是一款含有已校准数字信号输出的温湿度复合传感器。

DHT11 具有小体积、 极低的功耗, 与 DS18B20 一样是单总线接口, 为 4 针单排引脚封装, 连接方便。 如下:

屏幕截图 2024 08 11 100827

这种封装的可直接插入我们开发板 DHT11 传感器接口上使用, 当然也可使用DHT11 模块, 通过导线连接 IO 口。 DHT11 模块如下:

屏幕截图 2024 08 11 100910

+: 电源正极(3-5.5V) , OUT: 数据口, -: 电源负极。湿度测量范围: 20~90%RH, 精度±5%RH;

温度测量范围: -20~+60° C, 精度±2° C;

DHT11 性价比较高, 很适合学习使用, 但精度和响应速度有点低, 需要更高要求应用的用户可以使用 DHT22 或者其它更高级的传感器。

2. 硬件设计

本实验实验到硬件资源如下:

  • DHT11湿温度传感器

  • ESP32 GPIO

DHT11模块电路如下:

屏幕截图 2024 08 11 101330

由图可知, DHT11 和 DS18B20 可共用一个接口, J2 端子的 DS18B20 脚为DS18B20 和 DHT11 传感器控制口, 可将该引脚与 ESP32 的 GPIO 连接。 如果使用DHT11 模块的可直接将模块通信口与 ESP32 连接, 本章实验使用 DHT11 模块连接。

本章实验使用 ESP32 的 IO27 引脚, 接线如下所示:

屏幕截图 2024 08 11 101418

3. 软件设计

3.1 MicroPython函数使用

ESP32 的 MicroPython 固件集成了 dht11 模块, 因此我们可以直接使用。

说明如下:

屏幕截图 2024 08 11 101748

使用方法如下:

屏幕截图 2024 08 11 101811

3.2 代码分析

#导入Pin模块
from machine import Pin
import time
import dht

#定义DHT11控制对象
dht11 = dht.DHT11(Pin(27))

#程序入口
if __name__=="__main__":
    time.sleep(1)  #首次启动间隔1S让传感器稳定
    while True:
        dht11.measure()  #调用DHT类库中测量数据的函数
        temp = dht11.temperature()
        humi = dht11.humidity()
        if temp == None:
            print("DHT11传感器检测失败!")
        else:
            print("temp=%d °C  humi=%d %%" %(temp,humi))
        time.sleep(2)  #如果延时时间过短,DHT11温湿度传感器不工作

2024.8.22 第一次修订,后期不再维护

本文作者:hazy1k

本文链接:https://www.cnblogs.com/hazy1k/p/18372979

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   hazy1k  阅读(80)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起