ESP8266 Hệ làm mát sử dụng cảm biến DHT

Hướng dẫn này chỉ cho bạn cách điều chỉnh nhiệt độ nhờ quạt và cảm biến DHT11 hoặc DHT22.

Nếu bạn muốn sử dụng cảm biến DS18B20 thay vì cảm biến DHT, vui lòng tham khảo ESP8266 - Hệ thống làm mát bằng cảm biến nhiệt độ 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×cảm biến nhiệt độ và độ ẩm DHT11
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

You can use DHT22 sensor instead of DHT11 sensor.

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 DHT

Quạt trong hướng dẫn này yêu cầu nguồn 12V. Nếu nguồn được cấp, quạt sẽ quay, và nếu không, nó sẽ tắt. Để điều khiển quạt bằng ESP8266, chúng ta phải sử 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à lập trình), các bài hướng dẫn sau đây có thể cung cấp cho bạn thông tin cần thiết:

Sơ đồ đấu dây

  • Một sơ đồ cho thấy các kết nối của một mô-đun DHT11.
sơ đồ nối dây cho 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.

  • Một sơ đồ cho thấy các kết nối của mô-đun DHT22
  • Một hình minh hoạ về cách đi dây cho mô-đun DHT22
sơ đồ nối dây hệ thống quạt làm mát ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

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

  • ESP8266 lấy nhiệt độ từ cảm biến nhiệt độ.
  • Nếu nhiệt độ cao hơn ngưỡng trên, ESP8266 kích hoạt quạt.
  • Nếu nhiệt độ thấp hơn ngưỡng dưới, ESP8266 tắt quạt.

Vòng lặp này được lặp lại mãi mãi.

Mã nguồn ESP8266

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

/* * 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-dht-sensor */ #include <DHT.h> #define FAN_PIN D2 // The ESP8266 pin connected to relay #define DHT_SENSOR_PIN D7 // The ESP8266 pin connected to DHT11 sensor #define DHT_SENSOR_TYPE DHT11 #define THRESHOLD_ON 30 // upper temperature threshold #define THRESHOLD_OFF 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { 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 } } // wait a 2 seconds between readings delay(2000); }

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

/* * 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-dht-sensor */ #include <DHT.h> #define FAN_PIN D2 // The ESP8266 pin connected to relay #define DHT_SENSOR_PIN D7 // The ESP8266 pin connected to DHT22 sensor #define DHT_SENSOR_TYPE DHT22 #define THRESHOLD_ON 30 // upper temperature threshold #define THRESHOLD_OFF 15 // lower temperature threshold DHT dht_sensor(DHT_SENSOR_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. dht_sensor.begin(); // initialize the DHT sensor } void loop() { float temperature = dht_sensor.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT sensor!"); } else { 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 } } // wait a 2 seconds between readings delay(2000); }

Trong các mã ở trên, ESP8266 sẽ kích hoạt quạt khi nhiệt độ lớn hơn 25°C và sẽ tiếp tục cho quạt chạy 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 thành phần như được thể hiện trong sơ đồ.
  • Kết nối bo mạch 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 bo mạch ESP8266 đúng, chẳng hạn như NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Kết nối một ESP8266 với PC bằng cáp USB.
  • Mở Arduino IDE, chọn bo mạch và cổng đúng.
  • Nhấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm “DHT” và tìm thư viện cảm biến DHT từ Adafruit.
  • Nhấn nút Install để thêm thư viện.
thư viện cảm biến dht cho ESP8266 NodeMCU
  • Bạn sẽ được yêu cầu cài đặt một số phụ thuộc thư viện khác.
  • Nhấn nút Cài đặt Tất cả để cài đặt tất cả các phụ thuộc thư viện.
thư viện cảm biến thống nhất adafruit cho ESP8266 NodeMCU
  • Trên màn hình Serial Monitor
  • Sao chép mã liên quan đến cảm biến bạn đang có và mở nó trong Arduino IDE.
  • Nhấn 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 khu vực 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 ở trên được gọi là bộ điều khiển bật-tắt, còn được biết đến như một 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 dễ thiết lập.

Một phương pháp thay thế là bộ điều khiển PID. Phương pháp này làm cho việc điều chỉnh nhiệt độ ổn định hơn, tuy nhiên nó phức tạp và khó hiểu cũng như khó áp dụng. Do đó, bộ điều khiển PID không được sử dụng rộng rãi 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.