DHT11: tất cả về cảm biến đo nhiệt độ và độ ẩm

ĐHT11

Đo nhiệt độ và độ ẩm rất phổ biến trong nhiều dự án sản xuất điện tử. Trong DIY, thông thường người ta phải đo các thông số này để điều khiển một số hệ thống nhất định. Ví dụ, để có thể tạo ra một hệ thống làm lạnh, chăm sóc cây trồng hoặc điều hòa không khí khởi động nếu nhiệt độ hoặc độ ẩm đạt đến một giá trị nhất định. Nhưng để điều đó có thể, bạn cần một cảm biến như DHT11.

Trên thị trường có rất nhiều cảm biến phạm vi nhiệt độ rất khác nhau, với các phạm vi nhiệt độ được hỗ trợ hoặc các giới hạn khác nhau. Một ví dụ về điều này là LM35, một trong những thiết bị điện tử phổ biến và được sử dụng nhiều nhất. Ngoài ra còn có các cảm biến độ ẩm khác hoạt động theo sự thay đổi của độ dẫn điện như AD22103KTZ từ Thiết bị Analog. Nhưng nếu bạn muốn đo cả hai thông số, có lẽ thiết bị mà chúng ta thảo luận trong bài viết ngày hôm nay được quan tâm hơn nhiều ...

DHT11 là gì?

El DHT11 là một cảm biến đơn giản để đo nhiệt độ và độ ẩm, tất cả hợp lại thành một. A) Có bạn sẽ không phải mua hai cảm biến riêng biệt. Giá của nó là khoảng € 2, vì vậy nó khá rẻ, mặc dù bạn cũng có thể tìm thấy nó được gắn trên một mô-đun (gắn trên PCB để dễ sử dụng) như thường thấy trong loại linh kiện điện tử này cho Arduino. Trong trường hợp của bo mạch, nó bao gồm một điện trở kéo lên 5 kilo ohm và một đèn LED cảnh báo chúng tôi về hoạt động.

DHT11 có độ tin cậy và độ ổn định cao do tín hiệu kỹ thuật số được hiệu chỉnh. Ngoài ra, nếu bạn nhìn vào biểu dữ liệu của nó, bạn sẽ thấy rằng nó có các tính năng thú vị, như bạn sẽ thấy trong các phần sau.

Sản phẩm tương tự

ĐHT22

Có một sản phẩm tương tự như DHT11 mà bạn có thể quan tâm. Nó là DHT22. Nó cũng là một cảm biến nhiệt độ và độ ẩm tích hợp, nhưng trong trường hợp này, giá của nó cao hơn một chút, khoảng € 4. Độ chính xác để đo nhiệt độ là biến thiên 5% cũng giống như DHT11, nhưng không giống như nó, nó đo ngoài phạm vi độ ẩm từ 20 đến 80%. Do đó, bạn có thể quan tâm đến DHT22 cho các dự án cần đo độ ẩm từ 0 đến 100%.

La tần suất thu thập dữ liệu nó cũng gấp đôi so với DHT11, trong DHT22 2 mẫu được lấy mỗi giây thay vì 1 mẫu mỗi giây của DHT11. Đối với nhiệt độ, nó có thể đo từ -40ºC đến + 125ºC với độ chính xác cao hơn, vì nó có thể đo các phần của độ, đặc biệt nó có thể đánh giá cao các biến thể cộng / trừ 0,5ºC.

Sơ đồ chân, tính năng và biểu dữ liệu

Sơ đồ chân DHT11

Bạn có thể tìm thấy khá nhiều thông tin kỹ thuật về DHT11 trong bảng dữ liệu của bạn. Mỗi nhà sản xuất thiết bị này có thể cung cấp một số giá trị có thể khác nhau, vì vậy tôi luôn khuyên bạn nên đọc bản PDF của nhà sản xuất cụ thể của thiết bị mà bạn đã mua. Mặc dù hầu hết các giá trị có thể giống nhau đối với bạn, nhưng có thể có một số thay đổi nhỏ từ giá trị này sang giá trị khác. Các đặc tính kỹ thuật quan trọng nhất của nó là:

  • Nguồn điện 3,5v đến 5v
  • Mức tiêu thụ hiện tại 2,5mA
  • Tín hiệu đầu ra kỹ thuật số
  • Phạm vi nhiệt độ từ 0ºC đến 50ºC
  • Độ chính xác để đo nhiệt độ ở 25ºC, dao động khoảng 2ºC
  • Độ phân giải để đo nhiệt độ là 8-bit, 1ºC
  • Độ ẩm có thể đo từ 20% RH đến 90% RH
  • Độ ẩm chính xác 5% RH cho nhiệt độ từ 0-50ºC
  • Độ phân giải là 1% RH, nó không thể nhận các biến thể dưới mức đó
  • Mouser Datasheet

Về dữ liệu, phát sóng kỹ thuật số. Do đó, không cần thiết phải chuyển từ tương tự sang kỹ thuật số như ở các cảm biến khác. Điều đó phức tạp để viết mã trong Arduino IDE, nhưng trong trường hợp này, nó không cần thiết và nó dễ dàng hơn nhiều. Mặc dù bản thân cảm biến là tương tự, nhưng nó bao gồm một hệ thống để thực hiện chuyển đổi và có thể được kết nối trực tiếp với đầu vào kỹ thuật số của Arduino.

Tín hiệu tương tự, là một biến thể của điện áp, từ cảm biến được chuyển đổi thành định dạng kỹ thuật số để gửi đến vi điều khiển Arduino. Nó được truyền trong khung 40 bit tương ứng với thông tin về độ ẩm và nhiệt độ được DHT11 ghi lại. Hai nhóm 8 bit đầu tiên dành cho độ ẩm, tức là 16 bit quan trọng nhất của khung này. Sau đó, 2 nhóm 8-bit còn lại cho nhiệt độ. Nghĩa là, nó có hai byte cho độ ẩm và hai byte cho nhiệt độ. Ví dụ:

0011 0101 0000 0010 0001 1000 0000 0000 0011 1001

Trong trường hợp này, 0011 0101 0000 0010 là giá trị độ ẩm và 0001 1000 0000 0000 là nhiệt độ. Phần đầu tiên dành cho phần nguyên và phần thứ hai dành cho số thập phân. Đối với 0011 1001, nghĩa là, 8 bit cuối cùng là chẵn lẻ để tránh những sai lầm. Bằng cách đó, bạn có thể kiểm tra xem mọi thứ có chính xác trong quá trình truyền hay không. Nó tương ứng với tổng của các bit trước đó, do đó, nếu tổng bằng chẵn lẻ thì nó sẽ đúng. Trong ví dụ mà tôi đã đưa, nó sẽ không như vậy, bởi vì như bạn có thể thấy nó không tương ứng ... Điều đó sẽ cho thấy một sự thất bại.

Khi điều này đã được biết, cấp độ kỹ thuật tiếp theo của DHT11 cần được lưu ý là các chân. Các danh bạ hoặc sơ đồ chân của thiết bị này rất đơn giản, vì nó chỉ có 4 trong số chúng. Một trong các chân dành cho nguồn hoặc Vcc, chân còn lại dành cho I / O để truyền dữ liệu, một chân NC không kết nối và GND cho kết nối đất.

Tích hợp với Arduino

Kết nối DHT11 với Arduino

Một khi bạn biết sơ đồ chân của DHT11 và cũng bảng Arduino, kết nối rất đơn giản. Hãy nhớ rằng nếu bạn đã chọn mô-đun DHT11 được tích hợp vào PCB, các chân cắm sẽ là ba chân, vì NC được loại bỏ để làm cho mọi thứ dễ dàng hơn. Tất cả những gì bạn phải làm là kết nối chân nối đất với một trong các kết nối GND của Arduino như nó xuất hiện trong sơ đồ ở hình trước.

Mặt khác, chân nguồn phải được kết nối với kết nối 5v từ Arduino, do đó cảm biến sẽ được cấp nguồn hoàn toàn với GND và Vcc, nhưng hiện tại dữ liệu bị thiếu. Để truyền dữ liệu từ cảm biến DHT11 đến bảng Arduino, bạn có thể sử dụng bất kỳ đầu vào kỹ thuật số nào, chẳng hạn như số 7 xuất hiện trong hình ảnh ... Bây giờ bạn đã có mọi thứ sẵn sàng để sử dụng sau khi bạn đã tạo mã cần thiết trong Arduino IDE ...

Nếu cảm biến ở xa trong dự án của bạn và bạn sẽ sử dụng cáp dài hơn 20 mét, thì hãy sử dụng điện trở kéo lên 5k, đối với cáp lớn hơn, nó phải lớn hơn tương ứng. Lưu ý rằng nếu bạn sử dụng nguồn 3,5v thay vì 5v, thì dây cáp không được dài hơn 20cm do sụt áp.

Hãy nhớ rằng những gì họ đề xuất là thực hiện các phép đo sau mỗi 5 giây, mặc dù tần số lấy mẫu mà tại đó DHT11 có thể hoạt động cao hơn, nhưng nếu nó được thực hiện thường xuyên hơn thì nó có thể không chính xác.

Mã trong Arduino IDE

Đi thẳng vào mã, hãy nói điều đó trong IDE Arduino bạn có thể sử dụng một số thư viện hiện có với các tính năng giúp cuộc sống của bạn dễ dàng hơn với DHT11. Ví dụ, một trong số chúng là cung cấp Adafruit. Hãy nhớ rằng chúng tôi có hướng dẫn dành cho người mới bắt đầu với Arduino ở dạng PDF mà bạn có thể tải xuống miễn phí từ đây và nó có thể giúp bạn.

Khi bạn đã cài đặt thư viện tương ứng, bạn có thể nhận xét Nhập mã để điều khiển cảm biến nhiệt độ và độ ẩm DHT11 cho dự án của bạn bằng Arduino. Ví dụ:

#include "DHT.h"

const int DHTPin = 7;     
 
DHT dht(DHTPin, DHTTYPE);
 
void setup() {
   Serial.begin(9600);
   Serial.println("Midiendo...");
 
   dht.begin();
}
 
void loop() {
   delay(2000);
 
   float h = dht.readHumidity();
   float t = dht.readTemperature();
 
   if (isnan(h) || isnan(t)) {
      Serial.println("Fallo en la lectura del sensor DHT11");
      return;
   }
 
 
   Serial.print("Humedad relativa: ");
   Serial.print(h);
   Serial.print(" %\t");
   Serial.print("Temperatura: ");
   Serial.print(t);
   Serial.print(" ºC ");
}


Hãy là người đầu tiên nhận xét

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.