Arduino DHT22

Trong bài 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×DHT22 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 DHT22

DHT22
Temperature Range -40°C to 80°CW
Temperature Accuracy ± 0.5°C
Humidity Range 0% to 100%
Humidity Accuracy ± 2 to 5%
Reading Rate 0.5Hz (once every 2 seconds)
Operating Voltage3 to 5V

Sơ đồ chân

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

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

Cảm biến DHT22 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 này đượ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 DHT22 có ba chân:

  • Pin GND: cần được kết nối với GND (0V)
  • Pin VCC: cần được kết nối với VCC (5V hoặc 3.3V)
  • Pin 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 DHT22 ở dạng module với ba chân: GND, VCC và DATA (hoặc tương ứng: -, + và OUT).

Sơ đồ đấu dây

Ở dạng 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 DHT22 và Arduino.

Arduino - Kết nối cảm biến DHT22

sơ đồ nối dây cảm biến nhiệt độ và độ ẩm dht22 cho Arduino

This image is created using Fritzing. Click to enlarge image

Arduino - Kết nối Mô-đun DHT22

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

sơ đồ nối dây của module dht22 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 Độ DHT22

Việc lập trình cho cả hai cảm biến tương tự nhau. 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 DHT22_PIN 2
  • Khai báo đối tượng DHT22
DHT dht22(DHT22_PIN, DHT22);
  • Khởi tạo cảm biến:
dht22.begin();
  • Đọc độ ẩm:
float humi = dht22.readHumidity();
  • Đọc nhiệt độ ở độ C:
float tempC = dht22.readTemperature();
  • Đọc nhiệt độ bằng Fahrenheit:
float tempF = dht22.readTemperature(true);

Mã Arduino - DHT22

/* * 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-dht22 */ #include "DHT.h" #define DHT22_PIN 2 DHT dht22(DHT22_PIN, DHT22); void setup() { Serial.begin(9600); dht22.begin(); // initialize the DHT22 sensor } void loop() { // wait a few seconds between measurements. delay(2000); // read humidity float humi = dht22.readHumidity(); // read temperature as Celsius float tempC = dht22.readTemperature(); // read temperature as Fahrenheit float tempF = dht22.readTemperature(true); // check if any reads failed if (isnan(humi) || isnan(tempC) || isnan(tempF)) { Serial.println("Failed to read from DHT22 sensor!"); } else { Serial.print("DHT22# 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 máy tính bằng 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ấn 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ấn nút Cài đặt Tất cả để cài đặt tất cả các phụ thuộc thư viện.
thư viện cảm biến thống nhất của 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 để tải mã lên Arduino
  • 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 Màn hình Serial
COM6
Send
DHT22# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT22# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT22# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT22# Humidity: 31.00% | Temperature: 27.00°C ~ 80.60°F DHT22# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT22# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT22# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT22# Humidity: 31.00% | Temperature: 28.00°C ~ 82.40°F DHT22# Humidity: 32.00% | Temperature: 28.00°C ~ 82.40°F DHT22# Humidity: 31.00% | Temperature: 29.00°C ~ 84.20°F DHT22# Humidity: 32.00% | Temperature: 29.00°C ~ 84.20°F DHT22# 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.