Title Image

Blog Logo

🌱 Sensor-Actuator 2. Cảm biến nhiệt độ-độ ẩm DHT11

🌱 Sensor-Actuator 2. Cảm biến nhiệt độ-độ ẩm DHT11

    Ở bài viết trước mình đã giới thiệu với các bạn về Cảm biến nhiệt độ nói chung, và Cảm biến nhiệt độ LM35 nói riêng. Vẫn còn rất nhiều loại cảm biến khác có thể đo được nhiệt độ, với những ưu/nhược điểm khác nhau. Một trong số đó, cũng là một cảm biến khá phổ biến trong một số mạch điện tử, đó là cảm biến nhiệt độ - độ ẩm DHT11.

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

    Nói là phổ biến nhưng thực tế DHT11 chỉ thường được sử dụng trong các ứng dụng học tập là chính, phổ biến với DIY, học sinh, sinh viên làm đồ án, nghiên cứu khoa học. Lí do bởi giá thành tương đối rẻ và phương thức giao tiếp khá đơn giản. Còn lí do mà ít sử dụng trong ứng dụng thực tế là do độ chính xác thấp, và hoạt động kém ổn định. 

    💬 Cấu tạo

    Cảm biến DHT11 bao gồm 2 thành phần để đo 2 đại lượng nhiệt độ và độ ẩm. 

  • Một nhiệt điện trở, dùng để đo nhiệt độ, với giá trị nhiệt độ tăng lên thì giá trị điện trở này sẽ giảm xuống
  • Một cảm biến độ ẩm dạng điện dung.

    💬 Sơ đồ chân

Sensor

    Như các bạn thấy trong hình thì cảm biến DHT11 bao gồm 3 chân:

  • Vcc và Gnd để cấp nguồn cho cảm biến.
  • Data là chân để xuất data do cảm biến đọc được.

    💬 Một vài thông số kỹ thuật

  • Điện áp hoạt động: 3V - 5V, phù hợp với các ứng dụng Vi điều khiển.
  • Dòng điện tiêu thụ: 2.5mA.
  • Rải đo nhiệt độ: 0°C - 50°C, sai số khoảng 2°C.
  • Rải đo độ ẩm: 20% - 90% RH, sai số khoảng 5%RH.
  • Tần số lấy mẫu tối đa: 1Hz (1 lần lấy mẫu / 1s).
    Tham khảo DHT11 Datasheet để tìm hiểu thêm về các thông số kỹ thuật và cách hoạt động của cảm biến DHT11.

    👉 Cách giao tiếp Vi điều khiển với DHT11

    Với cấu tạo như trên bao gồm 2 thành phần, nhà sản xuất đã thêm 1 IC để xử lý dữ liệu thô nhận được từ cảm biến và chuyển đổi nó về dạng digital.

    Và cảm biến DHT11 xuất dữ liệu digital đó ra chân Data dưới dạng một chuẩn giao thức, gọi là chuẩn giao thức One-Wire.

    💬 Chuẩn giao tiếp One-Write

    One-Write là một chuẩn truyền thông nối tiếp, thường sử dụng để thu thập dữ liệu từ các cảm biến mà chỉ xuất dữ liệu ra một chân Data

    Về cơ bản, One-Wire chỉ có 1 chân data, không có chân Clock để đồng bộ dữ liệu như các giao thức SPI, I2C, ... Nên nó cần một cách quy định các bit 0/1. Cụ thể, One-Wire sử dụng độ rộng khác nhau giữa một xung thấp và một xung cao liên tiếp nhau. Ví dụ các bạn xem hình trong Datasheet ở trên. 

Sensor

    Vì vậy có thể sẽ có những biến thể của giao thức One-Wire khi chúng ta thay đổi khoảng thời gian ở trên. 

    Mỗi chip sử dụng chuẩn One-Wire có một ID duy nhất, vì vậy nó cũng có kha khá ứng dụng trong thực tế. Ví dụ: Bộ nguồn cho Laptop Dell chính hãng dùng thêm 1 dây để truyền dữ liệu về năng lượng, dòng, áp về máy tính thông qua giao thức One-Wire, và laptop sẽ không cho phép sạc nếu như bộ nguồn không có dây này. 

    💬 Kết nối phần cứng

Sensor

    Chúng ta có thể dễ dàng kết nối DHT11 với Vi điều khiển thông qua 1 chân I/O, kết hợp với một điện trở Pull-up trên đường Data.

    💬 Cách đọc dữ liệu từ cảm biến DHT11

    Để đọc giá trị nhiệt độ, độ ẩm từ cảm biến DHT11, chúng ta sẽ làm theo sequense sau:

Sensor

    Sau khi kéo đường truyền (chân Data) xuống mức thấp 1 khoảng thời gian (18ms), đưa đường truyền trở lại mức cao, thì Cảm biến sẽ bắt đầu truyền dữ liệu nhiệt độ và độ ẩm về. Tổng data mà Cảm biến trả về bao gồm 40 bits (5 bytes), trong đó: 

  • 2 bytes đầu là dữ liệu về nhiệt độ, bao gồm phần nguyên và phần thập phân.
  • 2 bytes tiếp theo là dữ liệu độ ẩm, bao gồm phần nguyên và phần thập phân.
  • Byte cuối cùng là byte checksum.
    Đối với DHT11 thì 2 byte thứ 2 và 4 (Chứa phần thập phân của nhiệt độ/độ ẩm) luôn có giá trị là 0x00, vì vậy chúng ta có thể bỏ qua mà không xử lý.

Sensor

    👉 Các bạn có thể tham khảo video dưới đây về cách đọc dữ liệu nhiệt độ/độ ẩm từ cảm biến DHT11. Hai video sử dụng 2 vi điều khiển khác nhau (AVR/STM32) để giao tiếp DHT11. Cả hai video đều có trên kênh Lập trình Nhúng A-Z, mọi người cho mình xin một Like + Subcribe để ủng hộ kênh nha 😉

        💬 Video sử dụng Vi điều khiển AVR - ATMega16/32

>>>= Follow ngay =<<<

💚 Kênh Youtube Lập trình - Điện tử 💚

Để nhận được những bài học miễn phí mới nhất nhé 😊


    Chúc các bạn học tập tốt 😊

Sensor-Actuator 1            Sensor-Actuator 3

Đăng nhận xét

0 Nhận xét