ESP8266 DHT11
Hướng dẫn này sẽ chỉ cho bạn cách sử dụng ESP8266 để đọc nhiệt độ và độ ẩm từ cảm biến DHT11. Cụ thể, chúng ta sẽ tìm hiểu:
- Cách kết nối ESP8266 với cảm biến DHT11
- Cách lập trình ESP8266 để đọc nhiệt độ và độ ẩm từ DHT11
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 | × | DHT11 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) |
Giới thiệu về Cảm biến Nhiệt độ và Độ ẩm DHT11
Bảng chân của cảm biến nhiệt độ và độ ẩm
DHT11 trên thị trường có hai dạng: cảm biến và module.
Các cảm biến DHT11 có bốn chân:
- Chân GND: phải được nối với GND (0V)
- Chân VCC: phải được nối với VCC (5V)
- Chân DATA: được dùng để giao tiếp giữa cảm biến và ESP8266
- Chân NC: Không được kết nối, chân này có thể bỏ qua

Mô-đun DHT11 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à ESP8266
※ Lưu ý:
Việc 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 in trên module làm tham chiếu là bắt buộc. Hãy xem kỹ!
Sơ đồ đấu dây
ESP8266 - Dây kết nối cảm biến DHT11
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 - Đấu dây module DHT11
Hầu hết các mô-đun cảm biến DHT11 đều có đ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 Độ DHT11
- Để 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 DHT11.
- Xác định loại cảm biến: DHT11
- Tạo một đối tượng DHT.
- Bắt đầu quá trình thiết lập cảm biến:
- Đọc giá trị độ ẩm.
- Đọc nhiệt độ ở độ C.
- Đọc nhiệt độ theo đơn vị Fahrenheit.
Mã ESP8266 cho DHT11
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 bạn sử dụng ESP8266.
- Nối các thành phần như được hiển thị trong 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, chẳng hạn (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à PC.
- 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 đó xác định thư viện cảm biến DHT của Adafruit.
- Nhấn nút Cài đặt để hoàn tất việc cài đặt.

- Bạn sẽ được yêu cầu cài đặt 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ấn nút Cài đặt Tất cả.

- 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.
- Xem 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ấu hình chân cắm vẫn giữ nguyên.
- Việc đấu dây tới ESP8266 vẫn không thay đổi.
- Việc lập trình, khi sử dụng một thư viện, tương đối giống nhau; chỉ cần sửa một dòng mã.
Sự 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, phạm vi đo lường rộng hơn, nhưng giá thành lại cao hơn.