Raspberry Pi DHT11 Cảm biến Nhiệt độ và Độ ẩm
Hướng dẫn này sẽ chỉ bạn cách sử dụng Raspberry Pi để đọc nhiệt độ và độ ẩm từ cảm biến DHT11. Cụ thể, chúng ta sẽ học:
- Cách kết nối Raspberry Pi với cảm biến DHT11
- Cách lập trình Raspberry Pi để đọc giá trị nhiệt độ và độ ẩm từ DHT11
Chúng tôi gợi ý:
- Sử dụng Raspberry Pi - Cảm Biến Nhiệt Độ nếu bạn chỉ cần đo nhiệt độ. Đây là cảm biến giá rẻ và gọn gàng có thể đặt trong nước nóng hoặc lạnh.
- Sử dụng Raspberry Pi - DHT22 nếu bạn cần đo nhiệt độ và độ ẩm với độ chính xác cao hơn.
Linh Kiện Cần Thiết
| 1 | × | Raspberry Pi 5 | ||
| 1 | × | Module Cảm biến Nhiệt độ Độ ẩm DHT11 | ||
| 1 | × | Điện trở 10 kΩ | ||
| 1 | × | breadboard (bo mạch thí nghiệm) | ||
| 1 | × | Dây Jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Raspberry Pi | ||
| 1 | × | (Khuyến nghị) Raspberry Pi Prototyping Base Plate & Breadboard Kit | ||
| 1 | × | (Khuyến nghị) HDMI Touch Screen Monitor for Raspberry Pi |
Or you can buy the following kits:
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về Cảm biến Nhiệt độ và Độ ẩm DHT11
Sơ đồ chân Cảm biến Nhiệt độ và Độ ẩm
DHT11 trên thị trường có hai dạng: cảm biến nguyên bản và module.
DHT11 dạng cảm biến nguyên bản có bốn chân:
- GND: Chân này phải được kết nối với đất (0V)
- VCC: Chân này phải được kết nối với nguồn điện (5V)
- DATA: Chân này được sử dụng để giao tiếp giữa cảm biến và Raspberry Pi
- NC: Chân này không cần kết nối và có thể bỏ qua

DHT11 dạng module có ba chân:
- Chân GND (-): phải được kết nối với GND (0V)
- Chân VCC (+): phải được kết nối với VCC (5V)
- Chân OUT: được sử dụng để giao tiếp giữa cảm biến và Raspberry Pi
※ Lưu ý:
Cách sắp xếp các chân trên module có thể khác nhau giữa các nhà sản xuất. Điều quan trọng là luôn sử dụng các nhãn được in trên module khi làm việc với nó. Hãy quan sát kỹ!
Sơ đồ Đấu Nối
Cách đấu nối với Raspberry Pi là giống nhau cho cả hai loại cảm biến. Với dạng nguyên bản, cần một điện trở có giá trị từ 5K đến 10K Ohms để giữ đường truyền dữ liệu ở mức cao, từ đó cho phép giao tiếp giữa cảm biến và Raspberry Pi.
Đấu nối Raspberry Pi - Cảm biến DHT11

This image is created using Fritzing. Click to enlarge image
Kết nối cảm biến DHT11 với Raspberry Pi như sau:
- Chân VCC của DHT11 với chân 5V của Raspberry Pi (chân 2 hoặc bất kỳ chân GPIO 5V nào)
- Chân GND của DHT11 với chân GND của Raspberry Pi (chân 30 hoặc bất kỳ chân GPIO GND nào)
- Chân DATA của DHT11 với một chân GPIO của Raspberry Pi (ví dụ: GPIO 12 (chân 32).
Để có độ ổn định tốt hơn, bạn cần thêm một điện trở (có giá trị từ 5K đến 10K Ohms) giữa chân VCC và DATA của DHT11.
Đấu nối Raspberry Pi - Module DHT11
Hầu hết các module cảm biến DHT11 đều có điện trở tích hợp sẵn, do đó loại bỏ nhu cầu đấu nối thêm hoặc hàn.

This image is created using Fritzing. Click to enlarge image
Kết nối module DHT11 với Raspberry Pi như sau:
- Chân VCC của DHT11 với chân 5V của Raspberry Pi (chân 2 hoặc bất kỳ chân GPIO 5V nào)
- Chân GND của DHT11 với chân GND của Raspberry Pi (chân 30 hoặc bất kỳ chân GPIO GND nào)
- Chân DATA của DHT11 với một chân GPIO của Raspberry Pi (ví dụ: GPIO 12 (chân 32).
Cách Lập Trình Raspberry Pi để đọc Nhiệt độ và Độ ẩm từ Cảm biến DHT11
Các Bước Thực Hiện
- Đảm bảo bạn đã cài đặt Raspbian hoặc bất kỳ hệ điều hành tương thích Raspberry Pi nào khác trên Pi của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối với cùng mạng cục bộ với PC của bạn.
- Đảm bảo Raspberry Pi của bạn được kết nối với internet nếu bạn cần cài đặt một số thư viện.
- Nếu đây là lần đầu tiên bạn sử dụng Raspberry Pi, xem Raspberry Pi - Cài Đặt Phần Mềm
- Kết nối PC của bạn với Raspberry Pi qua SSH bằng SSH client tích hợp sẵn trên Linux và macOS hoặc PuTTY trên Windows. Xem cách kết nối PC với Raspberry Pi qua SSH.
- Đảm bảo bạn đã cài đặt thư viện RPi.GPIO. Nếu chưa, cài đặt nó bằng lệnh sau:
- Cài đặt thư viện cho cảm biến nhiệt độ và độ ẩm DHT11 bằng cách chạy lệnh sau:
- Tạo file script Python DHT11.py và thêm code sau:
- Lưu file và chạy script Python bằng cách thực hiện lệnh sau trong Terminal:
- Kiểm tra kết quả trên terminal.
Script sẽ liên tục đọc dữ liệu cảm biến mỗi 2 giây (như được chỉ định trong dòng time.sleep(2)), vì vậy bạn sẽ thấy các số đo được cập nhật như thế này mỗi 2 giây cho đến khi bạn dừng script bằng cách nhấn tổ hợp phím Ctrl + C trong terminal.
Nếu vì lý do nào đó script không đọc được dữ liệu từ cảm biến, nó sẽ hiển thị:
Kiến Thức Bổ Sung
Hãy nhớ rằng cảm biến DHT11 không phải là cảm biến chính xác hoặc đáng tin cậy nhất hiện có. Nếu bạn cần độ chính xác cao hơn, bạn có thể cân nhắc sử dụng DHT22 hoặc các cảm biến tiên tiến hơn.
Hãy so sánh cảm biến DHT11 và DHT22.
Điểm chung giữa DHT11 và DHT22:
- Cung cấp thông tin nhiệt độ và độ ẩm.
- Sơ đồ chân giống nhau.
- Cách đấu nối với Raspberry Pi không đổi.
Sự khác biệt giữa DHT11 và DHT22:
| DHT11 | DHT22 | |
|---|---|---|
| Giá | cực rẻ | giá rẻ |
| Dải Nhiệt độ | 0°C đến 50°C | -40°C đến 80°C |
| Độ chính xác Nhiệt độ | ± 2°C | ± 0.5°C |
| Dải Độ ẩm | 20% đến 80% | 0% đến 100% |
| Độ chính xác Độ ẩm | 5% | ± 2 đến 5% |
| Tốc độ Đọc | 1Hz (một lần mỗi giây) | 0.5Hz (một lần mỗi 2 giây) |
| Kích thước | 15.5mm x 12mm x 5.5mm | 15.1mm x 25mm x 7.7mm |
Rõ ràng, DHT22 chính xác hơn DHT11 và có phạm vi rộng hơn, mặc dù giá thành cao hơn.
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.