Hướng Dẫn Kết Nối DHT11/DHT22 Với Board Arduino
Có thể bạn quan tâm
Hướng dẫn hoàn chỉnh cho cảm biến độ ẩm và nhiệt độ DHT11 / DHT22 với Arduino
Bài viết này là hướng dẫn cho các cảm biến nhiệt độ và độ ẩm DHT11 và DHT22 phổ biến với Arduino. Chúng tôi sẽ giải thích cách nó hoạt động, hiển thị một số tính năng của nó và chia sẻ một ví dụ về dự án Arduino mà bạn có thể sửa đổi để sử dụng trong các dự án của riêng mình.
Giới thiệu cảm biến DHT11 và DHT22 Cảm biến
DHT11 và DHT22 được sử dụng để đo nhiệt độ và độ ẩm tương đối. Những cảm biến này rất phổ biến trong giới sản xuất và những người yêu thích đồ điện tử.
Các cảm biến này chứa một con chip thực hiện chuyển đổi tương tự sang kỹ thuật số và phát ra tín hiệu kỹ thuật số với nhiệt độ và độ ẩm. Điều này làm cho chúng rất dễ sử dụng với bất kỳ bộ vi điều khiển nào.
DHT11 vs DHT22
DHT11 và DHT22 rất giống nhau, nhưng khác nhau về thông số kỹ thuật. Bảng sau đây so sánh một số thông số kỹ thuật quan trọng nhất của cảm biến nhiệt độ và độ ẩm DHT11 và DHT22. Để có phân tích sâu hơn về các cảm biến này, vui lòng kiểm tra biểu dữ liệu của các cảm biến.
DHT11 | DHT22 | |
Phạm vi nhiệt độ | 0 đến 50 ºC+/- 2 ºC | -40 đến 80 ºC+/- 0,5ºC |
Phạm vi độ ẩm | 20 đến 90%+/- 5% | 0 đến 100%+/- 2% |
Độ phân giải | Độ ẩm: 1% Nhiệt độ: 1ºC | Độ ẩm: 0,1% Nhiệt độ: 0,1ºC |
Điện áp hoạt động | 3 - 5,5 V DC | 3 - 6 V DC Nguồn |
cung cấp dòng điện | 0,5 - 2,5 mA | 1 - 1,5 mA |
Thời gian lấy mẫu | 1 giây | 2 giây |
Giá | ||
Nơi mua |
Cảm biến DHT22 có độ phân giải tốt hơn và phạm vi đo nhiệt độ và độ ẩm rộng hơn. Tuy nhiên, nó đắt hơn một chút và bạn chỉ có thể lấy mẫu với khoảng thời gian 2 giây.
DHT11 có phạm vi nhỏ hơn và nó kém chính xác hơn. Tuy nhiên, bạn có thể lấy mẫu cảm biến mỗi giây. Nó cũng rẻ hơn một chút!
Bất chấp sự khác biệt của chúng, chúng hoạt động theo cách tương tự và bạn có thể sử dụng cùng một mã để đọc nhiệt độ và độ ẩm. Bạn chỉ cần chọn trong mã loại cảm biến bạn đang sử dụng.
Sơ đồ chân của cảm biến
Cảm biến DHT có bốn chân như trong hình sau. Tuy nhiên, nếu bạn có cảm biến DHT nó chỉ có ba chân và với một điện trở kéo lên bên trong trên chân 2.
Bảng sau đây cho thấy sơ đồ chân DHT22 và DHT11. Khi cảm biến hướng về phía bạn, việc đánh số chân bắt đầu từ 1 từ trái sang phải
Chân DHT | Kết nối với |
1 | 5V |
2 | Kết nối một điện trở kéo lên 10k Ohm |
3 | Không kết nối |
4 | GND |
Trong phần này, chúng tôi sẽ xây dựng một dự án đơn giản với Arduino đọc nhiệt độ và độ ẩm và hiển thị kết quả trên Màn hình nối tiếp.
Các bộ phận cần thiết
Để hoàn thành hướng dẫn này, bạn cần có các thành phần sau:
-
Arduino UNO R3
-
DHT11 cảm biến nhiệt độ và độ ẩm
-
Breadboard
-
4.7k Ohm điện trở
-
Dây
Sơ đồ đấu dây
Thực hiện theo sơ đồ tiếp theo để nối cảm biến nhiệt độ và độ ẩm DHT11 (hoặc DHT22) với Arduino.
Đây là các kết nối (từ trái sang phải):
Pin DHT Pin | Arduino |
1 | 5V |
Pin 2 | D2 hoặc bất kỳ chân kỹ thuật số nào khác |
Pin 3 | không kết nối |
Pin 4 | GND |
Lưu ý:nếu bạn đang sử dụng mô-đun có cảm biến DHT thì bình thường chỉ đi kèm với ba chân. Các ghim phải được dán nhãn để bạn biết cách đấu dây chúng. Ngoài ra, nhiều mô-đun này đã đi kèm với một điện trở kéo lên bên trong, vì vậy bạn không cần phải thêm một điện trở vào mạch.
Cài đặt Thư viện
Để đọc từ cảm biến DHT, chúng tôi sẽ sử dụng thư viện DHT từ Adafruit. Để sử dụng thư viện này, bạn cũng cần cài đặt thư viện Adafruit Unified Sensor. Làm theo các bước tiếp theo để cài đặt các thư viện đó.
Tìm kiếm “DHT” trên hộp Tìm kiếm và cài đặt thư viện DHT từ Adafruit.
Sau khi cài đặt thư viện DHT từ Adafruit, hãy nhập “Adafruit Unified Sensor” vào hộp tìm kiếm. Cuộn xuống hết cỡ để tìm thư viện và cài đặt nó.
Code Chương Trình:
Chương Trình hoạt động như thế nào?
Bạn bắt đầu bằng cách đưa vào thư viện DHT:
Sau đó, bạn xác định chân cắm mà cảm biến DHT được kết nối. Trong trường hợp này, nó được kết nối với chân số 2.
Sau đó, bạn cần xác định loại cảm biến DHT mà bạn đang sử dụng. Trong ví dụ của chúng tôi, chúng tôi đang sử dụng DHT11.
Nếu bạn đang sử dụng một cảm biến DHT khác, bạn cần nhận xét dòng trước đó và bỏ ghi chú một trong những điều sau:
Sau đó, khởi tạo đối tượng DHT được gọi là dht với mã pin và kiểu bạn đã xác định trước đó:
Trong setup (), khởi chạy Serial Monitor ở tốc độ truyền 9600 cho mục đích gỡ lỗi.
Khởi tạo cảm biến DHT bằng phương thức .begin ().
Trong vòng lặp loop() ở phần đầu, có độ trễ là 2 giây. Độ trễ này là cần thiết để cung cấp đủ thời gian cho cảm biến để đọc các kết quả. Tốc độ lấy mẫu tối đa là hai giây đối với DHT22 và một giây đối với DHT11.
Đọc nhiệt độ và độ ẩm rất đơn giản. Để lấy độ ẩm, bạn chỉ cần sử dụng phương thức readHumidity () trên đối tượng dht. Trong trường hợp này, chúng tôi đang lưu độ ẩm trong biến h. Lưu ý rằng phương thức readHumidity () trả về một giá trị kiểu float.
Tương tự, để đọc nhiệt độ, hãy sử dụng phương thức readTemperature().
Để có nhiệt độ theo độ F, chỉ cần chuyển true cho phương thức readTemperature() như sau:
Thư viện này cũng đi kèm với các phương pháp tính toán chỉ số nhiệt theo độ F và độ C:
Cuối cùng, tất cả các bài đọc được hiển thị trên Serial Monitor.
Khắc phục sự cố - Không đọc được từ cảm biến DHT
Nếu bạn đang cố đọc nhiệt độ và độ ẩm từ cảm biến DHT11 / DHT22 và bạn nhận được thông báo lỗi trong Màn hình serial, hãy làm theo các bước tiếp theo để xem liệu bạn có thể làm cho cảm biến của mình hoạt động hay không.
“Không đọc được từ cảm biến DHT!” hoặc NAN
Nếu cảm biến DHT của bạn trả về thông báo lỗi “Không đọc được từ cảm biến DHT!” hoặc các bài đọc DHT trả về “Nan”:
Hãy thử một trong các mẹo khắc phục sự cố sau:
-
Dây cắm: bạn cần kiểm tra kỹ việc cắm dây hoặc ghim. Sau khi kiểm tra và kiểm tra xem mạch của bạn đã được kết nối đúng cách chưa, nếu nó vẫn không hoạt động, hãy tiếp tục đọc các mẹo khắc phục sự cố tiếp theo.
-
Nguồn: Cảm biến DHT có phạm vi hoạt động từ 3V đến 5.5V (DHT11) hoặc 3V đến 6V (DHT22). Nếu bạn cấp nguồn cho cảm biến từ chân 3.3V, trong một số trường hợp, cấp nguồn cho DHT với 5V sẽ giải quyết được vấn đề.
-
Cổng USB hoặc cáp USB kém: đôi khi cấp nguồn trực tiếp cho Arduino từ cổng USB của PC là không đủ. Cố gắng cắm nó vào một bộ chia USB được cấp nguồn bằng nguồn điện bên ngoài. Nó cũng có thể giúp thay thế cáp USB bằng cáp tốt hơn hoặc ngắn hơn. Có cổng USB cung cấp đủ năng lượng hoặc sử dụng cáp USB tốt thường khắc phục được sự cố này.
-
Nguồn điện: như đã đề cập trong mẹo trước, Arduino của bạn có thể không cung cấp đủ nguồn để đọc đúng cách từ cảm biến DHT. Trong một số trường hợp, bạn có thể cần cấp nguồn cho Arduino bằng nguồn điện cung cấp nhiều dòng điện hơn.
-
Loại cảm biến: kiểm tra kỹ để đảm bảo rằng bạn đã bỏ ghi chú / nhận xét trong mã của mình là cảm biến phù hợp cho dự án của bạn.
-
Tỷ lệ lấy mẫu: Cảm biến DHT nhận kết quả rất chậm (quá trình đọc cảm biến có thể mất đến 2 giây). Trong một số trường hợp, việc tăng thời gian giữa các lần đọc sẽ giải quyết được vấn đề.
-
Cảm biến DHT bị cháy hoặc bị hỏng: thật không may, những cảm biến này đôi khi trông hoàn toàn ổn, nhưng chúng đã bị cháy / hỏng. Vì vậy, mặc dù bạn đã lắp ráp đúng mạch và code, nó vẫn sẽ không đạt được kết quả đọc. Hãy thử sử dụng một cảm biến khác để xem liệu nó có khắc phục được sự cố của bạn hay không.
-
Tốc độ truyền sai hoặc không thể tải mã lên: nếu bạn không thấy bất kỳ thứ gì trong Arduino IDE Serial Monitor của mình, hãy kiểm tra kỹ xem bạn đã chọn đúng tốc độ truyền, cổng COM hoặc bạn đã tải mã lên thành công chưa.
Trong khi xây dựng các dự án của mình, chúng tôi đã gặp phải các vấn đề tương tự với DHT và nó luôn được giải quyết bằng cách làm theo một trong các phương pháp được mô tả trước đó.
Kết Luận
Các cảm biến DHT11 và DHT22 cung cấp một cách dễ dàng và không tốn kém để đo nhiệt độ và độ ẩm với Arduino.
Việc đấu dây rất đơn giản - bạn chỉ cần kết nối chân dữ liệu DHT với chân kỹ thuật số Arduino. Việc viết mã để lấy nhiệt độ và độ ẩm cũng đơn giản nhờ DHT thư viện.
Từ khóa » Thư Viện Dht.h
-
Adafruit/DHT-sensor-library - GitHub
-
DHT Sensor Library - Arduino Reference
-
DHT Sensor Library
-
Đọc Nhiệt độ, độ ẩm (DHT11) Sử Dụng Arduino Uno
-
Phần 1: Arduino Căn Bản Với Esp8266 → Nhiệt độ Và độ ẩm DHT
-
Lập Trình Giao Tiếp Cảm Biến DHT Với Board Mạch Arduino - Góc Học IT
-
Đọc Nhiệt độ - độ ẩm Và Xuất Ra Màn Hình LCD
-
Đọc Cảm Biến DHT22 Bằng 2 Cách? (Cách Cũ Và Không Bị Delay)
-
Thư Viện Cảm Biến Nhiệt độ độ ẩm DHT11 - Linh Kiện ROBOTICS
-
Cách Dùng Cảm Biến Nhiệt độ Và độ ẩm DHT11 Với ESP32 - OhStem
-
Hướng Dẫn Sử Dụng Cảm Biến Nhiệt độ - độ ẩm DHT11
-
Reference - Vọc Vạch DHT11 Lấy Thông Số Humidity & Temperature ...
-
DHTstable - Thư Viện Arduino Cho Cảm Biến Nhiệt độ Và độ ẩm DHT.