ESP32 DHT11教程|DHT11带ESP32的湿度温度传感器

在本教程中,我们将学习如何与ESP32 Devkit开发委员会接口DHT11。如果您想使用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%的相对湿度和温度在0的范围内的湿度。0C至500C. DHT11传感器中的微控制器执行所有与ADC相关的内容,并通过单线提供数字数据。

此外,DHT11温度和湿度传感器的电缆长度最高20米。这意味着您可以轻松地实现有线传感器系统,该系统可以进入漫长的位置。

DHT11的PIN图和PIN描述

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

DHT11 PINOUT

DTH11的销 描述
VCC 电源(3V至5.5V)
数据 输入 /输出数据。必须高高拉。
NC 未连接
gnd 地面

DHT11的解码数据

在Arduino DHT11教程中,我详细解释了DHT11传感器的数据看起来以及如何在不使用任何库中提取数据。如果您正在为任何其他微控制器编写DHT11传感器的驱动程序,这将非常有用。

I won’t go into the details but the output of DHT11 is a 40-bit data divided as 8-bit Relative Humidity Integer Data + 8-bit Relative Humidity Decimal Data + 8-bit Temperature Integer Data + 8-bit Temperature Decimal Data + 8-bit Checksum.

DHT11传感器数据

ESP32 DHT11接口

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

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

需要组件

  • ESP32 Devkit开发委员会
  • DHT11湿度和温度传感器(传感器或模块)
  • 1kΩ上拉电阻
  • 16×2 LCD
  • PCF8574 I2C LCD模块
  • 面包板
  • 连接电线
  • 微型USB电缆

笔记:我在已经安装的数据线上得到了一个带有1kΩ引体电阻的DHT11模块。如果您仅使用传感器,则该上拉电阻很重要。制造商建议使用5kΩ的拉力。

电路原理图

下图显示了ESP32和DHT11之间的连接。首先,DHT11的VCC与ESP32板的VIN连接。

笔记:DHT11的电源范围从3 V到5.5V。因此,您也可以用ESP32板的3.3V电源为DHT11供电。

接下来,数据引脚。该销子应高高拉。由于我的模块已经连接了1kΩ,因此我不需要进行任何其他连接。如果您仅使用DHT11传感器,则在ESP32的数据引脚和VIN(或3.3V)之间连接4.7kΩ电阻。

笔记:数据引脚的上拉电压可以在3 V至5.5 V之间。

现在,数据引脚已连接到ESP32的GPIO 16,该GPIO 16在ESP32 Devkit板上标记为RX2。

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

ESP32-DHT11电路

准备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传感器的湿度和温度数据并在串行显示器上显示结果。

代码

我编写了一个简单的代码,该代码将把PIN分配给DHT11传感器,初始化DHT11传感器并读取传感器的湿度和温度数据。

为了查看结果,我只是使用串行监视器将温度值打印为湿度和摄氏度的温度。

ESP32-DHT11-Image-4

下图显示了串行显示器的屏幕截图,该串行显示器每3秒连续打印湿度和温度读数。

ESP32-DHT11-ARDUINO-4

ESP32 DHT11与我2C LCD

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

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

我对如何使用i进行了专门的教程2C LCD与ESP32。查看该教程以获取深入的信息。我还讨论了您已下载的必要库,以成功将I2C LCD与该教程中的ESP32连接起来。

笔记:我还解释了如何获得我的奴隶地址2该教程中的C LCD模块。此步骤非常重要。

电路原理图

您需要的其他组件是16×2 LCD显示屏和I2C LCD模块(基于PCF8574)。插入16×2 LCD显示屏背面的I2C LCD模块。I2C LCD模块仅需要四个连接(其中两个是用于电源,两个用于数据)。

以下电路图显示了ESP32和I2C LCD模块以及ESP32和DHT11湿度和温度传感器之间的所有必要连接。

ESP32-DHT11-I2C-LCD电路

代码

ESP32 DHT11与I2C LCD接口的代码非常简单。传感器的初始化部分与先前的代码相似。另外仅添加了与LCD相关的代码。

ESP32-DHT11-IMAGE-2

结论

这里实现了有关将DJT11湿度和温度传感器接口的初学者教程。您了解了有关DHT11传感器,ESP32 DHT11接口的工作,与DHT11通信的必要库,如何在串行输出上显示湿度和温度数据以及如何将I2C LCD与ESP32连接并显示湿度和温度读数。

就使用ESP32和DHT11传感器的基于Web的湿度和温度监视系统而言,我将在短期内使用Web服务器代码更新此页面。

一个回应

发表评论

您的电子邮件地址不会被公开。必需的地方已做标记*

电子豪华粉丝
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu
map