ESP32 Hệ Thống Sưởi Ấm

Trong hướng dẫn này, chúng ta sẽ học cách tạo hệ thống sưởi ấm điều khiển nhiệt độ phòng bằng ESP32, cảm biến nhiệt độ DS18B20 và linh kiện sưởi ấm. Nguyên lý hoạt động rất đơn giản: khi phòng quá lạnh, chúng ta sẽ bật linh kiện sưởi ấm, và khi ấm lên thì tắt đi. Bạn có thể điều chỉnh code để hoạt động với các cảm biến nhiệt độ khác như DHT11, DHT22 hoặc LM35, giúp bạn có sự linh hoạt để chọn cảm biến phù hợp với sở thích của mình.

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×DS18B20 Temperature Sensor (CÓ Adapter)
1×DS18B20 Temperature Sensor (KHÔNG Adapter)
1×Điện trở 4.7 kΩ
1×Relay
1×Linh Kiện Sưởi Ấm
1×Adapter Nguồn 12V
1×(Tùy chọn) DC Power Jack
1×breadboard
1×Dây Cắm Jumper
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

1×DIYables ESP32 Starter Kit (ESP32 included)
1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Linh Kiện Sưởi Ấm và Cảm Biến Nhiệt Độ DS18B20

Linh kiện sưởi ấm chúng ta sử dụng trong hướng dẫn này hoạt động với nguồn điện 12 volt. Khi được cấp điện, linh kiện sưởi ấm sẽ tạo ra nhiệt. Để cho phép ESP32 điều khiển linh kiện sưởi ấm, chúng ta cần sử dụng relay. Relay này đóng vai trò như công tắc cho phép ESP32 bật hoặc tắt linh kiện sưởi ấm khi cần thiết.

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

Sơ Đồ Đấu Dây

  • Sơ đồ đấu dây với breadboard
ESP32 heating system sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

  • Sơ đồ đấu dây với adapter (khuyến nghị)
ESP32 teamperature controls heating system sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Cách Hệ Thống Hoạt Động

  • ESP32 đọc nhiệt độ từ cảm biến nhiệt độ
  • Nếu nhiệt độ giảm xuống dưới ngưỡng thấp, ESP32 bật linh kiện sưởi ấm
  • Nếu nhiệt độ tăng lên trên ngưỡng cao, ESP32 tắt linh kiện sưởi ấm

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

Code ESP32 cho Hệ Thống Sưởi Ấm với cảm biến DS18B20

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold #define SENSOR_PIN 23 // ESP32 pin GPIO23 connected to DS18B20 sensor's DQ pin #define RELAY_PIN 18 // ESP32 pin GPIO18 connected to relay OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(9600); // initialize serial DS18B20.begin(); // initialize the DS18B20 sensor } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures float temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the heating element on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the heating element off"); digitalWrite(RELAY_PIN, LOW); // turn off } delay(500); }

Trong code trên, ESP32 bật linh kiện sưởi ấm khi nhiệt độ giảm xuống dưới 15°C, và giữ linh kiện sưởi ấm bật cho đến khi nhiệt độ trên 20°C

Các Bước Nhanh

  • Nếu đây là lần đầu bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện đấu dây theo hình ảnh trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Nhấn vào biểu tượng Libraries trên thanh bên trái của Arduino IDE.
  • Tìm kiếm "DallasTemperature" trong hộp tìm kiếm, sau đó tìm thư viện DallasTemperature của Miles Burton.
  • Nhấn nút Install để cài đặt thư viện DallasTemperature.
ESP32 dallas temperature thư viện
  • Bạn sẽ được yêu cầu cài đặt dependency. Nhấn nút Install All để cài đặt thư viện OneWire.
ESP32 onewire thư viện
  • Sao chép code trên và mở bằng Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để tải code lên ESP32
  • Làm môi trường xung quanh cảm biến nóng hơn hoặc lạnh hơn
  • Kiểm tra nhiệt độ của linh kiện sưởi ấm và 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 (on-off controller), còn được gọi là 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à triển khai. Do đó, bộ điều khiển PID không phổ biến trong việc điều khiển nhiệt độ.