Arduino DHT11 Rơ-le

Trong bài 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 độ được đọc từ cảm biến DHT11.

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 DHT11
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 DHT11

Nếu bạn chưa biết về cảm biến nhiệt độ DHT11 và rơ-le (bản đồ 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 bài hướng dẫn sau:

Sơ đồ đấu dây

sơ đồ nối dây rơ-le cho cảm biến dht11 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 DHT11
  • Nếu nhiệt độ vượt quá ngưỡng trên, Arduino bật rơ-le
  • Nếu nhiệt độ thấp hơn ngưỡng dưới, 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 rơ-le khi nhiệt độ vượt quá một giá trị cụ thể và tắt rơ-le khi nhiệt độ giảm xuống dưới giá trị đó, bạn chỉ cần đặt ngưỡng trên và ngưỡng dưới bằng nhau với cùng một giá trị.

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-dht11-relay */ #include "DHT.h" #define RELAY_PIN A5 // Arduino pin connected to relay #define DHT11_PIN 2 // Arduino pin connected to DHT11 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 dht11(DHT11_PIN, DHT11); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht11.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 = dht11.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 sẽ 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 PC qua cáp USB
  • Mở Arduino IDE, chọn đúng board 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ấ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.
  • Nhấp vào nút Install All để cài đặt tất cả các phụ thuộc của 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 dùng và mở bằng Arduino IDE
  • Nhấn nút Tải lên trên Arduino IDE để nạp mã lên Arduino
  • Hãy làm cho môi trường quanh cảm biến nóng lên hoặc lạnh đi
  • 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.