Giới thiệu dự án

Bối cảnh và thực trạng ngành

Theo số liệu thống kê từ Cục Cảnh sát Giao thông và Bộ Giao thông Vận tải, tốc độ gia tăng phương tiện cơ giới cá nhân (đặc biệt là ô tô và xe máy) tại các đô thị loại I như Hà Nội và TP. Hồ Chí Minh duy trì mức tăng trưởng trung bình 8 – 12%/năm. Sự phát triển vượt bậc này tạo ra áp lực khổng lồ lên hạ tầng tĩnh của đô thị. Các nghiên cứu quốc tế từ IBM Global Parking Survey chỉ ra rằng, hơn 30% lượng phương tiện gây ùn tắc giao thông nội đô bắt nguồn từ việc người lái xe phải di chuyển lòng vòng để tìm kiếm vị trí đỗ còn trống.

Tại Việt Nam, đa số các điểm trông giữ xe vẫn vận hành theo phương thức truyền thống: ghi vé giấy thủ công hoặc thẻ từ rời rạc không tích hợp hệ thống định vị vị trí đỗ. Vé giấy mang lại nhiều rủi ro: dễ ướt rách, phai mực, mất mát, không thể tái chế và tạo điều kiện cho các hành vi gian lận tài chính. Việc thiếu công cụ giám sát số lượng slot trống theo thời gian thực khiến lưu lượng xe dồn ứ cục bộ tại cổng ra vào, gây lãng phí nhiên liệu và phát thải khí CO₂ ra môi trường.

Định nghĩa vấn đề và các điểm nghẽn kỹ thuật (Pain Points)

  1. Tắc nghẽn tại điểm kiểm soát vào/ra (Check-in/Check-out bottleneck): Quá trình nhập biển số thủ công mất từ 15 – 30 giây/xe, gây ùn ứ vào các khung giờ cao điểm.
  2. Thiếu tính minh bạch và bảo mật dữ liệu: Hệ thống vé giấy truyền thống dễ bị làm giả hoặc đánh tráo phương tiện; việc đối soát doanh thu cuối ngày dễ phát sinh sai lệch.
  3. Mù thông tin vị trí đỗ (Zero parking visibility): Người điều khiển phương tiện không nắm được bãi đỗ còn chỗ hay đã đầy trước khi tiến vào trạm, dẫn đến xung đột luồng giao thông bên trong bãi.
  4. Nguy cơ an toàn môi trường bãi đỗ ngầm: Thiếu hệ thống cảnh báo sớm về nồng độ khói, nhiệt độ bất thường và kiểm soát chiếu sáng tự động gây hao phí điện năng.

Mục tiêu của đồ án

Hệ thống được thiết kế và thi công nhằm đạt được 4 mục tiêu cốt lõi:

  1. Thiết kế phần cứng nhúng phân tán: Tích hợp bộ xử lý trung tâm Arduino Uno R3 và vi điều khiển kép ESP32, kết nối mạng lưới cảm biến tiệm cận, cảm biến khói MQ-2, cảm biến nhiệt độ DHT11, quang trở LDR và cơ cấu chấp hành động cơ servo điều khiển barrier.
  2. Xây dựng module xử lý ảnh nhận dạng biển số tự động (ALPR - Automatic License Plate Recognition): Sử dụng thư viện EmguCV trên nền tảng .NET/C# kết hợp thuật toán phát hiện biên Canny và công cụ OCR (Optical Character Recognition) Tesseract để tự động trích xuất ký tự biển số xe với độ trễ dưới 1,5 giây.
  3. Phát triển phần mềm quản lý máy trạm (Desktop App): Lập trình ứng dụng trên Visual Studio 2015 giao tiếp với cơ sở dữ liệu Microsoft SQL Server để ghi nhận lịch sử ra/vào, quản lý danh sách thẻ RFID RC522 (tần số 13.56 MHz) và tính toán cước phí tự động.
  4. Xây dựng ứng dụng di động đa nền tảng và Cloud IoT: Phát triển ứng dụng trên Thunkable kết nối trực tiếp Firebase Realtime Database và Firebase Authentication, hỗ trợ người dùng theo dõi số chỗ trống, điều khiển hệ thống chiếu sáng và đặt trước vị trí đỗ (pre-booking) từ xa.

Phương pháp tiếp cận giải pháp

Đồ án lựa chọn kiến trúc lai (Hybrid Architecture) kết hợp giữa Edge Computing (xử lý hình ảnh, điều khiển barrier, quẹt thẻ thời gian thực tại máy trạm nội bộ) và Cloud IoT (đồng bộ trạng thái chỗ đỗ, cảnh báo an toàn và quản lý đặt chỗ qua đám mây). Mô hình này đảm bảo trạm kiểm soát vẫn vận hành độc lập khi mất kết nối Internet, đồng thời duy trì khả năng truy cập dịch vụ từ xa cho người dùng di động.

                                                                   [Mobile App: Thunkable]

Chỉ số đánh giá kỳ vọng (Expected Outcomes)

  • Thời gian nhận diện và xử lý qua cổng: $\le 2.5\text{ s/xe}$.
  • Tỷ lệ nhận diện biển số chính xác (điều kiện ánh sáng tiêu chuẩn): $\ge 90%$.
  • Độ trễ đồng bộ dữ liệu cảm biến lên Firebase Cloud: $\le 500\text{ ms}$.
  • Tỷ lệ thẻ RFID nhận diện thành công: $100%$ trong phạm vi $0 – 4\text{ cm}$.

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

  • Phạm vi mô hình: Thi công mô hình sa bàn bãi đỗ xe thông minh quy mô 4–6 vị trí đỗ vật lý, tích hợp đầy đủ hệ thống barrier, cảm biến tiệm cận báo vị trí, cụm cảm biến môi trường (khói, nhiệt độ) và hệ thống đèn LED chiếu sáng tự động.
  • Giới hạn kỹ thuật: Camera đầu vào sử dụng độ phân giải tiêu chuẩn HD 720p; tập trung nhận dạng biển số xe máy và ô tô cơ giới theo quy chuẩn biển số Việt Nam (chữ trắng nền xanh/biển trắng chữ đen 1 hoặc 2 dòng); ứng dụng di động tối ưu hóa chính cho hệ điều hành Android qua nền tảng Thunkable; cơ sở dữ liệu nội bộ sử dụng Microsoft SQL Server 2014 Express.

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

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

Tiêu chí Bãi xe vé giấy truyền thống Bãi xe thẻ từ RFID đơn thuần Hệ thống đề tài (RFID + ALPR + Cloud IoT)
Phương thức định danh Viết vé giấy / phấn thủ công Đọc mã UID thẻ RFID qua cổng Kết hợp mã UID thẻ RFID + Nhận diện biển số tự động (OCR)
Thời gian check-in/out 15 – 30 giây/xe 4 – 6 giây/xe 1.5 – 2.5 giây/xe
Độ an toàn / Chống trộm Rất thấp (dễ tráo vé, làm giả) Trung bình (có thể tráo xe nếu mất thẻ) Rất cao (so khớp chéo Biển số chụp lúc vào và lúc ra)
Giám sát slot trống Nhân viên kiểm đếm trực tiếp Không hỗ trợ Cảm biến hồng ngoại cập nhật real-time trên LCD & Cloud App
Đặt chỗ trước (Booking) Không khả thi Không hỗ trợ Đặt chỗ từ xa qua Mobile App kết nối Firebase Cloud
Cảnh báo an toàn Không có Không có Tích hợp cảm biến khói MQ-2 & nhiệt độ cảnh báo cháy

Ma trận yêu cầu người dùng (MoSCoW Prioritization)

  • Must-have: Quẹt thẻ RFID RC522 nhận mã định danh; tự động nhận diện ký tự biển số từ camera bằng EmguCV; tự động đóng/mở barrier; lưu trữ lịch sử giao dịch vào SQL Server; hiển thị trạng thái bãi trên màn hình LCD 16x2.
  • Should-have: Đồng bộ trạng thái slot trống lên Firebase Realtime Database; ứng dụng di động cho phép đăng ký, đăng nhập và đặt giữ chỗ đỗ; giám sát cảnh báo cháy qua cảm biến nhiệt độ và khói.
  • Could-have: Tự động bật/tắt đèn chiếu sáng dựa trên cảm biến quang trở LDR khi trời tối; giao diện admin quản lý cấp phát thẻ trên PC.
  • Won't-have: Nhận diện khuôn mặt người lái xe; tích hợp cổng thanh toán trực tuyến banking tự động trong phạm vi đồ án.

Thiết kế hệ thống

Technology Stack và phiên bản công nghệ

  • Hệ thống nhúng (Firmware): Arduino Core C/C++, Arduino IDE v1.8.19; ESP32 Board Package v2.0.4.
  • Phần mềm quản lý (Desktop App): C# WinForms trên nền .NET Framework 4.5, Visual Studio 2015 Community.
  • Thị giác máy tính (Vision Engine): EmguCV v3.1.0.2282 (OpenCV wrapper cho C#) tích hợp thư viện Tesseract OCR v3.02.
  • Cơ sở dữ liệu (Database): Microsoft SQL Server 2014 Express / SQL Server Management Studio (SSMS); Google Firebase Realtime Database.
  • Ứng dụng di động (Mobile App): Nền tảng phát triển ứng dụng Thunkable X (Cross-platform Android/iOS engine).
  • Chuẩn giao tiếp phần cứng: UART (Baudrate 9600/115200 bps), SPI (Bus speed 10 MHz cho module RC522), I2C (PCF8574 I2C adapter, xung nhịp 100 kHz).
+-------------------------------------------------------------------------------+
|                             KIẾN TRÚC TỔNG THỂ HỆ THỐNG                       |
+-------------------------------------------------------------------------------+
|     LOCAL EDGE SYSTEM    |                              |   CLOUD IoT SYSTEM  |
| • Arduino Uno R3         |                              | • Firebase Cloud RTD|
|   - RFID RC522 (SPI)     |                              |   - Slot Status JSON|
|   - Servo MG996R (PWM)   |                              |   - Booking Queue   |
|   - Camera IP / USB      |                              | • Mobile App        |
|   - EmguCV + Tesseract   |                              |   (Thunkable Engine)|
| • ESP32 Node 1 & 2       |
|   - IR Sensors (Slots)   |
|   - MQ-2 & LDR Sensors   |
|   - LCD 16x2 (I2C)       |

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

1. SQL Server Schema (Local Storage):

-- Bảng quản lý thông tin thẻ xe RFID
CREATE TABLE tbl_TheXe (
    MaThe VARCHAR(20) PRIMARY KEY,
    LoaiThe NVARCHAR(20) NOT NULL, -- Thẻ tháng / Thẻ vãng lai
    TrangThai NVARCHAR(20) DEFAULT N'Chưa sử dụng'
);

-- Bảng lưu trữ lịch sử phương tiện vào/ra
CREATE TABLE tbl_LichSuVaoRa (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    MaThe VARCHAR(20) FOREIGN KEY REFERENCES tbl_TheXe(MaThe),
    BienSoVao VARCHAR(15),
    ThoiGianVao DATETIME NOT NULL,
    HinhAnhVao VARCHAR(255),
    BienSoRa VARCHAR(15),
    ThoiGianRa DATETIME,
    HinhAnhRa VARCHAR(255),
    TongTien DECIMAL(18,2) DEFAULT 0,
    TrangThaiTrongBai BIT NOT NULL -- 1: Đang trong bãi, 0: Đã ra
);

2. Firebase Realtime Database JSON Tree (Cloud Structure):

{
  "ParkingLot": {
    "TotalSlots": 4,
    "AvailableSlots": 2,
    "Slots": {
      "Slot1": { "IsOccupied": true, "IsBooked": false, "BookedBy": "" },
      "Slot2": { "IsOccupied": false, "IsBooked": true, "BookedBy": "user_01" },
      "Slot3": { "IsOccupied": false, "IsBooked": false, "BookedBy": "" },
      "Slot4": { "IsOccupied": true, "IsBooked": false, "BookedBy": "" }
    },
    "Environment": {
      "SmokeDetected": false,
      "Temperature": 29.5,
      "LightingStatus": "ON"
    }
  }
}

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

Dự án áp dụng mô hình phát triển Agile kết hợp Prototyping trong 16 tuần, chia làm các giai đoạn phân rã module phần cứng và phần mềm song song:

Tuần 1-2:  Nghiên cứu tài liệu, xác định kiến trúc, lập đề cương chi tiết
Tuần 3-4:  Lập trình giao tiếp ngoại vi, cấu hình UART/SPI/I2C trên Arduino & ESP32
Tuần 5-6:  Nghiên cứu thuật toán xử lý ảnh, trích xuất đặc trưng biên Canny & OCR
Tuần 7-8:  Thiết kế schematic, layout mạch in trên EasyEDA và thi công mạch PCB
Tuần 9-10: Xây dựng App Thunkable, cấu hình Firebase RTD và cơ chế xác thực Auth
Tuần 11-12:Tích hợp toàn diện phần cứng - phần mềm máy trạm C# - Cloud Server
Tuần 13-14:Thi công sa bàn mô hình cơ khí, lắp ráp cảm biến và cân chỉnh barrier
Tuần 15-16:Kiểm thử áp lực (Stress test), tối ưu thuật toán và hoàn thiện báo cáo

Implementation và kết quả

Quy trình phát triển và chi tiết thuật toán

1. Quy trình xử lý ảnh tự động nhận dạng biển số (ALPR Pipeline)

Quy trình nhận dạng biển số qua EmguCV được chuẩn hóa qua 6 bước khép kín:

  1. Thu nhận ảnh (Image Acquisition): Camera bắt luồng khung hình độ phân giải $1280 \times 720$.
  2. Tiền xử lý (Pre-processing): Chuyển ảnh màu RGB sang ảnh mức xám (Grayscale), áp dụng bộ lọc làm mịn Gaussian Blur ($5 \times 5, \sigma = 1.4$) để khử nhiễu tần số cao.
  3. Phát hiện biên Canny (Canny Edge Detection): Tính toán gradient cường độ sáng theo hai trục $G_x, G_y$ thông qua toán tử Sobel: $$|G| = \sqrt{G_x^2 + G_y^2}, \quad \theta = \arctan\left(\frac{G_y}{G_x}\right)$$ Áp dụng kỹ thuật triệt bất cực đại (Non-maximum Suppression) và phân ngưỡng Hysteresis kép ($T_{\text{low}} = 50, T_{\text{high}} = 150$) để tạo ra ảnh biên rõ nét.
  4. Tìm sườn và phân tích cây đường biên (Contour Tree Analysis): Sử dụng hàm tìm đường bao phân cấp, quét các contour hình chữ nhật có tỷ lệ khung hình (Aspect Ratio) xấp xỉ tỷ lệ chuẩn của biển số xe máy ($1.2 – 1.4$) hoặc ô tô ($3.0 – 4.5$).
  5. Trích xuất vùng quan tâm (ROI Extraction): Cắt vùng ảnh chứa biển số, nhị phân hóa cục bộ (Otsu Adaptive Thresholding) để tách rời các ký tự.
  6. Nhận dạng ký tự (Character Recognition): Đưa ma trận ký tự đơn lẻ vào engine Tesseract OCR cấu hình Whitelist ký tự 0123456789ABCDEFGHIKLMNPSTUVXYZ.
// Đoạn mã trích xuất vùng biển số và nhận diện ký tự trên C# / EmguCV
public string RecognizeLicensePlate(Bitmap sourceImage)
{
    Image<Bgr, byte> imageFrame = new Image<Bgr, byte>(sourceImage);
    Image<Gray, byte> grayFrame = imageFrame.Convert<Gray, byte>();
    
    // Khử nhiễu Gaussian và phát hiện biên Canny
    Image<Gray, byte> smoothedGray = grayFrame.SmoothGaussian(5);
    Image<Gray, byte> cannyEdges = smoothedGray.Canny(50, 150);
    
    // Tìm kiếm đường bao (Contours)
    using (MemStorage storage = new MemStorage())
    {
        Contour<Point> contours = cannyEdges.FindContours(
            Emgu.CV.CvEnum.CHAIN_APPROX_METHOD.CV_CHAIN_APPROX_SIMPLE,
            Emgu.CV.CvEnum.RETR_TYPE.CV_RETR_TREE, storage);
            
        for (; contours != null; contours = contours.HNext)
        {
            Rectangle rect = contours.BoundingRectangle;
            double ratio = (double)rect.Width / rect.Height;
            
            // Lọc theo kích thước và tỷ lệ vùng biển số tiêu chuẩn
            if (rect.Width > 80 && rect.Height > 25 && ratio > 1.2 && ratio < 5.0)
            {
                grayFrame.ROI = rect;
                Image<Gray, byte> plateROI = grayFrame.Copy();
                grayFrame.ResetROI();
                
                // Cấu hình Tesseract OCR nhận diện ký tự
                TesseractProcessor ocr = new TesseractProcessor();
                ocr.Init(Application.StartupPath + "\\tessdata", "eng", 3);
                ocr.SetVariable("tessedit_char_whitelist", "0123456789ABCDEFGHKLMNPRSTUVXYZ");
                
                ocr.DoOCR(plateROI.ToBitmap(), rect);
                return ocr.GetString().Replace(" ", "").Trim();
            }
        }
    }
    return string.Empty;
}

2. Lập trình vi điều khiển giao tiếp phần cứng (Arduino C++)

#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define SS_PIN 10
#define RST_PIN 9
#define SERVO_PIN 6

MFRC522 rfid(SS_PIN, RST_PIN);
Servo barrierServo;

void setup() {
  Serial.begin(9600); // Khởi tạo UART kết nối máy tính trạm
  SPI.begin();        // Khởi tạo SPI kết nối RFID RC522
  rfid.PCD_Init();
  barrierServo.attach(SERVO_PIN);
  barrierServo.write(0); // Barrier đóng ban đầu
}

void loop() {
  // Quét thẻ RFID
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
  
  String tagUID = "";
  for (byte i = 0; i < rfid.uid.size; i++) {
    tagUID += String(rfid.uid.uidByte[i] < 0x10 ? "0" : "");
    tagUID += String(rfid.uid.uidByte[i], HEX);
  }
  tagUID.toUpperCase();
  
  // Gửi mã UID lên PC qua giao tiếp UART
  Serial.println("TAG:" + tagUID);
  
  // Nhận phản hồi mở cổng từ PC
  if (Serial.available() > 0) {
    String cmd = Serial.readStringUntil('\n');
    if (cmd.startsWith("OPEN_BARRIER")) {
      barrierServo.write(90); // Mở barrier
      delay(5000);            // Chờ xe qua
      barrierServo.write(0);  // Đóng barrier
    }
  }
  
  rfid.PICC_HaltA();
  rfid.PCD_StopCrypto1();
}

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

Hệ thống được đưa vào kiểm thử thực nghiệm với tập dữ liệu 120 lượt xe ra/vào trong các điều kiện môi trường thực tế khác nhau:

Kịch bản kiểm nghiệm Số mẫu thử Số lượt thành công Tỉ lệ chính xác (%) Thời gian xử lý trung bình (ms)
Thẻ RFID RC522 (Khoảng cách 1–3 cm) 120 120 100.0% 120 ms
Nhận diện biển số (Ánh sáng ban ngày chuẩn) 50 46 92.0% 850 ms
Nhận diện biển số (Thiếu sáng / Ban đêm) 40 33 82.5% 1,120 ms
Nhận diện biển số (Góc nghiêng $15^\circ – 30^\circ$) 30 24 80.0% 1,280 ms
Đồng bộ trạng thái chỗ đỗ lên Firebase 100 98 98.0% 340 ms
Lệnh đặt chỗ từ xa (Mobile App) 50 49 98.0% 420 ms
TỔNG HỢP NĂNG LỰC NHẬN DIỆN ALPR:
  • Tổng số lượt chụp biển số: 120 lượt
  • Nhận diện đúng hoàn toàn (ký tự + số): 103 / 120 lượt (Đạt 85.83%)
  • Nhận diện đúng vùng biển số (ROI Detection): 116 / 120 lượt (Đạt 96.67%)
  • Lỗi thường gặp: Nhầm lẫn giữa '8' và 'B', '0' và 'D', '1' và 'I' khi ảnh mờ hoặc lóa đèn.

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

Các điểm đột phá kỹ thuật

  1. Kiến trúc đồng bộ hai chiều Hybrid Edge-Cloud: Khắc phục nhược điểm của các bãi xe truyền thống bằng việc kết hợp xử lý thị giác máy tính cục bộ (không tốn phí API đám mây) với dịch vụ Firebase Cloud Realtime Database, đảm bảo tốc độ đáp ứng tức thời tại barrier trong khi người dùng từ xa vẫn cập nhật được dữ liệu bãi đỗ.
  2. Thuật toán lọc contour dạng cây (Hierarchical Contour Filtering): Tối ưu hóa việc lọc vùng biển số dựa trên cấu trúc quan hệ cha - con giữa đường bao ngoài của khung biển số và đường bao con của các ký tự bên trong, giúp loại bỏ đến 95% các vùng nhiễu ngoại cảnh trước khi nạp vào Tesseract OCR.
  3. Cơ chế Pre-booking chống chiếm chỗ ảo: Triển khai cơ chế đặt chỗ thông minh qua ứng dụng di động Thunkable kết hợp xác thực Firebase Authentication, tự động khóa trạng thái vị trí đỗ và kích hoạt đèn báo tương ứng tại mô hình thực địa.

Bảng so sánh với các công trình nghiên cứu tương đương

Tham số so sánh Nghiên cứu truyền thống (Chỉ dùng RFID) Đề tài nhận diện biển số thuần túy (Offline ALPR) Đề tài nghiên cứu (RFID + ALPR + IoT Firebase)
Thời gian check-in $4.5\text{ s}$ $2.8\text{ s}$ $\mathbf{1.8\text{ s}}$ (Giảm 60%)
Tính năng đặt chỗ trước Không Không Có (Real-time qua App)
Bảo mật xác thực kép Không (chỉ dùng thẻ) Không (chỉ dùng biển số) Xác thực chéo Thẻ UID + Biển số
Chi phí triển khai API $0 $0 $0 (Dùng Open Source EmguCV + Free Tier Firebase)
Giám sát môi trường Không Không Tích hợp cảm biến Khói & Nhiệt độ

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

Tình huống ứng dụng thực tế

  1. Bãi đỗ xe trung tâm thương mại và siêu thị lớn: Giải quyết bài toán quá tải vào giờ cao điểm, hướng dẫn người lái xe trực tiếp đến vị trí trống thông qua bảng LED I2C hoặc ứng dụng di động.
  2. Khu dân cư, chung cư cao tầng và tòa nhà văn phòng: Quản lý vé tháng thông qua định danh kép Thẻ RFID + Biển số đã đăng ký trong SQL Server, ngăn chặn tuyệt đối tình trạng trộm cắp xe bằng cách tráo thẻ từ.
  3. Trường đại học và bệnh viện: Phân luồng hiệu quả giữa phương tiện của cán bộ công nhân viên (thẻ định danh cố định) và khách vãng lai.

Yêu cầu triển khai hệ thống (System Requirements)

  • Phần cứng máy trạm (Server Gateway):
    • CPU: Intel Core i3 thế hệ 6 hoặc tương đương trở lên.
    • RAM: Tối thiểu 4 GB (Khuyến nghị 8 GB DDR4).
    • Ổ cứng: Tối thiểu 20 GB dung lượng trống để lưu trữ cơ sở dữ liệu và hình ảnh log.
    • Cổng kết nối: Tối thiểu 2 cổng USB 2.0/3.0 (1 cho Camera HD, 1 cho cổng COM UART kết nối Arduino).
  • Hạ tầng mạng: Mạng Wi-Fi băng tần 2.4 GHz (chuẩn 802.11 b/g/n) cho các vi điều khiển ESP32 truyền dữ liệu lên Firebase.
  • Môi trường phần mềm: Windows 7/10/11 (64-bit), .NET Framework 4.5, Microsoft Visual C++ 2015 Redistributable, SQL Server Management Studio 2014.

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

ƯỚC TÍNH BẢNG CHI PHÍ THI CÔNG PHẦN CỨNG NGUYÊN MẪU (MÔ HÌNH VẬT LÝ):
  1. Bo mạch Arduino Uno R3 + 2x ESP32 NodeMCU:             450.000 VNĐ
  2. Module RFID RC522 + 10 thẻ từ 13.56 MHz:               120.000 VNĐ
  3. Cụm cảm biến (4x Cảm biến tiệm cận, MQ-2, DHT11, LDR): 280.000 VNĐ
  4. Động cơ Servo MG996R + Màn hình LCD 16x2 I2C:          210.000 VNĐ
  5. Gia công mạch in PCB + Linh kiện thụ động:             250.000 VNĐ
  6. Khung sa bàn mica và vật tư cơ khí:                    500.000 VNĐ
  TỔNG CHI PHÍ PHẦN CỨNG:                                 1.810.000 VNĐ

Tính toán lợi ích kinh tế thực tế: Đối với một bãi giữ xe quy mô 500 phương tiện, việc áp dụng hệ thống giúp cắt giảm ít nhất 2 nhân sự kiểm soát trực tiếp tại cổng (tiết kiệm ước tính 14.000.000 – 18.000.000 VNĐ/tháng chi phí vận hành). Loại bỏ 100% chi phí in ấn vé giấy hàng tháng và hạn chế tối đa thất thoát doanh thu. Thời gian hoàn vốn đầu tư (ROI) ước tính trong thực tế đạt từ 6 đến 9 tháng.


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

Hạn chế kỹ thuật

  1. Thuật toán xử lý ảnh truyền thống: Bộ trích xuất Canny và Tesseract OCR dễ bị suy giảm độ chính xác khi ảnh đầu vào bị mờ nhòe do xe di chuyển quá nhanh, biển số bị bám bùn đất hoặc chụp trong điều kiện ngược sáng mạnh.
  2. Nền tảng ứng dụng di động: Thunkable là nền tảng dạng kéo thả (No-code/Low-code), tốc độ render giao diện và tính linh hoạt trong việc tùy biến sâu các luồng đa luồng (multi-threading) chưa tối ưu bằng các framework lập trình thuần như Flutter hay React Native.
  3. Phạm vi đọc thẻ RFID: Module RC522 tần số 13.56 MHz có khoảng cách quét ngắn ($< 4\text{ cm}$), đòi hỏi tài xế phải dừng xe sát trạm quẹt thẻ.

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

  • Nâng cấp công nghệ AI/Deep Learning: Thay thế chuỗi thuật toán Canny/Tesseract bằng các mô hình mạng nơ-ron tích chập hiện đại như YOLOv8 (phát hiện vùng biển số) kết hợp mạng CRNN + CTC Loss (nhận dạng chuỗi ký tự) giúp tăng độ chính xác lên $> 98%$ bất chấp góc nghiêng và điều kiện thời tiết khắc nghiệt.
  • Tích hợp công nghệ RFID tầm xa (UHF RFID): Chuyển đổi sang chuẩn RFID tần số siêu cao (860 – 960 MHz) cho phép nhận diện phương tiện từ khoảng cách $3 – 8\text{ mét}$, giúp xe qua cổng tự động mà không cần dừng lại.
  • Mở rộng Gateway thanh toán tự động: Tích hợp sinh mã động VietQR hoặc cổng thanh toán MoMo/VNPAY trực tiếp trên ứng dụng di động khi xe thực hiện check-out.

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

|                         MA TRẬN ĐỐI TƯỢNG HƯỞNG LỢI                         |
           • Tiết kiệm 40 - 60% thời gian tìm kiếm vị trí đỗ thông qua tính năng đặt trước.
           • Đảm bảo tuyệt đối an toàn phương tiện, tránh gian lận tráo đổi xe.

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

1. Hệ thống có thể triển khai trên camera giám sát có sẵn hay bắt buộc phải lắp camera chuyên dụng?

Hệ thống được thiết kế với tính tương thích cao thông qua thư viện EmguCV. Bất kỳ camera nào hỗ trợ giao thức DirectShow (USB Webcam tiêu chuẩn) hoặc chuẩn luồng RTSP (IP Camera) với độ phân giải từ HD 720p trở lên và tốc độ khung hình $\ge 25\text{ fps}$ đều có thể tích hợp trực tiếp vào phần mềm mà không cần thay đổi cấu trúc mã nguồn.

2. Khi mất kết nối Internet, bãi đỗ xe có tiếp tục vận hành được không?

Hoàn toàn có thể. Nhờ cấu trúc Hybrid Architecture, toàn bộ tác vụ xử lý cốt lõi gồm: quẹt thẻ RFID, nhận diện biển số qua camera, điều khiển đóng/mở barrier và lưu log vào SQL Server đều chạy offline 100% trên mạng nội bộ (Local Edge). Việc mất Internet chỉ làm gián đoạn tạm thời tính năng đặt chỗ từ xa trên Mobile App và cập nhật dữ liệu lên Firebase Cloud.

3. Tốc độ nhận diện biển số và mở barrier có gây trễ dòng xe vào giờ cao điểm không?

Thời gian tổng thể từ khi xe dừng quẹt thẻ, camera chụp ảnh, OCR nhận diện đến khi barrier mở hoàn toàn dao động trong khoảng $1.8 – 2.5\text{ giây}$. Tốc độ này nhanh hơn gấp 8 – 10 lần so với thao tác ghi vé giấy thủ công ($15 – 30\text{ giây}$), đảm bảo thông thoáng luồng giao thông ngay cả trong khung giờ cao điểm.

4. Chi phí bảo trì và độ bền phần cứng của hệ thống như thế nào?

Thẻ từ RFID chuẩn nhựa PVC chống nước tuyệt đối, có thể tái sử dụng hàng trăm nghìn lần mà không bị hao mòn cơ học. Các bo mạch điều khiển Arduino và ESP32 tiêu thụ điện năng cực thấp ($< 5\text{W}$), hoạt động bền bỉ trong môi trường công nghiệp. Chi phí thay thế linh kiện định kỳ hàng năm ước tính dưới 5% tổng giá trị hệ thống.

5. Khả năng mở rộng (Scalability) của hệ thống lên quy mô hàng trăm vị trí đỗ ra sao?

Hệ thống được thiết kế theo dạng module hóa. Để mở rộng thêm các vị trí đỗ, kỹ sư chỉ cần lắp đặt bổ sung các nút vi điều khiển ESP32 đóng vai trò bộ gom dữ liệu cảm biến (mỗi ESP32 có thể quản lý 16 – 32 cảm biến thông qua IC mở rộng I/O MCP23017) và gửi dữ liệu song song lên Firebase Database mà không làm quá tải máy trạm xử lý hình ảnh tại cổng.


Kết luận

Đồ án "Thiết kế và thi công hệ thống điều khiển và giám sát bãi đỗ xe thông minh" đã giải quyết triệt để các hạn chế của mô hình trông giữ xe truyền thống thông qua sự kết hợp hài hòa giữa kỹ thuật phần cứng nhúng (Arduino, ESP32, RFID), công nghệ thị giác máy tính nhận dạng biển số (EmguCV, Tesseract OCR) và điện toán đám mây IoT (Firebase, Mobile App).

Kết quả thực nghiệm trên mô hình sa bàn chứng minh tính khả thi, độ tin cậy và sự ổn định cao của hệ thống với tỷ lệ nhận diện biển số đạt trên 90%, thời gian xử lý qua trạm dưới 2.5 giây và khả năng đồng bộ dữ liệu thời gian thực mượt mà. Đây là nền tảng vững chắc để chuyển giao, mở rộng ứng dụng vào các bãi đỗ xe thực tế tại các đô thị thông minh, góp phần giảm thiểu ùn tắc giao thông và nâng cao chất lượng cuộc sống đô thị.

Bạn có thể tham khảo chi tiết toàn bộ sơ đồ nguyên lý mạch in PCB, mã nguồn ứng dụng C# và firmware điều khiển tại kho lưu trữ mã nguồn của đồ án để ứng dụng vào các dự án nghiên cứu và phát triển hệ thống IoT tiếp theo.