ESP8266 Hệ thống sưởi ấm

Trong bài hướng dẫn này, chúng ta sẽ sử dụng ESP8266, phần tử gia nhiệt và cảm biến nhiệt độ DS18B20 để điều khiển nhiệt độ của một căn phòng.

Ngoài ra, mã có thể được điều chỉnh cho các cảm biến nhiệt độ khác như DHT11, DHT22 hoặc LM35 thay vì cảm biến DS18B20.

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
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 (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 Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

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

Thiết bị gia nhiệt được sử dụng trong hướng dẫn này yêu cầu nguồn cấp 12V. Nếu thiết bị gia nhiệt được cấp nguồn, nó sẽ sinh nhiệt. Để điều khiển thiết bị gia nhiệt bằng ESP8266, cần dùng một rơ-le làm trung gian.

Nếu bạn chưa quen với cảm biến nhiệt độ và các phần tử làm nóng (bản đồ chân, hoạt động, lập trình, v.v.), các bài hướng dẫn dưới đây có thể giúp ích:

Sơ đồ đấu dây

sơ đồ đấu nối hệ thống sưởi ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

Cách hệ thống hoạt động

  • ESP8266 theo dõi nhiệt độ từ cảm biến nhiệt độ.
  • Nếu nhiệt độ giảm xuống dưới một ngưỡng nhất định, ESP8266 sẽ kích hoạt các phần tử gia nhiệt.
  • Khi nhiệt độ vượt quá một ngưỡng nhất định, ESP8266 sẽ vô hiệu hóa các phần tử gia nhiệt.

Vòng lặp được lặp lại liên tục.

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

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU 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/esp8266/esp8266-heating-system */ #include <OneWire.h> #include <DallasTemperature.h> #define SENSOR_PIN D7 // The ESP8266 pin connected to DS18B20 sensor's DQ pin #define RELAY_PIN D1 // The ESP8266 pin connected to relay which connected to heating element const int THRESHOLD_OFF = 20; // upper threshold of temperature, change to your desire value const int THRESHOLD_ON = 15; // lower threshold of temperature, change to your desire value OneWire oneWire(SENSOR_PIN); // setup a oneWire instance DallasTemperature DS18B20(&oneWire); // pass oneWire to DallasTemperature library float temperature; // temperature in Celsius void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. DS18B20.begin(); // initialize the sensor pinMode(RELAY_PIN, OUTPUT); // initialize digital pin as an output } void loop() { DS18B20.requestTemperatures(); // send the command to get temperatures temperature = DS18B20.getTempCByIndex(0); // read temperature in Celsius if(temperature > THRESHOLD_OFF) { Serial.println("The heating element is turned off"); digitalWrite(RELAY_PIN, LOW); // turn off } else if(temperature < THRESHOLD_ON){ Serial.println("The heating element is turned on"); digitalWrite(RELAY_PIN, HIGH); // turn on } delay(500); }

Trong đoạn mã ở trên, khi nhiệt độ thấp hơn 15°C, ESP8266 sẽ kích hoạt phần tử làm nóng. Phần tử làm nóng sẽ vẫn bật cho đến khi nhiệt độ tăng lên trên 20°C.

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Hãy xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các linh kiện theo sơ đồ.
  • Kết nối bảng ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bảng ESP8266 phù hợp, chẳng hạn (ví dụ: NodeMCU 1.0 (ESP-12E Module)), và cổng COM tương ứng.
  • Kết nối ESP8266 của bạn với máy tính bằng cáp USB
  • Mở Arduino IDE và chọn đúng bảng và cổng
  • Nhấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “Dallas”, sau đó tìm thư viện DallasTemperature của Miles Burton.
  • Nhấn nút Install để cài đặt thư viện DallasTemperature.
thư viện dallas temperature cho ESP8266 NodeMCU
  • Bạn sẽ được yêu cầu cài đặt phụ thuộc. Nhấp nút Install All để cài đặt thư viện OneWire.
thư viện onewire cho ESP8266 NodeMCU
  • Sao chép mã ở trên và mở nó bằng Arduino IDE.
  • Nhấp vào nút Tải lên trong Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Thay đổi nhiệt độ của môi trường quanh cảm biến.
  • Kiểm tra nhiệt độ của phần gia nhiệt và của căn phòng.

Kiến thức nâng cao

Kỹ thuật được đề cập ở trên là bộ điều khiển bật-tắt, còn được gọi là một signaller hoặc bộ điều khiển 'bang-bang'. Phương pháp này rất dễ triển khai.

Có một phương pháp tiếp cận thay thế được biết đến với tên bộ điều khiển PID. Phương pháp điều khiển nhiệt độ này ổn định hơn, nhưng phức tạp và khó hiểu cũng như khó áp dụng vào thực tế. Do đó, bộ điều khiển PID không được sử dụng rộng rãi.