Giới thiệu dự án

Sự bùng nổ của cuộc cách mạng Internet of Things (IoT) và các thiết bị di động thông minh đã thúc đẩy mạnh mẽ nhu cầu tự động hóa trong quản lý thiết bị gia dụng và công nghiệp. Theo các báo cáo từ Statista và GSMA Intelligence, số lượng thiết bị kết nối IoT toàn cầu đã tăng trưởng vượt bậc với tốc độ CAGR trên 15%/năm, trong đó hệ thống tự động hóa nhà thông minh (Smart Home) chiếm tỷ trọng đáng kể. Tuy nhiên, tại các khu vực ngoại thành, nông trại, nhà xưởng hoặc các vùng chưa phủ sóng hạ tầng cáp quang/Wi-Fi ổn định, việc duy trì kết nối Internet liên tục cho các hệ thống điều khiển là một thách thức lớn.

Vấn đề đặt ra là hầu hết các giải pháp điều khiển từ xa truyền thống tại thời điểm nghiên cứu dựa trên sóng hồng ngoại (IR - Infrared) hoặc sóng vô tuyến (RF - Radio Frequency) bị giới hạn nghiêm ngặt về khoảng cách vật lý (dưới 10m–30m và cần đường truyền thẳng - line-of-sight). Một số giải pháp điều khiển từ xa qua mạng viễn thông sử dụng tin nhắn SMS (Short Message Service) tuy không giới hạn khoảng cách nhưng lại bộc lộ nhiều nhược điểm chí mạng: chi phí vận hành tích lũy cao (cước phí viễn thông cho từng tin nhắn gửi/nhận), độ trễ truyền tin không ổn định (từ 5 đến 30 giây tùy thuộc nghẽn mạng SMSC) và giao diện tương tác văn bản kém trực quan, không hỗ trợ giám sát trạng thái thiết bị thời gian thực (Real-time state synchronization).

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống điều khiển các thiết bị điện dân dụng qua mạng 3G" được thực hiện nhằm giải quyết triệt để các hạn chế trên. Bằng cách kết hợp nền tảng di động Android OS, hệ thống cơ sở dữ liệu máy chủ trung gian (Web Server LAMP/WAMP) và bộ điều khiển phần cứng tích hợp vi điều khiển PIC16F877A cùng module GSM/GPRS/3G SIM900A, hệ thống cho phép giám sát và đóng cắt các thiết bị công suất cao (220VAC) từ bất kỳ đâu thông qua hạ tầng mạng dữ liệu di động gói (Packet-switched cellular network).

+-------------------------------------------------------------------------+
|                              MỤC TIÊU DỰ ÁN                             |
+-------------------------------------------------------------------------+
| 1. Thiết kế phần cứng nhúng: Vi điều khiển PIC16F877A + Module SIM900A  |
| 2. Mạch công suất cách ly: 3 ngõ ra 220VAC dùng Opto MOC3020 & Triac   |
| 3. Phát triển Web API & CSDL: Apache, PHP và MySQL quản lý trạng thái   |
| 4. Xây dựng ứng dụng Android: Giao diện trực quan, kết nối HTTP API    |
| 5. Cơ chế điều khiển kép: Đồng bộ nút nhấn cơ học và lệnh từ xa qua App |
+-------------------------------------------------------------------------+

Mục tiêu kỹ thuật cụ thể

  1. Thiết kế khối xử lý trung tâm và truyền thông: Giao tiếp ổn định giữa vi điều khiển PIC16F877A (tần số dao động thạch anh 20MHz) và module SIM900A qua giao thức UART nối tiếp bất đồng bộ ở tốc độ baud 9600/115200 bps.
  2. Khối công suất an toàn: Thiết kế 3 kênh đóng cắt tải xoay chiều 220VAC/10A sử dụng mạch cách ly quang Optocoupler MOC3020 kết hợp Triac công suất BTA16-600B, triệt tiêu xung nhiễu quá độ AC và bảo vệ an toàn cho khối vi xử lý điện áp thấp.
  3. Máy chủ dữ liệu trung gian (State Broker): Triển khai Web Server lưu trữ bảng dữ liệu MySQL phản ánh trạng thái đóng/ngắt (Boolean 0/1) của thiết bị, trung chuyển gói tin HTTP giữa Client và Hardware.
  4. Ứng dụng điều khiển di động: Xây dựng phần mềm Android (tương thích từ Android 4.1 Jelly Bean đến Android 5.0 Lollipop) trên Android Studio, cung cấp giao diện Material Design trực quan, cập nhật trạng thái thiết bị tức thời.
  5. Cơ chế dự phòng kép (Fail-safe Mechanism): Tích hợp nút bấm vật lý trên bo mạch cho phép điều khiển trực tiếp tải AC ngay cả khi mất sóng viễn thông hoặc sự cố kết nối SIM900A.

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

  • Phần cứng: 3 ngõ ra công suất 220VAC độc lập; sử dụng băng tần kép GSM/GPRS 900/1800 MHz của module SIM900A.
  • Phần mềm: Ứng dụng Android chạy trên thiết bị di động kết nối mạng 3G/4G/Wi-Fi; không phát triển phiên bản cho iOS/Windows Phone.
  • Thời gian đáp ứng kỳ vọng: Độ trễ truyền nhận lệnh từ ứng dụng di động đến khi rơ-le/Triac kích hoạt nằm trong khoảng 1.5 – 3.0 giây trên mạng dữ liệu di động 3G/GPRS.

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

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

Trước khi lựa chọn kiến trúc GPRS/3G + Web Server, các công nghệ điều khiển từ xa hiện hữu đã được khảo sát chi tiết:

Tiêu chí kỹ thuật Điều khiển qua RF/IR Điều khiển qua SMS Gateway Giải pháp GPRS/3G + Server (Đồ án)
Khoảng cách hoạt động Giới hạn vật lý (< 30m) Không giới hạn toàn cầu Không giới hạn toàn cầu
Giao diện người dùng Remote bấm nút cơ học Soạn cú pháp tin nhắn văn bản Giao diện đồ họa (GUI) trực quan trên App
Chi phí vận hành 0 VNĐ (Không tốn cước) ~100 – 500 VNĐ / 1 lệnh gửi/nhận Cước gói Data 3G/GPRS tối ưu (~vài chục đồng/ngày)
Phản hồi trạng thái Không (1 chiều) Có (tốn thêm 1 cước tin nhắn) Đồng bộ 2 chiều thời gian thực (Polling/Push)
Khả năng mở rộng tải Thấp (Cố định mã hóa phần cứng) Trung bình (Phụ thuộc parser SMS) Cao (Linh hoạt qua CSDL MySQL và API)
Nguy cơ sai lệch lệnh Nhiễu tín hiệu tần số vô tuyến Nghẽn tổng đài SMSC vào giờ cao điểm Kết nối phiên TCP/IP tin cậy (Handshake 3 bước)

Phân loại yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc có):
    • Điều khiển bật/tắt 3 tải điện 220VAC từ ứng dụng Android.
    • Tự động đồng bộ trạng thái giữa phần cứng, máy chủ và ứng dụng di động.
    • Nút nhấn vật lý chuyển đổi trạng thái cục bộ tại chỗ.
    • Mạch cách ly quang bảo vệ điện áp cao.
  • Should Have (Nên có):
    • Đèn LED chỉ thị trạng thái kết nối GPRS và trạng thái từng tải.
    • Hệ thống xác thực đăng nhập bảo mật tài khoản người dùng trên ứng dụng.
  • Could Have (Có thể có):
    • Hẹn giờ tự động bật/tắt thiết bị trên máy chủ.
    • Đo dòng điện tiêu thụ và cảnh báo quá tải.
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Điều khiển bằng giọng nói hoặc trí tuệ nhân tạo (AI Assistant).
    • Mã hóa đầu cuối TLS/SSL (HTTPS) trên vi điều khiển 8-bit.

Thiết kế hệ thống

Kiến trúc tổng thể của hệ thống hoạt động theo mô hình Client - Server - Embedded Node phân tán:

+------------------+         HTTP POST/GET         +----------------------+
|  Android Device  | <===========================> |     Web Server       |
|  (User App GUI)  |     (GPRS / 3G / Wi-Fi)       |   (Apache + PHP)     |
+------------------+                               +----------+-----------+
                                                              |
                                                    SQL Query | Read / Write
                                                              v
+------------------+         GPRS AT Commands      +----------------------+
| Hardware Module  | <===========================> |   MySQL Database     |
| (PIC16F877A+SIM) |    (TCP/IP Session Port 80)   | (tb_devices_status)  |
+--------+---------+                               +----------------------+
         |
    GPIO | Gate Drive (MOC3020 Opto-Triac)
         v
+------------------+
|  220VAC Loads    | (Đèn chiếu sáng, Quạt, Máy bơm dân dụng)
+------------------+

Technology Stack và Versioning

  • Vi điều khiển: Microchip PIC16F877A (8-bit architecture, 35 single-word instructions, 8KB Flash program memory, 368 bytes RAM, 256 bytes EEPROM).
  • Module truyền thông viễn thông: SIMCom SIM900A Firmware Release 1137B08SIM900A64_ST (Hỗ trợ tập lệnh chuẩn GSM 07.07, 07.05 và AT Commands mở rộng của SIMCom).
  • Trình biên dịch nhúng: CCS C Compiler PCWHD phiên bản 4.114.
  • Môi trường phát triển ứng dụng di động: Android Studio 1.x / 2.x, Android SDK API Level 16 (Android 4.1.2 Jelly Bean) đến API Level 21 (Android 5.0 Lollipop), ngôn ngữ Java 7/8.
  • Máy chủ Backend: Apache HTTP Server 2.4.x, PHP Scripting Engine 5.6.x, MySQL Database Server 5.5.x.

Thiết kế cơ sở dữ liệu (Database Schema)

Cơ sở dữ liệu được chuẩn hóa dưới dạng bảng lưu trữ trạng thái logic của từng thiết bị tải:

CREATE DATABASE db_smarthome;
USE db_smarthome;

CREATE TABLE tbl_thietbi (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    ma_thietbi VARCHAR(20) NOT NULL UNIQUE,
    ten_thietbi VARCHAR(100) NOT NULL,
    trangthai TINYINT(1) DEFAULT 0, -- 0: TẮT, 1: BẬT
    ngay_capnhat TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Khởi tạo dữ liệu mặc định cho 3 kênh đầu ra
INSERT INTO tbl_thietbi (ma_thietbi, ten_thietbi, trangthai) VALUES
('TB01', 'Đèn Phòng Khách', 0),
('TB02', 'Quạt Thông Gió', 0),
('TB03', 'Bình Nóng Lạnh', 0);

Thiết kế API giao tiếp Web (PHP REST-like Endpoints)

Hệ thống sử dụng hai script PHP chính để tương tác với cơ sở dữ liệu:

  1. update_status.php: Nhận yêu cầu từ ứng dụng Android qua phương thức HTTP POST/GET để cập nhật trạng thái thiết bị.
  2. get_status.php: Cung cấp chuỗi dữ liệu phản hồi (raw text hoặc JSON format) để module SIM900A/PIC16F877A đọc và phân tích cú pháp.
<?php
// get_status.php - Phục vụ vi điều khiển PIC16F877A đọc trạng thái thiết bị
header('Content-Type: text/plain; charset=utf-8');
$servername = "localhost";
$username   = "user_smarthome";
$password   = "SecurePass@2016";
$dbname     = "db_smarthome";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die("ERROR_DB_CONN");
}

$sql = "SELECT ma_thietbi, trangthai FROM tbl_thietbi ORDER BY id ASC";
$result = $conn->query($sql);

$response = "";
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
        // Định dạng xuất: TB01:1#TB02:0#TB03:1$
        $response .= $row["ma_thietbi"] . ":" . $row["trangthai"] . "#";
    }
    echo rtrim($response, "#") . "$";
} else {
    echo "NO_DATA$";
}
$conn->close();
?>

Methodology

Quy trình nghiên cứu và phát triển được xây dựng theo mô hình V-Model lặp kết hợp kiểm thử tích hợp liên tục (Continuous Integration Testing):

+-----------------------+                    +------------------------+
| Phân tích yêu cầu     |                    | Kiểm thử nghiệm thu    |
+-----------+-----------+                    +-----------^------------+
            |                                            |
+-----------v-----------+                    +-----------+------------+
| Thiết kế hệ thống     |                    | Kiểm thử hệ thống      |
+-----------+-----------+                    +-----------^------------+
            |                                            |
+-----------v-----------+                    +-----------+------------+
| Thiết kế module phần  |                    | Kiểm thử đơn vị        |
| cứng / phần mềm       |                    | (Unit Test Phần cứng)  |
+-----------+-----------+                    +-----------^------------+
            |                                            |
            +--------------> LẬP TRÌNH & THI CÔNG ------+
                             (CCS C, Java, PHP, PCB)

Ma trận đánh giá rủi ro và biện pháp giảm thiểu

Rủi ro kỹ thuật Mức độ Biện pháp xử lý & Giảm thiểu
Sụt áp khi SIM900A phát sóng Cao Thiết kế khối nguồn xung hạ áp LM2596-5.0V riêng biệt, dòng tải đỉnh chịu được 2.0A - 3.0A, mắc tụ lọc hóa 1000uF/16V và tụ tantalum 100uF sát chân VCC của module SIM.
Treo vi điều khiển do nghẽn UART Trung bình Cấu hình bộ ngắt nhận dữ liệu RDA_INTERRUPT trong PIC16F877A kết hợp cơ chế bộ đệm vòng (Circular Ring Buffer), kích hoạt Watchdog Timer (WDT) tự reset hệ thống khi timeout.
Nhiễu điện áp cao từ tải cảm AC Cao Cách ly hoàn toàn mạch số 5V với mạch tải 220VAC qua Opto MOC3020 (độ bền cách điện 7500V peak); bổ sung mạch lọc RC Snubber (100nF/400V + 39 Ohm/2W) song song hai chân Triac BTA16.

Implementation và kết quả

Development process

Quá trình thi công hệ thống bao gồm 4 giai đoạn chính:

  1. Thiết kế & Gia công PCB: Vẽ sơ đồ mạch nguyên lý và layout mạch in 2 lớp trên phần mềm Altium Designer; kiểm tra khoảng cách an toàn (Creepage/Clearance distance) giữa đường nguồn AC 220V và tín hiệu DC 5V (tối thiểu 6mm).
  2. Lập trình nhúng PIC16F877A: Viết chương trình điều khiển bằng ngôn ngữ C trên CCS C, cấu hình bộ đệm ngắt truyền thông chuỗi.
  3. Cấu hình Web Server & Scripting: Đăng ký Web Hosting, cấu hình CSDL MySQL, viết script PHP xử lý chuỗi I/O dữ liệu.
  4. Phát triển ứng dụng Android: Thiết kế Layout XML, viết các lớp AsyncHttpClient và HttpURLConnection kết nối ngầm (Background thread).

Thuật toán điều khiển chính trên PIC16F877A (CCS C)

Chương trình nhúng thực hiện khởi tạo module SIM900A, thiết lập kết nối mạng GPRS theo APN của nhà mạng viễn thông, định kỳ gửi yêu cầu HTTP GET đến máy chủ để lấy dữ liệu điều khiển và xuất tín hiệu kích chân PORTB điều khiển MOC3020.

#include <16F877A.h>
#fuses HS, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
#use delay(clock=20000000) // Thạch anh 20MHz
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7, stream=SIM900)

#define OUT_TB1 PIN_B0
#define OUT_TB2 PIN_B1
#define OUT_TB3 PIN_B2

#define BTN_TB1 PIN_D0
#define BTN_TB2 PIN_D1
#define BTN_TB3 PIN_D2

char rx_buffer[128];
int8 rx_index = 0;
int1 data_ready_flag = 0;

#INT_RDA
void Receive_Isr() {
   char c = fgetc(SIM900);
   if(rx_index < 127) {
      rx_buffer[rx_index++] = c;
      if(c == '$') { // Ký tự kết thúc khung truyền
         rx_buffer[rx_index] = '\0';
         data_ready_flag = 1;
         rx_index = 0;
      }
   } else {
      rx_index = 0; // Tránh tràn bộ đệm
   }
}

void SIM900_Init_GPRS() {
   fprintf(SIM900, "AT+CIPSHUT\r\n");
   delay_ms(1000);
   fprintf(SIM900, "AT+CIPCSGP=1,\"v-internet\",\"\",\"\"\r\n"); // Cấu hình APN Viettel
   delay_ms(1500);
   fprintf(SIM900, "AT+CGATT=1\r\n"); // Đính kèm dịch vụ GPRS
   delay_ms(1500);
}

void Request_Server_Status() {
   fprintf(SIM900, "AT+CIPSTART=\"TCP\",\"myserver.com\",\"80\"\r\n");
   delay_ms(2000);
   fprintf(SIM900, "AT+CIPSEND\r\n");
   delay_ms(500);
   fprintf(SIM900, "GET /smarthome/get_status.php HTTP/1.1\r\nHost: myserver.com\r\n\r\n\x1A");
}

void Process_Control_Logic() {
   if(data_ready_flag) {
      // Phân tích cú pháp chuỗi trả về dạng: TB01:1#TB02:0#TB03:1$
      char *ptr1 = strstr(rx_buffer, "TB01:");
      char *ptr2 = strstr(rx_buffer, "TB02:");
      char *ptr3 = strstr(rx_buffer, "TB03:");
      
      if(ptr1 != NULL) output_bit(OUT_TB1, *(ptr1 + 5) - '0');
      if(ptr2 != NULL) output_bit(OUT_TB2, *(ptr2 + 5) - '0');
      if(ptr3 != NULL) output_bit(OUT_TB3, *(ptr3 + 5) - '0');
      
      data_ready_flag = 0;
   }
}

void main() {
   set_tris_b(0x00); // PORTB output điều khiển Triac
   set_tris_d(0xFF); // PORTD input nút nhấn cơ học
   output_b(0x00);
   
   enable_interrupts(INT_RDA);
   enable_interrupts(GLOBAL);
   
   delay_ms(3000); // Chờ SIM900A khởi động hoàn tất
   SIM900_Init_GPRS();
   
   while(TRUE) {
      // Kiểm tra nút nhấn cục bộ (Active-Low)
      if(!input(BTN_TB1)) { delay_ms(20); if(!input(BTN_TB1)) { output_toggle(OUT_TB1); while(!input(BTN_TB1)); } }
      if(!input(BTN_TB2)) { delay_ms(20); if(!input(BTN_TB2)) { output_toggle(OUT_TB2); while(!input(BTN_TB2)); } }
      if(!input(BTN_TB3)) { delay_ms(20); if(!input(BTN_TB3)) { output_toggle(OUT_TB3); while(!input(BTN_TB3)); } }
      
      // Định kỳ gửi lệnh truy vấn máy chủ
      Request_Server_Status();
      delay_ms(2000);
      Process_Control_Logic();
   }
}

Xử lý mạng trên ứng dụng Android (Java)

Để giao diện ứng dụng không bị đóng băng (ANR - Application Not Responding), các yêu cầu mạng được đặt trong lớp AsyncTask hoặc chạy trên luồng phụ (Thread / Runnable):

public class DeviceControlTask extends AsyncTask<String, Void, String> {
    private String targetUrl;
    
    public DeviceControlTask(String deviceId, int status) {
        this.targetUrl = "http://myserver.com/smarthome/update_status.php?device=" 
                         + deviceId + "&status=" + status;
    }
    
    @Override
    protected String doInBackground(String... params) {
        StringBuilder result = new StringBuilder();
        try {
            URL url = new URL(targetUrl);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setConnectTimeout(5000);
            conn.setReadTimeout(5000);
            
            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String line;
            while ((line = reader.readLine()) != null) {
                result.append(line);
            }
            reader.close();
            return result.toString();
        } catch (Exception e) {
            return "ERR_NET: " + e.getMessage();
        }
    }
    
    @Override
    protected void onPostExecute(String response) {
        if ("SUCCESS".equalsIgnoreCase(response.trim())) {
            // Cập nhật giao diện Switch/Toggle Button trên màn hình
            Log.d("SmartHome", "Cập nhật trạng thái thiết bị thành công!");
        }
    }
}

Testing và validation

Hệ thống được thử nghiệm thực tế trong 100 chu kỳ kích hoạt liên tục trong các điều kiện mạng khác nhau (Wi-Fi, 3G HSDPA, và 2.5G GPRS):

Kịch bản kiểm thử Số lần thử Thành công Thất bại Thời gian đáp ứng TB Ghi chú kỹ thuật
Kích hoạt từ App qua 3G/HSDPA 50 lần 49 (98%) 1 (2%) 1.85 giây Thất bại do rớt gói tin lúc chuyển trạm BTS
Kích hoạt từ App qua Wi-Fi 50 lần 50 (100%) 0 (0%) 1.22 giây Kết nối ổn định, dữ liệu đồng bộ tức thời
Bấm nút cơ học tại chỗ 100 lần 100 (100%) 0 (0%) < 50 mili-giây Triac đóng mở tức thì, mạch chống rung phím tốt
Phục hồi sau khi mất sóng viễn thông 20 lần 19 (95%) 1 (5%) 4.60 giây SIM900 tự động gửi lại lệnh AT+CIPSTART
+-------------------------------------------------------------------------+
|                  BIỂU ĐỒ SO SÁNH THỜI GIAN ĐÁP ỨNG TRUNG BÌNH (s)       |
+-------------------------------------------------------------------------+
| Wi-Fi nội bộ:  [=====] 1.22s                                            |
| 3G Data di động: [========] 1.85s                                       |
| 2G GPRS mạng yếu: [=============] 3.10s                                 |
| SMS truyền thống: [================================================] 12.5s|
+-------------------------------------------------------------------------+

Kết quả đạt được

Hệ thống hoàn chỉnh đáp ứng trọn vẹn các thông số kỹ thuật đề ra:

  • Khối công suất: Đóng ngắt thành công 3 tải AC 220V độc lập (bóng đèn sợi đốt 100W, quạt bàn 45W, đèn huỳnh quang 40W) mà không xảy ra hiện tượng đánh lửa hay sụt áp reset vi xử lý.
  • Giao diện Android: Xây dựng ứng dụng hoàn thiện với màn hình đăng nhập an toàn, màn hình điều khiển chính tích hợp nút trượt trực quan hiển thị màu sắc theo trạng thái (Xanh: Bật, Đỏ: Tắt).
  • Độ ổn định: Hoạt động liên tục trong 72 giờ không phát sinh lỗi tràn bộ đệm hay treo chương trình vi điều khiển.

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

  1. Kiến trúc truyền thông dữ liệu GPRS dạng gói thay thế SMS: Đồ án đã thay thế phương thức điều khiển truyền thống bằng tin nhắn SMS đắt đỏ bằng cách tận dụng giao thức TCP/IP trên nền mạng GPRS/3G. Việc truyền chuỗi byte siêu nhỏ qua giao thức HTTP giúp tiết kiệm hơn 90% chi phí viễn thông cho người sử dụng.
  2. Cơ chế điều khiển lai (Hybrid Dual-Control Architecture): Đảm bảo tính liên tục của hệ thống sinh hoạt bằng cách kết hợp vi điều khiển đọc song song cả tín hiệu trạng thái số từ Web Server và ngắt ngoài từ nút bấm phần cứng.
  3. Mạch công suất cách ly quang chất lượng cao: Ứng dụng kết hợp MOC3020 và Triac BTA16 thay thế cho Relay cơ khí truyền thống, loại bỏ hoàn toàn hiện tượng hồ quang điện (arcing), tăng tuổi thọ thiết bị đóng cắt lên hàng triệu chu kỳ hoạt động và triệt tiêu tiếng ồn cơ học.

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

Hệ thống có khả năng ứng dụng rộng rãi trong nhiều kịch bản thực tiễn:

                  +-----------------------------------+
                  |  CÁC ỨNG DỤNG THỰC TẾ HỆ THỐNG    |
                  +-----------------+-----------------+
                                    |
        +---------------------------+---------------------------+
        |                           |                           |
        v                           v                           v
+-------------------+       +-------------------+       +-------------------+
|  Smart Home       |       |  Nông nghiệp 4.0  |       |  Nhà xưởng - Kho  |
|  Bình nóng lạnh,  |       |  Hệ thống tưới,   |       |  Quạt hút khí,    |
|  hệ thống đèn,    |       |  đèn sấy hoa lan, |       |  chiếu sáng sân   |
|  máy điều hòa AC  |       |  quạt thông gió   |       |  bãi kho vận xa   |
+-------------------+       +-------------------+       +-------------------+

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

  • Chi phí phần cứng (BOM - Bill of Materials):
    • Vi điều khiển PIC16F877A + Đế cắm: ~70.000 VNĐ.
    • Module SIM900A GSM/GPRS: ~250.000 VNĐ.
    • Khối công suất (3x MOC3020, 3x BTA16, Tản nhiệt, Snubber): ~60.000 VNĐ.
    • Mạch nguồn xung LM2596 + Linh kiện phụ (Tụ, trở, LED, Header): ~50.000 VNĐ.
    • Vỏ hộp nhựa kỹ thuật & Domino đấu dây: ~40.000 VNĐ.
    • Tổng chi phí phần cứng: ~470.000 VNĐ.
  • Hiệu quả kinh tế: So với các bộ điều khiển SMS trên thị trường (giá từ 1.200.000 đến 2.000.000 VNĐ), giải pháp tự thiết kế giúp giảm hơn 60% chi phí sản xuất ban đầu, đồng thời giảm cước phí vận hành hàng tháng từ ~50.000 VNĐ (gửi 100-200 tin SMS) xuống còn ~10.000 VNĐ (gói data 3G/GPRS trọn gói M10/MiU).

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

Hạn chế kỹ thuật

  1. Giao thức truyền thông HTTP Polling: Việc vi điều khiển định kỳ gửi yêu cầu HTTP GET sau mỗi 2 giây tạo tải thừa cho băng thông viễn thông và máy chủ cơ sở dữ liệu khi không có trạng thái thay đổi.
  2. Bảo mật: Giao thức truyền tin đang ở dạng HTTP văn bản thuần (Plain Text), chưa tích hợp lớp bảo mật mã hóa SSL/TLS (HTTPS) trên vi điều khiển 8-bit do giới hạn về dung lượng bộ nhớ RAM và Flash của PIC16F877A.
  3. Phụ thuộc mạng 2G/GPRS: Module SIM900A hoạt động chủ yếu trên băng tần 2G/2.5G, sẽ bị ảnh hưởng trực tiếp khi các nhà mạng viễn thông tắt sóng 2G trong tương lai.

Hướng phát triển mở rộng

  • Nâng cấp phần cứng: Chuyển đổi vi xử lý sang dòng 32-bit hiệu năng cao hơn (STM32F4 hoặc ESP32) và thay thế SIM900A bằng các module 4G LTE-Cat 1 (như SIM7600E hoặc A7670C) đảm bảo tương thích hạ tầng mạng viễn thông hiện đại.
  • Chuyển đổi giao thức sang MQTT / WebSockets: Ứng dụng giao thức nhẹ MQTT (Message Queuing Telemetry Transport) thông qua MQTT Broker (như Mosquitto/HiveMQ) với cơ chế Publish/Subscribe giúp đẩy trạng thái tức thời (Push Notification), triệt tiêu độ trễ polling và tiết kiệm 95% lưu lượng data.
  • Tích hợp cảm biến đo lường: Bổ sung cảm biến dòng điện phi xâm lấn ACS712 để đo lường công suất thực, cảnh báo chập cháy và phát hiện thiết bị hư hỏng trực tiếp về ứng dụng điện thoại.

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

+------------------+----------------------------------------------------------+
| ĐỐI TƯỢNG        | GIÁ TRỊ VÀ LỢI ÍCH CỤ THỂ                                |
+------------------+----------------------------------------------------------+
| Sinh viên        | Cung cấp tài liệu tham khảo toàn diện về tích hợp hệ     |
| Điện tử - Viễn thông| thống vi điều khiển, module viễn thông và lập trình App. |
+------------------+----------------------------------------------------------+
| Kỹ sư nhúng      | Mã nguồn mẫu giao tiếp AT Command và kỹ thuật kích Triac  |
| & Lập trình viên | cách ly an toàn trong môi trường điện áp xoay chiều 220V.|
+------------------+----------------------------------------------------------+
| Hộ nông dân &    | Giải pháp tự động hóa bơm tưới, thông gió từ xa với chi  |
| Chủ trang trại   | phí đầu tư thấp, không cần phụ thuộc đường truyền Wi-Fi. |
+------------------+----------------------------------------------------------+
| Nhà nghiên cứu   | Mô hình cơ sở để phát triển các mạng lưới cảm biến IoT   |
| & R&D            | diện rộng (WSN) trên nền tảng viễn thông di động cellular.|
+------------------+----------------------------------------------------------+

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

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

Hệ thống yêu cầu nguồn điện lưới xoay chiều 220VAC/50Hz; SIM card của bất kỳ nhà mạng viễn thông nào tại Việt Nam (Viettel, Mobifone, Vinaphone) đã đăng ký dịch vụ Data GPRS/3G; thiết bị di động của người dùng chạy hệ điều hành Android từ phiên bản 4.1 trở lên có kết nối Internet (Wi-Fi hoặc dữ liệu di động).

2. Giới hạn mở rộng số lượng thiết bị của hệ thống và giải pháp khắc phục?

Bo mạch phần cứng hiện tại hỗ trợ tối đa 3 kênh công suất do số lượng chân I/O của vi điều khiển PIC16F877A được phân bổ cho UART và nút nhấn. Để mở rộng lên 8, 16 hoặc 32 kênh, có thể sử dụng thêm IC ghi dịch mở rộng cổng như 74HC595 hoặc nâng cấp vi điều khiển lên các dòng có số lượng chân lớn hơn (PIC18F4520, STM32F103C8T6).

3. Khả năng tương thích và tích hợp với các hệ thống điện dân dụng sẵn có?

Bộ điều khiển đóng vai trò như các công tắc trung gian (nối tiếp trước tải tiêu thụ). Mạch có thể đấu nối song song hoặc nối tiếp với hệ thống công tắc âm tường truyền thống, cho phép người dùng bật/tắt thiết bị bình thường mà không cần thay đổi lại toàn bộ đường dây điện âm tường trong nhà.

4. Nhu cầu bảo trì, vận hành và xử lý lỗi phần cứng định kỳ?

Hệ thống cần kiểm tra số dư và chu kỳ gia hạn gói data của SIM card trong module SIM900A định kỳ mỗi tháng. Do sử dụng Triac thể rắn (Solid-state switching) không có tiếp điểm cơ khí, mạch công suất không bị mòn tiếp điểm như Relay, giúp tuổi thọ hoạt động liên tục đạt trên 5 năm mà không cần bảo dưỡng phần cứng.

5. Chi phí đầu tư ban đầu và thời gian thu hồi vốn (ROI) ra sao?

Với chi phí sản xuất phần cứng khoảng 470.000 VNĐ, nếu triển khai cho một trang trại hoa hoặc vườn ươm nông nghiệp để tự động hóa hệ thống tưới tiêu và chiếu sáng, người dùng có thể tiết kiệm 1–2 giờ công lao động thủ công mỗi ngày. Thời gian thu hồi vốn đầu tư ước tính chỉ trong vòng 1 đến 2 tháng vận hành thực tế.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống điều khiển các thiết bị điện dân dụng qua mạng 3G" đã giải quyết thành công bài toán điều khiển và giám sát thiết bị điện từ xa thông qua sự kết hợp nhịp nhàng giữa công nghệ vi điều khiển (PIC16F877A), module viễn thông di động (SIM900A), hệ quản trị cơ sở dữ liệu phân tán (MySQL/PHP) và ứng dụng di động Android.

Hệ thống không chỉ đạt được độ tin cậy cao, thời gian đáp ứng nhanh (< 2 giây), độ an toàn tuyệt đối nhờ mạch cách ly quang Opto-Triac mà còn mở ra hướng tiếp cận kinh tế, tối ưu hóa chi phí vận hành cho người sử dụng so với các phương thức truyền thống. Đây là tiền đề kỹ thuật vững chắc để tiếp tục phát triển các sản phẩm IoT công nghiệp và nông nghiệp thông minh trong kỷ nguyên chuyển đổi số.