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

This image is created using Fritzing. Click to enlarge image
- Sơ đồ đấu dây với adapter (được khuyến nghị)

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

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

- 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 độ.