DHT11:有关用于测量温度和湿度的传感器的全部信息

双氢睾酮11

测量温度和湿度非常普遍 在许多电子制造商项目中。 在DIY中,通常必须测量这些参数以控制某些系统。 例如,要能够创建在温度或湿度达到一定值时启动的制冷,植物护理或空调系统。 但是,要做到这一点,您需要像DHT11这样的传感器。

在市场上 有很多传感器 不同的温度范围,支持的温度范围或精度不同。 一个例子是 LM35,最受欢迎和在电子产品中使用的之一。 还有其他湿度传感器会通过改变电导率起作用,例如Analog Devices的AD22103KTZ。 但是,如果您想同时测量这两个参数,那么也许我们今天在本文中讨论的设备会引起更多关注...

什么是DHT11?

El DHT11是一种简单的传感器,可测量温度和湿度, 一体。 A)是的 您将不必购买两个传感器 分别地。 它的价格约为2欧元,因此相当便宜,尽管您也可以将其安装在模块上(安装在PCB上以便于使用),这与Arduino的此类电子组件一样。 就板子而言,它包括一个5千欧的上拉电阻和一个向我们发出警告的LED。

DHT11有 经过校准的数字信号,具有很高的可靠性和稳定性。 另外,如果您查看它的数据表,将会发现它具有有趣的功能,如以后的部分所述。

同类产品

双氢睾酮22

您可能会对与DHT11类似的产品感兴趣。 这是 DHT22。 它也是一个集成的温度和湿度传感器,但在这种情况下,它的价格要高一些,约为4欧元。 与DHT5一样,温度测量的精度也有11%的变化,但与之不同的是,它的测量范围超出了20%至80%的湿度范围。 因此,对于需要测量22%到0%湿度的项目,您可能对DHT100感兴趣。

La 数据采集​​频率 它也是DHT11的两倍,在DHT22中每秒采集2个样本,而不是DHT1每秒11个样本。 至于温度,它可以测量从-40ºC到+125ºC的精度,因为它可以测量几分之一度,特别是它可以欣赏正负0,5ºC的变化。

引脚排列,功能和数据表

DHT11引脚排列

您可以找到有关 数据表中的DHT11。 该设备的每个制造商都可以提供一些可能有所不同的值,因此我总是建议您阅读所购买设备的特定制造商的PDF。 尽管大多数值对您来说看起来都是一样的,但彼此之间可能会有一些细微的差异。 其最重要的技术特征是:

  • 3,5v至5v电源
  • 2,5mA电流消耗
  • 数字量输出信号
  • 温度范围为0ºC至50ºC
  • 25ºC下大约2ºC变化的温度测量精度
  • 测量温度的分辨率为8位,1ºC
  • 湿度可从20%RH到90%RH
  • 在5-0ºC之间的温度下,准确地用于50%RH的湿度
  • 分辨率为RH的1%,无法拾取低于该值的变化
  • Mouser数据表

关于数据, 数字广播。 因此,没有必要像其他传感器一样从模拟转换为数字。 这使在Arduino IDE中编写代码变得很复杂,但是在这种情况下,则不需要它,并且变得容易得多。 尽管传感器本身是模拟的,但它包含执行转换的系统,可以直接连接到Arduino的数字输入。

来自传感器的模拟信号(电压的变化)被转换为数字格式,然后发送到Arduino微控制器。 传输到 40位帧 与DHT11捕获的湿度和温度信息相对应。 前两组8位用于湿度,即该帧的最高16位。 然后其余2个其余的8位组用于温度。 也就是说,它有两个字节用于湿度,两个字节用于温度。 例如:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

在这种情况下,0011 0101 0000 0010是湿度值,0001 1000 0000 0000是温度。 第一部分是整数部分,第二部分是小数。 至于0011 1001,即 最后8位是奇偶校验 避免错误。 这样,您可以在传输过程中检查一切是否正确。 它对应于先前位的总和,因此,如果总和等于奇偶校验,它将是正确的。 在我所举的示例中,它不是,因为如您所见,它并不对应……这将指示失败。

一旦知道了这一点,DHT11的下一个技术水平就是引脚。 这 接触或引出线 该设备的配置很简单,因为它只有4个。 其中一个引脚用于电源或Vcc,另一个引脚用于I / O传输数据,一个不连接的NC引脚,以及一个GND用于接地。

与Arduino集成

将DHT11与Arduino连接

一旦您知道了DHT11的引脚以及 Arduino开发板,连接非常简单。 请记住,如果您选择了集成到PCB中的DHT11模块,则引脚将为三个,因为去掉了NC,使事情变得更加容易。 您所要做的就是将接地引脚连接到Arduino的GND连接之一,如上图所示。

另一方面,电源引脚应连接到 来自Arduino的5v连接, 因此,传感器将通过GND和Vcc完全供电,但是现在数据丢失了。 要将数据从DHT11传感器传输到Arduino板,您可以使用任何数字输入,例如图像中显示的7。现在,一旦创建了必要的Arduino IDE,您就可以使用它了。代码...

如果传感器在您的项目中距离较远,并且您要使用长度超过20米的电缆,请使用5k上拉电阻,对于较大的电缆,它应成比例地更大。 请注意,如果您使用3,5v电源而不是5v,则由于电压降,电缆的长度不应超过20cm。

请记住,他们推荐的是 每5秒钟进行一次测量, 尽管DHT11可以工作的采样频率更高,但是如果更频繁地进行采样,则可能不那么准确。

Arduino IDE中的代码

直接进入代码,说 Arduino IDE 您可以使用许多具有DHT11功能的现有库,这些功能将使您的生活更轻松。 例如,其中之一是 提供Adafruit。 请记住,我们有一个以PDF格式的Arduino开头的初学者指南,您可以 从这里免费下载 它可以为您提供帮助。

一旦安装了相应的库,您就可以注释 输入验证码 使用Arduino控制您项目的DHT11温湿度传感器。 例如:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


成为第一个发表评论

发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。