Arduino Hệ thống làm mát bằng cảm biến DHT

Trong hướng dẫn này, chúng ta sẽ điều khiển nhiệt độ bằng quạt và cảm biến DHT11 hoặc DHT22. Khi nhiệt độ quá nóng, bật quạt làm mát. Khi nhiệt độ mát, tắt quạt làm mát. Nếu bạn muốn sử dụng cảm biến DS18B20 thay cho cảm biến DHT, hãy xem Arduino - Hệ thống làm mát bằng cảm biến nhiệt DS18B20.

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 DC Cooling Fan
1×(Hoặc) 5V DC Cooling Fan
1×12V Power Adapter
1×DC Power Jack
1×dây jumper

You can use DHT22 sensor instead of DHT11 sensor.

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ề quạt làm mát và cảm biến DHT

Quạt làm mát được sử dụng trong hướng dẫn này dùng nguồn cấp 12V. Nếu cấp nguồn cho quạt, quạt sẽ bật và ngược lại. Để điều khiển quạt bằng Arduino, chúng ta cần dùng một relay ở giữa.

Nếu bạn chưa biết về cảm biến nhiệt độ và quạt (sơ đồ 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 đây:

Sơ đồ đấu dây

  • Sơ đồ kết nối với mô-đun DHT11
sơ đồ nối dây của hệ thống quạt làm mát Arduino

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ nối dây với mô-đun DHT22
sơ đồ nối dây của hệ thống quạt làm mát 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 nhiệt độ
  • Nếu nhiệt độ vượt quá ngưỡng trên, Arduino bật quạt
  • Nếu nhiệt độ giảm xuống dưới ngưỡng dưới, Arduino tắt quạt

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 quạt khi nhiệt độ vượt quá một giá trị cụ thể và tắt quạt khi nhiệt độ xuống dưới giá trị đó lần lượt, bạn chỉ cần đặt ngưỡng trên và ngưỡng dưới bằng một giá trị duy nhất.

Mã Arduino

Mã Arduino cho hệ thống làm mát với cảm biến 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-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT11 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 dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.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 fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

Mã Arduino cho hệ thống làm mát với cảm biến 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-cooling-system-using-dht-sensor */ #include "DHT.h" #define RELAY_FAN_PIN A5 // Arduino pin connected to relay which connected to fan #define DHTPIN 12 // Arduino pin connected to relay which connected to DHT sensor #define DHTTYPE DHT22 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 dht(DHTPIN, DHTTYPE); float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial dht.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { // wait a few seconds between measurements. delay(2000); temperature = dht.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 fan is turned on"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The fan is turned off"); digitalWrite(RELAY_FAN_PIN, LOW); // turn on } } }

Trong các đoạn mã ở trên, Arduino bật quạt khi nhiệt độ vượt quá 25°C, và giữ cho quạt hoạt động 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 bằng cáp USB
  • Mở Arduino IDE, chọn board và cổng phù hợp
  • Đi tới biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
  • Tì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 adafruit cho Arduino
  • Sao chép mã ở phần trên tương ứng với cảm biến bạn 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 quanh cảm biến nóng hơn hoặc lạnh hơn
  • Xem trạng thái của quạt

Kiến thức nâng cao

Phương pháp điều khiển ở trên là bộ điều khiển bật-tắt, còn được gọi là bộ điều khiển tín hiệu hoặc bộ điều khiển "bang-bang". Phương pháp này rất dễ triển khai.

Có một phương pháp thay thế được gọi là bộ điều khiển PID. Với bộ điều khiển PID, nhiệt độ mong muốn ổn định hơn nhưng rất khó hiểu và khó để thực hiện. Do đó, bộ điều khiển PID không phổ biến trong điều khiển nhiệt độ.

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.