Hướng dẫn esp8266 #7: cảm biến nhiệt độ - độ ẩm dht11

Đào Hùng 09/04/2021
huong-dan-esp8266-7-cam-bien-nhiet-do-do-am-dht11

Mở đầu

  • Chắc anh em đã nghe qua về con cảm biến DHT11 rồi chứ nhỉ? Với chi phí khá rẻ, dễ sử dụng, lại còn tích hợp cả đo độ ẩm và nhiệt độ, tội gì mà không thử các bạn nhỉ :3. Rồi, giờ sẽ là review qua về hình dáng và thông số kĩ thuật một chút nhé.

Chuẩn bị

Phần cứng
ESP8266 NodeMCU v1.0 x1
Phần mềm
Arduino IDE  
Thư viện
DHT Sensor Library  
Adafruit Sensor  

Cảm biến nhiệt độ, độ ẩm DHT11

Hướng dẫn Esp8266 #7: Cảm biến nhiệt độ độ ẩm DHT11

Thông số kỹ thuật

Điện áp hoạt động : 3 – 5 VDC
Dãi độ ẩm hoạt động : 20% – 90% RH, sai số ±5%RH
Dãi nhiệt độ hoạt động : 0°C ~ 50°C, sai số ±2°C
Khoảng cách truyển tối đa : 20m

Đấu nối với ESP8266

Hướng dẫn Esp8266 #7: Cảm biến nhiệt độ độ ẩm DHT11

Code

#include "DHT.h"
#define DHTTYPE DHT11 // DHT 11
 
const int DHTPin = 4;
 
DHT dht(DHTPin, DHTTYPE);     // Initialize DHT sensor.
static char celsiusTemp[7];
static char fahrenheitTemp[7];
static char humidityTemp[7];
 
void setup() {
  Serial.begin(9600);
  delay(10);
  dht.begin();
}
 
void loop() {
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit (isFahrenheit = true)
  float f = dht.readTemperature(true);
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
  }
  else {
    delay(2000);
    Serial.print("Humidity: ");
    Serial.print(h);
    Serial.print(" %\t Temperature: ");
    Serial.print(t);
    Serial.print(" *C ");
    Serial.print(f);
    Serial.print(" *F\t Heat index: ");
    Serial.print(hic);
    Serial.print(" *C ");
    Serial.println(hif);
  }
}

Video

https://www.youtube.com/watch?v=CECY7CWfST4