Arduino Hệ thống sưởi

Trong hướng dẫn này, chúng ta sẽ điều khiển nhiệt độ phòng bằng một phần tử gia nhiệt và cảm biến DS18B20. Khi nhiệt độ quá thấp, hãy bật phần tử gia nhiệt. Khi nhiệt độ ấm lên, hãy tắt phần tử gia nhiệt. Bạn cũng có thể điều chỉnh mã cho các cảm biến nhiệt độ khác như DHT11, DHT22 hoặc LM35 thay cho cảm biến 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×DS18B20 Temperature Sensor (WITH Adapter)
1×DS18B20 Temperature Sensor (WITHOUT Adapter)
1×4.7 kΩ Resistor
1×Relay
1×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ề phần tử gia nhiệt và cảm biến nhiệt độ DS18B20

Thanh gia nhiệt được dùng trong hướng dẫn này hoạt động với nguồn 12V. Nếu thanh gia nhiệt được cấp nguồn, thanh gia nhiệt sẽ tỏa nhiệt. Để điều khiển thanh gia nhiệt bằng Arduino, chúng ta cần sử dụng một rơ-le ở giữa.

Nếu bạn chưa biết về cảm biến nhiệt độ và phần tử gia nhiệt (bố trí 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 với breadboard
sơ đồ nối dây cho hệ thống gia nhiệt Arduino

This image is created using Fritzing. Click to enlarge image

  • Sơ đồ đấu dây với adapter (được khuyến nghị)
sơ đồ đấu dây hệ thống điều khiển nhiệt độ bằng 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 độ xuống dưới ngưỡng tối thiểu, Arduino bật các bộ gia nhiệt
  • Nếu nhiệt độ vượt quá ngưỡng tối đa, Arduino tắt bộ gia nhiệt

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

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-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN 2 // Arduino pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN A5 // Arduino pin connected to relay which connected to heating element const int TEMP_THRESHOLD_UPPER = 20; // upper threshold of temperature, change to your desire value const int TEMP_THRESHOLD_LOWER = 15; // lower threshold of temperature, change to your desire value 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_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 heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < TEMP_THRESHOLD_LOWER){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Trong đoạn mã ở trên, Arduino sẽ bật phần tử gia nhiệt khi nhiệt độ xuống dưới 15°C, và duy trì phần tử gia nhiệt ở trạng thái bật cho đến khi nhiệt độ vượt quá 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 đú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 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 Arduino
  • Làm cho môi trường xung quanh cảm biến nóng hơn hoặc lạnh đi
  • Kiểm tra nhiệt độ của phần tử gia nhiệt và căn phòng của bạn

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 đơ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 kiểm soát nhiệt độ.