九,ESP32 DHT11/22 读取温湿度

一.介绍

传感器模块DHT11 / DHT22用于测量温度/湿度。在本教程中,我们将学习如何使用Arduino ESP32与DHT11 / DHT22(这里使用DHT11)进行通信以读取温度和湿度值。

二.元器件清单

  • ESP32开发板
  • 一个DHT11模块
  • 面包板
  • 导线若干

三.电路图

九,ESP32 DHT11/22 读取温湿度

四.代码设计

我们将使用由Adafruit提供的DHT22库传感器。你可以在这里下载https

//github.com/adafruit/DHT-sensor-library/archive/master.zip

载后,将其解压缩并将解压缩的文件夹复制到Arduino文件夹下的libraries文件夹:C:/ Users / [YOUR_USER_NAME] / Documents / Arduino / libraries注意:如果您已经打开了Arduino IDE,则需要重新启动Arduino IDE才能生效。 该库提供了一些功能,以便您可以使用它们从DHT22读取数据,例如: 

从传感器读取湿度:

readHumidity():

如果参数flag为true,则从传感器读取的温度为华氏温度值。如果参数flag为false,则从传感器读取的温度为摄氏度值。

readTemperature(bool flag)

要使用这些功能,您必须创建一个实例(变量)类型DHT 。例如:DHT dht(DHTPIN,DHTTYPE)。这将创建一个带有2个输入的DHT实例(这是C ++构造函数)是DHTPIN(ESP32的引脚连接到DHT22的数据引脚)和DHTTYPE(这是DHT传感器类型(DHT11或DHT22)),我这里使用的是DHT11,因为传感器很慢,所以我们需要在测量之间延迟(大约2秒)。

以下就是这个项目的代码:

/*******************************************************
    ESP32 DHT11/22 获取温湿度
   功能:从DHT11获取温湿度打印到串口监视器
   引脚:DATA-> GPIO 23
   Designer: Code_Mouse
   Date:2018-9-7
 *******************************************************/

#include "DHT.h"

#define DHTPIN 23   //DHT11 DATA 数据引脚

#define DHTTYPE DHT11  //选择的类型

DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(115200);
  Serial.println("DHT22 sensor!");
  dht.begin();
}

void loop() {

  float h = dht.readHumidity();
  float t = dht.readTemperature();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  Serial.print("Humidity: ");
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: ");
  Serial.print(t);
  Serial.println(" *C ");
  delay(2000);
}

五.测试代码

要测试代码,只需使用Arduino IDE上传它。然后,您应该能看到串口监视器里的温湿度的数据。以下就是实现的效果:

九,ESP32 DHT11/22 读取温湿度
「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
10 条回复 A 作者 M 管理员
  1. 请问这错误是什么
    12:15:41.868 -> rst:0x7 (TG0WDT_SYS_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
    12:15:41.868 -> flash read err, 1000
    12:15:41.868 -> ets_main.c 371
    12:15:42.174 -> ets Jun 8 2016 00:22:57

    • 这看起来是固件的问题啊,程序应该是没问题的

  2. 请问怎么将采集的温度通过WiFi传输到电脑用网络调试助手现实呢?

    • 可以参考一下这篇:https://www.qutaojiao.com/242.html

  3. 怎么样能将esp32板子设置成一个WiFi,然后电脑去连接它,然后板子上边的数据传送到网络调试助手上边呢?

    • 你用的是什么网络调试助手啊?可以通过http协议,MQTT协议等进行网络传输。电脑连接wifi然后通过esp32传输给电脑的我没做过,但是esp32联网然后通过网络传输到服务器的我倒是做过了,改天我研究下发个教程。

  4. 为开发版编译错误请问怎么解决

    • 你看看还有提示啥错误,是不是库没安装,esp32环境配置好了吗

    • 对,就是库没安装,已解决,谢谢您。

    • 不用谢哦,感谢支持!

欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论