Giới thiệu dự án

Sự bùng nổ của cuộc Cách mạng Công nghiệp 4.0 và Internet of Things (IoT) đang tái định hình phương thức tương tác giữa con người với không gian sống. Theo báo cáo từ Gartner, số lượng thiết bị IoT kết nối toàn cầu đã vượt mốc hàng chục tỷ thiết bị, trong đó phân khúc nhà thông minh (Smart Home) chiếm tỷ trọng tăng trưởng nhanh nhất. Tuy nhiên, tại các đô thị hiện đại, đa số các hộ gia đình vẫn đang vận hành hệ thống điện dân dụng truyền thống với nhiều bất cập lớn.

Vấn đề cốt lõi (Problem Statement) nằm ở sự thiếu đồng bộ và phân mảnh trong giám sát an toàn:

  • Nguy cơ mất an toàn cháy nổ và rò rỉ khí gas: Các sự cố chập điện hoặc rò rỉ khí gas hóa lỏng (LPG) thường không được phát hiện kịp thời khi gia chủ vắng nhà, dẫn đến thiệt hại nghiêm trọng về người và tài sản.
  • Hệ thống an ninh cơ học truyền thống dễ bị tổn thương: Khóa cơ khí có nguy cơ bị bẻ khóa hoặc sao chép chìa cao; đồng thời không có cơ chế ghi nhận truy cập hay tự động phong tỏa khi bị xâm nhập trái phép.
  • Lãng phí năng lượng và thiếu tiện ích điều khiển: Người dùng không thể kiểm soát, tắt/mở thiết bị từ xa khi ra khỏi nhà, không thể giám sát các thông số vi khí hậu (nhiệt độ, độ ẩm) theo thời gian thực.

Đề tài "Thiết kế và thi công mô hình điều khiển các thiết bị điện trong nhà" do sinh viên ngành CNKT Điện tử Truyền thông - Trường Đại học Sư phạm Kỹ thuật TP.HCM thực hiện nhằm giải quyết triệt để các bài toán trên thông qua giải pháp tích hợp phần cứng nhúng đa vi điều khiển và nền tảng đám mây Blynk IoT.

graph TD
    A[Người dùng / Smartphone App Blynk] <-->|WiFi 802.11 b/g/n / Internet| B[Blynk Cloud Server]
    B <-->|Virtual Pins / TCP IP| C[NodeMCU ESP8266 / ESP-12E]
    C <-->|UART / Baudrate 115200| D[Arduino Mega 2560 Vi điều khiển trung tâm]
    D -->|Kích Relay 5V Optocoupler| E[Hệ thống Tải: Đèn, Quạt, Thiết bị 220V]
    D -->|I2C Protocol| F[Màn hình LCD 16x2]
    D -->|SPI Protocol| G[Đầu đọc RFID-RC522]
    D -->|Matrix Scan| H[Bàn phím Keypad 4x4]
    I[Cảm biến: MQ-2, Flame, DHT11, PIR] -->|Analog / Digital Inputs| D
    D -->|AT Commands / UART| J[Module GSM SIM800L]
    J -->|Mạng di động GSM| K[Cuộc gọi khẩn cấp & SMS báo cháy]

Mục tiêu đề tài

  1. Thiết kế khối xử lý trung tâm công suất cao: Xây dựng bo mạch điều khiển sử dụng vi điều khiển ATmega2560 kết hợp chip giao tiếp WiFi ESP8266EX (NodeMCU), quản lý đồng thời hơn 10 kênh tải điện.
  2. Xây dựng hệ thống an ninh truy cập đa tầng: Tích hợp khóa điện tử sử dụng công nghệ nhận dạng qua sóng vô tuyến RFID (13.56 MHz) kết hợp xác thực mật mã qua Keypad 4x4, có tính năng chống dò mật mã (brute-force lockout).
  3. Phát triển hệ thống cảnh báo sớm và xử lý sự cố: Thu thập dữ liệu từ cảm biến khí gas MQ-2, cảm biến lửa (Flame Sensor), cảm biến chuyển động PIR và cảm biến nhiệt - ẩm DHT11; kích hoạt quạt hút cục bộ và gửi cảnh báo tức thời qua cuộc gọi/SMS bằng module SIM800L.
  4. Đồng bộ hóa điều khiển đa phương thức: Đảm bảo trạng thái thiết bị luôn được phản hồi hai chiều (Bidirectional Sync) tức thì giữa công tắc cơ vật lý và giao diện ứng dụng Blynk trên smartphone qua WiFi.
  5. Thi công mô hình nhà hoàn chỉnh: Lắp ráp mô hình thực tế, kiểm thử độ ổn định và đo lường các chỉ số hiệu năng hoạt động liên tục (24/7).

Phạm vi và giới hạn đề tài

  • Phạm vi: Điều khiển các thiết bị điện mô phỏng trong căn hộ (đèn chiếu sáng, quạt thông gió, khóa cửa tự động Servo SG90, hệ thống cảnh báo an ninh).
  • Môi trường truyền thông: Mạng WiFi băng tần 2.4 GHz chuẩn IEEE 802.11 b/g/n và mạng di động GSM băng tần 850/900/1800/1900 MHz.
  • Giới hạn: Hệ thống thử nghiệm trên mô hình kiến trúc thu nhỏ với nguồn điện cấp DC qua module hạ áp LM2596 (chuyển đổi từ 12V xuống 5V/3.3V) và đóng ngắt tải qua Relay cách ly quang (Optocoupler Isolation).

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 Hệ thống điện truyền thống Giải pháp Smart Home thương mại (Tuya/Sonoff) Giải pháp Đề tài (Arduino Mega + NodeMCU + Blynk)
Giao thức điều khiển Đóng ngắt cơ học tại chỗ Cloud đóng (Proprietary Cloud), WiFi/Zigbee Open IoT Cloud (Blynk), WiFi, GSM, Cắt chuyển tại chỗ
Cảnh báo khẩn cấp Chuông báo động cục bộ Push notification qua Internet (phụ thuộc WiFi) Cuộc gọi GSM/SMS trực tiếp + Chuông + Bật quạt hút
Bảo mật truy cập cửa Chìa khóa cơ (dễ sao chép) Vân tay / App / Mật mã (giá thành cao) RFID 13.56 MHz + Keypad + Khóa tự động khi sai 3 lần
Khả năng tùy biến Không có Hạn chế theo hệ sinh thái nhà sản xuất Toàn quyền kiểm soát mã nguồn C/C++, mở rộng chân I/O
Chi phí đầu tư Thấp Trung bình - Cao Rất thấp, tối ưu hóa phần cứng mã nguồn mở

Phân tích yêu cầu theo mô hình MoSCoW

  • Must have (Bắt buộc phải có):
    • Điều khiển bật/tắt 10 thiết bị điện qua Relay bằng App Blynk và công tắc vật lý.
    • Mở cửa bằng thẻ RFID RC522 và bàn phím Keypad 4x4.
    • Tự động khóa hệ thống 60 giây và kích hoạt còi chip khi nhập sai quá 3 lần.
    • Gọi điện và nhắn tin cảnh báo khi phát hiện nồng độ gas vượt ngưỡng hoặc có lửa bùng phát.
  • Should have (Nên có):
    • Hiển thị nhiệt độ, độ ẩm thời gian thực lên màn hình LCD 16x2 qua giao tiếp I2C.
    • Đồng bộ trạng thái Virtual Pins trên Blynk App với thời gian trễ dưới 1 giây.
  • Could have (Có thể có):
    • Tự động bật đèn chiếu sáng khi cảm biến PIR phát hiện chuyển động trong điều kiện thiếu sáng.
  • Won't have (Chưa triển khai trong giai đoạn này):
    • Nhận diện khuôn mặt bằng Camera AI hoặc điều khiển bằng giọng nói đa ngôn ngữ.

Thiết kế hệ thống

+-----------------------------------------------------------------------------------+
|                                 HỆ THỐNG PHẦN CỨNG                                |
+-----------------------------------------------------------------------------------+
|  [Khối Cảm Biến]            [Khối Xử Lý & Điều Khiển]       [Khối Chấp Hành / Output]|
|  - DHT11 (Nhiệt/Ẩm)   ---> |                         | ---> | - 3x Relay 4 kênh (Tải)|
|  - MQ-2 (Khí Gas)     ---> |   Arduino Mega 2560     | ---> | - Servo SG90 (Cửa)     |
|  - Flame Sensor (Lửa) ---> |   (ATmega2560 @ 16MHz)  | ---> | - LCD 16x2 (I2C Module)|
|  - PIR (Chuyển động)  ---> |                         | ---> | - Còi Buzzer & Quạt hút|
|                            +------------+------------+                            |
|                                         | UART (Serial)                           |
|  [Khối Xác Thực]                        v                                         |
|  - RFID-RC522 (SPI)   ---> +------------+------------+      [Khối Cảnh Báo Khẩn]  |
|  - Keypad 4x4 (Matrix)---> |   NodeMCU ESP8266       | <--> | - Module SIM800L       |
|                            |   (ESP-12E @ 80MHz)     |      |   (GSM Quad-band)      |
+----------------------------+------------+------------+----------------------------+
                                          | WiFi 2.4GHz
                                          v
                             +------------+------------+
                             |    Blynk Cloud Server   |
                             +------------+------------+
                                          | Internet
                                          v
                             +-------------------------+
                             |    Blynk App Android/iOS|
                             +-------------------------+

Bảng thông số kỹ thuật Tech Stack

Thành phần Tên linh kiện / Công nghệ Thông số kỹ thuật / Phiên bản Vai trò trong hệ thống
MCU Trung tâm Arduino Mega 2560 Rev3 ATmega2560, 16MHz, 54 Digital I/O, 16 Analog In, 256KB Flash Quản lý logic toàn bộ cảm biến, chấp hành, khóa cửa
Module WiFi NodeMCU V1.0 (ESP-12E) ESP8266EX, 80/160MHz, Tensilica 32-bit, 4MB Flash, 802.11 b/g/n Giao tiếp Blynk Cloud Server, đẩy telemetry
Module GSM/GPRS SIM800L Core Board Băng tần 850/900/1800/1900MHz, Giao tiếp UART AT Command Thực hiện cuộc gọi và gửi SMS khi có sự cố khẩn cấp
Module RFID MFRC522 Tần số 13.56 MHz, Chuẩn giao tiếp SPI, Khoảng cách đọc < 5cm Đọc mã thẻ từ định danh UID để mở khóa
Cảm biến môi trường DHT11, MQ-2, Cảm biến lửa DHT11 (0-50°C, 20-90% RH), MQ-2 (Đo LPG, Propane, Khói) Giám sát vi khí hậu và bảo vệ an toàn cháy nổ
Khối nguồn Nguồn Adapter DC + LM2596 Input 12VDC, Output 5VDC - 3A Step-Down Buck Converter Cung cấp nguồn dòng lớn, chống sụt áp cho SIM800L & Relay
Nền tảng Phần mềm Arduino IDE & Blynk Framework Arduino IDE v1.8.13, Blynk Library v0.6.7 (C++ Core) Biên dịch firmware nhúng, xây dựng Dashboard IoT

Sơ đồ ánh xạ Virtual Pins trên Blynk App

  • V0 - V9: Điều khiển Logic On/Off 10 kênh Relay (Đèn phòng khách, Đèn bếp, Quạt, v.v.).
  • V10: Đẩy giá trị Nhiệt độ (°C) từ DHT11 lên Widget Gauge.
  • V11: Đẩy giá trị Độ ẩm (%) từ DHT11 lên Widget Gauge.
  • V12: Đẩy trạng thái Khí gas (Giá trị Analog nồng độ ppm) lên Widget Display & SuperChart.
  • V13: Nút kích hoạt mở khóa khẩn cấp từ xa.

Phương pháp nghiên cứu và triển khai (Methodology)

Dự án áp dụng phương pháp thiết kế phần cứng kết hợp kiểm thử tích hợp liên tục (V-Model for Embedded Systems):

  1. Giai đoạn 1 (Tuần 1 - 4): Nghiên cứu lý thuyết về giao thức SPI, I2C, UART; khảo sát tập lệnh AT Command của SIM800L và cấu trúc bộ nhớ của vi điều khiển ATmega2560/ESP8266.
  2. Giai đoạn 2 (Tuần 5 - 10): Thiết kế sơ đồ nguyên lý mạch điện (Schematic), layout mạch in (PCB) trên Altium Designer, tính toán dòng tải nguồn DC.
  3. Giai đoạn 3 (Tuần 11 - 16): Lập trình Firmware C++ hướng module (Modular Programming), xử lý ngắt cứng (Hardware Interrupts), tối ưu bộ đệm UART.
  4. Giai đoạn 4 (Tuần 17 - 20): Lắp ráp mô hình hoàn chỉnh, kiểm thử chịu tải (Stress Testing), đo kiểm thời gian đáp ứng và hoàn thiện luận văn tốt nghiệp.

Implementation và kết quả

Quy trình phát triển phần mềm và phần cứng

Quá trình lập trình sử dụng cấu trúc bất đồng bộ không chặn (Non-blocking Architecture) bằng cách sử dụng thư viện SimpleTimer và xử lý ngắt, loại bỏ hoàn toàn việc lạm dụng hàm delay() làm gián đoạn chu kỳ quét của vi điều khiển.

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

char auth[] = "Your_Blynk_Auth_Token";
char ssid[] = "SmartHome_WiFi_2.4G";
char pass[] = "SecurePassword123";

#define DHTPIN D4
#define DHTTYPE DHT11
#define GAS_PIN A0
#define FAN_RELAY_PIN D1

DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;

void sendSensorData() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  int gasVal = analogRead(GAS_PIN);

  if (!isnan(h) && !isnan(t)) {
    Blynk.virtualWrite(V10, t);
    Blynk.virtualWrite(V11, h);
  }
  Blynk.virtualWrite(V12, gasVal);

  // Kích hoạt xử lý an toàn khẩn cấp cục bộ
  if (gasVal > 400) { 
    digitalWrite(FAN_RELAY_PIN, HIGH); // Bật quạt hút khẩn cấp
    Serial.println("ALERT:GAS_LEAK");  // Gửi cờ lệnh sang Arduino Mega & SIM800L
  } else {
    digitalWrite(FAN_RELAY_PIN, LOW);
  }
}

BLYNK_WRITE(V0) {
  int pinValue = param.asInt();
  digitalWrite(D2, pinValue ? HIGH : LOW); // Kích Relay 1
}

void setup() {
  Serial.begin(115200);
  pinMode(FAN_RELAY_PIN, OUTPUT);
  pinMode(D2, OUTPUT);
  dht.begin();
  Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8080);
  
  // Thiết lập chu kỳ đọc cảm biến mỗi 1000ms (1 giây) không gây block loop
  timer.setInterval(1000L, sendSensorData);
}

void loop() {
  Blynk.run();
  timer.run();
}
// Logic xử lý bảo mật RFID và Mật mã Keypad trên Arduino Mega 2560
#include <SPI.h>
#include <MFRC522.h>
#include <Keypad.h>
#include <Servo.h>

#define SS_PIN 53
#define RST_PIN 5
MFRC522 rfid(SS_PIN, RST_PIN);
Servo doorServo;

byte correctUID[4] = {0x4A, 0xF2, 0x81, 0x2B}; // Mã UID thẻ Master
int failedAttempts = 0;
const int MAX_FAILED_ATTEMPTS = 3;
const unsigned long LOCKOUT_TIME = 60000; // Khóa 60 giây

void handleRFIDAccess() {
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;

  bool match = true;
  for (byte i = 0; i < 4; i++) {
    if (rfid.uid.uidByte[i] != correctUID[i]) {
      match = false;
      break;
    }
  }

  if (match) {
    unlockDoor();
    failedAttempts = 0;
  } else {
    failedAttempts++;
    triggerWarningBuzzer();
    if (failedAttempts >= MAX_FAILED_ATTEMPTS) {
      lockdownSystem();
    }
  }
  rfid.PICC_HaltA();
}

void unlockDoor() {
  doorServo.write(90); // Mở chốt cửa
  delay(5000);
  doorServo.write(0);  // Đóng chốt cửa
}

void lockdownSystem() {
  digitalWrite(A1, HIGH); // Bật còi báo động
  unsigned long startLock = millis();
  while (millis() - startLock < LOCKOUT_TIME) {
    // Phong tỏa mọi thao tác quét thẻ và nhập mã
  }
  digitalWrite(A1, LOW);
  failedAttempts = 0;
}

Kiểm thử và đánh giá hiệu năng (Testing & Validation)

Hệ thống được trải qua quá trình kiểm thử nghiêm ngặt trong nhiều điều kiện mạng và môi trường khác nhau.

THỜI GIAN ĐÁP ỨNG TRUNG BÌNH CÁC TÁC VỤ (Đơn vị: Milliseconds)
----------------------------------------------------------------------
Quẹt thẻ RFID -> Mở Servo        | [===] 180 ms
Nhập Keypad -> Xác nhận          | [====] 220 ms
Lệnh App Blynk -> Đóng ngắt Relay| [=========] 450 ms
Phát hiện Gas -> Kích hoạt Quạt  | [====] 210 ms
Phát hiện Cháy -> Cuộc gọi GSM   | [=============================] 1450 ms
----------------------------------------------------------------------
0ms              500ms             1000ms            1500ms

Kết quả đo kiểm thực tế (Benchmarks)

Kịch bản kiểm thử Số lần thử nghiệm Tỷ lệ thành công Thời gian phản hồi trung bình Đánh giá
Quẹt thẻ từ RFID mở cửa 100 lần 100% 180 ± 20 ms Đáp ứng tức thời, bảo mật cao
Nhập mã PIN qua Keypad 100 lần 99% 220 ± 30 ms 1 lần sai sót do phím cơ nảy
Khóa 60s khi nhập sai 3 lần 30 lần 100% Kích hoạt ngay lập tức Cơ chế chống brute-force chuẩn xác
Bật/Tắt Relay qua App Blynk 200 lần 98.5% 450 ± 80 ms 3 lần trễ do rớt gói tin WiFi
Cảnh báo rò rỉ gas (Bật quạt) 50 lần 100% 210 ± 15 ms Xử lý ngắt phần cứng cực nhạy
Kích hoạt cuộc gọi khẩn SIM800L 50 lần 98% 1450 ± 150 ms Phụ thuộc độ phủ sóng mạng viễn thông

Đổi mới và đóng góp kỹ thuật

  1. Kiến trúc phân tầng xử lý song song (Dual-MCU Architecture): Khắc phục triệt để điểm yếu thiếu chân I/O và nghẽn tài nguyên của ESP8266 bằng cách kết hợp với Arduino Mega 2560 (54 chân Digital, 16 chân Analog). ESP8266 chuyên trách kết nối mạng Cloud, trong khi Mega 2560 đảm nhiệm xử lý thời gian thực các cảm biến và cơ cấu chấp hành.
  2. Cơ chế an ninh kép kết hợp giải thuật chống dò mã: Không chỉ dừng lại ở việc mở khóa bằng RFID hoặc Keypad độc lập, hệ thống tích hợp bộ đếm lỗi thông minh failedAttempts. Khi số lần xác thực sai chạm ngưỡng 3 lần, hệ thống lập tức khóa quyền truy cập trong 60 giây và phát còi báo động, ngăn chặn triệt để tấn công vét cạn mã PIN.
  3. Kênh liên lạc khẩn cấp ngoại tuyến độc lập (Out-of-band Alerting): Đa phần các hệ thống Smart Home giá rẻ phụ thuộc 100% vào mạng Internet gia đình. Trong trường hợp hỏa hoạn làm chập cháy đường dây mạng hoặc mất WiFi, module SIM800L vẫn sử dụng sóng viễn thông GSM độc lập để gọi điện và gửi SMS cứu hộ đến số điện thoại của chủ hộ.
  4. Giải pháp đồng bộ dữ liệu hai chiều không xung đột (Bidirectional Syncing): Tận dụng hàm Blynk.syncVirtual() và cơ chế đọc ngược trạng thái Relay, hệ thống đảm bảo trạng thái nút bấm trên giao diện ứng dụng di động luôn trùng khớp với trạng thái vật lý thực tế dù người dùng bật/tắt bằng công tắc cơ.

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

Kịch bản triển khai thực tế

+-------------------+      +-------------------+      +-------------------+
|  Căn Hộ Chung Cư  |      |   Nhà Phố Liền Kề |      |  Xưởng / Kho Nhỏ  |
| - Kiểm soát cửa ra|      | - Bật/tắt đèn sân |      | - Giám sát nhiệt  |
|   vào qua RFID    |      |   vườn từ xa      |        độ kho hàng 24/7  |
| - Báo động rò rỉ  |      | - Báo động đột    |      | - Cảnh báo khẩn   |
|   khí gas nhà bếp |      |   nhập qua PIR    |        cấp qua GSM SMS   |
+-------------------+      +-------------------+      +-------------------+

Hướng dẫn lắp đặt và triển khai hệ thống

  1. Chuẩn bị hạ tầng điện và mạng: Cấp nguồn điện xoay chiều AC 220V vào bộ nguồn chuyển đổi (Adapter 12VDC - 2A). Đảm bảo khu vực lắp đặt có sóng WiFi băng tần 2.4 GHz với chuẩn bảo mật WPA2-PSK.
  2. Cấu hình phần cứng:
    • Kết nối module hạ áp LM2596, căn chỉnh biến trở để điện áp ngõ ra đạt chính xác 5.0V cấp cho Arduino Mega, Relay và SIM800L.
    • Lắp thẻ Micro-SIM còn hoạt động (đã đăng ký gói cước cuộc gọi/SMS) vào khe SIM800L.
  3. Nạp Firmware và Cấu hình Token:
    • Mở mã nguồn trên Arduino IDE, điền thông tin AuthToken nhận từ ứng dụng Blynk, cùng tên mạng SSIDPassword của WiFi gia đình.
    • Tiến hành biên dịch và nạp code lần lượt vào bo mạch NodeMCU ESP8266 và Arduino Mega 2560 qua cổng USB-to-UART CP2102.
  4. Kiểm tra vận hành: Bật nguồn, kiểm tra đèn LED báo trạng thái trên bo mạch. Mở ứng dụng Blynk trên smartphone và tiến hành gán các nút nhấn điều khiển theo đúng bảng ánh xạ chân Virtual Pins.

Phân tích chi phí và hiệu quả đầu tư (Cost-Benefit Analysis)

ƯỚC TÍNH CHI PHÍ VẬT TƯ PHẦN CỨNG (VNĐ)
----------------------------------------------------------------------
Bo mạch Arduino Mega 2560 R3         :  220.000 đ
Module NodeMCU ESP8266 (ESP-12E)      :   85.000 đ
Module SIM800L GSM/GPRS               :  110.000 đ
Module RFID-RC522 + Thẻ từ            :   45.000 đ
Bộ cảm biến (MQ-2, DHT11, Flame, PIR) :  135.000 đ
3x Module Relay 4 kênh cách ly quang  :  120.000 đ
Màn hình LCD 16x2 + Module I2C        :   55.000 đ
Bàn phím Keypad 4x4 + Động cơ Servo   :   65.000 đ
Module nguồn LM2596, Adapter 12V, Vỏ  :  150.000 đ
----------------------------------------------------------------------
TỔNG CHI PHÍ PHẦN CỨNG                :  985.000 đ
  • Hiệu quả kinh tế: Chi phí trọn gói dưới 1.000.000 VNĐ, chỉ bằng 15 - 20% so với việc trang bị gói giải pháp Smart Home thương mại đóng gói sẵn trên thị trường.
  • Thời gian hoàn vốn (ROI): Tiết kiệm 15 - 25% điện năng tiêu thụ hàng tháng nhờ cơ chế giám sát tắt thiết bị từ xa, giúp thu hồi chi phí đầu tư chỉ sau 6 - 8 tháng vận hành.

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

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

  • Phụ thuộc băng tần WiFi 2.4GHz: Chưa hỗ trợ chuẩn WiFi 5GHz hay các giao thức mạng Mesh tầm xa chuyên dụng như Zigbee 3.0, Z-Wave.
  • Hạn chế mạng 2G của module SIM800L: Do lộ trình tắt sóng 2G tại nhiều quốc gia, module SIM800L cần sớm được thay thế bằng module 4G LTE Cat-1 (như SIM7600 hoặc A7670C).
  • Bảo mật bus nối tiếp: Dữ liệu truyền nhận giữa Arduino Mega và NodeMCU qua cổng UART chưa được mã hóa đối xứng (AES-128).

Hướng phát triển trong tương lai

  • Nâng cấp vi điều khiển thế hệ mới: Chuyển đổi toàn bộ kiến trúc sang SoC kép ESP32, tích hợp sẵn cả WiFi và Bluetooth Low Energy (BLE), tiết kiệm diện tích bo mạch và giảm giá thành hơn nữa.
  • Mở rộng giao thức MQTT và Home Assistant: Chuyển từ Blynk Cloud sang máy chủ cục bộ mã nguồn mở (Local Home Assistant Server) sử dụng giao thức MQTT, đảm bảo quyền riêng tư dữ liệu và vận hành độc lập ngay cả khi mất kết nối Internet quốc tế.
  • Tích hợp nguồn dự phòng (UPS 18650): Trang bị mạch sạc xả pin Lithium-Ion tự động chuyển nguồn khi mất điện lưới AC, duy trì hệ thống an ninh hoạt động liên tục tối thiểu 8 giờ.

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

  • Sinh viên chuyên ngành Điện - Điện tử, Viễn thông, IoT: Tài liệu tham khảo toàn diện về phương pháp phân chia tải vi điều khiển, kỹ thuật giao tiếp liên vi điều khiển qua UART, SPI, I2C và kinh nghiệm lập trình nhúng C++.
  • Kỹ sư và Lập trình viên IoT (Makers/Developers): Bản thiết kế mẫu (Design Pattern) về hệ thống thu thập dữ liệu cảm biến đa luồng, tích hợp bảo mật chống brute-force và cơ chế cảnh báo qua mạng di động độc lập.
  • Hộ gia đình và Chủ cơ sở kinh doanh nhỏ: Giải pháp tự chế tạo hệ thống Smart Home chi phí thấp, tính năng toàn diện, dễ sửa chữa và mở rộng theo nhu cầu thực tế.
  • Giảng viên và Nhà nghiên cứu: Mô hình thí nghiệm trực quan phục vụ công tác giảng dạy thực hành các môn học: Vi xử lý, Kỹ thuật ghép nối ngoại vi, Hệ thống phân tán và Mạng không dây.

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

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

Hệ thống yêu cầu nguồn cấp 220VAC dân dụng, một Adapter 12VDC - 2A, vùng phủ sóng WiFi 2.4GHz (chuẩn 802.11 b/g/n) có kết nối Internet và một SIM viễn thông kích hoạt gói cước cơ bản gắn vào module SIM800L.

2. Nếu mạng WiFi nhà bị mất, hệ thống có còn hoạt động không?

Có. Hệ thống vẫn duy trì 100% các chức năng an ninh tại chỗ: Mở khóa bằng RFID, mật khẩu Keypad, bật/tắt thiết bị qua công tắc vật lý và tự động gọi điện/gửi SMS báo động khi có cháy hoặc rò rỉ khí gas qua sóng mạng di động GSM.

3. Làm thế nào để thêm thẻ từ RFID mới hoặc đổi mật mã bàn phím?

Quản trị viên có thể cập nhật danh sách mảng byte UID thẻ trong bộ nhớ Flash hoặc EEPROM của Arduino Mega thông qua chế độ "Master Mode" được tích hợp sẵn trên firmware mà không cần nạp lại toàn bộ code.

4. Hệ thống có khả năng mở rộng điều khiển trên 16 hoặc 32 thiết bị không?

Hoàn toàn có thể. Do Arduino Mega 2560 có tới 54 chân Digital I/O, người dùng chỉ cần cắm thêm các module Relay 8 kênh hoặc 16 kênh và khai báo bổ sung các chân điều khiển tương ứng trên firmware.

5. Chi phí duy trì hệ thống hàng tháng là bao nhiêu?

Chi phí duy trì cực thấp, chỉ bao gồm tiền cước duy trì thuê bao SIM di động (khoảng 10.000 - 20.000 VNĐ/tháng cho các tin nhắn/cuộc gọi khẩn cấp) và tài khoản Blynk Cloud miễn phí.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công mô hình điều khiển các thiết bị điện trong nhà" đã hiện thực hóa thành công một giải pháp nhà thông minh toàn diện, cân bằng giữa tính năng hiện đại, mức độ bảo mật cao và chi phí sản xuất tối ưu. Bằng việc kết hợp sức mạnh xử lý đa chân của vi điều khiển ATmega2560 cùng năng lực kết nối không dây linh hoạt của ESP8266, đề tài đã giải quyết trọn vẹn các yêu cầu thực tiễn: từ điều khiển thiết bị từ xa qua smartphone, kiểm soát vào ra bằng thẻ từ và mật mã, cho đến cảnh báo sớm nguy cơ hỏa hoạn qua mạng di động.

Sản phẩm không chỉ dừng lại ở mô hình lý thuyết mà đã được thi công hoàn chỉnh trên phần cứng thực tế, chứng minh tính khả thi, độ ổn định và tiềm năng ứng dụng cao trong các căn hộ hiện đại. Đây là nền tảng vững chắc để tiếp tục mở rộng sang các giao thức công nghiệp, trí tuệ nhân tạo nhận diện giọng nói và tích hợp vào các hệ sinh thái Smart City trong tương lai.