esp8266连接dht11
时间: 2024-09-20 21:11:28 浏览: 29
Desktop_esp8266_DHT11_arduino_
5星 · 资源好评率100%
ESP8266是一款嵌入式Wi-Fi模块,常用于物联网(IoT)项目中作为微控制器使用,而DHT11是一种廉价、易于使用的温湿度传感器。连接两者可以让你的设备实时获取环境温度和湿度数据。
以下是基本步骤:
1. **硬件准备**:
-5针的杜邦线
2. **软件库安装**:
- 安装ESP8266核心库:对于基于Arduino IDE,需安装DHT库(DHTBase库);对于Espressif IDF框架,则有对应的driver库。
3. **编写代码**:
- Arduino IDE示例:
```c++
#include <DHT.h>
DHT dht(DHT_TYPE_DHT11, 4); // 使用DHT11,数据引脚为4
void setup() {
Serial.begin(9600);
}
void loop() {
float humidity, temperature;
if (dht.readhumidity(&humidity, &temperature)) {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println("%");
} else {
Serial.println("Failed to read data!");
}
delay(1000);
}
```
- Espressif IDF示例:
```c++
#include "dht/dht.h"
void app_main(void) {
dht_t dht;
int ret = dht_init(&dht, DHT11, GPIO_NUM_4);
while (true) {
if (ret == ESP_OK) {
float hum = dht_read_humidity(&dht);
float temp = dht_read_temperature_celsius(&dht);
ESP_LOGI(TAG, "Temp: %.2f°C Humidity: %.2f%%", temp, hum * 100);
} else {
ESP_LOGE(TAG, "Failed to read data: %s", dht_get_last_error_str());
}
vTaskDelay(pdMS_TO_TICKS(2000));
}
}
```
4. **上传并运行**:
将代码烧录到ESP8266,然后通过串口监视器查看实时的温度和湿度读数。
阅读全文