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

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

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×DS18B20 Temperature Sensor (WITH Adapter)
1×DS18B20 Temperature Sensor (WITHOUT Adapter)
1×4.7 kΩ Resistor
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
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 nhiệt độ DS18B20

Quạt làm mát được sử dụng trong bài hướng dẫn này dùng nguồn 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 rơ-le ở giữa Arduino và quạt.

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

Sơ đồ đấu dây

  • Sơ đồ đấu dây với breadboard
sơ đồ nối dây cho hệ thống quạt làm mát Arduino

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ đấu dây kèm bộ chuyển đổi (được khuyến nghị)
sơ đồ đấu nối hệ thống quạt điều khiển bằng cảm biến nhiệt Arduino

This image is created using Fritzing. Click to enlarge image

Chúng tôi đề xuất mua cảm biến DS18B20 đi kèm với một bộ ghép dây để dễ dàng kết nối. Bộ ghép dây có một điện trở tích hợp sẵn, loại bỏ nhu cầu dùng một điện trở riêng trong dây dẫn.

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á một ngưỡng trên, Arduino sẽ bật quạt
  • Nếu nhiệt độ thấp hơn ngưỡng dưới, Arduino sẽ 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ị đó, bạn chỉ cần đặt ngưỡng trên và ngưỡng dưới bằng nhau.

Mã Arduino cho hệ thống làm mát với cảm biến DS18B20

/* * 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-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> 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 const int SENSOR_PIN = 2; // Arduino pin connected to DS18B20 sensor's DQ pin const int RELAY_FAN_PIN = A5; // Arduino pin connected to relay which connected to fan OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature sensors(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // initialize serial sensors.begin(); // initialize the sensor pinMode(RELAY_FAN_PIN, OUTPUT); // initialize digital pin as an output } void loop() { sensors.requestTemperatures(); // send the command to get temperatures temperature = sensors.getTempCByIndex(0); // read temperature in Celsius 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 } delay(500); }

Trong đoạn mã ở trên, Arduino bật quạt khi nhiệt độ vượt quá 25°C và giữ cho quạt 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 “DallasTemperature”, sau đó tìm thư viện DallasTemperature của Miles Burton.
  • Nhấn nút Cài đặt để cài đặt thư viện DallasTemperature.
thư viện dallas temperature cho Arduino
  • Bạn sẽ được yêu cầu cài đặt phụ thuộc của thư viện.
  • Nhấn vào nút Cài đặt Tất cả để cài đặt thư viện OneWire.
thư viện onewire cho Arduino
  • Sao chép mã ở trên và mở bằng Arduino IDE
  • Nhấn 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 đi
  • 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 biết đến như một bộ điều khiển tín hiệu hoặc "bang-bang". Phương pháp này rất đơn giản để 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ó triển khai. Do đó, bộ điều khiển PID không được ưa chuộng 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.