本篇讲述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