Giới thiệu dự án

Sự bùng nổ của ngành bán lẻ hiện đại tại Việt Nam với tốc độ tăng trưởng hơn 10%/năm đã thúc đẩy các chuỗi siêu thị và cửa hàng tiện lợi (như Co.opmart, Big C, FamilyMart, Bách Hóa Xanh) mở rộng quy mô vận hành. Tuy nhiên, theo các thống kê ngành quản lý chuỗi cung ứng, chi phí nhân sự cho việc kiểm kê quầy kệ và giám sát an ninh chiếm từ 15% đến 22% tổng chi phí vận hành, trong khi tình trạng thất thoát hàng hóa và sai sót trong chấm công thủ công gây thiệt hại khoảng 1.5% - 3% doanh thu hàng năm.

Vấn đề cốt lõi đặt ra trong mô hình siêu thị truyền thống bao gồm các điểm nghẽn (pain points) lớn:

  • Tốn kém nhân lực kiểm kệ: Một nhân viên thông thường chỉ có thể phụ trách kiểm tra trực quan 2 đến 3 dãy kệ hàng. Với một siêu thị quy mô 50 dãy kệ, cần tối thiểu 20 - 25 nhân sự chỉ để thực hiện việc rà soát hàng hóa còn hay hết.
  • Gian lận và chậm trễ trong điểm danh: Phương thức chấm công bằng thẻ từ hoặc sổ sách dễ xảy ra tình trạng quẹt thẻ hộ, thất lạc thẻ và tốn thời gian tổng hợp thủ công.
  • Phản ứng chậm với sự cố môi trường và hỏa hoạn: Hệ thống báo cháy cục bộ nếu không có cơ chế quay số/gửi tin nhắn khẩn cấp qua mạng di động sẽ dẫn đến rủi ro thiệt hại tài sản nghiêm trọng khi sự cố xảy ra ngoài giờ làm việc.
  • Tiêu hao năng lượng: Hệ thống làm mát vận hành cố định không theo dõi nhiệt độ thực tế dẫn đến lãng phí điện năng tiêu thụ.

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống quản lý siêu thị" do sinh viên Lê Đạt và Phan Quỳnh Như thực hiện dưới sự hướng dẫn của ThS. Nguyễn Ngô Lâm (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết triệt để các bài toán trên thông qua giải pháp nhúng kết hợp IoT.

flowchart LR
    A[Cảm biến ngoại vi] --> B(Arduino Mega 2560)
    B --> C[ESP8266 Wi-Fi Gateway]
    B --> D[SIM900A GSM/SMS]
    B --> E[Driver L298N & Quạt]
    B --> F[LCD 20x4 & Keypad 4x4]
    C --> G[(Web Server LAMP & MySQL)]
    G --> H[Quản trị viên Web Dashboard]

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

  1. Xây dựng phân hệ điểm danh nhân viên sử dụng sinh trắc học vân tay quang học với độ trễ xử lý dưới 1.0 giây và giao diện điều khiển qua ma trận phím 4x4 kết hợp LCD 20x4.
  2. Tự động hóa việc giám sát trạng thái kệ hàng theo thời gian thực (Real-time) bằng cảm biến hồng ngoại phát hiện vật cản.
  3. Tích hợp phân hệ giám sát vi khí hậu (nhiệt độ, độ ẩm) và tự động điều tốc động cơ làm mát thông qua kỹ thuật điều chế độ rộng xung PWM (Pulse Width Modulation).
  4. Phát triển phân hệ cảnh báo cháy sớm hai tầng: Còi/đèn tại chỗ và tự động thực hiện cuộc gọi/gửi SMS cảnh báo tới ban quản lý qua module GSM.
  5. Thiết lập cổng truyền thông không dây Wi-Fi gửi dữ liệu định kỳ lên Web Server, hỗ trợ hiển thị Dashboard và trích xuất báo cáo chấm công định dạng Excel.

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

  • Hệ thống tập trung vào 4 chức năng cốt lõi: Điểm danh sinh trắc học, quản lý tồn kệ trực quan, điều hòa nhiệt độ tự động và cảnh báo hỏa hoạn.
  • Vi điều khiển trung tâm sử dụng nền tảng ATmega2560 (Arduino Mega 2560).
  • Kết nối không dây cục bộ dựa trên chuẩn IEEE 802.11b/g/n (ESP8266-01) và mạng di động GSM băng tần 900/1800MHz (SIM900A).

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 Quản lý thủ công truyền thống Hệ thống POS/Barcode riêng lẻ Giải pháp IoT tích hợp (Đề tài)
Kiểm tra tồn kệ Nhân viên đi kiểm tra từng giờ Quét mã vạch khi nhập/xuất kho Cảm biến hồng ngoại phát hiện tức thời
Điểm danh nhân sự Ký sổ / Thẻ từ (dễ gian lận) Máy chấm công độc lập, tải log qua USB Cảm biến vân tay quang học, đẩy thẳng lên Cloud
Báo cháy & Sự cố Chuông báo nội bộ cơ bản Đầu báo khói nối tủ trung tâm đắt tiền Cảm biến MQ-2 + Tự động gọi điện/SMS qua GSM
Kiểm soát nhiệt độ Bật/tắt thủ công theo cảm tính Bộ điều nhiệt cơ học độc lập Tự động điều tốc PWM theo nhiệt độ DHT11
Chi phí đầu tư Chi phí nhân công hàng tháng cao Thiết bị phân mảnh, phí bảo trì lớn Tối ưu chi phí phần cứng nhúng, mã nguồn mở

Yêu cầu hệ thống theo mô hình MoSCoW

  • Must Have (Bắt buộc): Quét và nhận dạng vân tay chính xác; cảnh báo rò rỉ khí gas/khói qua còi và gọi điện thoại qua module SIM; đo nhiệt độ điều khiển quạt; gửi trạng thái lên Web Server.
  • Should Have (Nên có): Thêm/xóa ID người dùng trực tiếp trên phần cứng thông qua bàn phím ma trận 4x4; xuất file Excel bảng chấm công từ Web.
  • Could Have (Có thể có): Giao diện Web hiển thị đồ thị nhiệt độ theo thời gian; tùy chỉnh ngưỡng nhiệt độ kích hoạt quạt từ xa qua Web.
  • Won't Have (Chưa thực hiện): Nhận diện khuôn mặt AI; thanh toán tự động qua cổng RFID UHF cho toàn bộ xe đẩy hàng.

Thiết kế kiến trúc hệ thống

Kiến trúc hệ thống bao gồm 4 tầng phân tách rõ ràng:

graph TD
    subgraph Layer1[Tầng Cảm biến & Cơ cấu chấp hành]
        A1[Cảm biến vân tay FPM10A]
        A2[Cảm biến nhiệt ẩm DHT11]
        A3[Cảm biến khí Gas MQ-2]
        A4[Cảm biến hồng ngoại IR Obstacle]
        A5[Động cơ DC & Driver L298N]
        A6[Còi chip, Đèn báo & Relay 5V]
    end

    subgraph Layer2[Tầng Xử lý Trung tâm]
        B1[Arduino Mega 2560 - ATmega2560]
        B2[Ma trận phím 4x4]
        B3[Màn hình LCD 20x4 HD44780]
    end

    subgraph Layer3[Tầng Truyền thông Gateway]
        C1[Module ESP8266 Wi-Fi UART]
        C2[Module SIM900A GSM/GPRS]
    end

    subgraph Layer4[Tầng Ứng dụng & Dữ liệu]
        D1[Web Server Apache & PHP 7.x]
        D2[Cơ sở dữ liệu MySQL 5.7]
        D3[Trình duyệt Web Quản trị]
    end

    Layer1 <--> Layer2
    Layer2 <--> Layer3
    Layer3 <--> Layer4

Ngăn xếp công nghệ (Technology Stack)

  • Bộ xử lý trung tâm: Microchip ATmega2560 (16 MHz Clock, 256 KB Flash, 8 KB SRAM, 4 KB EEPROM, 4 cổng UART phần cứng, 16 kênh ADC 10-bit).
  • Module cảm biến sinh trắc học: FPM10A Optical Fingerprint Sensor (Tốc độ truyền UART mặc định 57600 bps, dung lượng lưu trữ 1000 mẫu vân tay, tỷ lệ nhận diện lỗi FAR < 0.001%).
  • Cảm biến môi trường & an toàn:
    • DHT11 (Chuẩn giao tiếp 1-Wire, dải đo 0 - 50°C sai số ±2°C, độ ẩm 20 - 80% RH sai số ±5%).
    • MQ-2 (Đầu dò SnO2 nhạy cảm với khí LPG, Propan, Khói; xuất tín hiệu Analog AOUT & Digital DOUT).
    • Module hồng ngoại IR phát hiện vật cản (Sử dụng IC so sánh LM393, khoảng cách 2 - 30 cm điều chỉnh bằng biến trở).
  • Giao tiếp mạng: Module Wi-Fi ESP8266-01 (Tập lệnh AT Command, TCP/IP Stack, chuẩn IEEE 802.11 b/g/n) và Module GSM SIM900A (Băng tần kép EGSM 900MHz / DCS 1800MHz, tập lệnh AT Command chuẩn GSM 07.07 & 07.05).
  • Phần mềm máy chủ: Web Server Apache 2.4, Backend PHP 7.2, Database MySQL 5.7, Frontend HTML5, CSS3, JavaScript.

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

Cơ sở dữ liệu MySQL được thiết kế theo chuẩn quan hệ (Relational DB) để lưu trữ thông tin hệ thống:

-- Bảng lưu trữ thông tin nhân viên
CREATE TABLE `nhan_vien` (
  `id_nv` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `finger_id` INT(5) NOT NULL UNIQUE,
  `ho_ten` VARCHAR(100) NOT NULL,
  `chuc_vu` VARCHAR(50) DEFAULT 'Nhân viên',
  `so_dien_thoai` VARCHAR(15) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng lưu trữ lịch sử chấm công
CREATE TABLE `cham_cong` (
  `id_log` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `finger_id` INT(5) NOT NULL,
  `thoi_gian` DATETIME NOT NULL,
  `trang_thai` VARCHAR(20) DEFAULT 'Đúng giờ',
  FOREIGN KEY (`finger_id`) REFERENCES `nhan_vien`(`finger_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- Bảng giám sát trạng thái kệ hàng và môi trường
CREATE TABLE `giam_sat_he_thong` (
  `id` INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
  `nhiet_do` FLOAT NOT NULL,
  `do_am` FLOAT NOT NULL,
  `trang_thai_sp1` TINYINT(1) NOT NULL COMMENT '1: Còn hàng, 0: Hết hàng',
  `trang_thai_sp2` TINYINT(1) NOT NULL,
  `canh_bao_chay` TINYINT(1) NOT NULL DEFAULT 0,
  `cap_nhat_luc` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Implementation và kết quả

Quy trình phát triển phần cứng và giải thuật

Hệ thống yêu cầu xử lý đa luồng bất đồng bộ trên một vi điều khiển đơn nhân 8-bit. Do đó, việc phân bổ thời gian và cổng giao tiếp UART là cực kỳ quan trọng:

  • Serial (Chân 0/1): Nạp chương trình và Debug dữ liệu lên máy tính.
  • Serial1 (Chân 18/19): Giao tiếp cảm biến vân tay FPM10A (Baudrate: 57600 bps).
  • Serial2 (Chân 16/17): Giao tiếp module SIM900A (Baudrate: 9600 bps).
  • Serial3 (Chân 14/15): Giao tiếp module ESP8266 (Baudrate: 115200 bps).

1. Giải thuật đọc cảm biến nhiệt ẩm DHT11 (Giao thức 1-Wire tùy biến)

Dữ liệu từ DHT11 được gửi theo khung truyền 40-bit (5 bytes). Cấu trúc khung truyền: $$\text{Data} = [\text{Humidity_Int}] + [\text{Humidity_Dec}] + [\text{Temp_Int}] + [\text{Temp_Dec}] + [\text{Checksum}]$$ Điều kiện kiểm tra tính toàn vẹn: $$\text{Checksum} = (\text{Byte}_1 + \text{Byte}_2 + \text{Byte}_3 + \text{Byte}_4) \pmod{256}$$

// Trích đoạn thuật toán kiểm tra Checksum DHT11 trên Arduino
bool readDHT11(uint8_t pin, float &temperature, float &humidity) {
    uint8_t data[5] = {0, 0, 0, 0, 0};
    pinMode(pin, OUTPUT);
    digitalWrite(pin, LOW);
    delay(18); // Gửi xung Start tối thiểu 18ms
    digitalWrite(pin, HIGH);
    delayMicroseconds(40);
    pinMode(pin, INPUT);

    // Chờ phản hồi Response từ cảm biến (80us Low + 80us High)
    if (pulseIn(pin, LOW) == 0) return false;
    if (pulseIn(pin, HIGH) == 0) return false;

    // Đọc 40 bit dữ liệu
    for (int i = 0; i < 40; i++) {
        uint32_t lowPulse = pulseIn(pin, LOW);
        uint32_t highPulse = pulseIn(pin, HIGH);
        // Bit 0: High pulse ~26-28us; Bit 1: High pulse ~70us
        data[i / 8] <<= 1;
        if (highPulse > lowPulse && highPulse > 40) {
            data[i / 8] |= 1;
        }
    }
    // Xác thực Checksum
    if (data[4] == ((data[0] + data[1] + data[2] + data[3]) & 0xFF)) {
        humidity = (float)data[0];
        temperature = (float)data[2];
        return true;
    }
    return false;
}

2. Giải thuật truyền nhận gói dữ liệu FPM10A qua UART

Khung gói tin chuẩn gửi đến FPM10A có định dạng cố định:

  • Header: 0xEF01 (2 bytes)
  • Address: 0xFFFFFFFF (4 bytes)
  • Packet Identifier (PID): 0x01 (Command packet)
  • Packet Length: 0x0003 (2 bytes)
  • Instruction Code: 0x01 (GenImg - Thu thập hình ảnh vân tay)
  • Checksum: $\sum \text{Bytes (PID to End of Content)}$
// Cấu trúc gói lệnh gửi kiểm tra vân tay
uint8_t getFingerprintImage() {
    uint8_t cmd[] = {0xEF, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x03, 0x01, 0x00, 0x05};
    Serial1.write(cmd, sizeof(cmd));
    // Đọc gói tin xác nhận 12 bytes phản hồi từ cảm biến
    uint8_t reply[12];
    int idx = 0;
    unsigned long timer = millis();
    while (millis() - timer < 1000) {
        if (Serial1.available()) {
            reply[idx++] = Serial1.read();
            if (idx == 12) break;
        }
    }
    // Byte thứ 9 chứa mã xác nhận (Confirmation Code: 0x00 = Thành công)
    return (idx == 12) ? reply[9] : 0xFF;
}

3. Điều khiển động cơ quạt làm mát tự động theo nhiệt độ qua L298N

Cơ chế điều hòa nhiệt độ phòng máy/siêu thị sử dụng giải thuật ngưỡng động (Hysteresis control) kết hợp điều tốc PWM để chống hiện tượng đóng ngắt liên tục làm hỏng động cơ:

$$\text{PWM_Value} = \begin{cases} 0 & \text{khi } T < 28^\circ\text{C} \quad (\text{Quạt tắt}) \ 128 & \text{khi } 28^\circ\text{C} \le T < 32^\circ\text{C} \quad (\text{Quạt quay 50% công suất}) \ 255 & \text{khi } T \ge 32^\circ\text{C} \quad (\text{Quạt quay 100% công suất}) \end{cases}$$

4. Kịch bản báo cháy tự động qua GSM SIM900A

Khi cảm biến MQ-2 xuất tín hiệu cảnh báo nồng độ khói/khí gas vượt ngưỡng an toàn ($V_{\text{AOUT}} > 2.5\text{V}$ tương đương $\text{ADC} > 512$), Arduino Mega kích hoạt ngắt và thực thi tập lệnh AT:

AT
AT+CMGF=1\r\n
AT+CMGS="0908434763"\r\n
> CANH BAO: Phat hien su co chay tai khu vuc sieu thi!\x1A
ATD0908434763;\r\n

Kiểm thử và đánh giá hiệu năng

pie title Tỷ lệ xử lý điểm danh thành công
    "Nhận diện đúng ngay lần 1 (<0.8s)" : 96.8
    "Nhận diện lại lần 2 (<1.5s)" : 2.7
    "Từ chối sai / Quét lại (>2.0s)" : 0.5
  1. Hiệu năng nhận diện vân tay FPM10A:

    • Thực hiện kiểm thử trên 50 người với 200 lượt quét mẫu.
    • Thời gian nhận diện trung bình: $780\text{ ms} \pm 45\text{ ms}$.
    • Tỷ lệ từ chối sai (FRR - False Rejection Rate): $0.5%$.
    • Tỷ lệ chấp nhận sai (FAR - False Acceptance Rate): $0.0%$.
  2. Độ trễ truyền nhận dữ liệu IoT (ESP8266 $\rightarrow$ Web Server):

    • Khoảng cách kiểm tra: 15m xuyên 1 tường gạch.
    • Thời gian trung bình từ khi cảm biến IR đổi trạng thái đến khi Dashboard cập nhật: $1.42\text{ giây}$.
    • Tỷ lệ gói tin thành công (Packet Delivery Ratio): $99.4%$.
  3. Thời gian đáp ứng của hệ thống cảnh báo cháy:

    • Từ khi xả khí thử nghiệm vào cảm biến MQ-2 đến khi còi hú: $< 150\text{ ms}$.
    • Thời gian khởi tạo cuộc gọi khẩn cấp qua SIM900A: $3.2\text{ giây}$.

Kết quả tính năng đạt được

Phân hệ chức năng Chỉ tiêu thiết kế ban đầu Kết quả thực nghiệm trên mô hình Đánh giá
Điểm danh FPM10A Lưu trữ > 50 ID, quét < 1s Lưu 120 ID, thời gian khớp mẫu 0.78s Vượt chỉ tiêu
Bàn phím & LCD Nhập ID, hiển thị menu cấu hình Hoạt động mượt mà, bàn phím 4x4 nhạy Đạt yêu cầu
Theo dõi kệ hàng Nhận biết hết hàng bằng IR Báo trạng thái tức thời qua LED và Web Đạt yêu cầu
Điều khiển nhiệt Tự động chỉnh quạt theo nhiệt độ PWM 2 cấp tốc độ theo 3 dải nhiệt Đạt yêu cầu
Cảnh báo GSM Gửi tin nhắn và gọi điện khi cháy Kích hoạt chuông + Gọi số cứu hộ trong 3.5s Đạt yêu cầu
Dashboard Quản lý Xem dữ liệu và xuất file Excel Web chuẩn giao diện PHP/MySQL trích xuất tức thì Đạt yêu cầu

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

Điểm cải tiến kỹ thuật nổi bật

  1. Kiến trúc nhúng đa phân hệ tích hợp (All-in-One Embedded Hub): Khác với các hệ thống thương mại thường tách rời hệ thống chấm công, hệ thống báo cháy và hệ thống tự động hóa tòa nhà (BMS), đề tài đã tích hợp toàn bộ các phân hệ trên vào một bộ xử lý trung tâm ATmega2560 duy nhất. Điều này giảm thiểu tối đa sự cồng kềnh của dây dẫn và hạ giá thành linh kiện.
  2. Kênh truyền thông kép dự phòng (Dual-channel Fallback): Khi mạng Wi-Fi gặp sự cố đứt kết nối Internet, phân hệ an ninh vẫn hoạt động độc lập 100% nhờ kênh truyền GSM/PSTN trực tiếp đến số điện thoại khẩn cấp mà không bị phụ thuộc vào hạ tầng mạng cục bộ.
  3. Giải pháp kiểm kê kệ tự động chi phí siêu thấp: Thay vì sử dụng thẻ RFID UHF đắt tiền gắn trên từng sản phẩm (vốn không khả thi với các mặt hàng tiêu dùng nhanh giá trị nhỏ), giải pháp cảm biến phản xạ hồng ngoại phân bố theo từng ngăn kệ giúp nhận diện trạng thái còn/hết hàng với chi phí phần cứng chỉ vài chục nghìn đồng cho mỗi điểm giám sát.

So sánh với các giải pháp hiện hành

Đặc tính kỹ thuật Máy chấm công độc lập (Ronald Jack / Hikvision) Tủ báo cháy trung tâm quy chuẩn Giải pháp của Đề tài
Giá thành đầu tư 2.500.000 - 6.000.000 VNĐ 5.000.000 - 15.000.000 VNĐ ~ 1.850.000 VNĐ (Toàn bộ mô hình)
Khả năng tùy biến Hệ thống đóng, không thể can thiệp mã nguồn Cấu hình cứng theo module Mã nguồn mở hoàn toàn, dễ mở rộng
Tích hợp giám sát kệ Không hỗ trợ Không hỗ trợ Tích hợp sẵn trên cùng Dashboard
Tự động hóa HVAC Không hỗ trợ Không hỗ trợ Tự động hóa điều tốc quạt theo nhiệt độ

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

Kịch bản ứng dụng thực tế

  • Cửa hàng tiện lợi 24/7 (Mini-marts): Ban đêm chỉ cần 1 nhân viên thu ngân. Hệ thống sẽ tự động giám sát các kệ hàng quan trọng, tự động bật quạt tản nhiệt tủ mát và kích hoạt bảo vệ cháy nổ tự động qua điện thoại.
  • Kho hàng dược phẩm/kho lạnh vừa và nhỏ: Đòi hỏi giám sát nhiệt độ liên tục và chấm công nhân viên kho có ghi nhận nhật ký ra vào.

Hướng dẫn triển khai kỹ thuật

  1. Yêu cầu môi trường máy chủ:
    • Hệ điều hành: Linux (Ubuntu Server 20.04 LTS) hoặc Windows có cài XAMPP/WAMP.
    • Nền tảng: Web Server Apache 2.4+, PHP 7.2 trở lên, MySQL 5.7/MariaDB 10.3.
  2. Triển khai mã nguồn máy chủ:
    • Tạo cơ sở dữ liệu supermarket_db trên phpMyAdmin và import file SQL schema.
    • Cấu hình file kết nối connect.php với các tham số DB Host, DB User, DB Password.
  3. Cấu hình phần cứng:
    • Cấp nguồn 12VDC - 3A qua jack DC Arduino Mega và mạch nguồn hạ áp LM2596 điều chỉnh ngõ ra 5.0V chuẩn nuôi module SIM900A và ESP8266.
    • Cài đặt thư viện Adafruit_Fingerprint, DHT, LiquidCrystal trên Arduino IDE 1.8.x và nạp firmware.

Phân tích chi phí - lợi ích (Cost-Benefit & ROI Analysis)

Hạng mục chi phí linh kiện Số lượng Đơn giá ước tính (VNĐ) Thành tiền (VNĐ)
Board Arduino Mega 2560 R3 01 220.000 220.000
Cảm biến vân tay FPM10A 01 350.000 350.000
Module GSM SIM900A + Anten 01 380.000 380.000
Module Wi-Fi ESP8266-01 + Adapter 01 65.000 65.000
Cảm biến DHT11, MQ-2, 02 cảm biến IR 04 120.000 120.000
Màn hình LCD 20x4 + Bàn phím 4x4 02 140.000 140.000
Driver L298N, Mạch hạ áp LM2596, Động cơ, Phụ kiện mạch - 250.000 250.000
Gia công PCB, Khung mô hình mica - 325.000 325.000
Tổng chi phí phần cứng (BOM) 1.850.000 VNĐ

[!NOTE] Ước tính thời gian hoàn vốn (ROI): Việc cắt giảm 01 ca trực kiểm kê kệ hàng thủ công giúp tiết kiệm tối thiểu 3.000.000 VNĐ/tháng chi phí nhân sự bán thời gian. Như vậy, thời gian thu hồi vốn đầu tư phần cứng chưa đến 1 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ân giải và dải đo cảm biến: Cảm biến DHT11 có tần số lấy mẫu chậm (1Hz) và độ chính xác nhiệt độ ở mức cơ bản (sai số $\pm 2^\circ\text{C}$).
  • Công nghệ vân tay quang học: Dễ bị ảnh hưởng nếu ngón tay người dùng bị ướt, dính dầu mỡ hoặc bề mặt lăng kính bám bụi bẩn.
  • Bảo mật mạng cục bộ: Module ESP8266-01 trong phiên bản này sử dụng giao thức HTTP thuần, chưa mã hóa TLS/HTTPS khi đẩy dữ liệu lên cơ sở dữ liệu.

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

  • Nâng cấp phần cứng: Chuyển đổi vi điều khiển trung tâm sang vi điều khiển 32-bit hiệu năng cao như STM32F4 hoặc SoC ESP32 Dual-Core 240MHz tích hợp sẵn Wi-Fi/Bluetooth LE và hỗ trợ giao thức bảo mật HTTPS/WSS.
  • Ứng dụng giao thức IoT chuẩn công nghiệp: Triển khai giao thức truyền thông nhẹ MQTT (Message Queuing Telemetry Transport) kết hợp môi trường điện toán đám mây (AWS IoT Core hoặc ThingsBoard) thay cho phương thức HTTP POST truyền thống nhằm giảm độ trễ và tiết kiệm băng thông.
  • Ứng dụng Trí tuệ nhân tạo (AI & Computer Vision): Tích hợp Camera AI nhận diện khuôn mặt và nhận diện hành vi khách hàng (khách với tay lấy hàng để cập nhật tồn kho tự động không cần cảm biến quang học trên kệ).

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

  • Sinh viên chuyên ngành Điện tử - Viễn thông, IoT và Kỹ thuật máy tính:
    • Nguồn tài liệu thực tế về phương pháp tích hợp đa cảm biến và kỹ thuật giao tiếp phần cứng (1-Wire, UART, I2C, SPI).
    • Tham khảo kiến trúc kết nối vi điều khiển 8-bit với Web Server thông qua module Wi-Fi sử dụng tập lệnh AT.
  • Kỹ sư nhúng và nhà phát triển hệ thống:
    • Mẫu thiết kế mạch nguồn phân nhánh ổn áp DC-DC chống sụt áp cho các module công suất cao như SIM900A và ESP8266.
    • Kỹ thuật lập trình máy trạng thái (FSM - Finite State Machine) để xử lý nhiều tiến trình trên vi điều khiển không có RTOS.
  • Chủ doanh nghiệp vừa và nhỏ, chuỗi cửa hàng bán lẻ:
    • Mô hình mẫu để tự động hóa khâu quản lý với chi phí thiết bị siêu rẻ, dễ bảo trì và làm chủ hoàn toàn công nghệ không phụ thuộc bên thứ ba.

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

1. Yêu cầu hệ thống tối thiểu để triển khai giải pháp này là gì?

Về phần cứng, cần 01 nguồn cấp DC 12V-3A ổn định, board Arduino Mega 2560 cùng các module cảm biến tương thích theo sơ đồ chân. Về hạ tầng mạng, cần có sóng Wi-Fi 2.4GHz kết nối Internet và một máy chủ (hoặc Hosting/VPS) chạy dịch vụ Apache/PHP/MySQL.

2. Nếu mất kết nối Wi-Fi thì hệ thống có còn hoạt động không?

Có. Hệ thống được thiết kế theo kiến trúc phân tán. Bộ xử lý ATmega2560 hoạt động hoàn toàn độc lập với mạng Internet. Các tác vụ điểm danh vân tay, hiển thị LCD, điều khiển quạt làm mát và đặc biệt là hệ thống báo cháy qua mạng di động GSM/SIM900A vẫn vận hành bình thường 100%. Dữ liệu chưa gửi được lên Web sẽ được lưu tạm trong bộ nhớ đệm và đồng bộ lại khi có kết nối.

3. Cảm biến vân tay FPM10A có thể lưu trữ tối đa bao nhiêu vân tay?

Module FPM10A tích hợp sẵn bộ nhớ Flash và DSP xử lý ảnh, hỗ trợ lưu trữ nội bộ tối đa 1.000 mẫu vân tay. Quá trình so khớp mẫu vân tay diễn ra hoàn toàn bên trong chip của module, chỉ trả về ID kết quả qua cổng UART, giúp giải phóng hoàn toàn gánh nặng tính toán cho vi điều khiển Arduino.

4. Tại sao module SIM900A cần nguồn cấp riêng biệt với dòng lên tới 2A?

Module SIM900A khi thực hiện kết nối mạng hoặc bắt đầu cuộc gọi có thể tạo ra các xung dòng tiêu thụ đột biến lên tới $2\text{A}$ trong thời gian ngắn (vài micro-giây). Nếu chỉ sử dụng nguồn 5V từ chân cấp của Arduino (vốn chỉ cung cấp tối đa $400 - 500\text{mA}$), hệ thống sẽ bị sụt áp đột ngột dẫn đến việc vi điều khiển bị Reset liên tục. Do đó, việc sử dụng module hạ áp LM2596 (chịu tải $3\text{A}$) là bắt buộc.

5. Dữ liệu chấm công trên Web có thể xuất ra định dạng nào?

Hệ thống máy chủ PHP được tích hợp thư viện xuất dữ liệu trực tiếp từ bảng cham_cong của MySQL sang định dạng file bảng tính Microsoft Excel (.xls hoặc .csv). Người quản lý có thể lọc theo khoảng ngày, theo ID nhân viên hoặc theo phòng ban chỉ với một thao tác bấm nút trên giao diện Web Dashboard.


Kết luận

Đồ án tốt nghiệp "Thiết kế và thi công hệ thống quản lý siêu thị" đã chứng minh tính khả thi và hiệu quả vượt trội của việc ứng dụng công nghệ IoT và hệ thống nhúng mã nguồn mở vào bài toán quản trị bán lẻ thực tiễn. Bằng việc kết hợp hài hòa giữa phần cứng xử lý tín hiệu (Arduino Mega, FPM10A, DHT11, MQ-2, SIM900A) và hệ thống phần mềm quản lý trực quan (PHP, MySQL, Apache), đề tài đã giải quyết trọn vẹn 4 bài toán lớn: Tự động hóa điểm danh, giám sát tồn kệ, điều hòa vi khí hậu và bảo đảm an toàn cháy nổ 24/7.

Công trình không chỉ mang giá trị học thuật cao về kỹ thuật lập trình nhúng, thiết kế mạch điện tử và giao tiếp mạng truyền thông không dây, mà còn mở ra tiềm năng thương mại hóa to lớn cho các mô hình cửa hàng thông minh, siêu thị mini với chi phí đầu tư ban đầu cực thấp và hiệu quả kinh tế rõ rệt. Các bạn sinh viên, kỹ sư và doanh nghiệp quan tâm có thể ứng dụng, phát triển mở rộng giải pháp này với các giao thức đám mây và công nghệ trí tuệ nhân tạo thế hệ mới.