Điện tử

Cảm biến nhiệt độ và độ ẩm DHT11 Arduino

Cảm biến nhiệt độ và độ ẩm DHT11 giúp bạn thực sự dễ dàng thêm dữ liệu độ ẩm và nhiệt độ vào các dự án điện tử của mình. Nó hoàn hảo cho các trạm thời tiết từ xa, hệ thống kiểm soát môi trường gia đình và hệ thống giám sát nông trại hoặc vườn. Hãy cùng tham khảo chi tiết bên dưới đây với CDK nhé !

Cảm biến nhiệt độ và độ ẩm DHT11 Arduino
Cảm biến nhiệt độ và độ ẩm DHT11 Arduino

Trong hướng dẫn này, trước tiên CDK sẽ đi vào một chút kiến ​​thức cơ bản về độ ẩm, sau đó tôi sẽ giải thích cách DHT11 đo độ ẩm. Sau đó là cách kết nối DHT11 với  Arduino và cung cấp cho bạn một số code ví dụ để bạn có thể sử dụng DHT11 trong các dự án của riêng mình.

Dưới đây là phạm vi và độ chính xác của DHT11:

  • Phạm vi độ ẩm: 20-90% RH
  • Độ chính xác độ ẩm: ± 5% RH
  • Phạm vi nhiệt độ: 0-50 ° C
  • Độ chính xác nhiệt độ: ± 2% ° C
  • Điện áp hoạt động: 3V đến 5.5V

Mạch bảo vệ quá dòng dùng Opamp

Độ ẩm tương đối là gì ?

DHT11 đo độ ẩm tương đối . Độ ẩm tương đối là lượng hơi nước trong không khí so với điểm bão hòa của hơi nước trong không khí. Tại điểm bão hòa, hơi nước bắt đầu ngưng tụ và tích tụ trên bề mặt tạo thành sương.

Điểm bão hòa thay đổi theo nhiệt độ không khí. Không khí lạnh có thể giữ ít hơi nước hơn trước khi bão hòa, và không khí nóng có thể giữ nhiều hơi nước hơn trước khi bão hòa.

Công thức tính độ ẩm tương đối là:

Độ ẩm tương đối là gì ?
Độ ẩm tương đối là gì ?

Độ ẩm tương đối được biểu thị bằng phần trăm. Ở 100% RH, sự ngưng tụ xảy ra và ở 0% RH, không khí hoàn toàn khô.

DHT11 đô độ ẩm và nhiệt độ như thế nào ?

DHT11 phát hiện hơi nước bằng cách đo điện trở giữa hai điện cực. Thành phần cảm biến độ ẩm là một chất nền giữ ẩm với các điện cực được áp lên bề mặt. Khi hơi nước được chất nền hấp thụ, các ion được chất nền giải phóng làm tăng độ dẫn điện giữa các điện cực. Sự thay đổi điện trở giữa hai điện cực tỷ lệ với độ ẩm tương đối. Độ ẩm tương đối cao hơn làm giảm điện trở giữa các điện cực, trong khi độ ẩm tương đối thấp hơn làm tăng điện trở giữa các điện cực.

DHT11 đo nhiệt độ bằng cảm biến nhiệt độ NTC gắn trên bề mặt  (điện trở nhiệt) được tích hợp trong thiết bị. Để tìm hiểu thêm về cách hoạt động của các nhiệt điện trở và cách sử dụng chúng trên Arduino, hãy xem Hướng dẫn về Cảm biến Nhiệt độ Nhiệt điện trở Arduino của chúng tôi .

Với vỏ nhựa được tháo ra, bạn có thể thấy các điện cực được áp dụng cho chất nền:

DHT11 đô độ ẩm và nhiệt độ như thế nào ?
DHT11 đô độ ẩm và nhiệt độ như thế nào ?

Một vi mạch được gắn ở mặt sau của thiết bị chuyển đổi phép đo điện trở thành độ ẩm tương đối. Nó cũng lưu trữ các hệ số hiệu chuẩn và điều khiển việc truyền tín hiệu dữ liệu giữa DHT11 và Arduino:

DHT11
DHT11

DHT11 chỉ sử dụng một dây tín hiệu để truyền dữ liệu đến Arduino. Nguồn đến từ 5V và dây nối đất riêng biệt. Cần có một điện trở kéo lên 10K Ohm giữa đường tín hiệu và đường 5V để đảm bảo mức tín hiệu luôn ở mức cao theo mặc định (xem biểu dữ liệu để biết thêm thông tin).

Có hai phiên bản DHT11 khác nhau mà bạn có thể gặp. Một loại có bốn chân, và loại còn lại có ba chân và được gắn vào một PCB nhỏ. Phiên bản gắn trên PCB rất đẹp vì nó bao gồm một điện trở kéo lên 10K Ohm được gắn trên bề mặt cho đường tín hiệu. Dưới đây là những điểm chính xác cho cả hai phiên bản:

DHT11 cắm

Kết nối DHT11 với Arduino

Kết nối DHT11 với Arduino thực sự dễ dàng, nhưng các kết nối khác nhau tùy thuộc vào loại bạn có.

KẾT NỐI BA PIN DHT11:

KẾT NỐI BA PIN DHT11

KẾT NỐI BỐN CHÂN DHT11:

KẾT NỐI BỐN CHÂN DHT11

  • Điện trở kéo lên R1: 10K Ohm

Code hiển thị độ ẩm trên Serial Monitor

Trước khi có thể sử dụng DHT11 trên Arduino, bạn cần cài đặt thư viện DHTLib . Nó có tất cả các chức năng cần thiết để lấy các kết quả đo độ ẩm và nhiệt độ từ cảm biến. Rất dễ cài đặt, chỉ cần tải xuống tệp DHTLib.zip bên dưới và mở Arduino IDE. Sau đó đi tới Sketch> Bao gồm Thư viện> Thêm Thư viện .ZIP và chọn tệp DHTLib.zip.

Sau khi nó được cài đặt, hãy tải chương trình ví dụ này lên Arduino và mở Serial Monitor :

#include <dht.h>

dht DHT;

#define DHT11_PIN 7

void setup(){
  Serial.begin(9600);
}

void loop(){
  int chk = DHT.read11(DHT11_PIN);
  Serial.print("Temperature = ");
  Serial.println(DHT.temperature);
  Serial.print("Humidity = ");
  Serial.println(DHT.humidity);
  delay(1000);
}

Bạn sẽ thấy các chỉ số về độ ẩm và nhiệt độ được hiển thị cách nhau một giây.

Nếu bạn không muốn sử dụng chân 7 cho tín hiệu dữ liệu, bạn có thể thay đổi số pin ở dòng 5 khi nó hiển thị  #define DHT11_PIN 7.

Code hiển thị độ ẩm trên Serial Monitor trên LCD

Điều gì sẽ xảy ra nếu bạn không muốn xuất các kết quả đo độ ẩm và nhiệt độ thực tế, nhưng cần chúng để tính toán hoặc kiểm soát những thứ khác? Đoạn mã dưới đây là mức tối thiểu cần thiết để khởi tạo cảm biến. Bạn có thể thêm điều này vào các chương trình hiện có và sử dụng  DHT.humidityvà DHT.temperature dưới dạng các biến trong bất kỳ hàm nào.

#include <dht.h>

dht DHT;

#define DHT11_PIN 7

void setup(){
}

void loop(){
  int chk = DHT.read11(DHT11_PIN);
  delay(1000);
}

Video hướng dẫn Cảm biến nhiệt độ và độ ẩm DHT11 Arduino

CDK - CĐ Văn Hóa Nghệ Thuật Và Du Lịch Nha Trang

Trường Cao đẳng Văn hóa Nghệ thuật & Du lịch Nha Trang CDK chính thức được thành lập. Năm 2005, nhà trường được vinh dự đón nhận phần thưởng cao quý của Nhà nước : Huân chương Lao động Hạng Ba.

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Back to top button