Giới thiệu dự án

Thị trường nhà thông minh (Smart Home) toàn cầu đang chứng kiến tốc độ tăng trưởng kép hàng năm (CAGR) vượt mức 25%, hướng tới quy mô hàng trăm tỷ USD. Tại các thị trường phát triển như Bắc Mỹ và châu Âu, các giải pháp tự động hóa tòa nhà đã trở thành tiêu chuẩn bắt buộc cho các công trình hiện đại. Tại Việt Nam, sự bùng nổ của hạ tầng Internet băng thông rộng và mạng không dây (Wi-Fi/4G) mở ra cơ hội lớn cho việc ứng dụng công nghệ điều khiển tự động vào không gian sống.

Tuy nhiên, rào cản lớn nhất đối với người dùng trong nước hiện nay là chi phí lắp đặt đắt đỏ từ các giải pháp thương mại khép kín (như BKAV SmartHome hay Lumi), cùng với sự phụ thuộc hoàn toàn vào dịch vụ đám mây (Cloud) của bên thứ ba, tiềm ẩn rủi ro về bảo mật thông tin cá nhân và gián đoạn vận hành khi mất kết nối mạng diện rộng.

                  +-------------------------------------------------+
                  |       NGƯỜI DÙNG (Web Browser / Smartphone)     |
                  +-------------------------------------------------+
                                           │  (HTTP / IPv4 - Port 80)
                                           ▼
                  +-------------------------------------------------+
                  |   ARDUINO MEGA 2560 + ETHERNET SHIELD W5100     |
                  |          (Trạm Điều Khiển Trung Tâm)            |
                  +-------------------------------------------------+
                          │ (UART TTL / RS-232)      │ (UART TTL / RS-232)
         ┌────────────────┴───────────────┐          │
         ▼                                ▼          ▼
+──────────────────+   +──────────────────+   +──────────────────+
|  ARDUINO UNO R3  |   |  ARDUINO UNO R3  |   |  ARDUINO UNO R3  |
| (Phòng Khách/Gara|   |   (Phòng Ngủ)    |   |    (Khu Bếp)     |
+──────────────────+   +──────────────────+   +──────────────────+
         │                      │                      │
 ┌───────┴───────┐      ┌───────┴───────┐      ┌───────┴───────┐
 ▼               ▼      ▼               ▼      ▼               ▼
Cảm Biến     Cơ Cấu    Cảm Biến     Cơ Cấu    Cảm Biến     Cơ Cấu
(PIR, LM35)  (Servo,   (Quang trở,  (A4988,   (MQ2, Mưa,   (Relay,
              Relay)    LM35, LCD)   Servo)    LM35)        Servo)

Đồ án tốt nghiệp chuyên ngành Cơ Điện Tử tại Trường Đại học Bách Khoa Hà Nội của sinh viên Nguyễn Hồng Nhật (GVHD: TS. Đặng Thái Việt) tập trung giải quyết bài toán: Thiết kế hệ thống giao tiếp, quản lý và điều khiển nhà thông minh qua Internet. Đề tài xây dựng một kiến trúc nhúng phân tán, tự lưu trữ Web Server cục bộ trên phần cứng vi điều khiển, tối ưu hóa chi phí chế tạo nhưng vẫn đảm bảo đầy đủ các tính năng an ninh, an toàn và tiện nghi.

Mục tiêu cụ thể của dự án

  1. Thiết kế mô hình vật lý thu nhỏ: Xây dựng mô hình không gian 6 phân khu chức năng (Phòng khách, Gara, Phòng ngủ, Phòng giải trí, Khu bếp, Vườn ngoại vi) trên kích thước chuẩn 1000 mm x 800 mm.
  2. Xây dựng kiến trúc điều khiển phân tán: Kết hợp 01 vi điều khiển trung tâm ATmega2560 cùng 03 vi điều khiển nhánh ATmega328P, giải quyết triệt để bài toán nghẽn tài nguyên phần cứng và thiếu hụt chân I/O.
  3. Triển khai Web Server nhúng: Nhúng giao diện Web (HTML/CSS) trực tiếp trên chip Ethernet W5100, cho phép giám sát thông số môi trường và điều khiển thiết bị hai chiều qua địa chỉ IP mà không cần máy chủ trung gian.
  4. Tự động hóa đa tầng: Tích hợp các thuật toán kích hoạt tự động theo thời gian thực dựa trên ngưỡng cảm biến nhiệt độ LM35, cảm biến khí gas MQ2, cảm biến chuyển động HC-SR510, cảm biến quang trở và cảm biến mưa.

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

  • Phạm vi: Triển khai trên mô hình thực nghiệm cơ điện tử 1000 mm x 800 mm; sử dụng giao thức kết nối có dây Ethernet (chuẩn RJ45/IEEE 802.3) làm đường truyền mạng chính và UART nội bộ.
  • Giới hạn: Giao diện Web hiển thị cấu trúc phẳng, sử dụng cơ chế cập nhật tự động Refresh định kỳ (chu kỳ 3 giây); mạng truyền thông nội bộ sử dụng giao thức truyền nhận nối tiếp dạng điểm - điểm không định tuyến phức tạp.

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

Phân tích hiện trạng và đánh giá thị trường

Tiêu chí phân tích Giải pháp thương mại quốc tế (Compro/IEI) Giải pháp thương mại Việt Nam (BKAV/Lumi) Giải pháp của đồ án (Decentralized Arduino System)
Kiến trúc mạng Cloud-based tập trung Zigbee / Z-Wave Gateway + Cloud Embedded Web Server + Phân tán Master-Slave
Chi phí triển khai Rất cao (> 3.000 USD) Cao (1.000 - 2.500 USD) Rất thấp (< 150 USD cho bộ KIT nhúng)
Khả năng tùy biến Khép kín, độc quyền Hạn chế theo gói phần mềm Toàn quyền can thiệp mã nguồn C/C++
Độ độc lập đường truyền Phụ thuộc 100% vào Cloud Server Phụ thuộc máy chủ dịch vụ Hoạt động độc lập trong mạng LAN/Intranet
Bảo trì & Mở rộng Phức tạp, cần kỹ sư hãng Phụ thuộc nhà cung cấp Module hóa linh hoạt theo từng phòng

Ma trận ưu tiên yêu cầu hệ thống (Phương pháp MoSCoW)

  • Must have (Bắt buộc phải có): Điều khiển Bật/Tắt relay thiết bị chiếu sáng; Tự động ngắt gas và hú còi khi nồng độ MQ2 vượt ngưỡng; Đóng/mở cửa chính bằng mật khẩu bàn phím ma trận 4x4; Giao diện Web hiển thị nhiệt độ LM35.
  • Should have (Nên có): Tự động điều chỉnh vận tốc quạt thông gió qua vi bước A4988 theo nhiệt độ phòng; Thu dây phơi tự động bằng Servo SG90 khi cảm biến mưa kích hoạt mức 0.
  • Could have (Có thể có): Khóa hệ thống tạm thời khi nhập sai mật khẩu 3 lần liên tiếp; Chế độ rạp chiếu phim tự động (Cinema Mode) tắt đèn và hạ rèm đồng thời.
  • Won't have (Chưa thực hiện ở giai đoạn này): Nhận dạng khuôn mặt AI qua Camera IP; Điều khiển giọng nói qua trợ lý ảo Alexa/Google Assistant.

Thiết kế hệ thống

+-------------------------------------------------------------------------+
|                        KIẾN TRÚC PHẦN CỨNG HỆ THỐNG                     |
+-------------------------------------------------------------------------+
|                                                                         |
|  +-------------------------------------------------------------------+  |
|  |             ARDUINO MEGA 2560 R3 (Trạm Điều Khiển Trung Tâm)      |  |
|  |     • ATmega2560 @ 16MHz | 256KB Flash | 8KB SRAM | 54 I/O Pins   |  |
|  +-------------------------------------------------------------------+  |
|          │ (Bus SPI)                               │                    |
|          ▼                                         │ (UART TTL RS-232)  |
|  +---------------------------+                     │ 19200/9600 bps     |
|  | W5100 Ethernet Shield     |                     │                    |
|  | • RJ45, TCP/IP Hardware   |                     ▼                    |
|  | • IP: 192.168.0.58:80     |      +───────────────────────────────+   |
|  +---------------------------+      | 03 x ARDUINO UNO R3 (Ngoại vi)|   |
|                                     | • ATmega328P @ 16MHz          |   |
|                                     | • 32KB Flash | 2KB SRAM       |   |
|                                     +───────────────────────────────+   |
|                                                    │                    |
|                         ┌──────────────────────────┴─────────────────┐  |
|                         ▼                                            ▼  |
|          +─────────────────────────────+              +──────────────+  |
|          | KHỐI CẢM BIẾN (Inputs)      |              | KHỐI CHẤP    |  |
|          | • Nhiệt độ: LM35 (Analog)   |              | HÀNH (Outputs|  |
|          | • Khí Gas: MQ2 (DO/AO)      |              | • Servo SG90 |  |
|          | • Chuyển động: HC-SR510 PIR |              | • Driver     |  |
|          | • Mưa, Quang trở LDR        |              |   A4988      |  |
|          | • Bàn phím ma trận 4x4      |              | • Module     |  |
|          |                             |              |   Relay 5V   |  |
|          |                             |              | • Còi Buzzer |  |
|          +─────────────────────────────+              +──────────────+  |
+-------------------------------------------------------------------------+

Ngăn xếp công nghệ (Technology Stack) và linh kiện

  • Khối xử lý trung tâm: Arduino Mega 2560 R3 (Microchip ATmega2560, xung nhịp 16 MHz, bộ nhớ Flash 256 KB, SRAM 8 KB, EEPROM 4 KB).
  • Khối mạng: Arduino Ethernet Shield W5100 (tích hợp phần cứng TCP/IP Core, bộ đệm truyền nhận nội 16 KB, hỗ trợ tối đa 4 Socket độc lập).
  • Khối xử lý cục bộ: 03 x Arduino Uno R3 (Microchip ATmega328P, 14 chân Digital I/O, 6 chân Analog 10-bit ADC).
  • Cơ cấu chấp hành:
    • Động cơ Servo TowerPro SG90 (Momen xoắn 1.8 kg·cm tại 4.8V, góc quay 0 - 180° điều khiển bằng xung PWM 1 - 2 ms).
    • Động cơ bước Bipolar DC kết hợp Driver Allegro A4988 (hỗ trợ điều chế vi bước từ Full-step đến 1/16-step, bảo vệ quá dòng/quá nhiệt).
    • Module Relay 5V Optocoupler cách ly quang chống nhiễu ngược.
  • Cảm biến chuyên dụng:
    • Cảm biến nhiệt độ tương tự LM35DZ (dải đo 0°C đến 150°C, điện áp ra tỷ lệ tuyến tính 10 mV/°C).
    • Cảm biến khí gas và khói MQ2 (vật liệu nhạy cảm SnO2, phát hiện LPG, Propane, Hydrogen, Methane).
    • Cảm biến chuyển động PIR HC-SR510 (công nghệ thấu kính Fresnel kép, góc quét <100°, tầm quét 2 - 4.5 m).

Giao thức truyền thông và cấu trúc gói tin (Data Frame Protocol)

Hệ thống sử dụng cơ chế truyền thông nối tiếp 2-byte đồng bộ giữa Arduino Mega 2560 và các trạm Uno R3 qua cổng Serial cứng (Hardware Serial Ports: Serial1, Serial2, Serial3).

Cấu trúc gói tin điều khiển 2-byte:
+-------------------------------+-------------------------------+
|    BYTE 1: HIGH BYTE (MSB)    |    BYTE 2: LOW BYTE (LSB)     |
|   (Mã phân loại khối/phòng)   |    (Mã lệnh / Trạng thái IO)  |
+-------------------------------+-------------------------------+

Công thức giải mã tại trạm nhận: $$\text{Data_Receive} = (\text{Byte}_1 \times 256) + \text{Byte}_2$$

Phương pháp luận phát triển (Methodology)

Dự án áp dụng mô hình phát triển hệ thống cơ điện tử kết hợp lặp (Iterative Waterfall-Mechatronics):

  1. Giai đoạn 1 (Tuần 1 - 3): Khảo sát lý thuyết, tính toán tải động lực học cơ cấu đóng/mở cửa và rèm kéo, lựa chọn module điện tử.
  2. Giai đoạn 2 (Tuần 4 - 7): Thiết kế sơ đồ nguyên lý mạch điện (Schematic) trên Proteus, thiết kế kết cấu cơ khí 3D mô hình nhà 1000 mm x 800 mm.
  3. Giai đoạn 3 (Tuần 8 - 11): Chế tạo cơ khí, gia công khung mô hình, lắp ráp linh kiện cảm biến và cơ cấu chấp hành vào từng phòng.
  4. Giai đoạn 4 (Tuần 12 - 14): Lập trình Firmware C++ cho Arduino Uno/Mega, xây dựng Web Server trên W5100 bằng thư viện Ethernet.
  5. Giai đoạn 5 (Tuần 15 - 16): Tích hợp toàn hệ thống, thử nghiệm kịch bản an ninh/cháy nổ và đánh giá độ trễ truyền dữ liệu.

Implementation và kết quả

Quy trình phát triển và thuật toán cốt lõi

1. Thuật toán điều chế tốc độ quạt thông gió tự động bằng ngắt Timer và Driver A4988 (Phòng ngủ)

Để điều chỉnh tốc độ thông gió mà không gây hiện tượng chặn luồng (blocking delay) trong chu trình loop chính, Arduino Uno sử dụng ngắt Timer1 để tính toán vận tốc và điều biến chuỗi xung cấp tới chân STEP của A4988.

#include <avr/interrupt.h>
#define step_pin 7
#define step_enable 8
#define step_dir 9
#define CBND A1

int step_time = 0;
int nhiet_do = 0;

void setup() {
  pinMode(step_pin, OUTPUT);
  pinMode(step_enable, OUTPUT);
  pinMode(step_dir, OUTPUT);
  pinMode(CBND, INPUT);
  
  // Kích hoạt mức LOW cho chân Enable của A4988
  digitalWrite(step_enable, LOW);
  digitalWrite(step_dir, HIGH); // Thiết lập chiều quay thuận
}

// Hàm phát xung điều khiển bước vi sai
void TURN(int t) {
  digitalWrite(step_pin, HIGH);
  delayMicroseconds(t);
  digitalWrite(step_pin, LOW);
  delayMicroseconds(t);
}

// Thuật toán điều chỉnh vận tốc theo 3 cấp nhiệt độ LM35
void DIEU_HOA() {
  // Đọc và chuyển đổi điện áp ADC 10-bit sang thang đo độ C (10mV/độ C)
  nhiet_do = (5.0 * analogRead(CBND) * 100.0) / 1024.0;
  
  if (nhiet_do < 30) {
    step_time = 950; // Chu kỳ trễ 950us -> Tốc độ thấp
    TURN(step_time);
  } else if (nhiet_do >= 30 && nhiet_do <= 40) {
    step_time = 700; // Chu kỳ trễ 700us -> Tốc độ trung bình
    TURN(step_time);
  } else if (nhiet_do > 40) {
    step_time = 500; // Chu kỳ trễ 500us -> Tốc độ tối đa
    TURN(step_time);
  }
}

2. Thuật toán an toàn phòng cháy và chống ngộ độc khí Gas (Khu bếp)

Hệ thống giám sát liên tục hai biến số môi trường: nồng độ khí cháy từ cảm biến MQ2 (qua chân A0/D0) và nhiệt độ LM35 (qua chân A1).

#define CBGAS A0
#define CBND A1
#define fan 5
#define buzz 6

int nhiet_do, gas;
int state_fan = 0;

void loop() {
  gas = analogRead(CBGAS);
  nhiet_do = (5.0 * analogRead(CBND) * 100.0) / 1024.0;

  // Ngưỡng kích hoạt khẩn cấp: Khí gas > 50 ADC hoặc Nhiệt độ > 60 độ C
  if ((gas > 50) || (nhiet_do > 60)) {
    if (state_fan == 0) {
      digitalWrite(fan, LOW); // Đóng Relay kích mức thấp để bật quạt hút cưỡng bức
      state_fan = 1;
      Serial.write(3);       // Gửi tín hiệu thông báo trạng thái quạt về Master Mega
    }
    digitalWrite(buzz, HIGH); // Kích hoạt còi hú báo động liên tục
  } else {
    digitalWrite(buzz, LOW);  // Tắt còi khi các chỉ số trở về ngưỡng an toàn
  }
}

3. Bộ tạo giao diện Web Server nhúng trên Arduino Mega 2560

Arduino Mega kết hợp Ethernet Shield W5100 khởi tạo một HTTP Server tại cổng 80, trực tiếp phân tích luồng HTTP GET Request và dựng giao diện HTML điều khiển:

#include <SPI.h>
#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 0, 58);
EthernetServer server(80);
String readString;

void setup() {
  Ethernet.begin(mac, ip);
  server.begin();
  Serial1.begin(9600); // Giao tiếp với Uno Phòng Khách
}

void loop() {
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (readString.length() < 100) {
          readString += c;
        }
        if (c == '\n') {
          // Gửi phản hồi chuẩn HTTP 200 OK
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html; charset=utf-8");
          client.println("Connection: close");
          client.println();
          
          // Header tự động làm mới giao diện sau mỗi 3 giây
          client.println("<!DOCTYPE HTML>");
          client.println("<html><head><meta http-equiv=\"Refresh\" content=\"3; url=/\"/>");
          client.println("<title>BKAV-BKHN SMART HOME</title></head>");
          client.println("<body><h2>HE THONG GIAM SAT NHA THONG MINH</h2>");
          
          // Phân tích lệnh điều khiển từ URL Request
          if (readString.indexOf("DENPKON") > 0) {
            Serial1.write(1); // Gửi mã bật đèn phòng khách tới Uno
          } else if (readString.indexOf("DENPKOFF") > 0) {
            Serial1.write(0); // Gửi mã tắt đèn phòng khách
          }
          
          client.println("<a href=\"/?DENPKON\"><button>BAT DEN PHONG KHACH</button></a>");
          client.println("<a href=\"/?DENPKOFF\"><button>TAT DEN PHONG KHACH</button></a>");
          client.println("</body></html>");
          break;
        }
      }
    }
    delay(1);
    client.stop();
    readString = "";
  }
}

Thử nghiệm và Đánh giá hiệu năng

+-------------------------------------------------------------------------+
|                        KẾT QUẢ KIỂM THỬ VẬN HÀNH                        |
+-------------------------------------------------------------------------+
|  1. THỜI GIAN ĐÁP ỨNG CẢNH BÁO KHÍ GAS & BÁO CHÁY:                      |
|     [=======================================>] 120 ms (Mục tiêu <200ms) |
|                                                                         |
|  2. ĐỘ TRỄ ĐIỀU KHIỂN CHẤP HÀNH QUA WEB LAN:                            |
|     [================================>] 450 ms (Mục tiêu <500ms)        |
|                                                                         |
|  3. TỶ LỆ TRUYỀN GÓI TIN THÀNH CÔNG (UART BUS @ 19200 bps):             |
|     [=================================================>] 99.85%        |
|                                                                         |
|  4. TÍNH NĂNG TỰ ĐỘNG HÓA HOÀN THÀNH:                                   |
|     [=================================================>] 100% (8/8)     |
+-------------------------------------------------------------------------+

Ma trận kiểm thử hệ thống (System Test Matrix)

  • Kiểm thử cảm biến chuyển động HC-SR510: Đặt góc quét vuông góc cửa sổ, phát hiện mục tiêu nhiệt ở cự ly 3.0 m, kích hoạt còi sau 150 ms, tỷ lệ phát hiện chính xác 98/100 lần thử.
  • Kiểm thử cơ cấu rèm tự động: Dùng đèn rọi thay đổi độ rọi quang trở từ 50 Lux đến 650 Lux; Servo SG90 quay từ 0° đến 179° chính xác theo các mức ngưỡng lập trình.
  • Kiểm thử tải đồng thời Web Server: Thực hiện 4 kết nối đồng thời từ các thiết bị duyệt Web khác nhau (PC Windows, Smartphone Android, Laptop macOS); chip W5100 duy trì kết nối ổn định không xảy ra hiện tượng treo vi điều khiển ATmega2560.

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

  1. Cấu trúc phân tán loại bỏ hoàn toàn hiện tượng nghẽn đơn điểm (Bottleneck): Khác với các đồ án thông thường gom toàn bộ cảm biến vào 01 vi điều khiển duy nhất dẫn đến quá tải bộ nhớ và thiếu chân I/O, đồ án ứng dụng mô hình Master-Slave đa cấp. Arduino Mega 2560 đóng vai trò điều phối mạng và quản lý Web Server, trong khi các Arduino Uno R3 chuyên trách từng khu vực độc lập, đảm bảo nếu 1 phòng gặp sự cố thì các phòng còn lại vẫn vận hành bình thường.

  2. Tối ưu hóa tài nguyên phần cứng với chip Ethernet W5100: Sử dụng IC điều khiển W5100 tích hợp sẵn ngăn xếp giao thức TCP/IP bằng phần cứng thay vì dòng chip ENC28J60 (phải xử lý gói tin TCP/IP bằng phần mềm trên vi điều khiển). Giải pháp này giúp tiết kiệm hơn 4 KB bộ nhớ SRAM của vi điều khiển, giảm tỷ lệ rớt gói tin và đảm bảo hệ thống duy trì 4 kết nối song song ổn định.

  3. Cơ chế phản hồi trạng thái hai chiều (Bi-directional Synchronization): Hệ thống cho phép điều khiển song song từ cả hai phía: nút bấm cơ học tại chỗ và nút ảo trên giao diện Web. Khi người dùng bật/tắt thiết bị bằng công tắc vật lý trong phòng, trạng thái mới lập tức được trạm Uno truyền ngược về trạm Mega để cập nhật lên giao diện HTML trong chu kỳ làm mới kế tiếp.


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

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

+-------------------------------------------------------------------------+
|                  SƠ ĐỒ TRIỂN KHAI THỰC TẾ CHO CĂN HỘ                    |
+-------------------------------------------------------------------------+
|                                                                         |
|   [KHU VƯỜN / BAN CÔNG]             [PHÒNG KHÁCH & GARA]                |
|   • Đèn tự động (PIR)               • Mở cửa mã số 4x4 / Web            |
|   • Thu dây phơi tự động (Mưa)      • Giám sát nhiệt độ LCD             |
|                  ▲                                   ▲                  |
|                  │                                   │                  |
|                  └───────────────┐   ┌───────────────┘                  |
|                                  │   │                                  |
|                                  ▼   ▼                                  |
|                      +---------------------------+                      |
|                      |  TỦ ĐIỀU KHIỂN TRUNG TÂM  |                      |
|                      |  • Arduino Mega 2560      |                      |
|                      |  • W5100 Ethernet Shield  |                      |
|                      |  • Router Wi-Fi Gia Đình  |                      |
|                      +---------------------------+                      |
|                                  ▲   ▲                                  |
|                  ┌───────────────┘   └───────────────┐                  |
|                  │                                   │                  |
|                  ▼                                   ▼                  |
|   [PHÒNG NGỦ CAO CẤP]               [KHU BẾP & PHÒNG ĂN]                |
|   • Rèm tự động theo ánh sáng       • Báo động rò rỉ khí Gas (MQ2)      |
|   • Quạt thông gió vi bước A4988    • Báo cháy nhiệt độ cao (>60°C)     |
|   • Cinema Mode tự động             • Bật quạt hút khẩn cấp             |
|                                                                         |
+-------------------------------------------------------------------------+
  • Nhà phố và căn hộ chung cư: Lắp đặt hệ thống giám sát an ninh chống đột nhập và an toàn cháy nổ tại các khu vực rủi ro cao (ban công, bếp, cửa chính).
  • Hệ thống nông nghiệp công nghệ cao / Nhà kính: Ứng dụng mạch thu thập nhiệt độ, độ ẩm và cảm biến quang trở để điều khiển hệ thống tưới, mái che tự động và thông gió nhà màng.

Bảng phân tích chi phí và hiệu quả đầu tư (BOM & ROI Analysis)

Danh mục thiết bị Số lượng Đơn giá ước tính (VNĐ) Thành tiền (VNĐ)
Board Arduino Mega 2560 R3 01 220.000 220.000
Board Arduino Uno R3 (DIP/SMD) 03 110.000 330.000
Arduino Ethernet Shield W5100 01 160.000 160.000
Driver động cơ bước A4988 + Động cơ bước 01 bộ 150.000 150.000
Động cơ Servo TowerPro SG90 05 45.000 225.000
Cảm biến (LM35, MQ2, HC-SR510, Mưa, LDR) 01 combo 250.000 250.000
Màn hình LCD 16x2 + Module I2C, Bàn phím 4x4 01 bộ 120.000 120.000
Module Relay 4 kênh, Nguồn tổ ong 5V/12V, Phụ kiện 01 gói 300.000 300.000
Tổng chi phí phần cứng 1.755.000 VNĐ

Hiệu quả kinh tế: Với chi phí chế tạo dưới 2 triệu đồng, giải pháp tiết kiệm hơn 85% so với việc trang bị hệ sinh thái Smart Home thương mại cơ bản trên thị trường, đồng thời loại bỏ 100% chi phí duy trì máy chủ hàng tháng.


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

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

  1. Giao thức Web đồng bộ: Giao diện Web trên W5100 sử dụng cơ chế Polling làm mới toàn trang (<meta Refresh 3s>), gây hiện tượng nhấp nháy màn hình và tạo tải xử lý không cần thiết khi không có sự thay đổi trạng thái.
  2. Bảo mật tầng truyền dẫn: Truyền thông HTTP và chuỗi ký tự qua cổng nối tiếp UART chưa được mã hóa dữ liệu (Plain text), có nguy cơ bị bắt gói tin trong mạng nội bộ.
  3. Giới hạn khoảng cách UART: Chuẩn truyền thông nối tiếp TTL giữa các board Arduino bị giới hạn khoảng cách vật lý dưới 3 mét nếu không sử dụng IC chuyển đổi mức RS-485 chuyên dụng.

Lộ trình nâng cấp và mở rộng (Development Roadmap)

  • Nâng cấp giao thức truyền thông IoT: Chuyển đổi từ HTTP Polling sang giao thức MQTT (Message Queuing Telemetry Transport) kết hợp WebSocket để truyền nhận dữ liệu thời gian thực dạng bất đồng bộ (Asynchronous).
  • Hiện đại hóa phần cứng điều khiển: Thay thế các module Uno R3 bằng vi điều khiển ESP32 tích hợp sẵn Wi-Fi/Bluetooth BLE, hình thành mạng Mesh không dây (ESP-MESH) kết nối đa điểm.
  • Phát triển ứng dụng di động: Xây dựng ứng dụng di động đa nền tảng (Flutter/React Native) hỗ trợ nhận thông báo khẩn cấp dạng Push Notification khi phát hiện rò rỉ gas hoặc đột nhập.
  • Tích hợp Camera AI Edge: Bổ sung module ESP32-CAM tại cổng chính để nhận diện khuôn mặt và cảnh báo hình ảnh thời gian thực qua giao thức RTSP.

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

  • Sinh viên ngành Kỹ thuật (Cơ Điện Tử, Điện - Điện Tử, Tự Động Hóa, CNTT): Tiếp cận tài liệu thực chứng toàn diện về cách tổ chức kiến trúc nhúng phân tán Master-Slave, kỹ thuật lập trình ngắt vi điều khiển và phương pháp nhúng Web Server lên phần cứng giới hạn bộ nhớ.
  • Kỹ sư và Lập trình viên IoT: Nắm bắt giải pháp xử lý đồng bộ dữ liệu hai chiều giữa công tắc vật lý và giao diện số, kỹ thuật giao tiếp SPI/UART chống treo hệ thống.
  • Doanh nghiệp vừa và nhỏ (SMEs) / Đơn vị tích hợp giải pháp: Tham khảo thiết kế mẫu bộ KIT điều khiển tự động hóa giá rẻ để ứng dụng trong các dự án nhà trọ thông minh, phòng thí nghiệm hoặc xưởng sản xuất nhỏ.
  • Nhà nghiên cứu ứng dụng: Nền tảng thực nghiệm đáng tin cậy để tiếp tục phát triển các thuật toán điều khiển mờ (Fuzzy Logic), tối ưu hóa tiêu thụ năng lượng điện tòa nhà.

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

1. Cần chuẩn bị những gì về mặt phần cứng và phần mềm để nạp mã nguồn cho hệ thống này?

Cần chuẩn bị máy tính cài đặt môi trường Arduino IDE (từ phiên bản 1.8.x trở lên), cáp nạp USB Type-B cho Arduino Mega 2560 và Uno R3. Về thư viện, cần cài đặt: Ethernet.h (dành cho chip W5100), LiquidCrystal_I2C.h, Servo.havr/interrupt.h. Thiết lập cổng nạp (COM Port) và chọn đúng Board tương ứng trước khi tiến hành nạp code.

2. Hệ thống có thể mở rộng thêm tối đa bao nhiêu cảm biến và thiết bị chấp hành?

Nhờ kiến trúc phân tầng, trạm trung tâm Arduino Mega 2560 có tới 4 cổng Hardware Serial độc lập (Serial, Serial1, Serial2, Serial3). Do đó, hệ thống có thể kết nối trực tiếp tối đa 03 trạm Arduino Uno ngoại vi. Nếu muốn mở rộng lên hàng chục phòng, chỉ cần chuyển đổi giao tiếp nối tiếp sang mạng truyền thông công nghiệp RS-485 (Module MAX485) theo chuẩn Master-MultiSlave với địa chỉ hóa từng node.

3. Khi mất kết nối Internet hoặc mất mạng Wi-Fi gia đình, ngôi nhà có tự động vận hành được không?

. Toàn bộ các thuật toán an toàn cốt lõi (báo cháy LM35, ngắt gas MQ2, bật quạt tự động, mở cửa mật mã bàn phím, đóng rèm theo ánh sáng) được nạp trực tiếp vào bộ nhớ Flash của từng chip ATmega328P cục bộ. Hệ thống vận hành hoàn toàn độc lập với mạng Internet; kết nối mạng chỉ phục vụ nhu cầu giám sát và can thiệp từ xa của người dùng.

4. Cần lưu ý gì khi cấp nguồn để hệ thống không bị sụt áp làm treo vi điều khiển?

Động cơ Servo SG90 và Động cơ bước khi khởi động tiêu thụ dòng điện tức thời khá lớn (từ 500mA đến trên 1.5A). Tuyệt đối không cấp nguồn động cơ trực tiếp từ chân 5V của bo mạch Arduino. Cần sử dụng bộ nguồn tổ ong (hoặc Adapter) 5V-5A riêng biệt cho toàn bộ cơ cấu chấp hành, đồng thời nối chung đường mass (Common GND) giữa nguồn ngoài và board Arduino để ổn định điện áp tham chiếu.

5. Chi phí đầu tư trọn gói hệ thống này là bao nhiêu và thời gian hoàn vốn (ROI) thế nào?

Tổng chi phí linh kiện phần cứng cho toàn bộ mô hình thực nghiệm là khoảng 1.755.000 VNĐ. Đối với việc triển khai thực tế trên nhà thật, chi phí thay thế bằng các khí cụ đóng cắt công suất lớn (Contactor, CB thông minh) dao động từ 3.500.000 đến 5.000.000 VNĐ cho căn hộ 2 phòng ngủ. Mức chi phí này chỉ bằng 1/5 so với các giải pháp thương mại, giúp tiết kiệm chi phí đầu tư ban đầu ngay tại thời điểm lắp đặt.


Kết luận

Đồ án tốt nghiệp "Thiết kế hệ thống giao tiếp, quản lý và điều khiển nhà thông minh qua Internet" của tác giả Nguyễn Hồng Nhật (Đại học Bách Khoa Hà Nội) đã hiện thực hóa thành công một giải pháp tự động hóa tòa nhà toàn diện, kết hợp chặt chẽ giữa kỹ thuật cơ khí chính xác, mạch điện tử điều khiển và công nghệ mạng truyền thông.

Điểm nổi bật của đề tài nằm ở tư duy thiết kế hệ thống nhúng phân tán thông minh: phân tách rõ ràng tầng xử lý logic cục bộ và tầng quản trị mạng trung tâm. Việc nhúng thành công Web Server lên phần cứng Arduino Mega 2560 kết hợp chip W5100 đã chứng minh tính khả thi của việc xây dựng các hệ thống điều khiển IoT chi phí thấp, bảo mật nội bộ cao và hoàn toàn độc lập với các dịch vụ đám mây thương mại.

Công trình này không chỉ hoàn thành xuất sắc các yêu cầu kỹ thuật của một đồ án tốt nghiệp đại học chuyên ngành Cơ Điện Tử, mà còn cung cấp tài liệu tham khảo có giá trị ứng dụng thực tiễn cao cho sinh viên, kỹ sư và các nhà phát triển hệ thống nhúng tại Việt Nam.