ESP8266 DHT22
Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 để đọc nhiệt độ và độ ẩm từ cảm biến DHT22. Cụ thể, chúng ta sẽ tìm hiểu:
- Cách kết nối ESP8266 với cảm biến DHT22
- Cách lập trình ESP8266 để đọc nhiệt độ và độ ẩm từ cảm biến DHT22
Phần cứng cần chuẩn bị
| 1 | × | ESP8266 NodeMCU ESP-12E | ||
| 1 | × | Recommended: ESP8266 NodeMCU ESP-12E (Uno-form) | ||
| 1 | × | USB Cable Type-A to Type-C (for USB-A PC) | ||
| 1 | × | USB Cable Type-C to Type-C (for USB-C PC) | ||
| 1 | × | DHT22 Temperature Humidity Sensor Module | ||
| 1 | × | 10 kΩ Resistor | ||
| 1 | × | breadboard | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Expansion Board for ESP8266 | ||
| 1 | × | (Khuyến nghị) Power Splitter for ESP8266 Type-C |
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 DHT22
Cấu hình chân của cảm biến nhiệt độ và độ ẩm
DHT22 trên thị trường có hai dạng: cảm biến và mô-đun.
Cảm biến DHT22 có bốn chân:
- GND pin: phải được kết nối với GND (0V)
- VCC pin: phải được kết nối với VCC (5V)
- DATA pin: dùng để giao tiếp giữa cảm biến và ESP8266
- NC pin: Không được kết nối, pin này có thể bỏ qua

Mô-đun DHT22 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 dùng để giao tiếp giữa cảm biến và ESP8266
※ Lưu ý:
Cách bố trí các chân trên một module có thể khác nhau tùy thuộc vào nhà sản xuất. Việc sử dụng nhãn được in trên module làm tham khảo là bắt buộc. Hãy nhìn kỹ nhé!
Sơ đồ đấu dây
ESP8266 - Đấu Dây Cảm Biến DHT22
Một điện trở có giá trị từ 5 kΩ đến 10 kΩ là cần thiết để duy trì đường dữ liệu ở mức cao, từ đó cho phép giao tiếp giữa cảm biến và ESP8266.

This image is created using Fritzing. Click to enlarge image
Xem thêm Sơ đồ chân ESP8266 và Cách cấp nguồn cho ESP8266.
ESP8266 - Kết nối mô-đun DHT22
Hầu hết các mô-đun cảm biến DHT22 có một điện trở tích hợp, do đó không cần thêm dây dẫn hoặc hàn.

This image is created using Fritzing. Click to enlarge image
Cách Lập Trình Cho Cảm Biến Nhiệt Độ DHT22
- Để bắt đầu, thư viện phải được bao gồm:
- Xác định chân ESP8266 được kết nối với cảm biến DHT22.
- Chỉ định loại cảm biến: DHT22
- Tạo một đối tượng DHT.
- Bắt đầu thiết lập cảm biến:
- Đọc giá trị độ ẩm.
- Đọc nhiệt độ ở độ C.
- Đọc nhiệt độ theo thang Fahrenheit.
Mã ESP8266 cho DHT22
Hướng dẫn từng bước
Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:
- Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu tiên bạn sử dụng ESP8266.
- Nối các linh kiện theo sơ đồ.
- Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
- Mở Arduino IDE trên máy tính của bạn.
- Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
- Kết nối cáp USB giữa ESP8266 và máy tính.
- Mở Arduino IDE, chọn đúng bo mạch và cổng.
- Nhấp vào biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
- Tìm kiếm “DHT”, và sau đó tìm thư viện cảm biến DHT của Adafruit.
- Nhấn nút Cài đặt để hoàn tất cài đặt.

- Bạn sẽ được nhắc cài đặt thêm một số phụ thuộc thư viện khác.
- Để cài đặt tất cả các thư viện này, hãy nhấp vào nút Install All.

- Sao chép mã tương ứng với cảm biến bạn có và mở nó bằng Arduino IDE.
- Nhấp vào nút Tải lên trong Arduino IDE để biên dịch và tải mã lên ESP8266.
- Thay đổi nhiệt độ của môi trường xung quanh cảm biến.
- Kiểm tra kết quả trên Serial Monitor.
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.
Kiến thức bổ sung
Hãy so sánh cảm biến DHT11 và DHT22.
Những điểm chung giữa DHT11 và DHT22
- Các chân pin vẫn giữ nguyên.
- Dây kết nối tới ESP8266 không bị thay đổi.
- Việc lập trình, với việc sử dụng một thư viện, tương đối giống nhau, chỉ cần sửa một dòng mã.
Các khác biệt giữa DHT11 và DHT22.
| DHT11 | DHT22 | |
|---|---|---|
| Price | ultra low cost | low cost |
| Temperature Range | 0°C to 50°C | -40°C to 80°C |
| Temperature Accuracy | ± 2°C | ± 0.5°C |
| Humidity Range | 20% to 80% | 0% to 100% |
| Humidity Accuracy | 5% | ± 2 to 5% |
| Reading Rate | 1Hz (once every second) | 0.5Hz (once every 2 seconds) |
| Body size | 15.5mm x 12mm x 5.5mm | 15.1mm x 25mm x 7.7mm |
Rõ ràng, DHT22 có độ chính xác cao hơn DHT11, có phạm vi đo rộng hơn, tuy nhiên đắt hơn.