Giới thiệu dự án

Sự gia tăng nhanh chóng của phương tiện giao thông cá nhân, đặc biệt là ô tô tại các đô thị lớn ở Việt Nam (tăng trưởng trung bình 10–12%/năm), đang tạo ra áp lực đè nặng lên hạ tầng giao thông tĩnh. Theo thống kê giao thông đô thị, có tới 30% nguyên nhân gây ùn tắc tại các trung tâm thương mại và tòa nhà văn phòng xuất phát từ việc phương tiện mất trung bình 10–15 phút chỉ để tìm kiếm vị trí đỗ còn trống. Các bãi đỗ xe truyền thống phụ thuộc hoàn toàn vào vé giấy hoặc nhân lực điều phối thủ công, dẫn đến tình trạng quản lý thiếu chính xác, lãng phí thời gian và phát sinh các trường hợp tài xế đỗ sai quy định, gây cản trở lối lưu thông nội bộ.

Vấn đề cốt lõi đặt ra là làm thế nào để xây dựng một hệ thống quản lý bãi đỗ xe ô tô thông minh, tự động hóa việc giám sát từng vị trí đỗ theo thời gian thực, có khả năng cảnh báo đỗ sai quy cách nhưng vẫn tối ưu hóa chi phí phần cứng và thi công. Các giải pháp giám sát bãi đỗ hiện nay thường dùng hệ thống mạng cảm biến nối dây truyền thống (RS485/CAN bus) làm tăng chi phí dây cáp và nhân công lắp đặt, hoặc dùng Wi-Fi tiêu tốn nhiều năng lượng và dễ quá tải băng thông.

Đề tài "Thiết kế và thi công mô hình quản lý bãi giữ xe ô tô" (thực hiện bởi sinh viên Lê Đức Huy, Nguyễn Văn Tú; GVHD: TS. Trần Quang Thọ, Khoa Đào tạo Chất lượng cao, Trường Đại học Sư phạm Kỹ thuật TP.HCM) giải quyết trực tiếp bài toán này thông qua việc ứng dụng công nghệ mạng không dây Zigbee kết hợp hệ vi điều khiển phân tán.

+-----------------------------------------------------------------------------------+
|                              MỤC TIÊU CỦA ĐỒ ÁN                                   |
+-----------------------------------------------------------------------------------+
| 1. Thiết kế và chế tạo mô hình vật lý bãi đỗ xe 8 vị trí, chia 2 phân vùng.       |
| 2. Ứng dụng cảm biến hồng ngoại gương R2N1 phát hiện xe và lỗi đỗ sai quy định.   |
| 3. Phát triển mạng truyền thông không dây Zigbee CC2530 chuẩn công nghiệp 2.4GHz.  |
| 4. Xây dựng phần mềm giám sát trung tâm trên Visual Studio (C# .NET).              |
| 5. Thiết lập cơ chế cảnh báo âm thanh - hình ảnh tức thời khi có sai phạm vị trí. |
+-----------------------------------------------------------------------------------+

Phương pháp tiếp cận của đề tài là kiến trúc phần cứng phân tán: mỗi nhóm 4 vị trí đỗ được quản lý bởi một vi điều khiển PIC16F887A cục bộ, sau đó dữ liệu được đóng gói và truyền không dây qua module Zigbee CC2530 về máy tính trung tâm thông qua mạch chuyển đổi CP2102 USB-to-UART. Giải pháp này giúp cắt giảm trên 65% độ phức tạp của hệ thống dây tín hiệu, cho phép mở rộng quy mô linh hoạt và hạ giá thành sản xuất. Phạm vi thử nghiệm của đồ án được triển khai trên mô hình phần cứng gồm 8 vị trí đỗ ô tô, 3 module Zigbee truyền nhận đa điểm, hiển thị số chỗ trống bằng LED 7 đoạn và giao diện phần mềm trực quan trên máy tính.


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

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

Khảo sát các công nghệ quản lý bãi đỗ xe thương mại và nghiên cứu học thuật hiện nay cho thấy sự phân hóa rõ rệt giữa các phương pháp:

Tiêu chí so sánh Bãi đỗ xe truyền thống (Thẻ từ/Vé giấy) Hệ thống cảm biến nối dây (RS485/PLC) Hệ thống camera AI (ANPR/CCTV) Mô hình Zigbee đề xuất (PIC + CC2530)
Chi phí triển khai Rất thấp (ban đầu) Cao (dây dẫn & nhân công) Rất cao (Camera, Server GPU) Thấp - Tối ưu hóa linh kiện
Độ trễ cập nhật Thủ công (> 5 phút) Thấp (< 100ms) Trung bình (300ms - 1s) Rất thấp (< 80ms)
Cảnh báo đỗ sai Không hỗ trợ Phụ thuộc bố trí cảm biến Tốt (dựa trên xử lý ảnh) Tức thời qua logic cảm biến kép
Khả năng mở rộng Không áp dụng Khó khăn (phải kéo thêm dây) Linh hoạt nhưng tốn băng thông Rất cao (hỗ trợ tới 65.000 node)
Tiêu thụ năng lượng Thấp Trung bình Rất cao Cực thấp (< 30mA/node Zigbee)

Yêu cầu hệ thống được lượng hóa thông qua ma trận ưu tiên MoSCoW:

  • Must have (Bắt buộc): Giám sát trạng thái 8 vị trí đỗ theo thời gian thực; nhận diện chính xác trạng thái có xe/trống; cảnh báo âm thanh khi đỗ chệch vạch; hiển thị tổng số vị trí trống lên bảng LED 7 đoạn và màn hình máy tính.
  • Should have (Nên có): Giao diện đồ họa hiển thị layout bãi xe trực quan; lưu trữ log trạng thái kết nối; cơ chế lọc nhiễu tín hiệu quang từ môi trường.
  • Could have (Có thể có): Mở rộng điều khiển cổng chắn tự động (Barrier); module đo khoảng cách đỗ xe bằng siêu âm.
  • Won't have (Chưa thực hiện trong phiên bản này): Nhận diện biển số tự động (ANPR); cổng thanh toán trực tuyến qua mã QR.

Thiết kế hệ thống

Kiến trúc hệ thống bao gồm 4 tầng chức năng chính được tổ chức theo mô hình mạng IoT phân tán:

[ Cảm biến R2N1 ] ---> [ PIC16F887A (Zone 1) ] ---> [ Zigbee CC2530 (Node 1) ] ---\
                                                                                   (Sóng 2.4GHz RF)
[ Cảm biến R2N1 ] ---> [ PIC16F887A (Zone 2) ] ---> [ Zigbee CC2530 (Node 2) ] ---+---> [ Zigbee CC2530 (Coord) ] ---> [ CP2102 ] ---> [ C# WinForms GUI ]
+----------------------------------------------------------------------------------------+
|                                  THÔNG SỐ TECHNOLOGY STACK                             |
+----------------------------------------------------------------------------------------+
| - Vi điều khiển: 2x Microchip PIC16F887A (8-bit, 20MHz crystal, Flash 8KB, 368B RAM)   |
| - Cảm biến: 8x R2N1 Hồng ngoại gương phản xạ (Khoảng cách 2m, bước sóng 660nm, trễ 1.5ms) |
| - Module truyền thông: 3x TI CC2530 Zigbee SoC (Băng tần 2.4GHz, công suất 4.5dBm)      |
| - Giao tiếp máy tính: Silicon Labs CP2102 USB-to-UART Bridge (Baudrate 9600–115200bps) |
| - Mạch công suất: Module MOSFET IRF520-SP3316 (0–24VDC, Max 5A) điều khiển còi/đèn báo   |
| - IC đếm phụ trợ: NXP 74HC4040 12-stage Binary Ripple Counter                           |
| - Bộ nguồn: Nguồn tổ ong MeanWell 5V-20A (Input 185–260VAC)                            |
| - Môi trường phát triển: CCS C Compiler v5.084 (Firmware), Visual Studio 2019 C# .NET |
+----------------------------------------------------------------------------------------+

Giao thức truyền thông UART giữa các Node và Gateway trung tâm sử dụng cấu trúc khung dữ liệu tuần tự định dạng cố định (Fixed-length Byte Packet):

+---------------+---------------+--------------------+---------------+---------------+
| Header (1B)   | Node ID (1B)  | Slot Status (1B)   | Warning (1B)  | Checksum (1B) |
| [0xAA]        | [0x01/0x02]   | [Bit 0-3: Vị trí] | [Mã lỗi]      | [XOR Sum]     |
+---------------+---------------+--------------------+---------------+---------------+

Methodology

Quy trình phát triển dự án áp dụng mô hình Hardware-Software Co-Design theo chuẩn V-Model:

  1. Giai đoạn 1 (Tuần 1–3): Phân tích yêu cầu, khảo sát đặc tính quang học của cảm biến R2N1 và cấu hình phần cứng RF CC2530.
  2. Giai đoạn 2 (Tuần 4–7): Thiết kế sơ đồ nguyên lý trên Proteus, vẽ mạch in PCB trên Altium Designer, thi công phần cứng cơ khí mô hình bãi đỗ.
  3. Giai đoạn 3 (Tuần 8–11): Lập trình firmware điều khiển PIC bằng CCS C; xây dựng ứng dụng WinForms trên Visual Studio 2019.
  4. Giai đoạn 4 (Tuần 12–14): Tích hợp hệ thống, kiểm thử độ trễ truyền dữ liệu RF và đánh giá độ chính xác cảnh báo sai vị trí.

Đánh giá rủi ro kỹ thuật:

  • Nhiễu tần số 2.4GHz: Zigbee hoạt động cùng dải tần với Wi-Fi dân dụng. Giải pháp: Cấu hình Zigbee hoạt động tại Channel 25 hoặc 26 (tần số 2.475–2.480 GHz) để tránh trùng kênh phát phổ biến của Wi-Fi (Channel 1, 6, 11).
  • Hiện tượng phản xạ ánh sáng môi trường: Gây sai lệch tín hiệu cảm biến quang. Giải pháp: Sử dụng cảm biến R2N1 có gương phản xạ chuyên dụng với bộ lọc bước sóng quang học 660nm.

Implementation và kết quả

Development process

Quá trình hiện thực hóa giải pháp tập trung vào 2 thành phần cốt lõi: Firmware vi điều khiển thu thập trạng thái và Ứng dụng trung tâm phân tích dữ liệu.

Firmware trên PIC16F887A thực hiện quét liên tục các chân Digital Input nối với cảm biến quang R2N1, xử lý chống rung tín hiệu (debouncing), kiểm tra logic vị trí đỗ và đóng gói truyền dữ liệu qua giao tiếp nối tiếp UART.

// Firmware PIC16F887A - Module Zone 1 (Trích xuất từ source CCS C)
#include <16F887.h>
#fuses HS, NOWDT, NOPROTECT, BROWNOUT
#use delay(crystal=20000000)
#use rs232(baud=9600, parity=N, xmit=PIN_C6, rcv=PIN_C7, bits=8)

#define SENSOR_SLOT1 PIN_B0
#define SENSOR_SLOT2 PIN_B1
#define SENSOR_ALIGN PIN_B2
#define ALARM_RELAY  PIN_D0

void main() {
   int8 slot_status = 0;
   int8 warning_flag = 0;
   
   set_tris_b(0xFF); // Port B là ngõ vào cảm biến
   set_tris_d(0x00); // Port D điều khiển còi và MOSFET
   output_low(ALARM_RELAY);

   while(TRUE) {
      slot_status = 0;
      warning_flag = 0;
      
      // Đọc trạng thái cảm biến R2N1 (Mức 0: Có vật cản che gương)
      if(!input(SENSOR_SLOT1)) bit_set(slot_status, 0);
      if(!input(SENSOR_SLOT2)) bit_set(slot_status, 1);
      
      // Kiểm tra xe đỗ chệch vạch (Cảm biến căn chỉnh bị che)
      if(!input(SENSOR_ALIGN)) {
         warning_flag = 1;
         output_high(ALARM_RELAY); // Kích hoạt còi báo động qua MOSFET IRF520
      } else {
         output_low(ALARM_RELAY);
      }
      
      // Gửi gói tin qua Zigbee CC2530: [Header 0xAA] [Zone_ID] [Status] [Warning]
      putc(0xAA);
      putc(0x01); // Zone 1
      putc(slot_status);
      putc(warning_flag);
      
      delay_ms(100); // Tần số lấy mẫu 10Hz
   }
}

Tại trạm điều khiển trung tâm, phần mềm viết bằng C# .NET xử lý sự kiện DataReceived từ cổng COM ảo để cập nhật giao diện người dùng trực quan:

// Visual Studio C# - Xử lý giải mã gói tin UART từ Zigbee Coordinator
private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
    while (serialPort1.BytesToRead >= 4)
    {
        byte header = (byte)serialPort1.ReadByte();
        if (header == 0xAA)
        {
            byte zoneId = (byte)serialPort1.ReadByte();
            byte status = (byte)serialPort1.ReadByte();
            byte warning = (byte)serialPort1.ReadByte();

            this.Invoke(new Action(() => {
                UpdateParkingGrid(zoneId, status, warning);
            }));
        }
    }
}

private void UpdateParkingGrid(byte zoneId, byte status, byte warning)
{
    // Cập nhật trạng thái Slot 1 & Slot 2 của Zone tương ứng
    bool slot1Occupied = (status & 0x01) != 0;
    btnSlot1.BackColor = slot1Occupied ? Color.Red : Color.Green;
    lblSlot1Status.Text = slot1Occupied ? "ĐÃ CÓ XE" : "TRỐNG";

    if (warning == 1)
    {
        lblAlert.Text = $"CẢNH BÁO: Xe tại Khu vực {zoneId} đang đỗ sai vị trí quy định!";
        lblAlert.ForeColor = Color.DarkRed;
        System.Media.SystemSounds.Exclamation.Play();
    }
    else
    {
        lblAlert.Text = "Hệ thống hoạt động bình thường";
        lblAlert.ForeColor = Color.Green;
    }
}

Testing và validation

Hệ thống đã trải qua 500 chu kỳ thử nghiệm đỗ xe trong các điều kiện vận hành khác nhau:

+-----------------------------------------------------------------------------------+
|                     KẾT QUẢ ĐO LƯỜNG THỰC NGHIỆM HỆ THỐNG                        |
+------------------------------------+-----------------------+---------------------+
| Kịch bản kiểm thử                  | Số lần thử nghiệm     | Tỷ lệ thành công    |
+------------------------------------+-----------------------+---------------------+
| Nhận diện xe vào/ra đúng vị trí    | 200 lượt              | 99.5% (199/200)     |
| Phát hiện và cảnh báo đỗ chệch vạch| 150 lượt              | 98.7% (148/150)     |
| Truyền dữ liệu RF cự ly 10m - 50m  | 100 gói tin liên tục  | 100% (0% packet loss|
| Truyền dữ liệu xuyên vật cản (tường)| 50 gói tin            | 96.0% (48/50)       |
+------------------------------------+-----------------------+---------------------+
| - Thời gian đáp ứng cảm biến R2N1: 1.5ms                                          |
| - Độ trễ truyền nhận Zigbee -> PC: 42.6ms (Baudrate 9600bps)                      |
| - Dòng tiêu thụ trung bình mỗi node: 24.8mA @ 5VDC                                |
+-----------------------------------------------------------------------------------+

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

Dự án đã hoàn thành 100% các mục tiêu nghiên cứu và thiết kế ban đầu:

  • Chế tạo thành công mô hình sa bàn bãi giữ xe 8 vị trí với kết cấu cơ khí chắc chắn, phân định rõ ràng 2 phân vùng (mỗi phân vùng 4 vị trí).
  • Mạch công suất sử dụng MOSFET IRF520 vận hành ổn định, đóng ngắt còi báo động công suất lớn không gây sụt áp vi điều khiển nhờ cách ly tốt.
  • Phần mềm quản lý trên máy tính phản hồi trạng thái đỗ xe theo thời gian thực với độ trễ tổng thể dưới 80ms, hiển thị chính xác số chỗ trống và vị trí đỗ sai.

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

  1. Kiến trúc mạng không dây Zigbee công nghiệp chi phí thấp: Thay vì sử dụng mạng RS485 đòi hỏi thi công hệ thống ống gen và máng cáp phức tạp, mô hình ứng dụng module Zigbee CC2530 SoC giúp loại bỏ 100% đường dây tín hiệu liên phân vùng.
  2. Cơ chế phát hiện sai phạm đỗ xe tự động: Khác với các hệ thống thông thường chỉ giám sát trạng thái trống/bận, đề tài tích hợp cảm biến biên R2N1 cùng thuật toán logic đa điểm để phát hiện trường hợp phương tiện đỗ lấn làn hoặc đỗ lệch góc, kích hoạt cảnh báo kép (âm thanh tại bãi và giao diện trung tâm).
  3. Hiệu quả kinh tế vượt trội: Toàn bộ hệ thống phần cứng được tối ưu bằng các linh kiện sẵn có, dễ thay thế (PIC16F887, CP2102, IRF520), giúp giảm giá thành sản xuất ước tính tới 55% so với việc nhập khẩu các bộ điều khiển bãi đỗ xe chuyên dụng từ nước ngoài.

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

Use Cases thực tế

  • Tầng hầm chung cư & Trung tâm thương mại: Lắp đặt tại từng block đỗ xe để hướng dẫn tài xế qua bảng LED đầu nhánh, hạn chế tối đa tình trạng chạy vòng quanh tìm chỗ.
  • Bãi đỗ xe thông minh ngoài trời: Kết hợp pin năng lượng mặt trời với module Zigbee công suất thấp để vận hành độc lập không cần kéo lưới điện phức tạp.
+-----------------------------------------------------------------------------------+
|                        QUY TRÌNH TRIỂN KHAI HỆ THỐNG 4 BƯỚC                       |
+-----------------------------------------------------------------------------------+
| Bước 1: Gắn cảm biến R2N1 tại trần hoặc chân vách mỗi vị trí đỗ xe.               |
| Bước 2: Cài đặt Zone Controller (PIC16F887A + Zigbee Router) tại mỗi cụm 8-16 xe. |
| Bước 3: Cắm Zigbee Coordinator qua cổng USB máy tính quản trị và cài đặt Driver.  |
| Bước 4: Khởi chạy phần mềm Visual Studio C#, chọn cổng COM và giám sát tự động.   |
+-----------------------------------------------------------------------------------+

Phân tích hiệu quả kinh tế (ROI)

  • Với bãi xe quy mô 200 vị trí: Chi phí đầu tư hệ thống có dây truyền thống khoảng 180.000.000 VNĐ (dây dẫn, máng cáp, nhân công).
  • Ứng dụng giải pháp Zigbee phân tán: Chi phí ước tính 75.000.000 VNĐ. Tiết kiệm ngay 58.3% chi phí đầu tư ban đầu, thời gian hoàn vốn (ROI) rút ngắn từ 18 tháng xuống còn 7.5 tháng nhờ giảm chi phí bảo trì đường dây.

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

  • Hạn chế kỹ thuật: Cảm biến hồng ngoại gương R2N1 có thể bị giảm độ nhạy nếu bề mặt gương bị bám bụi dày trong môi trường bãi xe tầng hầm nhiều khói bụi, hoặc bị nhiễu quang nếu có ánh nắng mặt trời chiếu trực tiếp ở bãi xe ngoài trời.
  • Tài nguyên phần cứng: Vi điều khiển PIC16F887A là dòng 8-bit có bộ nhớ RAM khiêm tốn (368 Bytes), giới hạn khả năng thực hiện các thuật toán mã hóa dữ liệu phức tạp tại biên.
  • Hướng phát triển:
    • Nâng cấp vi điều khiển lên dòng 32-bit (ARM Cortex-M4 hoặc ESP32) để tích hợp sẵn ngăn xếp mạng bảo mật cao.
    • Tích hợp thêm Camera nhận diện biển số xe (ANPR) kết hợp AI để quản lý toàn diện cả thời gian và chi phí đỗ xe.
    • Phát triển ứng dụng di động (Flutter/React Native) cho phép người dùng đặt trước chỗ đỗ qua Cloud Server.

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

+------------------+----------------------------------------------------------------+
| Nhóm đối tượng   | Lợi ích cụ thể được định lượng                                 |
+------------------+----------------------------------------------------------------+
| Sinh viên /      | Tài liệu tham khảo hoàn chỉnh về thiết kế nhúng PIC16F,        |
| Thực tập sinh    | giao tiếp UART, lập trình C# WinForms và ứng dụng mạng Zigbee. |
+------------------+----------------------------------------------------------------+
| Kỹ sư phần cứng  | Nắm vững kiến trúc phối hợp giữa cảm biến quang công nghiệp,   |
|                  | mạch công suất MOSFET cách ly và truyền thông RF 2.4GHz.       |
+------------------+----------------------------------------------------------------+
| Doanh nghiệp     | Phương án giảm thiểu 60% chi phí dây tín hiệu khi xây dựng     |
| Quản lý Bãi xe   | các bãi giữ xe thông minh, nâng cao chất lượng dịch vụ đỗ xe.  |
+------------------+----------------------------------------------------------------+
| Nhà nghiên cứu   | Dữ liệu đo kiểm thực tế về độ trễ và độ ổn định của giao thức  |
| IoT Smart City   | truyền thông Zigbee trong môi trường truyền sóng nội đô.       |
+------------------+----------------------------------------------------------------+

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

1. Yêu cầu cấu hình tối thiểu để triển khai phần mềm quản lý là gì? Hệ thống máy tính trung tâm chỉ cần cấu hình văn phòng cơ bản: CPU Dual-Core 2.0GHz, RAM 2GB, 1 cổng USB 2.0 khả dụng, hệ điều hành Windows 7/10/11 có cài đặt Microsoft .NET Framework 4.5 trở lên và driver cổng COM ảo Silicon Labs CP210x.

2. Mạng Zigbee CC2530 có bị giới hạn số lượng vị trí đỗ khi mở rộng không? Về mặt lý thuyết, chuẩn Zigbee hỗ trợ tới 65.000 nút mạng trong mô hình Mesh. Trong thực tế triển khai bãi xe, một Zigbee Coordinator có thể quản lý ổn định từ 100–250 Node Zone (tương đương 800–2000 vị trí đỗ) với chu kỳ cập nhật dữ liệu 1–2 giây/lần mà không bị nghẽn mạng.

3. Làm thế nào để xử lý khi một module Zigbee bị mất kết nối? Phần mềm trên máy tính được thiết kế cơ chế Timeout (sau 3 chu kỳ lấy mẫu không nhận được bản tin từ Node ID tương ứng sẽ đổi màu vị trí đỗ sang trạng thái cảnh báo mất tín hiệu "Offline", đồng thời ghi log vị trí để kỹ thuật viên kiểm tra nguồn hoặc phần cứng cục bộ).

4. Cảm biến R2N1 có hoạt động tốt vào ban đêm không? Cảm biến R2N1 phát chùm tia hồng ngoại chủ động ở bước sóng 660nm và thu nhận ánh sáng phản xạ từ gương chuyên dụng, do đó hệ thống hoạt động hoàn toàn độc lập với điều kiện ánh sáng môi trường, đảm bảo độ chính xác tuyệt đối cả ban ngày lẫn ban đêm.

5. Chi phí bảo trì hệ thống định kỳ bao gồm những gì? Chi phí bảo trì rất thấp, chủ yếu gồm: vệ sinh bề mặt thấu kính quang học và gương phản xạ của cảm biến R2N1 (chu kỳ 3–6 tháng/lần) và kiểm tra điện áp đầu ra của bộ nguồn tổ ong 5VDC.


Kết luận

Đồ án "Thiết kế và thi công mô hình quản lý bãi giữ xe ô tô" đã hiện thực hóa thành công một giải pháp công nghệ IoT thực tiễn, kết hợp hài hòa giữa kỹ thuật vi điều khiển nhúng PIC16F887A, công nghệ truyền thông không dây Zigbee CC2530 và phần mềm quản lý trực quan C# .NET. Hệ thống giải quyết trọn vẹn các thách thức về chi phí thi công dây cáp, tự động hóa quy trình quản lý vị trí đỗ và nâng cao ý thức tuân thủ luật giao thông tĩnh của người lái xe thông qua tính năng cảnh báo đỗ sai quy định tức thời. Mô hình chứng minh tính khả thi cao, mở ra tiềm năng ứng dụng rộng rãi trong các dự án giao thông thông minh và đô thị thông minh tại Việt Nam.