🌱 Sensor - 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
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).
👉 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.
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
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:
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.
👉 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.
💬 Video sử dụng Vi điều khiển AVR - ATMega16/32
>>>= Follow ngay =<<<
Để theo dõi 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 😊
0 Nhận xét