首页

DHT11温湿度传感器(带ESP32

在本教程中,我们将学习如何接口DHT11与ESP32 DevKit开发板。如果需要使用ESP32搭建Web温湿度监测系统,则选择DHT11和DHT22作为传感器。了解ESP32 DHT11温湿度传感器接口工作原理,设置Arduino IDE,在LCD上显示湿度和温度。此外,您还可以设计一个简单的ESP32 Web服务器,它可以连续显示DHT11传感器的湿度和温度。

ESP32-DHT11-Image-1

DHT11温湿度传感器简介

我们已经在Arduino、Raspberry Pi、ESP8266和STM32F103C8T6等几个早期项目中使用了DHT11温湿度传感器。DHT11是一种数字式温湿度传感器,由电阻式湿度传感器、NTC型温度传感器和8位微控制器组成。

DHT11传感器

可测量湿度在20% ~ 80%范围内,温度在00C到500在DHT11传感器中的微控制器执行所有ADC相关的东西,并通过一根线提供数字数据。

此外,DHT11温湿度传感器的电缆长度可达20米。这意味着你可以很容易地实现有线传感器系统,可以进入漫长的地方。

DHT11的引脚图和引脚说明

下图显示了DHT11的引脚,下表显示了DHT11的引脚描述。

DHT11引出线

销的DTH11 描述
VCC 电源(3V ~ 5.5V)
数据 输入/输出数据。必须拉高。
数控 没有连接
接地 地面

从DHT11解码数据

在Arduino DHT11教程中,我详细解释了来自DHT11 Sensor的数据是怎样的,以及如何在不使用任何库的情况下提取这些数据。如果你正在为DHT11传感器为任何其他微控制器编写驱动程序,这是非常有用的。

DHT11的输出是一个40位的数据,分为8位相对湿度整数数据+ 8位相对湿度十进制数据+ 8位温度整数数据+ 8位温度十进制数据+ 8位校验和。

DHT11传感器数据

ESP32 DHT11接口

现在,我们已经看到了一点关于DHT11湿度和温度传感器,现在让我们继续了解如何接口DHT11与ESP32。您必须记住的第一件事是DHT是一个数字传感器(有一个内部微控制器执行数据采集和ADC转换)。

接下来要记住的重要事情是它需要一根电线来进行通信。这意味着我们可以使用ESP32的任何数字GPIO脚来发送和接收数据到/从DHT11,我们只需要一根线进行正常的通信。

组件的要求

  • ESP32 DevKit开发板
  • DHT11温湿度传感器(传感器/模块)
  • 1 KΩ上拉电阻
  • 16×2液晶
  • PCF8574 I2C LCD模块
  • 电路试验板
  • 连接电线
  • 微型USB电缆

注意:我得到了一个DHT11模块与1 KΩ上拉电阻的数据线已经安装。如果你只使用传感器,那么这个上拉电阻是重要的。5 KΩ引体向上是制造商推荐的。

线路图

下图为ESP32与DHT11的连接图。首先,DHT11的VCC连接到ESP32板的VIN。

注意:DHT11的电源范围为3v ~ 5.5 V。所以,你也可以用ESP32板的3.3V电源给DHT11供电。

接下来是DATA引脚。这个销钉应该拉高。由于我有一个模块已经连接了1 KΩ Pullup,我不需要做任何额外的连接。如果你只使用DHT11传感器,然后连接一个4.7 KΩ电阻之间的数据引脚和ESP32的VIN(或3.3V)。

注意:Data Pin的上拉电压可以在3v到5.5 V之间的任何位置。

现在,Data引脚已经连接到ESP32的GPIO 16上,在ESP32 DevKit板上标记为RX2。

第三个引脚没有连接到任何东西。最后,将GND引脚连接到ESP32的任意GND引脚上。

ESP32-DHT11-Circuit

准备Arduino IDE

您需要下载两个库,以便ESP32将正确地与DHT11传感器通信。首先是主要的DHT11传感器库。到工具->管理库…在Arduino IDE。

ESP32-DHT11-Arduino-1

在搜索栏中,输入“dht”。滚动选项,安装Adafruit的“DHT传感器库”。

ESP32-DHT11-Arduino-2

下一个库与Adafruit本身相关联。搜索' adafruit unified ',向下滚动并安装' adafruit unified Sensor '库。

ESP32-DHT11-Arduino-3

在串行监视器上显示湿度和温度

在进行正确的连接和如上所述安装必要的库之后,我们现在将看到如何使用ESP32从DHT11传感器读取湿度和温度数据,并在串行监视器上显示结果。

代码

我写了一个简单的代码,它将分配一个引脚DHT11传感器,初始化DHT11传感器,并从传感器读取湿度和温度数据。

为了查看结果,我只使用串行监视器以%表示湿度,以摄氏度表示温度来打印温度值。

ESP32-DHT11-Image-4

下面的图像是串行监视器的屏幕截图,它是连续打印湿度和温度读数每3秒。

ESP32-DHT11-Arduino-4

ESP32 DHT11 with I2C液晶

在串行监视器上显示DHT11传感器的湿度和温度值是有用的,只是为了测试连接和代码本身。要构建一个实际的“嵌入式系统”应用程序,你必须使用某种显示模块(OLED, 16×2字符LCD,诺基亚5110 LCD,图形LCD等)来查看湿度和温度读数。

我使用常规的16×2字符LCD显示模块与PCF8574 I2C LCD模块结合显示来自ESP32 DHT11接口的温度读数。

我做了一个关于如何使用I的专门教程2C液晶与ESP32。查看该教程以获得深入的信息。在该教程中,我还讨论了您下载的成功连接I2C LCD和ESP32所需的库。

注意:我还解释了如何获取I的Slave地址2C液晶模块在那个教程。这一步非常重要。

线路图

您需要的附加组件是16×2 LCD显示器和I2C LCD模块(基于PCF8574)。在16×2 LCD显示屏的后面插入I2C LCD模块。I2C LCD模块只需要4个连接(2个为电源连接,2个为数据连接)。

ESP32与I2C LCD模块、ESP32与DHT11温湿度传感器之间所需的连接如下电路图所示。

ESP32-DHT11-I2C-LCD-Circuit

代码

ESP32 DHT11接口I2C LCD代码非常简单。传感器的初始化部分类似于前面的代码。只增加了LCD相关的代码。

ESP32-DHT11-Image-2

结论

一个新手教程的接口DJT11湿度和温度传感器与ESP32在这里实现。学习了DHT11传感器的基本知识,ESP32 DHT11接口的工作原理,与DHT11通信所需的库,温湿度数据的串行输出显示,以及I2C LCD与ESP32连接显示温湿度读数。

至于考虑使用ESP32和DHT11传感器的基于Web的湿度和温度监测系统,我将很快用Web服务器的代码更新此页面。

一个回应

留下一个回复

您的电子邮件地址将不会被公布。必需字段被标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu