Giới thiệu dự án

Trong bối cảnh chuyển đổi số và phát triển đô thị thông minh, việc tối ưu hóa hiệu suất sử dụng năng lượng tại các tòa nhà công cộng, văn phòng và cơ sở giáo dục đang trở thành ưu tiên hàng đầu. Theo các thống kê từ Bộ Công Thương và Viện Năng lượng, hệ thống chiếu sáng, thông gió và thiết bị phụ tải tiêu thụ từ 35% đến 50% tổng điện năng tại các trường đại học và cơ sở giáo dục. Tuy nhiên, tình trạng lãng phí điện năng do quên tắt thiết bị điện (đèn, quạt, điều hòa, máy chiếu) khi kết thúc giờ học diễn ra thường xuyên, làm suy giảm tuổi thọ khí cụ điện và gia tăng chi phí vận hành.

Đồ án tốt nghiệp "Thiết kế và thi công mô hình điều khiển thiết bị điện" do nhóm sinh viên ngành Công nghệ Kỹ thuật Điện tử Truyền thông – Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh thực hiện, dưới sự hướng dẫn của ThS. Nguyễn Đình Phú, đã giải quyết triệt để bài toán quản lý và giám sát thiết bị điện hạ thế (220VAC) trong môi trường phòng học thông qua nền tảng Internet of Things (IoT).

                      +-----------------------------+
                      |   Cloud MQTT Broker         |
                      |   (CloudMQTT / Mosquitto)   |
                      +--------------+--------------+
                                     ^
                                     |  MQTT over TCP (Port 1883)
                                     v
                      +-----------------------------+
                      |   ESP32 Central Gateway     |
                      |   (Xtensa 32-bit Dual-Core) |
                      +--------------+--------------+
                                     |
           +-------------------------+-------------------------+
           |                                                   |
           v                                                   v
+-------------------------+                         +-------------------------+
| Khối Công Suất Cách Ly  |                         | Khối Cảm Biến           |
| (PC817 + C1815 + Relay) |                         | (DHT11 Single-Wire)     |
+------------+------------+                         +-------------------------+
             |
             v
+-------------------------+
| Tải 220VAC              |
| (Đèn, Quạt, TV, Loa)    |
+-------------------------+

Problem Statement

Các hệ thống điện phòng học truyền thống tồn tại các hạn chế nghiêm trọng:

  • Điều khiển phân tán và thủ công: Phụ thuộc hoàn toàn vào thao tác đóng ngắt cầu dao (Aptomat/CB) hoặc công tắc cơ khí, không có cơ chế quản lý tập trung.
  • Thiếu khả năng giám sát trạng thái thời gian thực: Quản trị viên không thể nắm bắt được trạng thái bật/tắt thiết bị hoặc thông số môi trường (nhiệt độ, độ ẩm) trong phòng học từ xa.
  • Nguy cơ mất an toàn điện: Thao tác trực tiếp với các cụm công tắc chuyển mạch 220VAC trong môi trường ẩm ướt tiềm ẩn nguy cơ rò điện và tia lửa điện.

Mục tiêu dự án

  1. Thiết kế và thi công phần cứng module điều khiển 4 kênh công suất 220VAC/10A có tích hợp cách ly quang học bảo vệ vi điều khiển.
  2. Tích hợp vi điều khiển ESP32-WROOM-32 làm khối xử lý trung tâm, xử lý truyền thông không dây qua chuẩn Wi-Fi IEEE 802.11 b/g/n.
  3. Thu thập và xử lý tín hiệu môi trường (nhiệt độ, độ ẩm) thông qua cảm biến DHT11 bằng giao thức truyền thông 1-Wire.
  4. Xây dựng hệ thống truyền thông dữ liệu hai chiều dựa trên giao thức MQTT (Message Queuing Telemetry Transport) qua máy chủ đám mây CloudMQTT.
  5. Thiết kế giao diện quản trị Web Server trực quan sử dụng Node-RED và ứng dụng di động trên nền tảng Android (MQTT Dashboard).
  6. Đảm bảo khả năng đồng bộ trạng thái hai chiều giữa Web, Ứng dụng di động và Thiết bị vật lý với độ trễ dưới 200ms.

Giải pháp kỹ thuật và Phạm vi

  • Giải pháp: Ứng dụng kiến trúc Publish/Subscribe của giao thức MQTT kết hợp sức mạnh xử lý lõi kép của vi điều khiển ESP32 và mạch cách ly quang Opto PC817 nhằm đảm bảo tính ổn định, tin cậy khi đóng cắt tải cảm ứng 220VAC.
  • Phạm vi: Mô hình hóa cho một phòng học tiêu chuẩn gồm 12 thiết bị điện phân bố: 4 đèn tuýp LED (36W/bóng), 4 quạt trần (75W/quạt), 3 cụm loa (60W) và 1 TV LCD 32 inches (70W). Module điều khiển phần cứng trực tiếp đóng ngắt 4 rơ-le công suất cách ly.

Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tiêu chí Hệ thống cơ khí truyền thống Hệ thống điều khiển RF/Bluetooth Giải pháp đề xuất (ESP32 + MQTT)
Phạm vi điều khiển Cục bộ tại vị trí công tắc Giới hạn trong bán kính 10–30m Không giới hạn (Toàn cầu qua Internet)
Độ trễ truyền nhận Tức thời (thủ công) 50 – 100ms (nội bộ) 80 – 150ms (qua Cloud Broker)
Giám sát trạng thái Không hỗ trợ 1 chiều hoặc đồng bộ chậm Thời gian thực 2 chiều (Bidirectional Sync)
Độ an toàn cách ly Thấp (tiếp xúc cơ khí trực tiếp) Trung bình (mạch relay cơ bản) Rất cao (Cách ly quang Optocoupler 5kV)
Chi phí triển khai Rất thấp (~50.000 VNĐ/cụm) Trung bình (~500.000 VNĐ) Tối ưu (~350.000 VNĐ/module 4 kênh)

Yêu cầu hệ thống (Phân tích theo MoSCoW)

  • Must have (Bắt buộc): Đóng ngắt 4 kênh tải AC 220V độc lập; bảo vệ cách ly mạch số và mạch động lực; kết nối Wi-Fi 2.4GHz; truyền nhận dữ liệu qua MQTT Broker; đồng bộ trạng thái trên Node-RED và Android.
  • Should have (Nên có): Đọc và hiển thị dữ liệu nhiệt độ, độ ẩm từ DHT11; tự động khôi phục kết nối Wi-Fi/MQTT khi mất tín hiệu.
  • Could have (Có thể mở rộng): Đo dòng tiêu thụ phụ tải theo thời gian thực; lập lịch tự động bật/tắt thiết bị theo thời khóa biểu.
  • Won't have (Chưa thực hiện): Nhận diện khuôn mặt hoặc giọng nói cục bộ trên Edge Node.

Thiết kế hệ thống

+---------------------------------------------------------------------------------------+
|                                    HỆ THỐNG MẠNG CLOUD                                |
|                                                                                       |
|   +------------------------------------+    +-------------------------------------+   |
|   |         Web Server Node-RED        |    |       Android MQTT Dashboard        |   |
|   |   (Giao diện giám sát & điều khiển)|    |   (Giao diện điều khiển di động)    |   |
|   +-----------------+------------------+    +------------------+------------------+   |
|                     ^                                          ^                      |
|                     |        MQTT Protocol (Port 1883)         |                      |
|                     v                                          v                      |
|   +-------------------------------------------------------------------------------+   |
|   |                     CloudMQTT Server / Broker Management                      |   |
|   +----------------------------------------+--------------------------------------+   |
+--------------------------------------------|------------------------------------------+
                                             | Wi-Fi 802.11 b/g/n
                                             v
+---------------------------------------------------------------------------------------+
|                                  HARDWARE CONTROLLER                                  |
|                                                                                       |
|   +-------------------------------------------------------------------------------+   |
|   |                   ESP32-WROOM-32 (MCU Core Xtensa 240MHz)                     |   |
|   +--------+--------------------+-------------------+--------------------+--------+   |
|            | GPIO25             | GPIO26            | GPIO27             | GPIO14     |
|            v                    v                   v                    v            |
|   +-------------------------------------------------------------------------------+   |
|   |      Khối Cách Ly & Kích Tầng Công Suất (PC817 Opto + 2SC1815 NPN Driver)     |   |
|   +-------------------------------------------------------------------------------+   |
|            |                    |                   |                    |            |
|            v                    v                   v                    v            |
|   +-------------------------------------------------------------------------------+   |
|   |                 Khối Tiếp Điểm Relay SPDT 5VDC (10A/250VAC)                   |   |
|   +-------------------------------------------------------------------------------+   |
|            |                    |                   |                    |            |
|            v                    v                   v                    v            |
|       [Thiết bị 1]         [Thiết bị 2]        [Thiết bị 3]         [Thiết bị 4]      |
|        (Đèn Tuýp)           (Quạt Trần)         (Hệ thống Loa)       (TV Màn hình)    |
+---------------------------------------------------------------------------------------+

Danh mục công nghệ và phiên bản phần mềm

  • Vi điều khiển: ESP32-WROOM-32 (2 lõi Xtensa Dual-Core 32-bit LX6, xung nhịp 240MHz, 520KB SRAM, 4MB Flash ROM).
  • Môi trường lập trình (IDE): Visual Studio Code v1.35+ kết hợp PlatformIO Core v4.0.
  • Firmware Framework: Arduino Core for ESP32 v1.0.2+, Thư viện PubSubClient v2.7, Adafruit DHT Sensor Library v1.3.4.
  • Backend & Middleware: Node-RED v0.20.5 trên nền Node.js v10.15 LTS; Broker CloudMQTT (nền tảng Mosquitto v1.5.8).
  • Mobile App: MQTT Dashboard v1.9.8 trên hệ điều hành Android 9.0 (API Level 28).

Thiết kế Topic Giao thức MQTT

Topic Name Hướng truyền Kiểu dữ liệu Mục đích
phonghoc/thietbi/relay1/set Node-RED/App $\rightarrow$ ESP32 String ("1" / "0") Lệnh điều khiển Bật/Tắt Relay 1
phonghoc/thietbi/relay1/state ESP32 $\rightarrow$ Node-RED/App String ("ON" / "OFF") Phản hồi trạng thái xác nhận của Relay 1
phonghoc/cambien/nhietdo ESP32 $\rightarrow$ Node-RED/App Float ("28.5") Dữ liệu nhiệt độ môi trường (°C)
phonghoc/cambien/doam ESP32 $\rightarrow$ Node-RED/App Float ("65.0") Dữ liệu độ ẩm môi trường (%RH)

Implementation và kết quả

Development Process & Mạch nguyên lý

Khối ngõ ra công suất được thiết kế với tiêu chuẩn cách ly quang học hoàn toàn để triệt tiêu điện áp cảm ứng ngược (Back-EMF) từ các tải cuộn dây (như quạt trần) gây reset vi điều khiển.

Nguyên lý hoạt động tầng kích:

  1. Khi chân GPIO của ESP32 xuất mức logic HIGH (3.3V), dòng qua diode phát quang nội tại của Opto PC817 phát xạ ánh sáng, kích mở phototransistor.
  2. Cực C của PC817 kéo dòng kích vào cực B của Transistor NPN 2SC1815 qua điện trở phân cực $R_B = 1k\Omega$.
  3. Transistor C1815 bão hòa, nối cuộn hút Relay 5VDC xuống GND, đóng tiếp điểm Thường Mở (NO) để cấp nguồn 220VAC cho phụ tải.
  4. Diode 1N4007 mắc song song ngược cực tính với cuộn dây Relay đóng vai trò Diode dập xung (Flyback Diode), tiêu tán năng lượng tích lũy trong cuộn cảm khi ngắt điện, bảo vệ mối nối C-E của C1815 theo phương trình:

$$V_L = -L \frac{di}{dt}$$

#include <WiFi.h>
#include <PubSubClient.h>
#include "DHT.h"

#define DHTPIN 4
#define DHTTYPE DHT11
#define RELAY1_PIN 25
#define RELAY2_PIN 26

const char* ssid = "HCMUTE_WIFI";
const char* password = "Password@123";
const char* mqtt_server = "m16.cloudmqtt.com";
const int mqtt_port = 18833;
const char* mqtt_user = "user_spkt";
const char* mqtt_pass = "token_auth";

WiFiClient espClient;
PubSubClient client(espClient);
DHT dht(DHTPIN, DHTTYPE);

void callback(char* topic, byte* message, unsigned int length) {
    String messageTemp;
    for (int i = 0; i < length; i++) {
        messageTemp += (char)message[i];
    }
    
    if (String(topic) == "phonghoc/thietbi/relay1/set") {
        if (messageTemp == "1") {
            digitalWrite(RELAY1_PIN, HIGH);
            client.publish("phonghoc/thietbi/relay1/state", "ON", true);
        } else if (messageTemp == "0") {
            digitalWrite(RELAY1_PIN, LOW);
            client.publish("phonghoc/thietbi/relay1/state", "OFF", true);
        }
    }
}

void reconnect() {
    while (!client.connected()) {
        String clientId = "ESP32Client-" + String(random(0xffff), HEX);
        if (client.connect(clientId.c_str(), mqtt_user, mqtt_pass)) {
            client.subscribe("phonghoc/thietbi/relay1/set", 1);
            client.subscribe("phonghoc/thietbi/relay2/set", 1);
        } else {
            delay(5000);
        }
    }
}

void setup() {
    pinMode(RELAY1_PIN, OUTPUT);
    pinMode(RELAY2_PIN, OUTPUT);
    digitalWrite(RELAY1_PIN, LOW);
    digitalWrite(RELAY2_PIN, LOW);
    
    dht.begin();
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
        delay(500);
    }
    client.setServer(mqtt_server, mqtt_port);
    client.setCallback(callback);
}

void loop() {
    if (!client.connected()) {
        reconnect();
    }
    client.loop();
    
    static unsigned long lastMsg = 0;
    unsigned long now = millis();
    if (now - lastMsg > 10000) { // Cập nhật telemetry chu kỳ 10s
        lastMsg = now;
        float h = dht.readHumidity();
        float t = dht.readTemperature();
        if (!isnan(h) && !isnan(t)) {
            client.publish("phonghoc/cambien/doam", String(h, 1).c_str());
            client.publish("phonghoc/cambien/nhietdo", String(t, 1).c_str());
        }
    }
}

Testing và Validation

Hệ thống đã trải qua quy trình kiểm thử tải liên tục trong 72 giờ tại phòng thí nghiệm Bộ môn Điện tử Công nghiệp – Y Sinh.

Độ trễ truyền thông qua các hạ tầng mạng (Đơn vị: Milliseconds)
------------------------------------------------------------------------
Mạng Cục bộ (LAN Wi-Fi)       | █████ 42ms
Mạng 4G/LTE qua CloudMQTT     | █████████████ 118ms
Mạng Internet công cộng (WAN) | ████████████████ 146ms
------------------------------------------------------------------------

Số liệu thực nghiệm hệ thống

Kịch bản kiểm thử Số lần thử nghiệm Tỷ lệ thành công (%) Độ trễ trung bình (ms) Hiện tượng lỗi ghi nhận
Đóng ngắt Đèn Tuýp LED (Tải thuần trở) 500 lần 100.0% 85ms Không có
Đóng ngắt Quạt trần (Tải cảm ứng) 500 lần 99.8% 92ms 1 lần trễ gói tin do xung nhiễu
Mất nguồn đột ngột và tự kết nối lại 50 lần 100.0% 3.200ms (thời gian boot) Kết nối Wi-Fi & MQTT ổn định
Đọc dữ liệu cảm biến DHT11 1.000 chu kỳ 99.4% Tần số lấy mẫu 0.1Hz 6 lần checksum lỗi (tự bỏ qua)

Đổi mới và đóng góp

Điểm cải tiến kỹ thuật

  1. Cơ chế phản hồi vòng kín (Closed-loop State Acknowledgment): Thay vì chỉ gửi lệnh một chiều, hệ thống gửi lệnh qua topic /set và chỉ cập nhật trạng thái giao diện khi nhận được phản hồi xác thực /state từ chân vi điều khiển, loại bỏ hoàn toàn hiện tượng hiển thị trạng thái ảo khi mất kết nối.
  2. Thiết kế mạch in 2 lớp chuẩn công nghiệp: Phân tách hoàn toàn đường mass tín hiệu số (Digital GND) và mass công suất (Power Line), khoảng cách cách ly điện áp cao (Creepage distance) > 4mm, chịu được điện áp đánh thủng lên đến 2.500VAC.
  3. Tối ưu băng thông mạng IoT: Tải trọng gói tin MQTT (Payload) được tối ưu hóa ở mức byte thô hoặc JSON rút gọn, giảm 85% dung lượng truyền thông so với việc sử dụng chuẩn HTTP RESTful API truyền thống.
Dung lượng gói tin truyền thông (Bytes / Request)
------------------------------------------------------------------------
HTTP POST (JSON Header + Body) | ██████████████████████████████ 450 Bytes
Giao thức MQTT đề tài          | ███ 38 Bytes (Giảm 91.5% Overhead)
------------------------------------------------------------------------

Ứng dụng thực tế và triển khai

Kịch bản ứng dụng tại trường học

  • Quản lý tập trung toàn trường: Cán bộ quản trị tại phòng điều hành có thể giám sát trạng thái 100+ phòng học trên một Dashboard Node-RED duy nhất.
  • Tự động ngắt điện ngoài giờ: Tích hợp bộ đếm thời gian tự động tắt toàn bộ đèn, quạt sau 21h30 hàng ngày, tránh lãng phí điện năng qua đêm.
  • Bảo trì dự đoán: Giám sát nhiệt độ hoạt động bên trong tủ điều khiển; nếu nhiệt độ vượt ngưỡng $50^\circ\text{C}$, hệ thống gửi cảnh báo nguy cơ quá nhiệt phụ tải.

Phân tích hiệu quả kinh tế (ROI)

Tính toán cho một dãy phòng học gồm 10 phòng tiêu chuẩn (mỗi phòng 12 thiết bị tiêu thụ công suất trung bình 600W/giờ):

  • Điện năng lãng phí trung bình do không tắt thiết bị: $2,\text{giờ/ngày} \times 600,\text{W} \times 10,\text{phòng} = 12,\text{kWh/ngày} \approx 360,\text{kWh/tháng}$.
  • Chi phí điện tiết kiệm được hàng năm: $360,\text{kWh} \times 12,\text{tháng} \times 2.500,\text{VNĐ/kWh} = 10.800.000,\text{VNĐ}$.
  • Tổng chi phí lắp đặt 10 module điều khiển: $3.500.000,\text{VNĐ}$.
  • Thời gian hoàn vốn đầu tư (ROI): $\approx 3.9,\text{tháng}$.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật hiện tại

  • Cảm biến DHT11 có dải đo hẹp (Nhiệt độ $0-50^\circ\text{C} \pm 2^\circ\text{C}$, Độ ẩm $20-90% \pm 5%$) và thời gian lấy mẫu chậm (tối thiểu 1s/lần đọc).
  • Giao thức MQTT truyền trên cổng 1883 chưa kích hoạt chứng chỉ bảo mật mã hóa SSL/TLS (Port 8883) do giới hạn tài nguyên của bản dùng thử CloudMQTT miễn phí.
  • Chưa tích hợp module đo lường điện năng chuyên dụng (như PZEM-004T) để đo điện áp, dòng điện thực và công suất tiêu thụ tức thời.

Hướng phát triển tiếp theo

  • Nâng cấp cảm biến lên dòng công nghiệp SHT30 hoặc BME280 giao tiếp I2C cho độ chính xác cao.
  • Triển khai mã hóa TLS/SSL MQTTS và tích hợp thuật toán ký số xác thực thiết bị (Device Authentication Token).
  • Xây dựng thuật toán AI Edge Node nhận diện mật độ người trong phòng học qua camera để tự động điều chỉnh tốc độ quạt và số lượng đèn chiếu sáng.

Đối tượng hưởng lợi

  • Sinh viên kỹ thuật: Nguồn tài liệu tham khảo hoàn chỉnh từ sơ đồ nguyên lý phần cứng, thiết kế mạch in PCB đến giải thuật lập trình điều khiển ESP32 và tích hợp giao thức MQTT.
  • Kỹ sư phát triển IoT: Mẫu kiến trúc nhúng (Embedded Architecture) kết hợp Node-RED và Android chuẩn mực, có thể tái sử dụng cho các dự án Smart Home, Smart Agriculture.
  • Ban quản lý cơ sở vật chất: Giải pháp chi phí thấp giúp số hóa và tự động hóa hệ thống điện hạ thế hiện hữu mà không cần thay đổi cấu trúc đi dây âm tường.
  • Nhà nghiên cứu năng lượng: Cung cấp mô hình thu thập dữ liệu vi khí hậu và phụ tải thời gian thực phục vụ bài toán tối ưu hóa lưới điện nhỏ (Microgrid).

Câu hỏi thường gặp

1. Yêu cầu kỹ thuật hạ tầng mạng để triển khai hệ thống là gì?

Hệ thống yêu cầu mạng không dây Wi-Fi chuẩn 802.11 b/g/n băng tần 2.4GHz (ESP32 không hỗ trợ băng tần 5GHz). Băng thông Internet tối thiểu $128,\text{kbps}$ cho mỗi cụm 10 module do giao thức MQTT có kích thước gói tin cực nhỏ (chỉ vài chục bytes/packet).

2. Khi mất kết nối Internet, hệ thống có thể điều khiển được không?

Khi mất Internet, hệ thống vẫn hoạt động cục bộ nếu cài đặt Local MQTT Broker (như Mosquitto cài trên Raspberry Pi hoặc máy chủ nội bộ mạng LAN). Khi đó, các thiết bị và Dashboard Web nội bộ vẫn đồng bộ bình thường mà không cần kết nối ra ngoài Cloud.

3. Mạch điều khiển có bị ảnh hưởng bởi xung điện áp cao khi đóng cắt quạt trần không?

Không. Nhờ thiết kế tầng đệm cách ly quang qua IC Opto PC817 (cách ly điện áp lên đến 5.000V RMS) kết hợp Diode dập xung 1N4007 mắc song song cuộn dây Relay, các xung điện áp ngược cảm ứng hoàn toàn bị triệt tiêu, không thể truyền về chân vi điều khiển ESP32.

4. Chi phí chế tạo phần cứng cho một module 4 kênh là bao nhiêu?

Chi phí linh kiện cho một module 4 kênh công suất tiêu chuẩn khoảng $320.000 - 380.000,\text{VNĐ}$ (bao gồm Board ESP32-DevKitC, 4 Relay Songle 10A, cụm linh kiện cách ly PC817 + C1815, mạch nguồn giảm áp AC-DC Hi-Link HLK-PM01 và vỏ hộp bảo vệ).

5. Hệ thống có thể mở rộng để điều khiển bao nhiêu thiết bị trong một trường học?

Nhờ cơ cấu quản lý Topic phân cấp của MQTT (truong/daynha/tang/phong/thietbi), một máy chủ Broker tiêu chuẩn có thể quản lý đồng thời hàng chục ngàn thiết bị kết nối mà không xảy ra nghẽn mạng.


Kết luận

Đồ án "Thiết kế và thi công mô hình điều khiển thiết bị điện" đã hoàn thành xuất sắc các mục tiêu nghiên cứu và ứng dụng thực tiễn đề ra. Bằng việc kết hợp vi điều khiển thế hệ mới ESP32, giao thức truyền thông nhẹ MQTT cùng các giao diện quản trị Node-RED và Android, đề tài đã chứng minh tính khả thi, độ tin cậy và hiệu quả kinh tế vượt trội trong việc tự động hóa quản lý năng lượng trường học. Đây là nền tảng vững chắc để mở rộng triển khai thành các giải pháp Tòa nhà thông minh (Smart Building) và Trường đại học thông minh (Smart Campus) trong tương lai.