IoT - Arduino, Lập Trình, NodeMCU ESP8266

Sử dụng cảm biến DHT11 và NodeMCU ESP8266

Trong Hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng cảm biến DHT11 (các bạn có thể sử dụng tương...

Written by AnonyHome
· 2 min read >

Trong Hướng dẫn này, chúng ta sẽ tìm hiểu cách sử dụng cảm biến DHT11 (các bạn có thể sử dụng tương tự cho cảm biến DHT22) để đo nhiệt độ và độ ẩm với board NodeMCU.

Nguyên lý hoạt động của cảm biến:

Cách điều khiển

DHT11 gửi và nhận dữ liệu với một dây tín hiệu DATA, với chuẩn dữ liệu truyền 1 dây này, chúng ta phải đảm bảo sao cho ở chế độ chờ (idle) dây DATA có giá trị ở mức cao, nên trong mạch sử dụng DHT11, dây DATA phải được mắc với một trở kéo bên ngoài(thông thường giá trị là 4.7kΩ).

Dữ liệu truyền về của DHT11 gồm 40bit dữ liệu theo thứ tự: 8 bit biểu thị phần nguyên của độ ẩm + 8 bit biểu thị phần thập phân của độ ẩm + 8 bit biểu thị phần nguyên của nhiệt độ + 8 bit biểu thị phần thập phân của nhiệt độ + 8 bit check sum.

Ví dụ: ta nhận được 40 bit dữ liệu như sau:

0011 0101     0000 0000     0001 1000     0000 0000     0100 1101

Tính toán: 

8 bit checksum: 0011 0101 + 0000 0000 + 0001 1000 + 0000 0000 = 0100 1101

Độ ẩm: 0011 0101 = 35H = 53% (ở đây do phần thập phân có giá trị 0000 0000, nên ta bỏ qua không tính phần thập phân)

Nhiệt độ: 0001 1000 = 18H = 24°C (ở đây do phần thập phân có giá trị 0000 0000, nên ta bỏ qua không tính phần thập phân)

Yêu cầu phần cứng chuẩn bị (mua theo link hướng dẫn)

Bước 1: Cài đặt thư viện cho Cảm biến DHT11

Bước đầu tiên chúng ta phải cài đặt thư viện nếu bạn chưa cài đặt trước đó. Chúng ta có thể chỉ cần search google tìm kiếm với từ khóa “arduino llibrary for dht11”. Hoặc các bạn có thể truy cập liên kết sau: https://github.com/adafruit/DHT-sensor-library

Bước 2: Kết nối DHT11 và NodeMCU

Các bạn thực hiện kết nối DHT11 và NodeMCU theo sơ đồ sau:

Kết nối cảm biến DHT11 và NodeMCU
Kết nối cảm biến DHT11 và NodeMCU

Bước 3: Lập trình

Các bạn sao chép đoạn mã bên dưới:

#include "DHT.h" // including the library of DHT11 temperature and humidity sensor
 #define DHTTYPE DHT11 // DHT 11
 #define dht_dpin 0
 DHT dht(dht_dpin, DHTTYPE);
 void setup(void) {
   dht.begin();
   Serial.begin(9600);
   Serial.println("Humidity and temperature\n\n");
   delay(700);
 }
 void loop() {
   float h = dht.readHumidity();
   float t = dht.readTemperature();
   Serial.print("Current humidity = ");
   Serial.print(h);
   Serial.print("% ");
   Serial.print("temperature = ");
   Serial.print(t);
   Serial.println("C ");
   delay(800);
 }

Bước 4: kết quả

Xem thêm: Hướng dẫn kết nối ESP8266 với Arduino IDE

Written by AnonyHome
Fullstack Developer ! Profile

Leave a Reply

Your email address will not be published. Required fields are marked *

ĐĂNG KÝ KHÓA HỌC JAVA CƠ BẢN
Đăng ký tham gia khóa học Java cơ bản Online. Học lập trình cùng AnonyHome
HỢP TÁC CÙNG CHÚNG TÔI
Chúng tôi nhận thực hiện các dự án:
  1. Phát triển ứng dụng Mobile
  2. Xây dựng website
  3. Đồ án sinh viên, luận văn thạc sĩ
  4. ..v.v
Mọi dự án đều được xây dựng với chi phí hợp lý.
Tham gia group Facebook: click here
Hợp tác phát triển các nền tảng ứng dụng
Chúng tôi nhận các dự án:
  1. Phát triển ứng dụng Mobile
  2. Xây dựng website
  3. Đồ án sinh viên, luận văn thạc sĩ