九,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 读取温湿度

给TA买糖
共{{data.count}}人
人已赞赏
ESP32ESP32-基础

八,ESP32使用多个串行端口

2018-9-7 22:57:54

ESP32ESP32-基础

十,ESP32 在I2C LCD显示信息

2018-9-8 0:35:16

24 条回复 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,然后电脑去连接它,然后板子上边的数据传送到网络调试助手上边呢? ✗不是吧!✗ ✗不是吧!✗ ✗不是吧!✗

    • Luca

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

    • Code_Mouse

      您好,你这边有 esp32 开发板http ,mqtt协议案例吗,我想学一下,可以发一下案例链接吗?
      我邮箱:2868613334@qq.com 谢谢

    • 网站上找找哦 有一些教程的

  4. 梦想之舟

    为开发版编译错误请问怎么解决
    ✗汗✗

    • Luca

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

    • 梦想之舟

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

    • Luca

      不用谢哦,感谢支持!

  5. 竹思

    读取的值怎样转化为字符串在oled上显示??

    • Luca

      可以使用toString()

    • 竹思

      找到方法了,谢谢

  6. 竹思

    怎样将读取的数字转化为字符串在oled显示呢??

  7. 刘策

    点个赞

  8. xixi44444

    过来学习

  9. redyear

    学习

  10. P嘉仔

    学习学习

  11. Pokerface

    学习学习

    • Luca

      加油加油

  12. Mika

    学习学习

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索