ESP8266 Hệ thống làm mát bằng cảm biến nhiệt độ DS18B20

Hướng dẫn này chỉ cho bạn cách sử dụng ESP8266 để điều khiển nhiệt độ bằng quạt và cảm biến nhiệt độ DS18B20.

Nếu bạn muốn sử dụng cảm biến DHT11 hoặc DHT22 thay cho DS18B20, vui lòng tham khảo ESP8266 - Hệ làm mát sử dụng cảm biến DHT.

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×12V DC Cooling Fan
1×(Hoặc) 5V DC Cooling Fan
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ề quạt làm mát và cảm biến nhiệt độ DS18B20

Hướng dẫn này sử dụng một quạt làm mát được cấp nguồn 12V. Nếu có nguồn cấp, quạt sẽ bật và nếu nguồn bị ngắt, quạt sẽ tắt. Để điều khiển quạ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à quạt (bao gồm sơ đồ chân, cách chúng hoạt động và cách lập trình chúng), các hướng dẫn dưới đây có thể giúp bạn:

Sơ đồ đấu dây

  • Sơ đồ đấu dây bằng breadboard.
sơ đồ đấu dây của hệ thống quạt làm mát 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.

  • Sơ đồ đấu nối bằng bộ chuyển đổi đầu cuối (được khuyến nghị).
sơ đồ đấu nối rơ-le điều khiển bằng ESP8266 NodeMCU.

This image is created using Fritzing. Click to enlarge image

Chúng tôi khuyến nghị mua cảm biến DS18B20 cùng với bộ adapter kết nối đi kèm để thiết lập một cách liền mạch. Adapter này tích hợp sẵn một điện trở, loại bỏ nhu cầu sử dụng thêm một điện trở trong dây kết nối.

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

  • ESP8266 kiểm tra nhiệt độ bằng cảm biến nhiệt độ.
  • Nếu nhiệt độ cao hơn giới hạn trên được đặt, ESP8266 sẽ kích hoạt quạt.
  • Nếu nhiệt độ thấp hơn giới hạn dưới được đặt, ESP8266 sẽ tắt quạt.

Quá trình này được lặp lại không ngừng trong một chu trình.

Nếu bạn muốn quạt tự động bật và tắt khi nhiệt độ vượt quá hoặc thấp hơn một ngưỡng nhất định, hãy thiết lập ngưỡng trên và ngưỡng dưới bằng nhau.

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-cooling-system-using-ds18b20-temperature-sensor */ #include <OneWire.h> #include <DallasTemperature.h> #define THRESHOLD_ON 30 // upper temperature threshold #define THRESHOLD_OFF 15 // lower temperature threshold #define SENSOR_PIN D7 // The ESP8266 pin connected to DS18B20 sensor's DQ pin #define FAN_PIN D1 // The ESP8266 pin connected to relay OneWire oneWire(SENSOR_PIN); DallasTemperature DS18B20(&oneWire); void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. 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 > THRESHOLD_ON) { Serial.println("Turn the fan on"); digitalWrite(FAN_PIN, HIGH); // turn on } else if (temperature < THRESHOLD_OFF) { Serial.println("Turn the fan off"); digitalWrite(FAN_PIN, LOW); // turn off } delay(500); }

Trong đoạn mã ở trên, khi nhiệt độ lớn hơn 25°C, ESP8266 sẽ kích hoạt quạt. Quạt sẽ tiếp tục hoạt động cho đến khi nhiệt độ giảm xuống dưới 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:

  • Xem hướng dẫn ESP8266 - Cài đặt phần mềm nếu đây là lần đầu tiên bạn sử dụng ESP8266.
  • Nối các linh kiện như thể hiện trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn board ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Cắm cáp USB để kết nối ESP8266 với máy tính.
  • Mở Arduino IDE, chọn board và cổng phù hợp.
  • Nhấp vào biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “Dallas”, sau đó xác định thư viện DallasTemperature do Miles Burton phát triển.
  • Nhấn nút Cài đặt để 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 vào nút Cài đặt Tất cả để cài đặt thư viện OneWire.
thư viện 1-wire cho ESP8266 NodeMCU
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp nút Tải lên để nạp mã vào ESP8266.
  • Thay đổi nhiệt độ của môi trường xung quanh cảm biến.
  • Kiểm tra trạng thái của quạt trên Serial Monitor.

Kiến thức nâng cao

Phương pháp điều khiển được mô tả ở 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 "bang-bang". Phương pháp này khá dễ thực hiện.

Có một phương pháp thay thế được biết đến với tên bộ điều khiển PID. Phương pháp này cho phép đạt được nhiệt độ mục tiêu ổn định hơn, tuy nhiên, nó phức tạp để hiểu và triển khai. Do đó, bộ điều khiển PID không được sử dụng phổ biến cho điều khiển 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.