Arduino DHT11

Trong hướng dẫn này, chúng ta sẽ học:

Phần cứng cần chuẩn bị

1×Arduino Uno R3
1×USB 2.0 cable type A/B (for USB-A PC)
1×USB 2.0 cable type C/B (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 Block Shield for Arduino Uno
1×(Khuyến nghị) Breadboard Shield for Arduino Uno
1×(Khuyến nghị) Enclosure for Arduino Uno
1×(Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO

Or you can buy the following kits:

1×DIYables STEM V3 Starter Kit (Arduino included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về cảm biến nhiệt độ và độ ẩm DHT11

DHT11
Operating Voltage3 to 5V
Temperature Range 0°C to 50°C
Temperature Accuracy ± 2°C
Humidity Range 20% to 80%
Humidity Accuracy 5%
Reading Rate 1Hz (once every second)

Sơ đồ chân

DHT11 có hai dạng: cảm biến và mô-đun.

sơ đồ chân của cảm biến nhiệt độ và độ ẩm dht11

Cảm biến DHT11 có bốn chân:

  • Chân GND: cần được kết nối với GND (0V)
  • Chân VCC: cần được kết nối với VCC (5V, hoặc 3.3V)
  • Chân DATA: chân được dùng để giao tiếp giữa cảm biến và Arduino
  • Chân NC: Không được kết nối, chúng ta có thể bỏ qua chân này

Mô-đun DHT11 có ba chân:

  • Chân GND: cần được kết nối với GND (0V)
  • Chân VCC: cần được kết nối với VCC (5V hoặc 3.3V)
  • Chân DATA: chân này được dùng để giao tiếp giữa cảm biến và Arduino

Một số nhà sản xuất cung cấp cảm biến DHT11 ở dạng module có ba chân: GND, VCC và DATA (hoặc tương ứng: -, + và OUT).

Sơ đồ đấu dây

Trong mạch cảm biến, một điện trở từ 5 kΩ đến 10 kΩ là cần thiết để giữ cho đường dữ liệu ở mức cao và để cho phép giao tiếp giữa cảm biến DHT11 và Arduino.

Arduino - Dây kết nối cảm biến DHT11

sơ đồ kết nối cảm biến dht11 nhiệt độ và độ ẩm cho Arduino

This image is created using Fritzing. Click to enlarge image

Arduino - Kết nối mô-đun DHT11

Hầu hết các mô-đun cảm biến DHT11 đều có một điện trở tích hợp sẵn, nên bạn không cần phải thêm nó. Điều đó giúp bạn tiết kiệm một số công việc nối dây hoặc hàn.

sơ đồ đấu nối mô-đun dht11 cho Arduino – nhiệt độ và độ ẩm

This image is created using Fritzing. Click to enlarge image

Cách Lập Trình Cảm Biến Nhiệt Độ DHT11

Lập trình cho cả hai cảm biến tương tự. Chỉ có một dòng mã khác.

  • Bao gồm thư viện:
#include "DHT.h"
  • Định nghĩa chân Arduino được kết nối với cảm biến DHT:
#define DHT11_PIN 2
  • Khai báo đối tượng DHT11
DHT dht11(DHT11_PIN, DHT11);
  • Khởi tạo cảm biến:
dht11.begin();
  • Đọc độ ẩm:
float humi = dht11.readHumidity();
  • Đọc nhiệt độ ở độ C:
float tempC = dht11.readTemperature();
  • Đọc nhiệt độ theo thang Fahrenheit:
float tempF = dht11.readTemperature(true);

Mã Arduino - DHT11

/* * Mã Arduino này được phát triển bởi newbiely.vn * Mã Arduino này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/arduino/arduino-dht11 */ #include "DHT.h" #define DHT11_PIN 2 DHT dht11(DHT11_PIN, DHT11); void setup() { Serial.begin(9600); dht11.begin(); // initialize the sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht11.readHumidity(); // read temperature as Celsius float tempC = dht11.readTemperature(); // read temperature as Fahrenheit float tempF = dht11.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT11 sensor!"); } else { Serial.print("DHT11# Humidity: "); Serial.print(humi); Serial.print("%"); Serial.print(" | "); Serial.print("Temperature: "); Serial.print(tempC); Serial.print("°C ~ "); Serial.print(tempF); Serial.println("°F"); } }

Hướng dẫn từng bước

  • Kết nối Arduino với PC qua cáp USB
  • Mở Arduino IDE, chọn bo mạch và cổng đúng
  • Đi tới biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “DHT”, sau đó tìm thư viện cảm biến DHT của Adafruit
  • Nhấp nút Cài đặt để cài đặt thư viện.
thư viện cảm biến dht cho Arduino
  • Bạn sẽ được yêu cầu cài đặt thêm một số phụ thuộc thư viện khác
  • Nhấp vào nút Cài đặt Tất cả để cài đặt toàn bộ các phụ thuộc thư viện.
thư viện cảm biến thống nhất adafruit cho Arduino
  • Sao chép mã ở trên tương ứng với cảm biến bạn đang có và mở bằng Arduino IDE
  • Nhấp vào nút Tải lên trên Arduino IDE để nạp mã vào Arduino
  • Hãy làm cho môi trường xung quanh cảm biến nóng hơn hoặc lạnh hơn
  • Xem kết quả trên Serial Monitor.
COM6
Send
DHT11# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT11# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT11# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT11# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT11# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT11# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT11# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT11# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT11# Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F DHT11# Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F DHT11# Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F DHT11# Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.