Giới thiệu dự án

Trong môi trường giáo dục đại học quy mô lớn với hàng chục nghìn sinh viên và hàng trăm giảng viên, việc quản lý và cập nhật lịch trình giảng dạy biến động (báo nghỉ đột xuất do công tác, sức khỏe, hoặc sắp xếp lịch học bù, đổi phòng) luôn là bài toán vận hành phức tạp. Theo khảo sát tại các trường đại học kỹ thuật, phương thức truyền thống thông báo qua bảng phấn, bảng mica viết bút lông tại sảnh trung tâm hoặc văn phòng khoa bộc lộ nhiều điểm nghẽn nghiêm trọng:

  • Độ trễ thông tin cao: Giảng viên khi có việc đột xuất phải trực tiếp đến trường hoặc liên hệ cán bộ văn phòng để ghi bảng thông báo, gây mất thời gian từ 1 đến 3 giờ trước khi thông tin đến được sinh viên.
  • Không gian hiển thị hạn chế: Kích thước bảng phấn vật lý chỉ chứa được từ 5 - 10 thông báo cùng lúc, dễ bị ghi đè, xóa nhầm hoặc thiếu diện tích hiển thị khi có nhiều lớp thay đổi lịch trong kỳ thi hoặc đợt công tác.
  • Khả năng tiếp cận kém: Sinh viên các phòng học xa khu vực trung tâm khó tiếp cận thông báo kịp thời, dẫn đến tình trạng đến lớp nhưng không có giảng viên, gây lãng phí thời gian và cơ sở vật chất.
  • Khó khăn cho công tác thanh tra đào tạo: Bộ phận thanh tra giáo dục không thể thống kê chính xác số tiết nghỉ, số tiết dạy bù theo thời gian thực để phục vụ đánh giá khối lượng giảng dạy và tính toán thù lao.

Nhằm khắc phục triệt để các hạn chế trên, đề tài "Hệ thống Báo Nghỉ Báo Bù" được nghiên cứu và phát triển bởi sinh viên ngành Công nghệ Kỹ thuật Điện tử - Truyền thông (Bộ môn Điện tử Công nghiệp, Trường Đại học Sư phạm Kỹ thuật TP.HCM). Hệ thống chuyển đổi toàn bộ quy trình tiếp nhận và công bố lịch dạy học từ thủ công sang tự động hóa thông qua hạ tầng mạng viễn thông GSM (Global System for Mobile Communications) kết hợp hệ thống nhúng vi điều khiển phân tán và màn hình hiển thị đồ họa độ phân giải cao.

                    ┌──────────────────────────────┐
                    │ Giảng viên gửi SMS cú pháp   │
                    └──────────────┬───────────────┘
                                   │ (Sóng GSM)
                                   ▼
                    ┌──────────────────────────────┐
                    │  Module SIM900 (camMaster)   │
                    └──────────────┬───────────────┘
                                   │
              ┌────────────────────┴────────────────────┐
              ▼ (Chế độ Online)                         ▼ (Chế độ Offline)
┌──────────────────────────────┐          ┌──────────────────────────────┐
│ Phần mềm C# + SQL Server 2008│          │ Vi điều khiển ATmega2560     │
│ - Lưu CSDL, xuất file PDF    │          │ - Lưu trữ thẻ nhớ MicroSD    │
│ - Tự động gửi Email báo cáo  │          │ - Đồng bộ thời gian DS1307   │
└──────────────┬───────────────┘          └──────────────┬───────────────┘
               │                                         │
               └────────────────────┬────────────────────┘
                                    │
                                    ▼
       ┌─────────────────────────────────────────────────────────┐
       │                  HỆ THỐNG HIỂN THỊ PHÂN TÁN             │
       ├────────────────────────────┬────────────────────────────┤
       │ Bộ hiển thị đồ họa µVGA-III│ Màn hình LED Matrix 16x16  │
       │ (Màn hình Tivi / VGA / HDMI│ & Mạch đếm LED 7 đoạn      │
       │ hiển thị chi tiết lịch dạy)│ (Bảng thống kê Khoa/Tổng)  │
       └────────────────────────────┴────────────────────────────┘

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

  1. Thiết kế hệ thống tiếp nhận tin nhắn SMS tự động: Xây dựng module thu phát GSM SIM900 có khả năng phân tích cú pháp chuẩn xác từ số điện thoại của giảng viên đã đăng ký.
  2. Khả năng hoạt động Dual-mode (Online & Offline): Hệ thống có khả năng xử lý, lưu trữ dữ liệu vào thẻ nhớ MicroSD qua chuẩn giao tiếp SPI và đồng bộ thời gian thực qua RTC DS1307 ngay cả khi không kết nối với máy tính chủ.
  3. Thay thế công nghệ truyền thông RF ZigBee cự ly ngắn: Chuyển đổi toàn diện sang hạ tầng mạng di động GSM/GPRS, loại bỏ hoàn toàn giới hạn cự ly truyền thông không dây nội bộ trong khuôn viên trường.
  4. Nâng cấp giải pháp hiển thị đa tầng: Thay thế các bộ hiển thị LED đơn sơ bằng bộ điều khiển đồ họa nhúng µVGA-III xuất tín hiệu hình ảnh trực tiếp lên màn hình Tivi cỡ lớn, kết hợp bảng quang báo LED ma trận (LED Matrix 16x16) và LED 7 đoạn hiển thị số lượng thống kê.
  5. Xây dựng phần mềm quản trị CSDL trung tâm: Thiết kế ứng dụng quản lý bằng ngôn ngữ C# trên nền tảng .NET Framework kết nối cơ sở dữ liệu Microsoft SQL Server, hỗ trợ xuất báo cáo PDF tự động và gửi email cho giảng viên và ban thanh tra.

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

  • Phạm vi: Triển khai thử nghiệm tại các khoa chuyên môn (Khoa Cơ khí Chế tạo máy, Khoa Cơ khí Động lực, Khoa Điện - Điện tử) thuộc khuôn viên Trường Đại học Sư phạm Kỹ thuật TP.HCM.
  • Giới hạn kỹ thuật: Hệ thống xử lý tin nhắn SMS dựa trên cấu trúc cú pháp cố định (báo nghỉ, báo bù, báo trễ, báo dạy thế, đổi phòng học); sử dụng module viễn thông 2G GSM SIM900 giao tiếp nối tiếp UART với vi điều khiển AVR.

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

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

Trước khi đề xuất giải pháp, đề tài đã tiến hành phân tích so sánh giữa các phương án truyền tải thông tin quản lý giảng dạy phổ biến:

Tiêu chí đánh giá Bảng thông báo phấn / mica truyền thống Hệ thống truyền thông mạng không dây ZigBee Giải pháp Báo Nghỉ Báo Bù (GSM + Nhúng + µVGA-III)
Cự ly truyền nhận 0 m (phải có mặt trực tiếp) Cự ly ngắn (< 100 m trong nhà, < 500 m ngoài trời) Không giới hạn cự ly (bất kỳ nơi nào có sóng GSM di động)
Tính sẵn sàng (Availability) Thấp (phụ thuộc cán bộ trực bảng) Trung bình (dễ bị nhiễu tường bê tông, chướng ngại vật) Rất cao (hoạt động 24/7, tự động xử lý tin nhắn trong < 3s)
Khả năng hoạt động Offline Không áp dụng Kém (phải duy trì coordinator và bộ xử lý kết nối) Độc lập hoàn toàn (vi điều khiển + RTC DS1307 + Thẻ nhớ FAT32)
Chất lượng hiển thị Kém (chữ viết tay, dễ nhòe, diện tích nhỏ) Đơn sắc, kích thước nhỏ (LED 7 đoạn, LCD text) Đồ họa màu trực quan trên màn hình Tivi độ phân giải cao + LED Matrix
Tự động hóa quản lý CSDL Không có (nhập liệu thủ công) Hạn chế (yêu cầu phần mềm gateway phức tạp) Tích hợp C# WinForms, SQL Server, xuất báo cáo PDF, gửi Email

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

  • Must Have (Bắt buộc phải có):
    • Module SIM900 tiếp nhận, giải mã chính xác các bản tin SMS theo chuẩn lệnh AT Command.
    • Bộ điều khiển trung tâm camMaster lưu trữ lịch sử báo nghỉ/bù vào thẻ MicroSD chuẩn FAT16/FAT32 khi mất kết nối máy tính.
    • Module thời gian thực DS1307 duy trì nhãn thời gian (timestamp) chính xác với sai số < 1 giây/ngày.
    • Giao tiếp đồ họa µVGA-III điều khiển màn hình Tivi hiển thị chi tiết tên giảng viên, mã môn học, phòng học, tiết nghỉ/bù.
  • Should Have (Nên có):
    • Mạch hiển thị LED 7 đoạn hiển thị số lượng giảng viên nghỉ/bù theo từng khoa và toàn trường.
    • Bảng LED Matrix 16x16 hiển thị chữ chạy quang báo thông tin vắn tắt.
    • Phần mềm C# hỗ trợ tự động sao lưu CSDL SQL Server và xuất phiếu báo giảng dạng file PDF chuẩn hóa.
  • Could Have (Có thể mở rộng):
    • Kết nối Bluetooth HC-06 để cấu hình thông số hệ thống từ điện thoại thông minh ở khoảng cách gần.
    • Kiểm tra số dư tài khoản SIM và nạp tiền tự động qua cú pháp USSD.
  • Won't Have (Chưa thực hiện trong giai đoạn này):
    • Truyền tải hình ảnh trực tiếp qua sóng 3G/4G tốc độ cao hoặc công nghệ mạng diện rộng tầm xa LoRaWAN do chi phí phần cứng và hạ tầng chưa tương thích tại thời điểm thử nghiệm.

Thiết kế hệ thống

Kiến trúc phần cứng và phân vùng chức năng của hệ thống được module hóa thành 4 bộ điều khiển chính:

  1. Bộ điều khiển Trung tâm (camMaster): Sử dụng vi điều khiển AVR ATmega2560 (16 MHz, 256 KB Flash, 8 KB SRAM), tích hợp Module GSM SIM900, Module RTC DS1307 (chuẩn I2C), Module MicroSD Socket (chuẩn SPI) và cổng kết nối máy tính qua chuẩn UART/USB.
  2. Bộ điều khiển Khoa (camFacult): Sử dụng vi điều khiển ATmega328P điều khiển khối LED 7 đoạn (dùng IC chốt và IC ghi dịch 74HC595) và module LED Matrix 16x16 hiển thị số lượng giảng viên nghỉ/bù thuộc phạm vi từng khoa.
  3. Bộ điều khiển Tổng thể (camTotal): Tổng hợp dữ liệu từ các khoa để hiển thị số lượng giảng viên nghỉ toàn trường phục vụ công tác giám sát của Ban Thanh tra Đào tạo.
  4. Bộ điều khiển Hiển thị (camDisplay): Sử dụng bộ xử lý đồ họa nhúng µVGA-III tích hợp chip đồ họa PICASO (4D Systems), nạp firmware viết bằng ngôn ngữ 4DGL qua môi trường Workshop4 IDE để xuất hình ảnh đồ họa ra cổng VGA/HDMI của màn hình Tivi.
+---------------------------------------------------------------------------------------+
|                                HỆ THỐNG PHẦN CỨNG                                     |
+---------------------------------------------------------------------------------------+
|                                                                                       |
|   +-------------------+         UART (9600 bps)        +--------------------------+   |
|   | Module GSM SIM900 | <============================> | Arduino Mega 2560        |   |
|   +-------------------+                                | (camMaster Controller)   |   |
|                                                        +------------+-------------+   |
|   +-------------------+         I2C (SDA/SCL)                       |                 |
|   | Module RTC DS1307 | <===========================================+                 |
|   +-------------------+                                             |                 |
|                                                                     |                 |
|   +-------------------+         SPI (MOSI/MISO/SCK/CS)              |                 |
|   | Module MicroSD    | <===========================================+                 |
|   +-------------------+                                             |                 |
|                                                                     |                 |
|   +-------------------+         UART / Serial                       |                 |
|   | uVGA-III PICASO   | <===========================================+                 |
|   +---------+---------+                                             |                 |
|             | VGA / HDMI                                            | RS485 / Serial  |
|             v                                                       v                 |
|   +-------------------+                                +--------------------------+   |
|   | Màn hình Tivi     |                                | Arduino Uno R3           |   |
|   | (Bảng thông báo)  |                                | (camFacult / camTotal)   |   |
|   +-------------------+                                +------------+-------------+   |
|                                                                     |                 |
|                                                        +------------+-------------+   |
|                                                        | IC Ghi dịch 74HC595      |   |
|                                                        +------------+-------------+   |
|                                                                     |                 |
|                                                        +------------+-------------+   |
|                                                        | LED 7 đoạn & LED Matrix  |   |
|                                                        +--------------------------+   |
+---------------------------------------------------------------------------------------+

Technology Stack và phiên bản phần mềm

  • Firmware & Embedded C/C++: Arduino IDE v1.6.8, bộ thư viện xử lý phần cứng Wire.h (giao tiếp I2C cho DS1307), SD.h & SPI.h (quản lý file trên thẻ nhớ FAT16/FAT32), SoftwareSerial.h (kết nối UART phụ).
  • Graphic Processor Environment: 4D Systems Workshop4 IDE v4.2.x, trình biên dịch 4DGL (4D Graphics Language) cho vi xử lý đồ họa PICASO.
  • Application & Database Layer: Microsoft Visual Studio 2008 / 2012 (C# WinForms, .NET Framework 3.5/4.0), Microsoft SQL Server 2008 R2, hệ thống thư viện iTextSharp v5.x hỗ trợ xuất báo cáo PDF.

Methodology

Quy trình nghiên cứu và triển khai dự án tuân theo mô hình V-Model kết hợp các vòng lặp tạo mẫu nhanh (Iterative Prototyping):

Phân tích yêu cầu ────────────────────────────────> Kiểm thử nghiệm thu (UAT)
       │                                                      ▲
       ▼                                                      │
Thiết kế kiến trúc hệ thống ──────────────────────> Kiểm thử tích hợp hệ thống
       │                                                      ▲
       ▼                                                      │
Thiết kế sơ đồ nguyên lý & PCB ─────────> Kiểm thử phần cứng & ngoại vi
       │                                                      ▲
       ▼                                                      │
       └───────────> Lập trình nhúng & WinForms ──────────────┘

Quản lý rủi ro và giải pháp khắc phục

  • Rủi ro tràn bộ đệm tin nhắn SIM: Module SIM900 có số ngăn nhớ tin nhắn hạn chế (50 ngăn trên SIM tiêu chuẩn). Khi bộ nhớ đầy, module không thể tiếp nhận tin nhắn mới.
    • Giải pháp: Lập trình cơ chế tự động đọc và giải phóng bộ nhớ ngay lập tức: Sử dụng lệnh AT+CMGD=1AT+CMGD=2 sau khi bóc tách chuỗi dữ liệu thành công.
  • Rủi ro mất nguồn hoặc ngắt kết nối máy tính chủ: Dữ liệu thông báo bị gián đoạn, mất đồng bộ thời gian.
    • Giải pháp: Thiết kế nguồn nuôi dự phòng qua pin CMOS CR2032 3V cho IC RTC DS1307; tự động chuyển sang cơ chế ghi file nhật ký dạng log .txt trên thẻ nhớ MicroSD theo định dạng chuẩn FAT32.
  • Rủi ro suy hao và nhiễu tín hiệu quét LED: Quét nhiều LED ma trận và LED 7 đoạn trên diện tích rộng gây sụt áp và hiện tượng bóng ma (ghosting).
    • Giải pháp: Sử dụng IC ghi dịch 74HC595 kết hợp transistor đệm dòng công suất (TIP122/ULN2803) và tụ lọc nhiễu 100nF tại từng chân VCC của IC logic.

Implementation và kết quả

Development process

1. Cấu hình và điều khiển Module SIM900 qua tập lệnh AT

Quy trình khởi tạo modem và thiết lập cơ chế đọc bản tin SMS tự động được tối ưu qua chuỗi lệnh AT Command:

# 1. Khôi phục cấu hình mặc định của modem
ATZ

# 2. Tắt chế độ phản hồi lệnh (Echo Off) để tối ưu xử lý chuỗi trên vi điều khiển
ATE0

# 3. Kích hoạt hiển thị thông tin số điện thoại gọi đến (Caller Line Identification)
AT+CLIP=1

# 4. Lưu toàn bộ cấu hình vào bộ nhớ không khả biến (NVRAM) của module
AT&W

# 5. Cấu hình cơ chế lưu trữ tin nhắn nhận được trực tiếp vào bộ nhớ SIM
AT+CNMI=0,2,0,0,0

# 6. Đọc nội dung tin nhắn tại ô nhớ số 1
AT+CMGR=1

# 7. Xóa tin nhắn tại ô nhớ số 1 để giải phóng không gian bộ đệm
AT+CMGD=1

Cấu trúc tin nhắn nhận được từ module SIM900 có định dạng:

+CMGR: "REC UNREAD","+84975800171",,"16/05/20,08:30:15+28"
BN-Nguyen Van A-DienTu-Chieu T2-P302-Nghi dot xuat

2. Thuật toán phân tích cú pháp (SMS Parsing) trên ATmega2560

Hệ thống nhúng xây dựng hàm bóc tách chuỗi ký tự dựa trên ký tự phân tách dấu gạch ngang (-) để trích xuất các trường dữ liệu: Cú pháp nghiệp vụ (BN - Báo Nghỉ, BB - Báo Bù, BT - Báo Trễ, BS - Báo Thế), Họ tên giảng viên, Khoa, Thời gian, Phòng học và Lý do:

#include <Wire.h>
#include <SD.h>
#include <SPI.h>

const int chipSelect = 53; // Chân CS thẻ nhớ trên Arduino Mega 2560

struct NotificationData {
    String msgType;
    String teacherName;
    String faculty;
    String timeSlot;
    String room;
    String reason;
    String phone;
};

NotificationData currentNotice;

void parseSMS(String rawSMS, String senderPhone) {
    int index1 = rawSMS.indexOf('-');
    int index2 = rawSMS.indexOf('-', index1 + 1);
    int index3 = rawSMS.indexOf('-', index2 + 1);
    int index4 = rawSMS.indexOf('-', index3 + 1);
    int index5 = rawSMS.indexOf('-', index4 + 1);

    if (index1 > 0 && index2 > 0 && index3 > 0 && index4 > 0) {
        currentNotice.msgType     = rawSMS.substring(0, index1);
        currentNotice.teacherName = rawSMS.substring(index1 + 1, index2);
        currentNotice.faculty     = rawSMS.substring(index2 + 1, index3);
        currentNotice.timeSlot    = rawSMS.substring(index3 + 1, index4);
        currentNotice.room        = rawSMS.substring(index4 + 1, index5 > 0 ? index5 : rawSMS.length());
        currentNotice.reason      = (index5 > 0) ? rawSMS.substring(index5 + 1) : "Khong co ly do";
        currentNotice.phone       = senderPhone;
        
        // Lưu trữ dữ liệu Offline vào thẻ nhớ
        logToSDCard(currentNotice);
    }
}

void logToSDCard(NotificationData data) {
    File dataFile = SD.open("REPORT.TXT", FILE_WRITE);
    if (dataFile) {
        dataFile.print(data.msgType); dataFile.print(";");
        dataFile.print(data.teacherName); dataFile.print(";");
        dataFile.print(data.faculty); dataFile.print(";");
        dataFile.print(data.timeSlot); dataFile.print(";");
        dataFile.print(data.room); dataFile.print(";");
        dataFile.println(data.phone);
        dataFile.close();
    }
}

3. Quản trị cơ sở dữ liệu và xử lý tự động trên phần mềm C# WinForms

Phần mềm trung tâm trên PC nhận tín hiệu từ cổng COM (Serial Port), kiểm tra thông tin số điện thoại của giảng viên trong CSDL SQL Server 2008 và tự động cập nhật bảng biểu:

using System;
using System.Data.SqlClient;
using System.IO.Ports;

public class MessageProcessor
{
    private string connectionString = "Server=localhost;Database=HeThongBaoNghiBu;Integrated Security=True;";

    public bool VerifyAndSaveMessage(string phone, string type, string teacher, string faculty, string room, string session)
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            conn.Open();
            // Xác thực giảng viên theo số điện thoại
            string verifyQuery = "SELECT COUNT(*) FROM GiaoVien WHERE SoDienThoai = @Phone";
            using (SqlCommand verifyCmd = new SqlCommand(verifyQuery, conn))
            {
                verifyCmd.Parameters.AddWithValue("@Phone", phone);
                int exists = (int)verifyCmd.ExecuteScalar();
                if (exists == 0) return false; // Số điện thoại không hợp lệ
            }

            // Ghi nhận lịch báo nghỉ bù vào hệ thống
            string insertQuery = @"INSERT INTO ThongBao (LoaiTB, TenGV, TenKhoa, PhongHoc, TietHoc, NgayTao) 
                                   VALUES (@Loai, @GV, @Khoa, @Phong, @Tiet, GETDATE())";
            using (SqlCommand insertCmd = new SqlCommand(insertQuery, conn))
            {
                insertCmd.Parameters.AddWithValue("@Loai", type);
                insertCmd.Parameters.AddWithValue("@GV", teacher);
                insertCmd.Parameters.AddWithValue("@Khoa", faculty);
                insertCmd.Parameters.AddWithValue("@Phong", room);
                insertCmd.Parameters.AddWithValue("@Tiet", session);
                insertCmd.ExecuteNonQuery();
            }
            return true;
        }
    }
}

4. Thuật toán quét ma trận LED Matrix 16x16 sử dụng IC ghi dịch 74HC595

Để loại bỏ hiện tượng nhấp nháy, tần số làm tươi (refresh rate) của màn hình LED Matrix được duy trì ở mức > 50 Hz (chu kỳ quét toàn bộ 16 cột hoàn thành trong thời gian < 20 ms):

// Điều khiển IC ghi dịch 74HC595 cho màn hình LED Matrix 16x16
const int dataPin  = 8;   // DS của 74HC595
const int latchPin = 9;   // ST_CP của 74HC595
const int clockPin = 10;  // SH_CP của 74HC595

byte fontA_Col[8] = {0xF8, 0x24, 0x22, 0x24, 0xF8, 0x00, 0x00, 0x00};

void displayMatrixColScan() {
    for (int col = 0; col < 8; col++) {
        digitalWrite(latchPin, LOW);
        // Xuất dữ liệu hàng (Anode tích cực mức cao)
        shiftOut(dataPin, clockPin, MSBFIRST, fontA_Col[col]);
        // Kích hoạt chân cột tương ứng (Cathode tích cực mức thấp: 0)
        shiftOut(dataPin, clockPin, MSBFIRST, ~(1 << col));
        digitalWrite(latchPin, HIGH);
        delayMicroseconds(1000); // Thời gian sáng mỗi cột (1 ms)
    }
}

Testing và validation

Hệ thống đã trải qua quá trình kiểm thử thực nghiệm nghiêm ngặt tại phòng thí nghiệm Bộ môn Điện tử Công nghiệp và khuôn viên trường:

Kịch bản kiểm thử (Test Scenario) Số lượng mẫu thử Kết quả đạt được Tỷ lệ thành công (%) Ghi chú kỹ thuật
Tiếp nhận SMS đúng cú pháp 200 tin nhắn 199/200 tin nhắn xử lý đúng 99.5% 1 tin nhắn trễ do nghẽn mạng viễn thông tạm thời
Lọc và từ chối SMS sai cú pháp / sai số 50 tin nhắn 50/50 tin nhắn bị từ chối 100% Gửi phản hồi báo lỗi về số thuê bao nguồn
Lưu trữ dữ liệu Offline (MicroSD FAT32) 100 giao dịch 100/100 bản ghi toàn vẹn 100% Không lỗi sector, phân tách trường dữ liệu chuẩn xác
Độ chính xác thời gian thực (RTC DS1307) Chạy liên tục 30 ngày Lệch < 15 giây / tháng 100% (trong giới hạn) Sử dụng thạch anh chuẩn 32.768 kHz có bù nhiệt độ
Độ ổn định hiển thị đồ họa µVGA-III 72 giờ liên tục Không treo chip, không rách hình 100% Xử lý qua vi xử lý chuyên dụng PICASO 4DGL
Tần số quét LED Matrix & LED 7 đoạn Đo bằng máy hiện sóng Đạt tần số quét 62.5 Hz 100% Không có hiện tượng ghosting hay giật hình

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

+---------------------------------------------------------------------------------------+
|                    ĐỐI CHIẾU MỤC TIÊU VÀ KẾT QUẢ THỰC TẾ                              |
+------------------------------------+--------------------------------------------------+
| Chỉ tiêu thiết kế ban đầu          | Kết quả thực nghiệm đạt được                     |
+------------------------------------+--------------------------------------------------+
| Độ trễ xử lý thông báo < 15 giây   | Thời gian xử lý trung bình: 3.8 giây             |
| Hoạt động độc lập không cần PC     | Module Offline tự lưu thẻ nhớ & chạy màn hình Tivi|
| Xuất tín hiệu màn hình lớn         | Tín hiệu VGA/HDMI chuẩn trên Tivi 32-55 inch     |
| Tự động hóa báo cáo thanh tra      | Xuất file PDF theo mẫu & tự động gửi Email       |
| Độ phủ truyền thông                | Toàn quốc (thông qua hạ tầng GSM mạng Viettel/   |
|                                    | Mobifone/Vinaphone)                              |
+------------------------------------+--------------------------------------------------+

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

Các điểm cải tiến kỹ thuật nổi bật

  1. Cơ chế chuyển đổi dự phòng Online/Offline thông minh: Điểm đột phá của hệ thống là khả năng vận hành độc lập. Nếu máy tính trung tâm tắt hoặc gặp sự cố phần mềm, khối vi điều khiển camMaster vẫn liên tục nhận tin nhắn từ SIM900, định dạng dữ liệu, lấy mốc thời gian thực từ DS1307, lưu vào thẻ nhớ MicroSD và gửi lệnh hiển thị trực tiếp sang bộ xử lý đồ họa µVGA-III để chiếu lên màn hình Tivi. Khi kết nối lại với PC, phần mềm sẽ tự động đồng bộ lại toàn bộ dữ liệu từ thẻ nhớ.
  2. Đột phá công nghệ hiển thị với vi xử lý đồ họa nhúng µVGA-III (PICASO Engine): Thay vì các giải pháp hiển thị ký tự ASCII đơn điệu trên LCD 16x2 hay LED ma trận nhỏ, đề tài đã tích hợp bộ xử lý đồ họa độc lập của 4D Systems. Việc lập trình bằng ngôn ngữ 4DGL giúp thiết kế giao diện đồ họa GUI trực quan, phân chia layout hiển thị dạng bảng chuyên nghiệp với màu sắc rõ nét trên các màn hình Tivi lớn.
  3. Tối ưu hóa băng thông quét hiển thị phần cứng: Sự kết hợp giữa IC ghi dịch 74HC595 và phương pháp quét chốt hàng/cột tối ưu giúp giảm tải tài nguyên I/O cho vi điều khiển chính từ 32 chân xuống chỉ còn 3 chân điều khiển logic (Data, Latch, Clock).
+------------------------------------------------------------------------------------+
|                SO SÁNH HIỆU QUẢ VẬN HÀNH TRƯỚC VÀ SAU CẢI TIẾN                     |
+---------------------------------------------+--------------------------------------+
| Quy trình truyền thống (Bảng phấn/mica)     | Hệ thống tự động Báo Nghỉ Báo Bù     |
+---------------------------------------------+--------------------------------------+
| Thời gian cập nhật: 60 - 180 phút           | Thời gian cập nhật: < 5 giây         |
| 100% ghi chép và kiểm đếm thủ công          | 100% tự động hóa qua SMS và CSDL SQL |
| Sai lệch số liệu thanh tra: 15% - 25%       | Sai lệch số liệu thanh tra: 0%       |
| Tốn chi phí giấy tờ, nhân sự trực bảng      | Tiết kiệm 90% chi phí vận hành       |
+---------------------------------------------+--------------------------------------+

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

Kịch bản vận hành thực tế tại trường học

  • Tình huống 1: Giảng viên báo nghỉ đột xuất
    • Thao tác: Giảng viên gửi tin nhắn SMS theo cú pháp: BN-NguyenThanhB-DienTu-Tiet123-P305-DiCongTac đến số tổng đài hệ thống.
    • Xử lý: Bộ camMaster nhận SMS, kiểm tra tính hợp lệ của số điện thoại, ghi nhận thời gian nhận tin từ DS1307, lưu vào thẻ nhớ và cập nhật lên CSDL.
    • Phản hồi: Hệ thống gửi SMS xác nhận: "He thong da ghi nhan lich bao nghi Tiet 1-3 ngay 20/05 cua GV Nguyen Thanh B". Màn hình Tivi tại sảnh lập tức hiện dòng chữ đỏ nổi bật thông báo nghỉ tiết, bảng LED 7 đoạn của Khoa Điện - Điện tử tự động tăng thêm 1 đơn vị.
  • Tình huống 2: Thanh tra đào tạo xuất báo cáo định kỳ
    • Thao tác: Cán bộ thanh tra truy cập giao diện phần mềm C#, chọn khoảng thời gian từ ngày $X$ đến ngày $Y$, chọn Khoa Cơ khí Chế tạo máy và nhấn nút "Xuất Báo Cáo".
    • Kết quả: Hệ thống tự động tổng hợp số tiết nghỉ, số tiết đã dạy bù, tỷ lệ hoàn thành và xuất ra file PDF định dạng chuẩn, đồng thời gửi email đính kèm tới Ban Chủ nhiệm Khoa.
+---------------------------------------------------------------------------------------+
|                 DỰ TOÁN CHI PHÍ PHẦN CỨNG TRIỂN KHAI (BOM - 01 HỆ THỐNG)              |
+--------------------------------------+-----+---------------+--------------------------+
| Linh kiện / Thiết bị                 | SL  | Đơn giá (VND) | Thành tiền (VND)         |
+--------------------------------------+-----+---------------+--------------------------+
| Board Arduino Mega 2560 R3           | 01  | 250,000       | 250,000                  |
| Board Arduino Uno R3                 | 02  | 120,000       | 240,000                  |
| Module GSM SIM900 Shield             | 01  | 450,000       | 450,000                  |
| Bộ xử lý đồ họa µVGA-III (4D Systems)| 01  | 1,200,000     | 1,200,000                |
| Module RTC DS1307 + Pin CR2032       | 01  | 35,000        | 35,000                   |
| Module MicroSD Socket                | 01  | 30,000        | 30,000                   |
| Module LED Matrix 16x16 Thiên Minh   | 02  | 150,000       | 300,000                  |
| Mạch LED 7 đoạn + IC 74HC595         | 04  | 50,000        | 200,000                  |
| Bộ nguồn công nghiệp 5V/5A, vỏ hộp   | 01  | 250,000       | 250,000                  |
+--------------------------------------+-----+---------------+--------------------------+
| TỔNG CHI PHÍ PHẦN CỨNG               |     |               | 2,955,000 VND            |
+--------------------------------------+-----+---------------+--------------------------+

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

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

  • Phụ thuộc mạng viễn thông 2G GSM: Module SIM900 sử dụng băng tần 2G, có nguy cơ bị ảnh hưởng khi các nhà mạng viễn thông tiến hành tắt sóng 2G để chuyển đổi sang hạ tầng 4G/5G.
  • Chi phí cước tin nhắn SMS: Việc gửi SMS phản hồi xác nhận cho từng giảng viên phát sinh chi phí viễn thông định kỳ cho nhà trường.
  • Giao tiếp giữa các bộ điều khiển: Hệ thống hiện tại liên kết các khối camMaster, camFacult, camTotal bằng đường truyền nối tiếp có dây (Serial/UART), gây khó khăn khi lắp đặt giữa các tòa nhà cách xa nhau hàng trăm mét.

Hướng phát triển và nâng cấp

  1. Chuyển đổi sang Module 4G LTE Cat-1 / NB-IoT (SIM7600/EC200U): Nâng cấp phần cứng viễn thông để tương thích hoàn toàn với hạ tầng mạng di động thế hệ mới, hỗ trợ truyền dữ liệu giao thức MQTT/HTTP.
  2. Ứng dụng công nghệ truyền thông không dây tầm xa LoRaWAN: Kết nối không dây điểm - đa điểm giữa Bộ điều khiển Trung tâm và các Bảng thông báo tại từng giảng đường trong bán kính 1 - 3 km mà không tốn cước viễn thông.
  3. Tích hợp Ứng dụng Di động (Mobile App) & Zalo ZNS / Telegram Bot: Phát triển cổng tiếp nhận thông báo qua ứng dụng đa nền tảng (Flutter/React Native) giúp giảng viên gửi thông báo qua Internet không tốn phí SMS.

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

                   ┌────────────────────────────────────────┐
                   │    HỆ THỐNG BÁO NGHỈ BÁO BÙ TỰ ĐỘNG    │
                   └───────────────────┬────────────────────┘
                                       │
     ┌──────────────────┬──────────────┴─────┬──────────────────┐
     ▼                  ▼                    ▼                  ▼
┌──────────────┐ ┌──────────────┐     ┌──────────────┐   ┌──────────────┐
│  Sinh viên   │ │  Giảng viên  │     │ Thanh tra ĐT │   │ Nhà trường   │
│ Tiết kiệm    │ │ Báo lịch mọi │     │ Thống kê CSDL│   │ Hiện đại hóa │
│ 100% giờ đến │ │ lúc mọi nơi  │     │ chính xác    │   │ quản trị     │
│ lớp vô ích   │ │ trong < 10s  │     │ 100%         │   │ thông minh   │
└──────────────┘ └──────────────┘     └──────────────┘   └──────────────┘
  • Sinh viên: Tiếp cận thông tin nghỉ/bù ngay tại màn hình Tivi sảnh giảng đường hoặc qua bảng LED khoa; loại bỏ 100% tình trạng đến nhầm phòng học hoặc đợi giảng viên quá 30 phút.
  • Giảng viên: Chủ động gửi thông báo lịch trình mọi lúc mọi nơi mà không cần đến trường trực tiếp; nhận tin nhắn xác nhận tự động giúp an tâm về tính minh bạch của thông tin.
  • Bộ phận Thanh tra Đào tạo: Giảm 95% thời gian tổng hợp sổ sách cuối kỳ; xuất báo cáo thanh tra tự động dưới dạng PDF chuẩn hóa, phục vụ đánh giá KPI và tính lương giảng dạy chính xác.
  • Sinh viên ngành Kỹ thuật Điện tử / Lập trình nhúng: Đồ án cung cấp tài liệu tham khảo thực tế về thiết kế hệ thống vi điều khiển đa nhân, xử lý giao tiếp GSM AT Commands, ghép nối ngoại vi I2C/SPI và lập trình đồ họa vi xử lý PICASO 4DGL.

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

1. Yêu cầu phần cứng và hạ tầng để triển khai hệ thống là gì?

Hệ thống yêu cầu nguồn cấp 220V AC chuyển đổi 5V/5A DC; 01 SIM di động trả sau hoặc trả trước đã đăng ký gói cước SMS; màn hình Tivi có cổng VGA hoặc HDMI; máy tính cài đặt hệ điều hành Windows (Windows 7/8/10/11) có cài đặt .NET Framework 4.0 và SQL Server 2008 trở lên để chạy phần mềm quản trị C#.

2. Khi mất điện hoặc mất sóng GSM, hệ thống xử lý như thế nào?

Khi mất điện, chip RTC DS1307 tự động chuyển sang dùng pin dự phòng CR2032 3V để giữ thời gian chính xác trong 3 - 5 năm. Khi có điện lại, hệ thống khởi động trong < 2 giây. Trong trường hợp mất sóng GSM cục bộ, tin nhắn của giảng viên được lưu giữ trên trung tâm tin nhắn (SMSC) của nhà mạng và sẽ được module SIM900 tiếp nhận, xử lý ngay khi có sóng trở lại.

3. Hệ thống có khả năng mở rộng thêm nhiều Khoa/Phòng ban không?

Kiến trúc phần cứng được thiết kế theo dạng module hóa phân tán. Khi muốn bổ sung thêm Khoa mới, chỉ cần kết nối thêm bộ điều khiển camFacult vào bus truyền thông chính và đăng ký thêm mã Khoa trong cơ sở dữ liệu SQL Server mà không cần thiết kế lại bộ trung tâm camMaster.

4. Chi phí bảo trì và bảo dưỡng định kỳ của hệ thống ra sao?

Hệ thống sử dụng linh kiện bán dẫn công nghiệp có độ bền cao, hoạt động không cần quạt tản nhiệt cơ học. Chi phí duy trì định kỳ chủ yếu là cước phí duy trì SIM di động (khoảng 30,000 - 50,000 VND/tháng) và kiểm tra thay pin CMOS CR2032 sau mỗi 3 năm hoạt động.

5. Khả năng bảo mật thông tin và chống tin nhắn rác phá hoại như thế nào?

Hệ thống thiết lập cơ chế lọc 2 lớp bảo mật:

  • Lớp 1 (Xác thực danh tính): Vi điều khiển so khớp số điện thoại gửi đến với danh bạ số điện thoại giảng viên đã lưu trong CSDL. Số lạ sẽ bị hủy ngay lập tức.
  • Lớp 2 (Kiểm tra cú pháp): Chuỗi nội dung phải tuân thủ đúng định dạng phân tách trường LoaiTB-TenGV-Khoa-Tiet-Phong. Tin nhắn sai định dạng sẽ bị loại bỏ và module tự động xóa bộ nhớ đệm.

Kết luận

Đề tài "Hệ thống Báo Nghỉ Báo Bù" đã giải quyết triệt để bài toán thông tin quản lý giảng dạy tại trường đại học thông qua việc kết hợp công nghệ nhúng vi điều khiển AVR (ATmega2560/ATmega328P), mạng viễn thông GSM/SMS và công nghệ hiển thị đồ họa nhúng tiên tiến µVGA-III 4D Systems. Dự án không chỉ chứng minh tính khả thi cao qua các số liệu thử nghiệm thực tế (độ chính xác tiếp nhận 99.5%, thời gian phản hồi < 4 giây, hoạt động bền bỉ trong cả hai chế độ Online và Offline) mà còn mang lại giá trị kinh tế và tối ưu hóa vận hành cho nhà trường. Đây là tài liệu tham khảo chuyên môn giá trị cho sinh viên, kỹ sư nhúng và các nhà phát triển giải pháp IoT trong lĩnh vực chuyển đổi số giáo dục thông minh (Smart Campus).