ESP32 DHT11 Relay

Trong hướng dẫn này, chúng ta sẽ học cách sử dụng ESP32 để điều khiển relay dựa trên nhiệt độ đọc từ cảm biến DHT11.

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×cảm biến nhiệt độ và độ ẩm DHT11
1×Relay
1×12V Power Adapter
1×(Tùy chọn) DC Power Jack
1×breadboard
1×dây jumper
1×(Tùy chọn) 12V Fan
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ề Relay và Cảm Biến DHT11

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

Sơ Đồ Đấu Nối

ESP32 dht11 sensor rơ le 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.

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

  • ESP32 đọc nhiệt độ từ cảm biến DHT11
  • Nếu nhiệt độ vượt quá ngưỡng trên, ESP32 bật relay
  • Nếu nhiệt độ giảm xuống dưới ngưỡng dưới, ESP32 tắt relay

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

Nếu bạn muốn bật và tắt relay khi nhiệt độ cao hơn và thấp hơn một giá trị cụ thể, bạn chỉ cần đặt ngưỡng trên và ngưỡng dưới cùng một giá trị.

Code ESP32

/* * 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-dht11-relay */ #include <DHT.h> #define DHT11_PIN 23 // ESP32 pin GPIO23 connected to DHT11 #define RELAY_PIN 18 // ESP32 pin GPIO18 connected to relay #define DHT_SENSOR_TYPE DHT11 #define TEMP_UPPER_THRESHOLD 30 // upper temperature threshold #define TEMP_LOWER_THRESHOLD 15 // lower temperature threshold DHT dht11(DHT11_PIN, DHT_SENSOR_TYPE); void setup() { Serial.begin(9600); // initialize serial dht11.begin(); // initialize the DHT sensor } void loop() { float temperature = dht11.readTemperature();; // read temperature in Celsius if (isnan(temperature)) { Serial.println("Failed to read from DHT11 sensor!"); } else { if (temperature > TEMP_UPPER_THRESHOLD) { Serial.println("Turn the relay on"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (temperature < TEMP_LOWER_THRESHOLD) { Serial.println("Turn the relay off"); digitalWrite(RELAY_PIN, LOW); // turn off } } // wait a 1 seconds between readings delay(1000); }

Trong code trên, ESP32 bật relay khi nhiệt độ vượt quá 25°C, và giữ relay bật cho đến khi nhiệt độ xuống dưới 20°C

Các Bước Thực Hiện

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện đấu nối như hình trên.
  • Kết nối bo mạch ESP32 với PC của bạn 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ấp vào biểu tượng Libraries ở thanh bên trái của Arduino IDE.
  • Tìm kiếm "DHT", sau đó tìm thư viện DHT sensor của Adafruit
  • Nhấp nút Install để cài đặt thư viện.
ESP32 dht sensor thư viện
  • Bạn sẽ được yêu cầu cài đặt một số thư viện phụ thuộc khác
  • Nhấp nút Install All để cài đặt tất cả thư viện phụ thuộc.
ESP32 adafruit unified sensor thư viện
  • Sao chép code trên tương ứng với cảm biến bạn có và mở bằng Arduino IDE
  • Nhấp nút Upload trên Arduino IDE để tải code lên ESP32
  • Làm cho môi trường xung quanh cảm biến nóng hơn hoặc lạnh hơn
  • Quan sát trạng thái của relay

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.