ESP8266使用DHT11测量温湿度

本篇讲述ESP8266如何使用DHT11测量温度和湿度,并将结果输出值Arduino的串口监视器中。

硬件连接

将我们的NodeMCU开发板与DHT11温湿度传感器按如下图所示方式连接,电阻值为4.7KΩ。

安装库

操作DHT11温湿度传感器,比较方便的方法是使用现成的库。

选择 工具->管理库…,安装DHT sensor library,这个库依赖 Adafruit Unified Sensor库,安装时会自动提示,选择Install all将会同时安装上这两个库。

代码如下:

#include "DHT.h"
#define DHTPIN 5
#define DHTTYPE DHT11

// Initialize DHT sensor
DHT dht(DHTPIN, DHTTYPE, 15);

void setup() {

  // Start Serial  
  Serial.begin(115200); 
 
  // Init DHT 
  dht.begin();
}

void loop() {

  // Reading temperature and humidity
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  // Display data
  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.println(" *C ");
  
   // Wait a few seconds between measurements.
  delay(2000);
}

这里需要注意,DHTPIN用来定义DHT11传感器的数据引脚,NodeMCU的D1对应GPIO5,所以这里要写5,NodeMCU的引脚与ESP8266的GPIO对应关系,可以参考这个图:

编译下载后,打开Arduino环境自带的串口监视器,可以如下输出,每2秒打印一次:

Humidity: 42.00 %	Temperature: 25.80 *C