Giới thiệu dự án
Trong bối cảnh bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và xu hướng vạn vật kết nối (Internet of Things - IoT), việc tự động hóa và quản lý năng lượng thông minh trong các hộ gia đình (Smart Home) cũng như các cơ sở công nghiệp đã trở thành nhu cầu thiết yếu. Theo thống kê từ Cơ quan Năng lượng Quốc tế (IEA), các thiết bị điện ở chế độ chờ (standby power) và việc sử dụng thiết bị điện kém hiệu quả chiếm từ 5% đến 10% tổng điện năng tiêu thụ của một hộ gia đình trung bình. Các thiết bị ổ cắm truyền thống chỉ đóng vai trò cơ học là dẫn điện và cấp nguồn thụ động, hoàn toàn không có khả năng giám sát trạng thái, cảnh báo tiêu thụ hay cho phép điều khiển từ xa khi người dùng rời khỏi nhà.
Đề tài "Thiết Kế Ổ Cắm Thông Minh Điều Khiển Qua Wifi" được nghiên cứu và thực hiện tại Bộ môn Kỹ thuật và Điều khiển Tự động hóa – Trường Điện - Điện tử, Đại học Bách Khoa Hà Nội (do sinh viên Tạ Anh Tú thực hiện dưới sự hướng dẫn của ThS. Nguyễn Thị Huế). Đề tài giải quyết trực tiếp bài toán đo lường chính xác các thông số điện năng xoay chiều (AC) theo thời gian thực và cung cấp khả năng điều khiển đóng/cắt tải từ xa thông qua mạng không dây Wi-Fi kết hợp ứng dụng di động Android.
HỆ THỐNG Ổ CẮM THÔNG MINH IOT
+-------------------------------------------------------------------+
| +-------------------+ +----------------------------------+ |
| | NGUỒN ĐIỆN LƯỚI | ---> | MẠCH ĐO LƯỜNG & TÍNH TOÁN | |
| | (220VAC / 50Hz) | | (ZMCT103C + ZMPT101B + ADE7753) | |
| +-------------------+ +----------------------------------+ |
| | | (SPI Mode 1) |
| v v |
| +-------------------+ +----------------------------------+ |
| | KHỐI ĐÓNG CẮT | <--- | VI ĐIỀU KHIỂN ĐO LƯỜNG | |
| | (Relay Opto 10A) | (IO) | (ATmega328P + LCD5110 Nokia) | |
| +-------------------+ +----------------------------------+ |
| ^ | (UART 115200bps) |
| | v |
| +-------------------------------------------------------------+ |
| | KHỐI TRUYỀN THÔNG WI-FI & IOT GATEWAY | |
| | (ESP32 DevKit-V1 - FreeRTOS - MQTT Client) | |
| +-------------------------------------------------------------+ |
+-----------------------------------|-------------------------------+
| (MQTT over Wi-Fi 2.4GHz)
v
+-----------------------------+
| ỨNG DỤNG ANDROID GIÁM SÁT |
| (Java / Eclipse Paho MQTT) |
+-----------------------------+
Mục tiêu dự án
- Thiết kế phần cứng hoàn chỉnh: Tích hợp khối nguồn hạ áp cách ly (HLK-5M05, AMS1117-3.3V), khối biến đổi dòng/áp cách ly cao (ZMCT103C, ZMPT101B), vi mạch đo lường chuyên dụng ADE7753, khối hiển thị LCD5110 và mạch lực relay 10A cách ly quang (optocoupler).
- Phát triển firmware nhúng đa tầng (Dual-MCU): Lập trình vi điều khiển ATmega328P giao tiếp SPI Mode 1 với IC ADE7753 để tính toán giá trị hiệu dụng ($V_{RMS}, I_{RMS}$), công suất tác dụng ($P$), điện năng tích lũy ($AENERGY$); đồng thời cấu hình vi điều khiển ESP32 chạy hệ điều hành thời gian thực FreeRTOS trên nền ESP-IDF để quản lý giao thức mạng TCP/IP và MQTT Client.
- Xây dựng ứng dụng giám sát Android: Lập trình ứng dụng native trên Android Studio bằng ngôn ngữ Java, tích hợp thư viện Paho MQTT Client để nhận dữ liệu đo lường liên tục và gửi lệnh điều khiển bật/tắt relay theo thời gian thực.
- Đảm bảo tính an toàn và độ tin cậy: Hệ thống đạt khả năng cách ly điện áp lên tới 3000VAC tại các ngõ vào đo lường và mạch đóng cắt, trang bị bảo vệ quá tải, quá áp bằng cầu chì nhiệt và varistor.
Phạm vi và giới hạn đề tài
- Phạm vi hoạt động: Lưới điện hạ thế 1 pha $220\text{VAC} \pm 10%$, tần số $50\text{Hz}$, dòng điện định mức $0 - 10\text{A}$ (vùng làm việc tuyến tính cao nhất trong dải $0 - 5\text{A}$).
- Giao thức truyền thông: Wi-Fi IEEE 802.11 b/g/n băng tần 2.4GHz kết nối tới MQTT Broker qua mạng nội bộ hoặc Internet.
- Giới hạn kỹ thuật: Thông tin Wi-Fi (SSID/Password) được gán cố định trong mã nguồn ESP32 (chưa tích hợp SmartConfig/Captive Portal); kích thước bo mạch thử nghiệm dạng module rời; chưa bổ sung bộ nhớ lưu trữ ngoại tuyến khi mất kết nối mạng.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
| Tiêu chí so sánh |
Ổ cắm cơ / Hẹn giờ truyền thống |
Ổ cắm thông minh thương mại giá rẻ (Sonoff/Tuya) |
Giải pháp thiết kế trong đồ án |
| Phương pháp đo điện |
Không hỗ trợ |
Đo gần đúng bằng ADC vi điều khiển nội bộ |
IC chuyên dụng ADE7753 + Biến dòng/áp chuyên biệt |
| Độ chính xác đo lường |
N/A |
Sai số lớn ($> 5 - 10%$), dễ trôi theo nhiệt độ |
Độ chính xác cao (sai số tuyến tính $< 0.2%$) |
| Cách ly an toàn |
Cơ bản |
Cách ly hạn chế, dùng điện trở phân áp trực tiếp |
Cách ly quang & biến dòng 3000VAC |
| Kiến trúc xử lý |
Đơn giản / Cơ học |
1 vi điều khiển đảm nhiệm cả Wi-Fi và đo lường |
Kiến trúc Dual-MCU tách biệt đo lường và truyền thông |
| Hiển thị tại chỗ |
Không có hoặc màn LED 7 đoạn |
Không có (chỉ báo đèn LED đơn) |
Màn hình đồ họa Nokia LCD5110 ($84 \times 84$ pixel) |
| Khả năng mở rộng/Tùy biến |
Không thể |
Đóng kín (Cloud hãng phụ thuộc) |
Mã nguồn mở hoàn toàn, hỗ trợ chuẩn MQTT mở |
Phân tích yêu cầu hệ thống theo phương pháp MoSCoW
- Must Have (Bắt buộc phải có):
- Đo chính xác điện áp hiệu dụng ($V_{RMS}$), dòng điện hiệu dụng ($I_{RMS}$), công suất tác dụng ($W$).
- Điều khiển đóng/cắt tải $220\text{V}/10\text{A}$ qua relay an toàn.
- Truyền thông qua Wi-Fi bằng giao thức MQTT về ứng dụng Android.
- Hiển thị thông số đo tại chỗ qua màn hình Nokia LCD5110.
- Should Have (Nên có):
- Hiệu chuẩn sai số phần mềm (Offset compensation và nhân hệ số khuếch đại $k_v, k_i, k_w$).
- Mạch bảo vệ chống sét lan truyền (Varistor 300V) và ngắn mạch (Cầu chì 0.2A cho mạch nguồn).
- Could Have (Có thể có):
- Cảnh báo ngưỡng quá dòng, quá áp tự động ngắt relay.
- Lưu trữ lịch sử tiêu thụ điện theo ngày/tháng trên Local Storage/Cloud Database.
- Won't Have (Chưa thực hiện trong giai đoạn này):
- Đo lường hệ thống 3 pha công nghiệp.
- Tích hợp pin dự phòng RTC (Real-Time Clock) phần cứng khi mất điện lưới.
Thiết kế hệ thống phần cứng
1. Khối nguồn nuôi hạ áp (Power Supply Unit)
Hệ thống sử dụng module chuyển đổi nguồn xung AC-DC Hi-Link HLK-5M05 chuyển đổi từ $220\text{VAC}$ sang $5\text{VDC}$ công suất 5W (dòng tối đa 1A). Điện áp 5VDC được cấp trực tiếp cho relay và ATmega328P, đồng thời đi qua IC ổn áp tuyến tính AMS1117-3.3V (dòng tải cực đại 1A, đóng gói SOT-223) để cung cấp nguồn 3.3VDC cho ESP32, ADE7753 và màn hình LCD5110.
$$\text{Tổng dòng tiêu thụ cực đại: } I_{total} = I_{ATmega} (42\text{mA}) + I_{LCD} (50\text{mA}) + I_{ADE} (7\text{mA}) + I_{ESP32} (500\text{mA}) + I_{Relay} (70\text{mA}) \approx 669\text{mA} < 1000\text{mA}$$
Hệ thống bổ sung mạch lọc thông thấp LC gồm cuộn cảm $L_4$ và hệ thống tụ lọc cao tần/thấp tần $10\mu\text{F}, 100\text{nF}$, hạt ferrite bead ngăn cách giữa $AGND$ (Ground Analog) và $DGND$ (Ground Digital) để loại bỏ hiện tượng can nhiễu chuyển mạch.
2. Khối cảm biến và vi mạch đo lường ADE7753
- Kênh biến dòng (Current Channel): Sử dụng biến dòng ZMCT103C tỷ số biến dòng $1000:1$ ($5\text{A}/5\text{mA}$), sai số tuyến tính $\le 0.2%$, điện áp cách ly $3000\text{V}$. Tín hiệu dòng thứ cấp đi qua điện trở tải shunt $R_3 = 33,\Omega$ ($1/4\text{W}$) để chuyển đổi thành tín hiệu điện áp đưa vào hai chân $V_{1P}$ và $V_{1N}$ của ADE7753:
$$V_{in_max} = \frac{10\text{A}}{1000} \times 33,\Omega \times \sqrt{2} \approx 0.466\text{V} \le 0.5\text{V} \quad (\text{Thỏa mãn dải điện áp đầu vào ADE7753})$$
- Kênh biến áp (Voltage Channel): Sử dụng biến áp đo lường ZMPT101B tỷ số $2\text{mA}:2\text{mA}$, điện áp cách ly $3000\text{VAC}$. Phía sơ cấp mắc nối tiếp điện trở hạn dòng $R_5 = 200,\text{k}\Omega$ ($1\text{W}$), dòng sơ cấp danh định $I_{in} = \frac{220\text{V}}{200,\text{k}\Omega} = 1.1\text{mA}$. Phía thứ cấp mắc điện trở lấy mẫu $R_4 = 100,\Omega$ ($1/4\text{W}$) đưa vào hai chân $V_{2P}$ và $V_{2N}$ của ADE7753:
$$V_{out_max} = 1.1\text{mA} \times 100,\Omega \times \sqrt{2} \approx 0.155\text{V} \le 0.5\text{V} \quad (\text{Thỏa mãn chuẩn ngõ vào})$$
- IC đo lường chuyên dụng ADE7753: Bộ chuyển đổi ADC $\Sigma$-$\Delta$ bậc 2 tích hợp bộ nhân DSP tính toán công suất tức thời, giá trị RMS và chu kỳ tín hiệu. IC giao tiếp qua chuẩn SPI 4 dây ($DIN, DOUT, SCLK, CS$), tích hợp thạch anh dao động ngoài $3.579545\text{MHz}$.
SƠ ĐỒ NGUYÊN LÝ KHỐI ĐO LƯỜNG ADE7753
+--------------------------------+
Tải AC (L) ----->| ZMCT103C (1000:1) |
| +- R3 (33R) -+ |
| | | |
| +---> V1P | |
| +---> V1N | |
| |
Điện áp 220V --->| ZMPT101B (2mA:2mA) |
| +- R5 (200k) - R4 (100R) -+ |
| | | |
| +---> V2P ADE7753 |
| +---> V2N |
| |
| [DIN, DOUT, SCLK, CS] ----+---> SPI tới ATmega328P
| [AGND / DGND Ferrite] |
+--------------------------------+
Implementation và kết quả
Quy trình phát triển phần mềm nhúng và ứng dụng
1. Xử lý dữ liệu trên ATmega328P qua SPI Mode 1
ATmega328P hoạt động ở tần số $16\text{MHz}$, nạp bootloader Optiboot qua mạch nạp USBISP thông qua phần mềm PROGISP. Vi điều khiển cấu hình SPI Master ở chế độ SPI Mode 1 ($CPOL=0, CPHA=1$), tốc độ $200\text{kHz}$ để đọc các thanh ghi 24-bit từ ADE7753.
#include <ADE7753.h>
#include <PCD8544.h>
PCD8544 lcd;
ADE7753 meter;
unsigned long t1;
void setup() {
lcd.begin(84, 48);
lcd.setContrast(50);
Serial.begin(115200);
// Khởi tạo chân CS tại A2 (D16), xung clock SPI 200kHz
meter.Init(A2, 200000);
meter.setMode(0x000C); // Chế độ hoạt động mặc định
meter.gainSetup(INTEGRATOR_OFF, FULLSCALESELECT_0_5V, GAIN_1, GAIN_1);
meter.resetStatus();
}
void loop() {
float ki = 0.000003; // Hệ số chuyển đổi dòng điện thực tế
float kv = 0.00064; // Hệ số chuyển đổi điện áp thực tế
float kw = 1.0; // Hệ số chuyển đổi công suất
// Đọc giá trị thanh ghi từ ADE7753
float v1 = meter.vrms() * kv;
float i1 = meter.irms() * ki;
uint32_t w1 = 0;
uint16_t n_cycle = 200; // Chu kỳ tích lũy 4 giây
uint8_t LineCYCstatus = meter.setPotLine(n_cycle);
if(LineCYCstatus) {
uint32_t buf = 0x00FFFFFF;
w1 = meter.getWatt();
if(w1 >= 8388608) {
w1 = (~(w1 - 1)) & buf; // Bù 2 cho dữ liệu có dấu
}
}
// Đóng gói và truyền qua UART gửi đến ESP32
Serial.print("V:"); Serial.print(v1, 2);
Serial.print(",I:"); Serial.print(i1, 3);
Serial.print(",W:"); Serial.println(w1 * kw);
// Hiển thị cục bộ trên LCD5110
lcd.setCursor(0, 0); lcd.print("V: "); lcd.print(v1);
lcd.setCursor(0, 1); lcd.print("I: "); lcd.print(i1);
lcd.setCursor(0, 2); lcd.print("P: "); lcd.print(w1);
delay(1000);
}
2. Xử lý mạng không dây và MQTT trên ESP32 (ESP-IDF / FreeRTOS)
ESP32 được nạp firmware phát triển trên nền tảng ESP-IDF v4.x sử dụng hệ điều hành FreeRTOS. Hệ thống thiết lập 2 tác vụ song song: uart_event_task để tiếp nhận dữ liệu đo từ ATmega328P qua cổng UART2 ($TXD=\text{GPIO17}, RXD=\text{GPIO16}$, baudrate $115200,\text{bps}$) và mqtt_event_handler để duy trì kết nối tới MQTT Broker.
#include <stdio.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/queue.h"
#include "driver/uart.h"
#include "driver/gpio.h"
#include "mqtt_client.h"
#include "esp_log.h"
#define EX_UART_NUM UART_NUM_2
#define TXD_PIN (GPIO_NUM_17)
#define RXD_PIN (GPIO_NUM_16)
#define RELAY_PIN (GPIO_NUM_18)
#define BUF_SIZE (1024)
static QueueHandle_t uart2_queue;
esp_mqtt_client_handle_t client = NULL;
static void mqtt_event_handler(void *handler_args, esp_event_base_t base, int32_t event_id, void *event_data) {
esp_mqtt_event_handle_t event = event_data;
switch (event->event_id) {
case MQTT_EVENT_CONNECTED:
esp_mqtt_client_subscribe(client, "socket/relay/control", 0);
ESP_LOGI("MQTT", "Subscribed to relay control topic");
break;
case MQTT_EVENT_DATA:
if (strncmp(event->topic, "socket/relay/control", event->topic_len) == 0) {
if (strncmp(event->data, "ON", event->data_len) == 0) {
gpio_set_level(RELAY_PIN, 1);
} else if (strncmp(event->data, "OFF", event->data_len) == 0) {
gpio_set_level(RELAY_PIN, 0);
}
}
break;
default:
break;
}
}
static void uart_event_task(void *pvParameters) {
uart_event_t event;
uint8_t dtmp[BUF_SIZE];
for(;;) {
if(xQueueReceive(uart2_queue, (void *)&event, (TickType_t)portMAX_DELAY)) {
if(event.type == UART_DATA) {
int len = uart_read_bytes(EX_UART_NUM, dtmp, event.size, portMAX_DELAY);
dtmp[len] = '\0';
// Publish dữ liệu nhận được lên MQTT Broker
esp_mqtt_client_publish(client, "socket/telemetry/data", (char*)dtmp, len, 0, 0);
}
}
}
}
3. Phát triển ứng dụng Android giám sát & điều khiển
Ứng dụng di động được thiết kế trên Android Studio (Target SDK: Android 13 - API Level 33), sử dụng giao diện TableLayout tối ưu hiển thị dạng bảng và tích hợp thư viện org.eclipse.paho.client.mqttv3:1.2.5.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:stretchColumns="1">
<TableRow android:layout_marginBottom="15dp">
<TextView
android:layout_span="2"
android:gravity="center"
android:text="GIÁM SÁT Ổ CẮM THÔNG MINH"
android:textSize="18sp"
android:textStyle="bold" />
</TableRow>
<TableRow>
<TextView android:text="Điện áp (VRMS):" android:textSize="16sp" />
<TextView android:id="@+id/textviewVRMS" android:text="0.00 V" android:textSize="16sp" android:textStyle="bold" />
</TableRow>
<TableRow>
<TextView android:text="Dòng điện (IRMS):" android:textSize="16sp" />
<TextView android:id="@+id/textviewIRMS" android:text="0.000 A" android:textSize="16sp" android:textStyle="bold" />
</TableRow>
<TableRow>
<TextView android:text="Công suất (P):" android:textSize="16sp" />
<TextView android:id="@+id/textviewWatt" android:text="0 W" android:textSize="16sp" android:textStyle="bold" />
</TableRow>
<TableRow android:layout_marginTop="20dp">
<Button
android:id="@+id/btn_relay"
android:layout_span="2"
android:text="BẬT / TẮT THIẾT BỊ"
android:backgroundTint="#00796B"
android:textColor="#FFFFFF" />
</TableRow>
</TableLayout>
Kết quả đo kiểm và thực nghiệm
+-----------------------------------------------------------------------------------+
| BẢNG ĐỐI CHIẾU KẾT QUẢ ĐO THỰC TẾ |
+-------------------+-------------------+-------------------+-----------------------+
| Thông số đo | Thiết bị chuẩn | Ổ cắm thông minh | Sai số tương đối (%) |
| | (Fluke 179 RMS) | (ADE7753 + Hệ số) | |
+-------------------+-------------------+-------------------+-----------------------+
| Điện áp lưới 220V | 225.4 V | 225.0 V | 0.17 % |
| Tải nhỏ (Bóng LED)| 0.022 A | 0.020 A | 9.09 % (Nhiễu vùng đáy)|
| Tải trung bình | 1.450 A (320W) | 1.442 A (324W) | 0.55 % |
| Tải lớn (Ấm đun) | 8.120 A (1820W) | 8.080 A (1815W) | 0.49 % |
+-------------------+-------------------+-------------------+-----------------------+
- Độ trễ truyền nhận tín hiệu (Latency): Thời gian từ khi nhấn nút trên ứng dụng Android đến khi Relay tác động thực tế đạt trung bình $\approx 85\text{ms}$ trong mạng Wi-Fi cục bộ và $\approx 220\text{ms}$ qua MQTT Broker trên môi trường Internet.
- Độ ổn định hệ thống: Đã vận hành liên tục kiểm thử trong 72 giờ không xảy ra hiện tượng tràn hàng đợi bộ đệm UART hoặc treo tiến trình Wi-Fi trên ESP32 nhờ cơ chế quản trị bộ nhớ động và bộ giám sát FreeRTOS Task Watchdog.
Đổi mới và đóng góp
- Kiến trúc Dual-Core / Dual-MCU phân tầng tối ưu: Thay vì dồn toàn bộ tác vụ đo lường và giao thức mạng vào một chip đơn lẻ gây nghẽn ngắt hoặc sai lệch thời gian lấy mẫu, giải pháp đã tách biệt rõ rệt: ATmega328P chuyên trách giao tiếp thời gian thực với ADE7753 qua SPI Mode 1, còn ESP32 chuyên trách stack mạng TCP/IP và FreeRTOS. Kiến trúc này triệt tiêu hoàn toàn hiện tượng mất gói tin đo lường khi Wi-Fi truyền tải gói tin nặng.
- Ứng dụng vi mạch đo lường chuyên dụng chuẩn công nghiệp (ADE7753): Khắc phục triệt để nhược điểm của các dòng ổ cắm thông minh DIY trên thị trường vốn sử dụng ADC nội suy của vi điều khiển (vốn có độ phân giải thấp, không tích hợp bộ nhân DSP và rất nhạy cảm với can nhiễu lưới điện AC).
- Thiết kế cách ly galvanic đa tầng an toàn cao: Tích hợp biến dòng ZMCT103C, biến áp xung ZMPT101B với điện áp cách ly lên đến $3000\text{V}$, kết hợp optocoupler điều khiển relay loại bỏ nguy cơ điện áp lưới đánh thủng sang vi xử lý điều khiển và thiết bị người dùng.
Ứng dụng thực tế và triển khai
MÔ HÌNH HỆ THỐNG TRIỂN KHAI
+--------------------+ +---------------------+ +-----------------------+
| NHÀ THÔNG MINH | | TRUNG TÂM DỮ LIỆU | | NÔNG NGHIỆP CÔNG NGHỆ |
| Hẹn giờ bình nóng | | Giám sát PUE máy chủ| | Bơm tưới tự động |
| Tự ngắt chống cháy | | Quản trị công suất | | Sục khí oxy bể cá |
+---------+----------+ +----------+----------+ +-----------+-----------+
| | |
+-----------------------------+------------------------------+
|
v
+-------------------------------------+
| Ổ CẮM THÔNG MINH ĐIỀU KHIỂN QUA WIFI|
+-------------------------------------+
Kịch bản triển khai thực tế
- Quản lý thiết bị công suất lớn trong gia đình: Tự động lên lịch đóng cắt bình nóng lạnh (2500W), máy điều hòa không khí, cảnh báo khi phát hiện thiết bị tiêu thụ công suất bất thường do rò rỉ điện.
- Tự động hóa nông nghiệp / Thủy sinh: Hẹn giờ cố định các chu kỳ bơm oxy cho bể cá, hệ thống đèn chiếu sáng quang hợp và máy bơm tưới cây định kỳ.
- Kiểm toán năng lượng tại văn phòng, xưởng sản xuất: Gắn ổ cắm vào các cụm thiết bị máy in, máy chủ mini để theo dõi biểu đồ công suất tiêu thụ thực tế, hỗ trợ tính toán chỉ số hiệu quả năng lượng.
Phân tích chi phí và hiệu quả đầu tư (BOM Cost & ROI)
- Tổng chi phí linh kiện phần cứng (BOM Cost): $\approx 250.000 - 320.000\text{ VNĐ/sản phẩm}$ ở quy mô chế tạo thử nghiệm.
- Hiệu quả tiết kiệm: Giảm thiểu trung bình $8 - 12%$ lượng điện lãng phí hàng tháng nhờ tính năng tự ngắt các thiết bị chạy không tải hoặc ngắt nguồn hẹn giờ, thời gian hoàn vốn đầu tư ước tính đạt từ 6 đến 9 tháng.
Hạn chế và hướng phát triển
Các hạn chế hiện tại
- Kích thước bo mạch còn lớn: Do sử dụng các module rời nối dây cắm (jumper) để phục vụ mục đích gỡ lỗi nghiên cứu, kích thước tổng thể chưa tối ưu để đóng gói vào hộp ổ cắm âm tường chuẩn tiêu chuẩn (chuẩn 86x86mm).
- Cấu hình mạng Wi-Fi cố định (Hardcoded): Thông tin SSID và Password được ghi trực tiếp trong mã nguồn C của ESP32, gây khó khăn cho người dùng cuối khi thay đổi điểm truy cập Wi-Fi.
- Sai số đo ở dải dòng cực thấp: Do đặc tính phi tuyến của biến dòng ZMCT103C tại vùng đáy ($< 50\text{mA}$), kết quả đo dòng điện đối với các tải công suất siêu nhỏ ($< 5\text{W}$) còn sai số tương đối đáng kể.
Hướng nâng cấp và phát triển
- Tích hợp Wi-Fi Provisioning / BLE SmartConfig: Xây dựng tính năng cấu hình Wi-Fi tự động qua Bluetooth Low Energy (BLE) hoặc chế độ SoftAP trực tiếp trên App Android.
- Thiết kế PCB tích hợp 2 lớp (2-Layer Surface Mount): Chuyển đổi toàn bộ sang linh kiện dán SMD, thu nhỏ diện tích bo mạch xuống dưới $60 \times 40\text{mm}$ và thiết kế vỏ nhựa chống cháy đạt tiêu chuẩn UL94-V0.
- Bổ sung tính năng phân tích nâng cao: Xây dựng cơ sở dữ liệu trên Cloud (Firebase/ThingsBoard) để vẽ biểu đồ phụ tải theo ngày/tháng và tính toán dự báo hóa đơn tiền điện theo biểu giá bậc thang của Tập đoàn Điện lực Việt Nam (EVN).
Đối tượng hưởng lợi
+-----------------------------------------------------------------------------------+
| ĐỐI TƯỢNG HƯỞNG LỢI VÀ GIÁ TRỊ |
+------------------------------------+----------------------------------------------+
| Đối tượng | Giá trị chuyên môn & Thực tiễn |
+------------------------------------+----------------------------------------------+
| **Sinh viên Điện - Tự động hóa** | Nguồn tài liệu tham khảo hoàn chỉnh về mạch |
| | đo lường công suất AC, giao tiếp SPI và UART |
+------------------------------------+----------------------------------------------+
| **Kỹ sư Lập trình Nhúng (IoT)** | Framework mẫu sử dụng ESP-IDF, FreeRTOS, |
| | cơ chế hàng đợi Queue và MQTT Client chuẩn |
+------------------------------------+----------------------------------------------+
| **Người dùng gia đình (End-user)** | Công cụ bảo vệ an toàn điện, kiểm soát năng |
| | lượng minh bạch và giảm chi phí tiền điện |
+------------------------------------+----------------------------------------------+
| **Cộng đồng Nghiên cứu & Maker** | Dự án mã nguồn mở có thể tùy biến linh hoạt, |
| | không bị phụ thuộc vào máy chủ Cloud đóng |
+------------------------------------+----------------------------------------------+
Câu hỏi thường gặp (FAQ)
1. Yêu cầu phần cứng tối thiểu để nạp và chạy firmware là gì?
Để nạp bootloader cho ATmega328P nguyên bản, cần mạch nạp USBISP AVR Programmer kết hợp phần mềm PROGISP. Sau khi có bootloader, có thể nạp code thông qua mạch nạp USB-to-UART (CP2102 hoặc CH340) trên nền Arduino IDE. Đối với ESP32, môi trường yêu cầu công cụ dòng lệnh ESP-IDF v4.x cùng trình biên dịch CMake/Ninja.
2. Tại sao phải dùng cả ATmega328P và ESP32 mà không lập trình trực tiếp trên ESP32?
Việc sử dụng ATmega328P làm vi xử lý đo lường chuyên trách giúp đảm bảo chu kỳ quét SPI Mode 1 với ADE7753 đạt tính tất định cao (deterministic timing), không bị ảnh hưởng bởi các ngắt hệ thống ưu tiên cao của stack mạng Wi-Fi trên ESP32, từ đó nâng cao độ chính xác của phép đo.
3. ADE7753 giao tiếp với vi điều khiển bằng chuẩn nào?
ADE7753 giao tiếp qua chuẩn nối tiếp SPI 4 dây ($DIN, DOUT, SCLK, CS$) ở chế độ SPI Mode 1 ($CPOL=0, CPHA=1$). Dữ liệu được ghi vào chân $DIN$ ở sườn xuống (falling edge) của xung $SCLK$ và được đọc ra từ chân $DOUT$ ở sườn lên (rising edge) tiếp theo.
4. Hệ số bù $k_v, k_i$ được tính toán và hiệu chuẩn như thế nào?
Hệ số chuyển đổi được xác định bằng phương pháp thực nghiệm tuyến tính: so sánh giá trị đọc trực tiếp từ thanh ghi 24-bit $VRMS$ (địa chỉ 0x17) và $IRMS$ (địa chỉ 0x16) của ADE7753 với đồng hồ đo vạn năng chuẩn (True RMS Multimeter), sau đó xác định hệ số góc: $k_v = \frac{V_{thuc_te}}{VRMS_{register}} \approx 0.00064$ và $k_i = \frac{I_{thuc_te}}{IRMS_{register}} \approx 0.000003$.
5. Ứng dụng Android có hoạt động khi điện thoại ở ngoài mạng Wi-Fi gia đình không?
Có. Khi MQTT Broker được cấu hình trên máy chủ có địa chỉ IP tĩnh hoặc sử dụng các Broker Cloud công cộng (như HiveMQ, EMQX, Mosquitto trên VPS), ứng dụng Android có thể gửi lệnh điều khiển và nhận dữ liệu giám sát từ bất kỳ đâu thông qua mạng 3G/4G/5G.
Kết luận
Đề tài "Thiết Kế Ổ Cắm Thông Minh Điều Khiển Qua Wifi" đã hoàn thành toàn diện các mục tiêu đặt ra từ thiết kế phần cứng, lập trình firmware nhúng đến xây dựng ứng dụng di động. Việc kết hợp thành công giữa vi mạch đo lường chuyên dụng ADE7753, vi điều khiển ATmega328P, chip truyền thông công suất mạnh ESP32 và giao thức MQTT mang lại một giải pháp đo lường - điều khiển năng lượng tin cậy, chính xác và có tính ứng dụng cao. Đây là nền tảng kỹ thuật vững chắc để tiếp tục hoàn thiện thành sản phẩm thương mại hóa, phục vụ đắc lực cho xu thế tiết kiệm năng lượng và xây dựng hệ sinh thái đô thị thông minh trong tương lai.