Arduino Điều khiển Nhiệt độ

Trong bài hướng dẫn này, chúng ta sẽ điều khiển nhiệt độ phòng về một phạm vi thoải mái bằng cách sử dụng Arduino, cảm biến nhiệt DS18B20, quạt và phần tử gia nhiệt. Khi nhiệt độ quá nóng, bật quạt làm mát để thông gió. Khi nhiệt độ lạnh, tắt quạt làm mát và bật phần tử gia nhiệt.

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×Relay
1×12V DC Cooling Fan
1×(Hoặc) 5V DC Cooling Fan
1×12V Heating Element
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ề Hệ thống Điều khiển Nhiệt độ Phòng

Tóm lại, Arduino sẽ bật quạt khi phòng nóng và bật phần tử gia nhiệt khi phòng lạnh. Dưới đây là chi tiết về cách một hệ thống điều khiển nhiệt độ phòng hoạt động, lấy ví dụ về cách điều chỉnh nhiệt độ phòng từ 18°C đến 26°C:

  • Arduino đọc nhiệt độ từ cảm biến nhiệt độ
  • Nếu nhiệt độ vượt quá 26°C, Arduino bật quạt và tắt bộ gia nhiệt
  • Nếu nhiệt độ thấp hơn 18°C, Arduino tắt quạt và bật bộ gia nhiệt

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

Quạt hoạt động như một máy thông gió.

Nếu bạn chưa biết về cảm biến nhiệt độ, phần tử làm nóng 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 điều khiển nhiệt độ bằng Arduino

This image is created using Fritzing. Click to enlarge image

Xin lưu ý rằng, để đơn giản hóa, sơ đồ ở trên cho thấy hai bộ nguồn DC 12V, nhưng trên thực tế, bạn có thể sử dụng một bộ nguồn DC 12V duy nhất cho cả quạt và bộ phận làm nóng.

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-control-temperature */ #include <OneWire.h> #include <DallasTemperature.h> const int TEMP_THRESHOLD_UPPER = 26; // °C, upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 18; // °C, 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 const int RELAY_HEAT_PIN = A4; // Arduino pin connected to relay which connected to the heating element 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("HOT! The fan is turned on and the heating element is turned off"); digitalWrite(RELAY_FAN_PIN, HIGH); // turn on the fan digitalWrite(RELAY_HEAT_PIN, LOW); // turn off the heating element } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("COLD! The fan is turned off and the heating element is turned on"); digitalWrite(RELAY_FAN_PIN, LOW); // turn off the fan digitalWrite(RELAY_HEAT_PIN, HIGH); // turn on the heating element } delay(500); }

Trong đoạn mã phía trên, Arduino bật quạt khi nhiệt độ vượt quá 25°C, và giữ cho quạt ở chế độ 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 qua 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 IDE Arduino.
  • Tìm kiếm “DallasTemperature”, sau đó tìm thư viện DallasTemperature do Miles Burton.
  • Nhấp 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ấp 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ấp vào nút Tải lên trên Arduino IDE để tải mã lên cho 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 và phần tử gia 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.