Cách Kết Nối Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với Arduino

Mục lục:

Cách Kết Nối Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với Arduino
Cách Kết Nối Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với Arduino

Video: Cách Kết Nối Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với Arduino

Video: Cách Kết Nối Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với Arduino
Video: Arduino | Hiển Thị Nhiệt Độ & Độ Ẩm Cảm Biến DHT11 Lên LCD 2024, Có thể
Anonim

Cảm biến nhiệt độ và độ ẩm DHT17 là một cảm biến phổ biến và rẻ tiền có thể được sử dụng trên một phạm vi nhiệt độ khá rộng và độ ẩm tương đối. Hãy xem cách kết nối nó với Arduino và cách đọc dữ liệu từ nó.

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

Cần thiết

  • - Arduino;
  • - Cảm biến nhiệt độ và độ ẩm DHT17.

Hướng dẫn

Bước 1

Vì vậy, cảm biến DHT11 có các đặc điểm sau:

- phạm vi độ ẩm tương đối đo được - 20..90% với sai số lên đến 5%, - phạm vi nhiệt độ đo được - 0..50 độ C với sai số lên đến 2 độ;

- thời gian đáp ứng với những thay đổi về độ ẩm - lên đến 15 giây, nhiệt độ - lên đến 30 giây;

- khoảng thời gian bỏ phiếu tối thiểu là 1 giây.

Như bạn có thể thấy, cảm biến DHT11 không chính xác lắm và phạm vi nhiệt độ không bao gồm các giá trị âm, điều này hầu như không phù hợp cho các phép đo ngoài trời vào mùa lạnh ở khí hậu của chúng ta. Tuy nhiên, giá thành rẻ, kích thước nhỏ và dễ sử dụng đã phần nào bù đắp được những nhược điểm này.

Hình bên cho thấy sự xuất hiện của cảm biến và kích thước của nó tính bằng milimét.

Hình thức và kích thước của cảm biến DHT11
Hình thức và kích thước của cảm biến DHT11

Bước 2

Hãy xem xét sơ đồ kết nối của cảm biến nhiệt độ và độ ẩm DHT11 với bộ vi điều khiển, cụ thể là với Arduino. Trên hình ảnh:

- MCU - vi điều khiển (ví dụ, Arduino hoặc tương tự) hoặc máy tính bảng đơn (Raspberry Pi hoặc tương tự);

- DHT11 - cảm biến nhiệt độ và độ ẩm;

- DATA - bus dữ liệu; nếu chiều dài của cáp kết nối từ cảm biến đến vi điều khiển không vượt quá 20 mét thì nên kéo bus này đến nguồn điện có điện trở 5, 1 kOhm; nếu hơn 20 mét, thì giá trị phù hợp khác (nhỏ hơn).

- VDD - nguồn cấp cho cảm biến; điện áp cho phép từ ~ 3.0 đến ~ 5.5 volt DC; Nếu sử dụng nguồn điện ~ 3.3 V, thì nên sử dụng dây cấp không dài hơn 20 cm.

Một trong các dây dẫn cảm biến - dây dẫn thứ ba - không được kết nối với bất cứ thứ gì.

Cảm biến DHT11 thường được bán dưới dạng lắp ráp hoàn chỉnh với đường ống cần thiết - điện trở kéo lên và tụ lọc.

Sơ đồ kết nối cảm biến DHT11 với vi điều khiển
Sơ đồ kết nối cảm biến DHT11 với vi điều khiển

Bước 3

Chúng ta hãy cùng nhau đưa ra kế hoạch được xem xét. Tôi cũng sẽ kết nối một bộ phân tích logic với mạch để tôi có thể nghiên cứu sơ đồ thời gian của giao tiếp với cảm biến.

Cảm biến DHT11 và Arduino
Cảm biến DHT11 và Arduino

Bước 4

Hãy đi theo cách đơn giản: tải xuống thư viện cho cảm biến DHT11 (liên kết trong phần "Nguồn"), cài đặt nó theo cách tiêu chuẩn (giải nén nó vào thư mục / thư viện / của môi trường phát triển Arduino).

Hãy viết một bản phác thảo đơn giản như vậy. Hãy tải nó vào Arduino. Bản phác thảo này sẽ xuất ra các thông báo RH và Nhiệt độ được đọc từ cảm biến DHT11 tới cổng nối tiếp của máy tính sau mỗi 2 giây.

Phác thảo để làm việc với cảm biến nhiệt độ-độ ẩm DHT11
Phác thảo để làm việc với cảm biến nhiệt độ-độ ẩm DHT11

Bước 5

Bây giờ, bằng cách sử dụng sơ đồ thời gian thu được từ bộ phân tích logic, hãy tìm cách trao đổi thông tin được thực hiện.

Cảm biến nhiệt độ và độ ẩm DHT11 sử dụng giao diện nối tiếp một dây để giao tiếp với bộ vi điều khiển. Một lần trao đổi dữ liệu mất khoảng 40 ms và chứa: 1 bit yêu cầu từ bộ vi điều khiển, 1 bit phản hồi của cảm biến và 40 bit dữ liệu từ cảm biến. Dữ liệu bao gồm: 16 bit thông tin độ ẩm, 26 bit thông tin nhiệt độ và 8 bit kiểm tra.

Chúng ta hãy xem xét kỹ hơn sơ đồ thời gian của giao tiếp Arduino với cảm biến DHT11.

Qua hình vẽ có thể thấy có hai loại xung động: ngắn và dài. Các xung ngắn trong giao thức trao đổi này biểu thị các số không, các xung dài - một.

Vì vậy, hai xung đầu tiên là yêu cầu của Arduino đối với DHT11 và theo đó là phản hồi của cảm biến. Tiếp theo là độ ẩm 16 bit. Hơn nữa, chúng được chia thành các byte, cao và thấp, cao ở bên trái. Đó là, trong hình của chúng tôi, dữ liệu độ ẩm như sau:

0001000000000000 = 00000000 00010000 = 0x10 = 16% RH.

Dữ liệu nhiệt độ tương tự như:

0001011100000000 = 00000000 00010111 = 0x17 = 23 độ C.

Các bit kiểm tra - tổng kiểm tra chỉ là tổng của 4 byte dữ liệu đã nhận:

00000000 +

00010000 +

00000000 +

00010111 =

00100111 ở dạng nhị phân hoặc 16 + 23 = 39 ở dạng thập phân.

Đề xuất: