Arduino DHT22 Rơ-le

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng Arduino để điều khiển rơ-le dựa trên nhiệt độ đo được từ cảm biến DHT22.

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×cảm biến nhiệt độ và độ ẩm DHT22
1×Relay
1×12V Power Adapter
1×DC Power Jack
1×dây jumper
1×(Tùy chọn) 12V Fan
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ề rơ-le và cảm biến DHT22

Nếu bạn chưa biết về cảm biến nhiệt độ DHT22 và rơ-le (cấu hình chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các hướng dẫn sau:

Sơ đồ đấu dây

sơ đồ nối dây rơ-le cho cảm biến dht22 dùng với Arduino

This image is created using Fritzing. Click to enlarge image

Cách hệ thống hoạt động

  • Arduino đọc nhiệt độ từ cảm biến DHT22
  • Nếu nhiệt độ vượt quá ngưỡng trên, Arduino bật rơ-le
  • Nếu nhiệt độ giảm xuống dưới ngưỡng, Arduino tắt rơ-le

Quá trình ở trên được lặp lại vô hạn trong vòng lặp.

Nếu bạn muốn bật và tắt rơ le khi nhiệt độ vượt quá và thấp hơn một giá trị cụ thể tương ứng, bạn chỉ cần đặt ngưỡng trên và ngưỡng dưới bằng nhau.

Mã Arduino

/* * 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-relay */ #include "DHT.h" #define RELAY_PIN A5 // Arduino pin connected to relay #define DHT22_PIN 2 // Arduino pin connected to DHT22 sensor const int TEMP_THRESHOLD_UPPER = 25; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 20; // lower threshold of temperature, change to your desire value DHT dht22(DHT22_PIN, DHT22); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht22.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht22.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { if(temperature > TEMP_THRESHOLD_UPPER){ Serial.println("The relay is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The relay is turned off"); digitalWrite(RELAY_PIN, LOW); // turn on } } }

Trong các đoạn mã ở trên, Arduino bật relay khi nhiệt độ vượt quá 25°C và giữ relay ở trạng thái bật cho đến khi nhiệt độ xuống dưới 20°C.

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 đúng bo mạch và cổ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 vào 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 Cài đặt Tất cả để cài đặt tất cả các phụ thuộc của thư viện.
thư viện cảm biến đồng nhất adafruit cho Arduino
  • Sao chép mã ở trên phù hợp với cảm biến bạn đang dùng 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
  • 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 trạng thái của rơ-le

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.