0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

DHT温湿度传感器的介绍

454398 来源:网络整理 作者:网络整理 2019-11-27 11:43 次阅读

概述

教程介绍了低成本的DHT温湿度传感器。这些传感器非常基础且速度慢,但是对于想要进行一些基本数据记录的业余爱好者来说非常有用。 DHT传感器由两部分组成:电容式湿度传感器和热敏电阻。内部还有一个非常基本的芯片,可以进行一些模拟到数字的转换,并发出带有温度和湿度的数字信号。使用任何微控制器都可以轻松读取数字信号。

DHT温湿度传感器的介绍

DHT11与DHT22

我们有两个版本的DHT传感器,它们看起来有点相似,并且具有相同的引脚排列,但是具有不同的特性。规格如下:

DHT11

超低成本

3至5V电源和I/O

转换过程中使用的最大电流为2.5mA(在请求数据时)

适用于20-80%的湿度读数,精度为5%

适用于0-50°C温度读数±2°C精度

采样率不超过1 Hz(每秒一次)

机身尺寸15.5mm x 12mm x 5.5mm

4间距为0.1“的引脚

DHT22

低成本

3至5V电源和I/O

转换期间最大电流消耗为2.5mA(在请求数据时)

适用于0-100%的湿度读数,精度为2-5%

适用于-40至80°C温度读数,精度为±0.5°C

采样率不超过0.5 Hz(每2秒一次)

机身尺寸15.1mm x 25mm x 7.7mm

4个间距为0.1“的引脚

如您所见,DHT22在稍大的范围内精度更高,性能更好。两者都使用单个数字引脚,因此它们“呆滞”,因为您每秒钟查询一次或两次都不会超过一次。

您可以从adafruit商店拿起DHT11和DHT22!

连接到DHTxx传感器

幸运的是,连接这些传感器很简单,它们具有相当长的0.1“间距引脚,因此您可以将它们插入任何面包板,穿孔板或类似。

AM2302(有线DHT22)温湿度传感器

产品ID:393

AM2302是DHT22的有线版本,采用大型塑料主体,是一种基本的低成本数字温度和湿度传感器。。..

$ 15.00

库存

添加到购物车

连接DHT传感器非常容易,它们有四个引脚

VCC -红色导线连接到3.3-5V电源,有时3.3V电源是不够的在这种情况下,请尝试使用5V电源。

数据输出-白色或黄色电线

未连接

接地-黑线

只需忽略引脚3,它就不会使用。您将需要在VCC和数据引脚之间放置一个10 Kohm电阻,以充当数据线上的中等强度上拉电阻。 Arduino内置了可以打开的上拉电阻,但它们非常弱,大约20-50K

DHT22和AM2302通常已经在内部装有一个上拉电阻,但是添加另一个上拉电阻也没有问题!

此图显示了我们如何连接测试草图。将数据连接到引脚2,您可以稍后将其更改为任何引脚。

如果您有AM2302

使用DHTxx传感器

要测试草图,我们将使用Arduino。您可以使用任何可以执行微秒计时的micrcontroller,但由于要对其进行编码有些棘手,因此我们建议验证Arduino的接线和传感器是否正常工作。

您应该使用 Arduino IDE 软件目前正在运行。接下来,需要安装我们的DHT库,可以通过Arduino库管理器完成:

素描→包含库→管理库…

输入“ dht ”,然后在列表中浏览“ Adafruit 的 DHT传感器库”。单击“安装”按钮,或“

div》

重要信息::从DHT库的1.3.0版本开始,您还需要安装 Adafruit_Sensor 库,该库也可在Arduino库管理器:

现在加载示例→DHT→DHTtester 草图

如果您使用的是 DHT11 传感器,请添加注释设置类型的行:

下载:文件

复制代码

//#define DHTTYPE DHT22 // DHT 22 (AM2302) //#define DHTTYPE DHT22 // DHT 22 (AM2302)

,并取消注释以下行:

下载:文件

复制代码

#define DHTTYPE DHT11 // DHT 11 #define DHTTYPE DHT11 // DHT 11

此将使数据对于正确的传感器正确显示。上载草图!

您应该看到温度和湿度。呼吸传感器可以看到变化(就像您要雾化窗户一样),这会增加湿度。

您可以在线路上添加任意数量的DHT传感器单个引脚,只需在初始DHT dht2 = DHT(pin, type);对象的声明下方添加新行,例如

dht

,就可以引用新的dht2随时随地。

DHT CircuitPython代码

Adafruit CircuitPython模块安装

要在您的Adafruit CircuitPython板上使用DHT传感器,您需要在您的板上安装Adafruit_CircuitPython_DHT模块。

首先请确保您为该板上运行了最新版本的Adafruit CircuitPython。特别是对于 Gemma M0,Trinket M0和M0基本板,您必须运行CircuitPython 2.1.0或更高版本才能访问必要的Pulseio模块!

下一步,您将需要安装必要的库才能使用硬件-仔细按照以下步骤从Adafruit的CircuitPython库捆绑中查找并安装这些库。我们的简介指南上有一个很棒的页面,介绍如何为快速和非表达板安装库包。

请记住非表达板,例如,您需要从束中手动安装必要的库:

adafruit_dht.mpy

您也可以从其发行页面下载 adafruit_dht.mpy

。在继续之前,请确保您开发板的lib文件夹或根文件系统已复制 adafruit_dht.mpy 模块。

接线

DHT接线非常简单:

最左边的引脚是电源。我们建议使用5V供电(有时3V是不够的)-即使您使用的是3.3V逻辑,也可以这样做

第二个引脚是 data 。从该引脚连接一个10K上拉电阻至3.3V。如果您使用的是DHT11,则是必需的。如果您使用的是DHT22或AM2302,则有时可以将其关闭

跳过第三个引脚

最右边的引脚是接地

对于DATA引脚,您必须选择一个具有PWM支持的引脚(pulseio )-检查电路板的指南,了解哪些引脚可以使用计时器

以下是使用小饰品M0的示例-您可以使用任何CircuitPython开发板,只需检查Data引脚是否为pulseio-

在在此示例中,我们将使用连接到D6引脚的Feather M0和DHT22传感器

Fritzing Source

用法

演示DHT传感器模块的用法,您可以将其连接到开发板的串行REPL并运行读取温度和湿度的Python代码。

下一步连接到开发板的串行REPL,因此您位于CircuitPython的》》》 提示符下。

下一步导入 board 和 adafruit_dht 模块,这些是初始化和访问传感器的必要模块:

下载:文件

复制代码

import board

import adafruit_dht import board

import adafruit_dht

尝试从5V为DHT传感器供电(我们发现有时确实需要更多功率),但仍将10K上拉电阻设为3.3V伏)

现在创建一个 DHT11实例或 DHT22 类,具体取决于您使用的传感器的类型(对于AM2302传感器,请使用DHT22类)。您必须传入连接到信号线的引脚,例如,连接到板引脚D6的DHT22或AM2302传感器将需要以下代码:

下载:文件

复制代码

dht = adafruit_dht.DHT22(board.D6) dht = adafruit_dht.DHT22(board.D6)

请注意,对于DHT11传感器,您可以使用 adafruit_dht.DHT11 代替上面的 adafruit_dht.DHT22 代码。

此时,您一切就绪,准备开始读取温度和湿度!您可以通过读取 temperature 属性来完成此操作,该属性返回以摄氏度为单位的温度:

下载:文件

复制代码

dht.temperature dht.temperature

要读取湿度获取值湿度属性的值,它将返回相对湿度百分数(从0到100%):

下载:文件

复制代码

dht.humidity dht.humidity

在大多数情况下,您总是会在收到请求时返回温度或湿度值,但是有时如果存在电噪声或信号被某种方式中断,则可能看到抛出异常以重试。这些传感器有时很难读取,这是正常的,如果读取失败,您可能需要使代码重试几次。但是,如果您总是遇到错误并且无法读取传感器,请仔细检查接线(如果需要,请不要忘记上拉电阻!)和设备的电源。

示例代码

这是一个完整的示例草图,它也可以管理错误-重试逻辑(有时会发生。

不要忘记将逻辑引脚更改为您正在使用的任何引脚!然后将其保存为main.py在CircuitPython板上

下载:Project Zip 或 dht22 .py | 在Github上查看

复制代码

import time

import adafruit_dht

import board

dht = adafruit_dht.DHT22(board.D2)

while True:

try:

temperature = dht.temperature

humidity = dht.humidity

# Print what we got to the REPL

print(“Temp: {:.1f} *C Humidity: {}%”.format(temperature, humidity))

except RuntimeError as e:

# Reading doesn‘t always work! Just print error and we’ll try again

print(“Reading from DHT failure: ”, e.args)

time.sleep(1)

import time

import adafruit_dht

import board

dht = adafruit_dht.DHT22(board.D2)

while True:

try:

temperature = dht.temperature

humidity = dht.humidity

# Print what we got to the REPL

print(“Temp: {:.1f} *C Humidity: {}%”.format(temperature, humidity))

except RuntimeError as e:

# Reading doesn‘t always work! Just print error and we’ll try again

print(“Reading from DHT failure: ”, e.args)

time.sleep(1)

如果您使用的是DHT11,请更改代码以使用adafruit_dht.DHT11(board.D2)对象。

打开REPL以查看输出!看看它会提高温度和湿度(除非您是White Walker,否则温度会下降)

下载

DHT传感器的Arduino库和示例代码

Adafruit_Sensor库(由上面的DHT库要求)

DHT11数据表(中文,也请参见DHT22数据表!)

DHT22数据表

K&R Smith校准说明
责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
收藏 人收藏

    评论

    相关推荐

    【原创】DHT11传感器温湿度监测系统毕设,论文、代码、原理图和仿真介绍

    设计要求 1.设计一个基于51单片机和DHT11传感器温湿度监测系统; 2.传感器DHT11实现对环境
    发表于 03-13 00:53

    温湿度传感器工作原理 温湿度传感器的接线方法

    温湿度传感器是一种用于测量环境温度和相对湿度的装置。它通常用于工业、农业、气象、室内空调等领域。本文将详细介绍温湿度
    的头像 发表于 02-14 18:00 4154次阅读

    Arduino篇—自制温湿度测量仪

    DHT11数字温湿度传感器DHT11数字温湿度传感器是一款含有已校准数字信号输出的
    的头像 发表于 11-02 10:16 780次阅读
    Arduino篇—自制<b class='flag-5'>温湿度</b>测量仪

    基于51单片机和AHT10温湿度传感器温湿度计源码

    一款基于51单片机和AHT10温湿度传感器温湿度计源码。
    发表于 10-09 08:39

    DHT11数字温湿度传感器主要参数

    一.DHT11介绍 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合
    的头像 发表于 09-11 11:17 5570次阅读
    <b class='flag-5'>DHT</b>11数字<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>主要参数

    立创·梁山派GD32F4】-DHT11温湿度传感器模块移植过程

    详情请跳转:https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿
    发表于 08-30 15:15

    温湿度传感器怎么选择,温湿度传感器选型的注意事项

    温湿度传感器作为一种测量大气中温度和相对湿度的仪器,广泛应用于各种领域。其工作原理是基于热电偶和电容式两种不同的技术。本文将详细介绍如何选择温湿度
    的头像 发表于 07-25 10:25 1901次阅读

    ​什么是温湿度传感器

    温湿度传感器由于体积小,性能稳定等特点,被广泛应用在生产生活的各个领域。温湿度一体化传感器是采用数字集成传感器做探头,配以数字化处理电路,从
    的头像 发表于 07-07 16:50 729次阅读

    温湿度传感器校准原理及校准步骤

    温湿度传感器是一种重要的设备,用于监测环境中的温度和湿度变化。然而,由于环境和时间的影响,温湿度传感器可能会出现漂移或失准的情况。为了确保
    的头像 发表于 06-29 16:30 5060次阅读

    带Arduino的DHT21数字温湿度传感器开源项目

    电子发烧友网站提供《带Arduino的DHT21数字温湿度传感器开源项目.zip》资料免费下载
    发表于 06-29 11:41 0次下载
    带Arduino的<b class='flag-5'>DHT</b>21数字<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>开源项目

    【CW32饭盒派开发板试用体验】读取自己的温湿度传感器

    周末到了,是时候折腾手里的开发板了。我自己有一个DHT11的温湿度传感器,想想就用开发板读一下这个传感器的数据吧。 DHT11是一款数字
    发表于 06-03 11:01

    使用ESP8266驱动DHT11温湿度传感器

    DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度综合传感器,在Arduino提高篇中已对其进行了
    的头像 发表于 05-19 14:20 4536次阅读
    使用ESP8266驱动<b class='flag-5'>DHT</b>11<b class='flag-5'>温湿度</b><b class='flag-5'>传感器</b>

    STM32+DHT11监测环境的温湿度

    DHT11是一种数字温湿度传感器,能够通过数字信号输出当前环境的温度和湿度值。DHT11可以通过一条数据信号线连接到微控制器或其他外设,从而
    的头像 发表于 05-17 09:22 3266次阅读
    STM32+<b class='flag-5'>DHT</b>11监测环境的<b class='flag-5'>温湿度</b>

    CH32V103基础教程71-温湿度及RTC显示

    DHT11简介及相关函数介绍关于IIC、RTC、DHT11的简介前面章节已经介绍,在此不再赘述。 2、硬件设计本章教程使用温湿度
    发表于 05-06 15:46

    【沁恒 CH32V208 开发板免费试用】CH32V208读取DHT11温湿度

    的开始信号,DHT11不会主动进行温湿度采集。以下是我手里的传感器照片:以上是传感器介绍部分,接下来先把硬件电路搭建好。所有的连接都用杜邦
    发表于 05-03 09:46