Giới thiệu dự án

Sự gia tăng nhanh chóng của các phương tiện giao thông cơ giới cá nhân tại các đô thị lớn đang gây ra áp lực nặng nề lên hạ tầng giao thông và môi trường sống. Theo các thống kê giao thông đô thị, lượng khí thải CO2 và bụi mịn từ phương tiện chạy bằng nhiên liệu hóa thạch chiếm hơn 70% tổng lượng ô nhiễm không khí tại các thành phố lớn như Hà Nội và TP. Hồ Chí Minh. Để giải quyết bài toán "chặng cuối" (last-mile connectivity) kết nối giữa các trạm trung chuyển xe buýt, metro với điểm đến của người dân, mô hình xe đạp công cộng (Micro-mobility / Bike-sharing) nổi lên như một giải pháp bền vững, giảm thiểu tắc nghẽn và cải thiện sức khỏe cộng đồng.

Tuy nhiên, các hệ thống xe đạp truyền thống thường gặp nhiều thách thức: thiếu khả năng giám sát trạng thái thời gian thực, nguy cơ thất thoát phương tiện, khó quản lý tình trạng xe bị ngã đổ hoặc tai nạn, và chi phí đầu tư hạ tầng trạm khóa vật lý cố định quá cao. Nhằm khắc phục triệt để các rào cản này, đề tài "Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố" (chuyên ngành Công nghệ Kỹ thuật Máy tính, Trường Đại học Sư phạm Kỹ thuật TP.HCM) được nghiên cứu và chế tạo thực nghiệm.

+-----------------------------------------------------------------------------+
|                            MỤC TIÊU DỰ ÁN                                   |
+-----------------------------------------------------------------------------+
| 1. Phần cứng IoT: ESP32 + SIM7600CE 4G + GPS ATGM336H + MPU6050 + A4988   |
| 2. Giám sát tự động: Định vị vệ tinh, cảnh báo té ngã, khóa/mở tự động     |
| 3. Chống trộm thông minh: Kích hoạt còi SFM-20B khi dịch chuyển trái phép  |
| 4. Nền tảng số: Firebase Realtime Database + Mobile App + Web Dashboard    |
+-----------------------------------------------------------------------------+

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

  1. Thiết kế khối phần cứng IoT gắn trên xe: Tích hợp vi điều khiển ESP32, module truyền thông 4G LTE SIM7600CE-M1S, module định vị GPS ATGM336H, cảm biến gia tốc - con quay hồi chuyển MPU6050, mạch điều khiển động cơ A4988 và động cơ bước đóng mở khóa.
  2. Xây dựng giải thuật an toàn & chống trộm chủ động: Thuật toán phát hiện té ngã dựa trên ngưỡng góc nghiêng từ MPU6050; thuật toán Geofencing kích hoạt còi báo động SFM-20B khi xe bị dịch chuyển quá ngưỡng tọa độ cho phép trong trạng thái đóng khóa.
  3. Phát triển nền tảng phần mềm đồng bộ:
    • Mobile App: Cho phép người dùng đăng ký, xác thực, tìm kiếm trạm xe trên bản đồ, quét mã QR (Quick Response) mở khóa xe, nạp tiền và thanh toán tự động.
    • Web Admin: Dashboard cho ban quản trị giám sát vị trí tọa độ, tình trạng pin, số lượng xe trống/chỗ đỗ trống tại từng trạm theo thời gian thực.
  4. Đánh giá kiểm thử thực nghiệm: Đo lường độ trễ truyền dữ liệu qua mạng 4G, độ chính xác định vị vệ tinh và độ nhạy của cảm biến trên 02 mô hình xe thực nghiệm.

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

Hệ thống được thiết kế hoàn chỉnh từ bo mạch PCB, cơ cấu chấp hành cơ khí đến phần mềm máy chủ đám mây, được vận hành thử nghiệm trên 02 xe đạp mẫu tại khu vực khuôn viên Trường Đại học Sư phạm Kỹ thuật TP.HCM.


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 Hệ thống khóa trạm cơ truyền thống Hệ thống TNGO / Mobike thương mại Giải pháp IoT ESP32 của đề tài
Hạ tầng trạm Bắt buộc cọc khóa cố định đắt tiền Trạm ảo định vị Geofencing Trạm linh hoạt kết hợp trạm ảo và QR code
Giao thức truyền thông Cáp mạng nội bộ / RFID 2G/3G/4G + Bluetooth BLE 4G LTE Cat 4 (SIM7600CE) tốc độ cao
Cảnh báo an toàn (Ngã xe) Không hỗ trợ Giới hạn (chỉ báo va chạm mạnh) Cảm biến MPU6050 6-DOF phát hiện ngã tức thì
Cơ chế chống trộm Khóa vật lý tại cọc Cảnh báo qua App Còi SFM-20B hú tại chỗ + Đẩy tọa độ lên Web
Chi phí chế tạo phần cứng Rất cao (> 15.000.000 VNĐ/cọc) Cao (~ 4.000.000 - 6.000.000 VNĐ/xe) Tối ưu (~ 1.200.000 VNĐ/bộ thiết bị)

Phân tích yêu cầu hệ thống theo mô hình MoSCoW

  • Must have (Bắt buộc): Quét mã QR mở khóa; khóa xe tự động qua động cơ bước; định vị GPS cập nhật kinh độ/vĩ độ; phát hiện té ngã qua MPU6050; đồng bộ dữ liệu hai chiều với Firebase.
  • Should have (Nên có): Báo động âm thanh chống trộm khi xe dịch chuyển ngoài ý muốn; nạp tiền qua cổng thanh toán; theo dõi lộ trình thời gian thực trên Google Maps.
  • Could have (Có thể mở rộng): Tích hợp cảm biến đo nhịp tim người lái; tấm pin năng lượng mặt trời tự sạc cho hệ thống.
  • Won't have (Chưa triển khai đợt này): Tự động khóa bánh khi hết số dư giữa đường để đảm bảo an toàn giao thông cho người dùng.

Thiết kế hệ thống

Kiến trúc hệ thống gồm 4 tầng: Tầng thiết bị (Edge Hardware) $\rightarrow$ Tầng truyền dẫn (Network Gateway) $\rightarrow$ Tầng dữ liệu đám mây (Cloud Serverless) $\rightarrow$ Tầng ứng dụng (Application Layer).

       +-------------------------------------------------------------+
       |                   TẦNG ỨNG DỤNG (APPLICATIONS)             |
       |  - Mobile App (QR Scan, Map, Payment)  - Web Admin Monitor  |
       +------------------------------+------------------------------+
                                      | HTTPS / WebSocket
       +------------------------------v------------------------------+
       |               TẦNG ĐÁM MÂY (FIREBASE CLOUD)                 |
       |  - Firebase Authentication  - Realtime Database (JSON Tree) |
       +------------------------------+------------------------------+
                                      | 4G LTE / SSL
       +------------------------------v------------------------------+
       |            TẦNG TRUYỀN DẪN (SIM7600CE-M1S 4G)               |
       +------------------------------+------------------------------+
                                      | UART (G16/G17)
       +------------------------------v------------------------------+
       |             TẦNG XỬ LÝ TRUNG TÂM (ESP32 SoC)                |
       |  - Dual Core Tensilica LX6 240MHz, 520KB SRAM               |
       +-------+----------------------+----------------------+-------+
               | I2C (G21/G22)        | UART (G32/G35)       | GPIO
       +-------v-------+      +-------v-------+      +-------v-------+
       | MPU6050 6-DOF |      | GPS ATGM336H  |      | Driver A4988  |
       | (Gia tốc/Góc) |      | (BDS/GNSS)    |      | + Động cơ 42  |
       +---------------+      +---------------+      +-------+-------+
                                                             |
                                                     +-------v-------+
                                                     | Còi SFM-20B   |
                                                     +---------------+

Chi tiết cấu hình phần cứng và công nghệ

  1. Khối vi điều khiển trung tâm (MCU):
    • Vi điều khiển ESP32-WROOM-32 (38 chân), vi xử lý lõi kép Tensilica Xtensa 32-bit LX6, xung nhịp 240 MHz, ROM 448 KB, SRAM 520 KB. Hỗ trợ giao tiếp phần cứng đa kênh (UART, I2C, SPI, PWM).
  2. Khối cảm biến và định vị:
    • Cảm biến MPU6050: Cảm biến chuyển động 6 trục (3 trục gia tốc kế $\pm 2g / \pm 16g$, 3 trục con quay hồi chuyển $\pm 250^\circ/s / \pm 2000^\circ/s$), giao tiếp I2C qua chân GPIO21 (SDA) và GPIO22 (SCL).
    • Module GPS ATGM336H: Sử dụng chip điều hướng AT6558 với 32 kênh theo dõi tín hiệu GNSS/BDS, độ nhạy thu tín hiệu $-162\text{ dBm}$, độ chính xác định vị $2.5\text{ m}$ CEP, giao tiếp UART qua chân GPIO32 (RX) và GPIO35 (TX).
  3. Khối truyền thông di động:
    • Module SIM7600CE-M1S: Hỗ trợ chuẩn mạng 4G LTE Cat 4 (Downlink $150\text{ Mbps}$, Uplink $50\text{ Mbps}$), điều khiển qua tập lệnh AT Command trên chuẩn giao tiếp UART qua chân GPIO16 (TX2), GPIO17 (RX2) và GPIO15 (chân kích hoạt nguồn PW_E).
  4. Khối chấp hành và cảnh báo:
    • Driver A4988 & Động cơ bước 42 (2 pha 4 dây): Điều khiển góc quay 48 bước/vòng để đẩy/rút chốt khóa cơ khí.
    • Còi báo động SFM-20B: Tần số âm thanh $3300 \pm 500\text{ Hz}$, dòng tiêu thụ $12\text{ mA}$, kích hoạt qua transistor đóng cắt.
  5. Khối nguồn (Power Management):
    • Nguồn cấp pin DC $12\text{ V}$, qua mạch giảm áp xung LM2596S-3A (hiệu suất 92%) hạ áp về $5\text{ V}$ và $3.3\text{ V}$ với tổng dòng cấp danh định lên tới $2.2\text{ A}$, đáp ứng tức thời khi động cơ bước và module 4G phát sóng công suất lớn.

Cấu trúc cơ sở dữ liệu Firebase Realtime Database

{
  "Bikes": {
    "Bike_01": {
      "isLocked": true,
      "isFallen": false,
      "latitude": 10.85058,
      "longitude": 106.77194,
      "lat_lock": 10.85058,
      "lng_lock": 106.77194,
      "battery": 92,
      "currentUserID": "null",
      "warningAlarm": false
    }
  },
  "Stations": {
    "Station_01": {
      "name": "Tram SPKT Gate 1",
      "totalSlots": 10,
      "availableBikes": 1,
      "emptySlots": 9,
      "lat": 10.85060,
      "lng": 106.77190
    }
  }
}

Implementation và kết quả

Development process

Quá trình lập trình phần cứng trên Arduino IDE và phần mềm trên Visual Studio Code được tối ưu hóa qua các giải thuật xử lý luồng sự kiện liên tục:

#include <Wire.h>
#include <TinyGPS++.h>
#include <MPU6050.h>

MPU6050 mpu;
TinyGPSPlus gps;
const float FALL_THRESHOLD_ANGLE = 60.0; // Ngưỡng nghiêng phát hiện ngã
const float THEFT_DISTANCE_THRESHOLD = 15.0; // Sai số khoảng cách kích còi (mét)

// Tính khoảng cách Haversine giữa 2 tọa độ GPS
double calculateDistance(double lat1, double long1, double lat2, double long2) {
    double dlat = radians(lat2 - lat1);
    double dlong = radians(long2 - long1);
    double a = sin(dlat / 2) * sin(dlat / 2) +
               cos(radians(lat1)) * cos(radians(lat2)) *
               sin(dlong / 2) * sin(dlong / 2);
    double c = 2 * atan2(sqrt(a), sqrt(1 - a));
    return 6371000.0 * c; // Khoảng cách tính bằng mét
}

// Kiểm tra trạng thái xe bị té ngã
bool checkFallStatus() {
    int16_t ax, ay, az;
    mpu.getAcceleration(&ax, &ay, &az);
    // Tính góc nghiêng so với trục thẳng đứng
    float pitch = atan2(-ax, sqrt(ay * ay + az * az)) * 180.0 / PI;
    float roll  = atan2(ay, az) * 180.0 / PI;
    if (abs(pitch) > FALL_THRESHOLD_ANGLE || abs(roll) > FALL_THRESHOLD_ANGLE) {
        return true;
    }
    return false;
}
// Đoạn mã JavaScript lắng nghe trạng thái Firebase trên Web/App
import { getDatabase, ref, onValue, update } from "firebase/database";

const db = getDatabase();
const bikeStatusRef = ref(db, 'Bikes/Bike_01');

onValue(bikeStatusRef, (snapshot) => {
    const data = snapshot.val();
    if (data.isFallen) {
        displayAlertToast("CẢNH BÁO: Xe số 01 đang gặp sự cố ngã đổ!");
    }
    if (data.warningAlarm) {
        triggerTheftModal("CẢNH BÁO: Phát hiện phương tiện bị dịch chuyển trái phép!");
    }
    updateMarkerPosition(data.latitude, data.longitude);
});

Testing và validation

Hệ thống đã trải qua quá trình đo kiểm nghiêm ngặt tại phòng thí nghiệm và ngoài trời với các bộ thông số thực nghiệm:

+-----------------------------------------------------------------------------+
|                     KẾT QUẢ ĐO KIỂM HIỆU NĂNG THỰC TẾ                       |
+-----------------------------------------------------------------------------+
| Độ chính xác định vị GPS ATGM336H:          Sai số 2.1m (Tiêu chuẩn <2.5m) |
| Độ nhạy phát hiện té ngã MPU6050:           Chính xác 29/30 lần (96.7%)    |
| Thời gian phản hồi mở/đóng khóa:            1.2s - 1.5s qua sóng 4G LTE    |
| Mức tiêu thụ điện áp danh định:             5.0V / Dòng hoạt động 0.85A    |
| Tỉ lệ quét mã QR và ghép nối thành công:    100% trên thiết bị Android/iOS |
+-----------------------------------------------------------------------------+

Đánh giá hoạt động phần cứng và phần mềm

Hạng mục kiểm thử Kịch bản thử nghiệm Kết quả quan sát Đánh giá
Khối GPS ATGM336H Đặt xe tại 5 vị trí khác nhau ngoài trời Lấy tọa độ kinh độ/vĩ độ thành công sau 25s khởi động nguội Đạt chuẩn
Khối MPU6050 Nghiêng xe góc $45^\circ$, $60^\circ$, $75^\circ$ Gửi cờ isFallen = true lên Firebase khi góc nghiêng vượt $60^\circ$ Đạt chuẩn
Khối chống trộm Khóa xe nhưng dời xe đi một đoạn $>15\text{ m}$ Còi SFM-20B kêu liên tục, trạng thái warningAlarm bật Đạt chuẩn
Khối động cơ A4988 Gửi lệnh quét mã QR từ Mobile App Động cơ bước quay 48 bước rút chốt trong vòng 1.2s Đạt chuẩn
Web & App Thao tác 50 giao dịch thuê xe liên tiếp Không xảy ra hiện tượng tràn RAM, dữ liệu cập nhật tức thời Đạt chuẩn

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

  1. Cơ chế an toàn chủ động với MPU6050: Khác với các hệ sinh thái xe đạp công cộng hiện có trên thị trường chỉ theo dõi hành trình sau chuyến đi, đề tài tích hợp trực tiếp cảm biến quán tính 6 trục MPU6050, cho phép hệ thống nhận diện tức thời các sự cố té ngã bất thường của người lái để gửi tín hiệu khẩn cấp về trung tâm giám sát.
  2. Thuật toán Geofencing chống trộm cục bộ: Tích hợp thuật toán tính khoảng cách Haversine ngay tại tầng biên (Edge Computing trên ESP32). Nếu khoảng cách giữa vị trí GPS hiện tại và vị trí chốt khóa ban đầu vượt quá ngưỡng $15\text{ m}$ mà trạng thái khóa chưa được mở hợp lệ trên App, hệ thống sẽ hú còi SFM-20B tại chỗ và kích hoạt thông báo vi phạm lên máy chủ.
  3. Kiến trúc Serverless tối ưu chi phí: Ứng dụng Firebase Realtime Database và Firebase Hosting giúp loại bỏ nhu cầu duy trì máy chủ vật lý tốn kém, giảm thời gian trễ đồng bộ dữ liệu giữa Web - App - Phần cứng xuống dưới $1.5\text{ s}$, giảm chi phí đầu tư ban đầu hơn 40% so với giải pháp IoT công nghiệp thông thường.

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

Kịch bản sử dụng thực tế (Use-Case Scenarios)

  • Khu đô thị thông minh / Khuôn viên Đại học: Sinh viên và giảng viên di chuyển nhanh giữa các tòa nhà, giảng đường, thư viện và ký túc xá.
  • Khu du lịch & Phố đi bộ: Du khách nước ngoài dễ dàng tải ứng dụng, quét mã QR thanh toán trải nghiệm các danh lam thắng cảnh với chi phí tiết kiệm.
       [Người dùng tiếp cận xe] 
        [Quét mã QR qua App] 
  [App gửi lệnh mở khóa lên Firebase]
    [ESP32 nhận lệnh qua 4G LTE]
[Driver A4988 quay động cơ mở chốt khóa]
[Cảm biến MPU6050 & GPS giám sát hành trình]
 [Đóng chốt khóa & Thanh toán trên App]

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

  • Chi phí gia công hoàn thiện một hộp thiết bị điều khiển thông minh: ~1.200.000 VNĐ.
  • Với mức giá thuê trung bình 10.000 VNĐ / 30 phút, ước tính mỗi xe hoạt động 4 lượt/ngày mang lại doanh thu 40.000 VNĐ/ngày (1.200.000 VNĐ/tháng).
  • Thời gian thu hồi vốn phần cứng (Payback Period): Khoảng 1.5 - 2 tháng/xe.

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

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

  • Hệ thống mới chỉ thử nghiệm mô phỏng trên 02 mô hình xe thực tế, chưa đánh giá tải trọng trên quy mô hàng ngàn xe cùng lúc.
  • Tín hiệu GPS ATGM336H có thể bị suy giảm độ chính xác khi xe di chuyển vào khu vực hầm gửi xe hoặc đường hẹp giữa các tòa nhà cao tầng (hiện tượng Urban Canyon).
  • Chưa tích hợp tấm pin năng lượng mặt trời (Solar Panel) trên giỏ xe để tự duy trì nguồn điện lâu dài mà vẫn cần sạc ắc quy định kỳ.

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

  1. Năng lượng xanh tự cấp: Lắp đặt module pin mặt trời công suất $10\text{ W}$ kết hợp mạch sạc thông minh MPPT gắn trên giỏ xe.
  2. Thuật toán AI cân bằng trạm (Rebalancing Algorithm): Ứng dụng Machine Learning để phân tích lịch sử thuê xe, dự báo nhu cầu di chuyển của từng trạm theo khung giờ và gợi ý tuyến đường điều phối xe cho nhân viên vận hành.
  3. Tích hợp cổng thanh toán quốc gia: Tích hợp trực tiếp SDK VNPay, Momo, ZaloPay và thẻ vé điện tử liên thông xe buýt/Metro TP.HCM.

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

  • Sinh viên & Học viên: Có tài liệu nghiên cứu thực tế hoàn chỉnh về cách tích hợp hệ vi điều khiển ESP32 với các module 4G/GPS/IMU và cơ sở dữ liệu thời gian thực.
  • Lập trình viên IoT (Embedded & Cloud Developers): Tham khảo kiến trúc kết nối Hardware-to-Cloud qua Firebase Realtime Database và giao thức UART/I2C.
  • Doanh nghiệp & Đơn vị quản lý đô thị: Sở hữu mô hình khả thi để phát triển dịch vụ giao thông xanh kết nối đa phương thức với chi phí vận hành thấp.

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

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

Xe đạp cần được trang bị ắc quy hoặc pin Lithium-Ion $12\text{ V}$ (tối thiểu $2200\text{ mAh}$), bộ khung kim loại bảo vệ mạch điều khiển chuẩn kháng nước IP65, mạch hạ áp LM2596S, vi điều khiển ESP32, module SIM7600CE có SIM 4G còn dung lượng data, module GPS ATGM336H, cảm biến MPU6050, còi SFM-20B, driver A4988 và động cơ bước chốt khóa.

2. Hệ thống xử lý thế nào khi xe đi vào khu vực mất sóng di động 4G?

Khi mất kết nối mạng, ESP32 tạm thời lưu trữ nhật ký tọa độ và trạng thái cảm biến vào bộ nhớ flash/EEPROM cục bộ. Khi module SIM7600CE bắt lại được sóng 4G, dữ liệu tích lũy sẽ tự động được đẩy đồng bộ lên Firebase.

3. Làm thế nào để ngăn ngừa việc quét mã QR giả mạo?

Mỗi mã QR trên thân xe chứa chuỗi ký tự mã hóa định danh độc nhất (UUID) liên kết với khóa bí mật của xe trên Firebase. Ứng dụng di động chỉ chấp nhận mã quét hợp lệ đã được xác thực từ máy chủ.

4. Hệ thống có gây cản trở người dùng nếu cảm biến báo ngã nhầm khi đường xóc?

Giải thuật lọc trên ESP32 chỉ xác nhận trạng thái ngã khi góc nghiêng vượt quá $60^\circ$ và duy trì liên tục trong thời gian lớn hơn 500 mili-giây, giúp loại bỏ hoàn toàn các dao động dằn xóc tức thời trên mặt đường.

5. Chi phí duy trì dịch vụ đám mây cho quy mô lớn là bao nhiêu?

Nhờ cơ chế tối ưu hóa kích thước gói tin JSON gửi lên Firebase Realtime Database (chỉ gửi khi có sự thay đổi trạng thái hoặc theo chu kỳ định kỳ 10 giây/lần), chi phí vận hành máy chủ đám mây rất thấp, có thể áp dụng gói trả theo dung lượng (Pay-as-you-go) của Google Cloud.


Kết luận

Đồ án tốt nghiệp "Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố" của nhóm sinh viên ngành Công nghệ Kỹ thuật Máy tính (Trường Đại học Sư phạm Kỹ thuật TP.HCM) đã giải quyết trọn vẹn bài toán tích hợp liên ngành giữa phần cứng nhúng IoT, thuật toán điều khiển an toàn và hệ thống phần mềm Web/App đa nền tảng. Các tính năng cốt lõi như mở/đóng khóa tự động qua mã QR, định vị GPS thời gian thực, phát hiện tai nạn té ngã qua MPU6050 và chống trộm thông minh bằng còi SFM-20B đều hoạt động ổn định và chính xác. Đề tài mở ra tiềm năng ứng dụng to lớn trong việc xây dựng hệ thống giao thông thông minh, thân thiện với môi trường tại các đô thị hiện đại.