Giới thiệu dự án

Ngành logistics và vận tải đóng vai trò huyết mạch trong nền kinh tế Việt Nam với tốc độ tăng trưởng bình quân đạt từ 12% đến 14%/năm, đóng góp ước tính 4,5% vào tổng sản phẩm quốc nội (GDP). Đi đôi với quy mô vận tải ngày càng mở rộng, nhu cầu quản lý phương tiện từ các doanh nghiệp vận tải lớn cho đến các hộ kinh doanh cá thể trở nên cấp thiết. Vấn đề cốt lõi đặt ra là làm thế nào để vừa giám sát chính xác hành trình di chuyển theo thời gian thực, vừa nắm bắt tình trạng kỹ thuật nội tại của động cơ nhằm tối ưu chi phí vận hành, ngăn ngừa sự cố kỹ thuật và đảm bảo an toàn giao thông.

Phần lớn các thiết bị định vị thương mại trên thị trường hiện nay chỉ tập trung vào việc định vị tọa độ GPS đơn thuần mà bỏ qua nguồn dữ liệu chẩn đoán giá trị từ mạng điều khiển nội bộ trên xe (CAN bus). Ngược lại, các thiết bị đọc lỗi OBD-II chuyên dụng lại thiếu khả năng truyền thông từ xa liên tục qua Internet về máy chủ quản lý trung tâm.

Đồ án tốt nghiệp "Thiết kế mạch thu thập dữ liệu và giám sát xe từ xa qua Internet" được thực hiện nhằm giải quyết khoảng trống công nghệ này với các mục tiêu cụ thể:

  1. Thiết kế và chế tạo phần cứng module nhúng tích hợp bộ thu định vị toàn cầu GPS và giao tiếp mạng CAN chuẩn OBD-II.
  2. Xây dựng thuật toán trích xuất và giải mã các thông số vận hành động cơ thời gian thực (PIDs) qua chuẩn kết nối SAE J1962.
  3. Phát triển hệ thống truyền nhận dữ liệu qua mạng không dây Wi-Fi sử dụng giao thức HTTP POST về máy chủ web.
  4. Xây dựng cơ sở dữ liệu MySQL và giao diện Web 2.0 trực quan hóa tọa độ GPS, vẽ lại lộ trình xe và hiển thị trạng thái động cơ.

Giải pháp mang lại khả năng số hóa toàn diện phương tiện với chi phí phần cứng tối ưu, khả năng đáp ứng thời gian thực và tích hợp linh hoạt vào hạ tầng đám mây sẵn có. Phạm vi nghiên cứu của đề tài tập trung vào các dòng xe ô tô hỗ trợ giao thức CAN (ISO 15765-4), thử nghiệm thực tế trên xe Kia Morning AT 2011 và hệ thống hộp giả lập tín hiệu mạng CAN.


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

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

Thị trường thiết bị giám sát hành trình và chẩn đoán xe hiện nay phân hóa thành hai nhánh sản phẩm chính: hộp đen định vị GPS chuyên dụng (như Viettel V-Tracking, Bình Anh BA-GPS) và đầu đọc OBD-II không dây tầm gần (như ELM327 Bluetooth/Wi-Fi).

Tiêu chí so sánh Hộp đen GPS thương mại (Viettel / Bình Anh) Đầu đọc OBD-II cầm tay (ELM327) Giải pháp của đồ án
Dữ liệu GPS Có (định vị qua 4G/GPS) Không tích hợp GPS độc lập Có (GPS U-blox NEO-6M V2)
Dữ liệu động cơ (CAN/OBD-II) Rất hạn chế (chỉ lấy tín hiệu bật/tắt máy) Đầy đủ thông số PIDs Đầy đủ (Tốc độ, RPM, Tải động cơ, Nhiệt độ)
Kết nối truyền xa 4G/GPRS có đóng phí duy trì Bluetooth/Wi-Fi cục bộ (<10m) Wi-Fi kết nối trực tiếp Internet qua HTTP
Chi phí đầu tư phần cứng Cao (2.000.000 - 4.000.000 VNĐ) Rẻ (150.000 - 300.000 VNĐ) Tối ưu (dưới 700.000 VNĐ)
Tính mở của hệ thống Đóng hoàn toàn (phụ thuộc nhà mạng) Đóng (dùng app bên thứ 3) Mã nguồn mở, dễ dàng mở rộng và tùy biến

Yêu cầu kỹ thuật của hệ thống được phân loại theo mô hình MoSCoW:

  • Must have (Bắt buộc): Đọc chuỗi tọa độ chuẩn NMEA 0183 (chuỗi GGA), truy vấn và tính toán đúng các mã PID tiêu chuẩn (0x0C, 0x0D, 0x05, 0x04), gửi gói tin lên máy chủ web qua HTTP POST và lưu trữ vào CSDL MySQL.
  • Should have (Nên có): Giao diện web responsive hiển thị đồng hồ đo trực quan, tích hợp Google Maps API để vẽ tuyến đường di chuyển trong vòng 1 giờ gần nhất.
  • Could have (Có thể có): Hộp giả lập tín hiệu mạng CAN đa kênh hỗ trợ kiểm thử không cần xe thật.
  • Won't have (Chưa thực hiện): Tích hợp module SIM 4G trực tiếp trên bo mạch và khả năng gửi lệnh điều khiển ngược lại ECU.

Thiết kế hệ thống

Kiến trúc giải pháp được phân tầng rõ ràng từ tầng vật lý (xe cơ giới) đến tầng ứng dụng (người dùng cuối):

+-------------------------------------------------------------------------+
|                              VEHICLE LAYER                              |
|  +---------------------------+             +-------------------------+  |
|  |   Vehicle CAN Bus Network |             |   GPS Satellites (GNSS) |  |
|  |   (ISO 15765-4 / 500kbps) |             |   L1 Signal (1575.42MHz)|  |
|  +-------------+-------------+             +------------+------------+  |
+----------------|----------------------------------------|---------------+
                 | (CAN_H / CAN_L)                        | (RF NMEA)
+----------------v----------------------------------------v---------------+
|                            EMBEDDED HARDWARE                            |
|  +---------------------------+             +-------------------------+  |
|  |   MCP2515 CAN Controller  |             |    NEO-6M GPS Module    |  |
|  |   + TJA1050 Transceiver   |             |    (UART @ 4800/9600)   |  |
|  +-------------+-------------+             +------------+------------+  |
|                | SPI Bus                                | Serial RX/TX  |
|  +-------------v----------------------------------------v------------+  |
|  |                  NodeMCU ESP8266 Microcontroller                  |  |
|  |             - CAN Frame Processor & PID Decoder                   |  |
|  |             - NMEA Parser & Coordinate Normalizer                 |  |
|  |             - Wi-Fi HTTP Client (POST Payload Builder)            |  |
|  +-----------------------------------+-------------------------------+  |
+--------------------------------------|----------------------------------+
                                       | Wi-Fi (HTTP POST JSON/Form)
+--------------------------------------v----------------------------------+
|                            CLOUD SERVER LAYER                           |
|  +-------------------------------------------------------------------+  |
|  |   Web Server (Apache 2.4 / PHP Backend Service)                   |  |
|  |   - Endpoint: /post_data.php (Data validation & parsing)          |  |
|  +-----------------------------------+-------------------------------+  |
|                                      | SQL Insert/Select                |
|  +-----------------------------------v-------------------------------+  |
|  |   Relational Database (MySQL 5.7 / 8.0)                           |  |
|  |   - Tables: tbl_sensor_data, tbl_gps_tracking                     |  |
|  +-----------------------------------+-------------------------------+  |
+--------------------------------------|----------------------------------+
                                       | HTTP GET / JSON API
+--------------------------------------v----------------------------------+
|                            PRESENTATION LAYER                           |
|  +-------------------------------------------------------------------+  |
|  |   Web Dashboard (HTML5, CSS3, JavaScript, Google Maps API)       |  |
|  |   - Real-time gauges: Speedometer, Tachometer, Engine Temp        |  |
|  |   - Dynamic Trajectory Mapping & Historic Path Tracking (1 Hour)  |  |
|  +-------------------------------------------------------------------+  |
+-------------------------------------------------------------------------+

Technology Stack và phiên bản linh kiện

  • Microcontroller: NodeMCU V3 (ESP8266-12E, 32-bit RISC Tensilica Xtensa LX106 @ 80/160MHz, Wi-Fi 802.11 b/g/n tích hợp).
  • CAN Bus Interface: Module MCP2515 (Bộ điều khiển CAN độc lập chuẩn CAN 2.0B) kết hợp bộ thu phát vi sai TJA1050, giao tiếp qua bus SPI tần số 10MHz.
  • GPS Receiver: Module U-blox NEO-6M V2 (độ nhạy -161 dBm, tần số cập nhật 1Hz - 5Hz, hỗ trợ chuẩn NMEA 0183).
  • Cổng kết nối vật lý: Giắc OBD-II 16 chân chuẩn SAE J1962 (Chân 6: CAN-H, Chân 14: CAN-L, Chân 4/5: Mass sườn/tín hiệu, Chân 16: VCC +12V).
  • Phần mềm máy chủ: Máy chủ Apache 2.4, Ngôn ngữ PHP 7.4/8.0, Cơ sở dữ liệu MySQL 5.7.
  • Giao diện frontend: HTML5, CSS3, JavaScript tương tác cùng Google Maps JavaScript API v3.

Thiết kế Cơ sở Dữ liệu (Database Schema)

Cơ sở dữ liệu MySQL được thiết kế với cấu trúc tối ưu cho việc truy vấn theo thời gian và định danh xe:

CREATE TABLE `tbl_vehicle_logs` (
  `id` INT(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `vehicle_id` VARCHAR(20) NOT NULL,
  `latitude` DOUBLE(10, 6) NOT NULL,
  `longitude` DOUBLE(10, 6) NOT NULL,
  `speed` FLOAT NOT NULL,
  `rpm` INT(6) NOT NULL,
  `engine_load` FLOAT NOT NULL,
  `coolant_temp` FLOAT NOT NULL,
  `created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
  INDEX `idx_vehicle_time` (`vehicle_id`, `created_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Thiết kế Giao thức API và Định dạng Truyền dữ liệu

Module NodeMCU ESP8266 đóng gói dữ liệu thu thập được và truyền đến Endpoint http://ngothequangspkt.ga/api/receive_data.php qua phương thức HTTP POST với cấu trúc body:

POST /api/receive_data.php HTTP/1.1
Host: ngothequangspkt.ga
Content-Type: application/x-www-form-urlencoded
Content-Length: 98

api_key=AGY_CAN_SECRET_KEY&lat=10.850549&lng=106.771949&speed=45.5&rpm=1850&load=32.5&temp=86.0

Methodology

Quy trình phát triển hệ thống áp dụng mô hình lặp (Iterative Engineering Workflow) kéo dài trong 12 tuần (từ tháng 09/2022 đến tháng 12/2022):

  1. Tuần 1 - Tuần 3: Khảo sát lý thuyết giao thức CAN 2.0A/B, cấu trúc gói tin NMEA 0183, chuẩn giao tiếp OBD-II và phân tích các chân giắc trên ô tô.
  2. Tuần 4 - Tuần 6: Thiết kế sơ đồ nguyên lý phần cứng, lắp ráp module NodeMCU ESP8266, GPS NEO-6M, MCP2515; thiết kế hộp giả lập dữ liệu CAN để tạo nguồn tín hiệu kiểm thử độc lập.
  3. Tuần 7 - Tuần 9: Lập trình nhúng C++ trên Arduino IDE giải mã dữ liệu NMEA/PIDs; xây dựng backend PHP tiếp nhận dữ liệu và thiết lập CSDL MySQL trên Web Server.
  4. Tuần 10 - Tuần 12: Tích hợp toàn diện phần cứng lên xe Kia Morning AT 2011; hiệu chỉnh thuật toán vẽ lộ trình trên Google Maps và tối ưu hóa thời gian trễ hệ thống.

Implementation và kết quả

Development process

1. Thuật toán giải mã tín hiệu GPS (NMEA 0183)

Dữ liệu thô từ module NEO-6M trả về qua giao tiếp UART dạng chuỗi $GNGGA hoặc $GPGGA:

$GNGGA,000006.263,1051.02860,N,10646.4949,E,1,08,1.0,15.4,M,-2.5,M,,*47

Thuật toán trích xuất tọa độ chuyển đổi định dạng Độ-Phút (DDMM.MMMM) sang Tọa độ thập phân (Decimal Degrees) phục vụ Google Maps API:

$$\text{Latitude (Dec)} = \text{DD} + \frac{\text{MM.MMMM}}{60}$$

// Trích xuất và chuyển đổi chuỗi NMEA $GNGGA trên ESP8266
float parseLatitude(String rawLat, String hemi) {
    if (rawLat.length() == 0) return 0.0;
    float raw = rawLat.toFloat();
    int degrees = (int)(raw / 100);
    float minutes = raw - (degrees * 100);
    float decCoord = degrees + (minutes / 60.0);
    if (hemi == "S") decCoord = -decCoord;
    return decCoord;
}

float parseLongitude(String rawLng, String hemi) {
    if (rawLng.length() == 0) return 0.0;
    float raw = rawLng.toFloat();
    int degrees = (int)(raw / 100);
    float minutes = raw - (degrees * 100);
    float decCoord = degrees + (minutes / 60.0);
    if (hemi == "W") decCoord = -decCoord;
    return decCoord;
}

2. Thuật toán truy vấn và giải mã thông số OBD-II qua CAN Bus

Truy vấn dữ liệu chế độ 1 (Mode 01) yêu cầu gửi bản tin CAN ID chuẩn 0x7DF (8 byte) đến các ECU. Khi nhận phản hồi từ ECU động cơ (0x7E8), vi điều khiển bóc tách 4 byte dữ liệu $A, B, C, D$:

  • Tốc độ vòng tua động cơ (Engine RPM - PID 0x0C): Sử dụng 2 byte dữ liệu $A$ và $B$

$$\text{RPM} = \frac{256 \times A + B}{4}$$

  • Tốc độ xe (Vehicle Speed - PID 0x0D): Sử dụng 1 byte dữ liệu $A$

$$\text{Speed (km/h)} = A$$

  • Nhiệt độ nước làm mát (Coolant Temperature - PID 0x05):

$$\text{ECT }(^\circ\text{C}) = A - 40$$

  • Độ tải động cơ (Calculated Engine Load - PID 0x04):

$$\text{Engine Load }(%) = \frac{A \times 100}{255}$$

Đoạn mã hiện thực giải mã dữ liệu CAN trên ESP8266:

#include <SPI.h>
#include <mcp2515.h>

struct can_frame canMsgReq;
struct can_frame canMsgResp;
MCP2515 mcp2515(15); // CS pin D8 (GPIO15)

void sendPIDRequest(uint8_t pid) {
    canMsgReq.can_id  = 0x7DF;
    canMsgReq.can_dlc = 8;
    canMsgReq.data[0] = 0x02; // Số byte hợp lệ
    canMsgReq.data[1] = 0x01; // Mode 01
    canMsgReq.data[2] = pid;  // Mã PID cần đọc
    canMsgReq.data[3] = 0x00;
    canMsgReq.data[4] = 0x00;
    canMsgReq.data[5] = 0x00;
    canMsgReq.data[6] = 0x00;
    canMsgReq.data[7] = 0x00;
    mcp2515.sendMessage(&canMsgReq);
}

void processCANResponse() {
    if (mcp2515.readMessage(&canMsgResp) == MCP2515::ERROR_OK) {
        if (canMsgResp.can_id == 0x7E8 && canMsgResp.data[1] == 0x41) {
            uint8_t pid = canMsgResp.data[2];
            if (pid == 0x0C) { // RPM
                float rpm = ((canMsgResp.data[3] * 256.0) + canMsgResp.data[4]) / 4.0;
            } else if (pid == 0x0D) { // Speed
                uint8_t speed = canMsgResp.data[3];
            } else if (pid == 0x05) { // Temp
                int temp = (int)canMsgResp.data[3] - 40;
            } else if (pid == 0x04) { // Engine Load
                float load = (canMsgResp.data[3] * 100.0) / 255.0;
            }
        }
    }
}

Đối với một số hệ thống CAN bus trực tiếp (ví dụ F-CAN trên xe Honda/Kia tốc độ 500Kbps), các ID phát định kỳ chuyên dụng cũng được phân tích:

  • Bản tin ID 0x1DC (chu kỳ 20ms): 2 byte $D_1, D_2$ mã hóa RPM (Ví dụ byte 02 EC hex = 748 RPM).
  • Bản tin ID 0x158 (chu kỳ 10ms, 8 byte): 2 byte $D_4, D_5$ mã hóa tốc độ hiển thị (Ví dụ byte 06 1A hex = $1562 \div 100 \approx 15.6\text{ km/h}$).

Testing và validation

Quá trình kiểm thử được thực hiện qua 2 giai đoạn: kiểm thử mô phỏng với Hộp giả lập tín hiệu mạng CAN tự chế và kiểm thử thực nghiệm trên phương tiện thực tế (Kia Morning AT 2011).

Kiểm thử Mô phỏng (Hộp giả lập CAN) -> Kiểm thử Tích hợp Phần cứng -> Thử nghiệm Thực địa Xe Kia Morning

Kết quả đo kiểm hiệu năng hệ thống (Benchmarks)

Chỉ số kiểm thử Giá trị thiết kế / Kế hoạch Kết quả thực tế đạt được Đánh giá trạng thái
Tốc độ truyền mạng CAN 500 kbps (ISO 15765-4) 500 kbps ổn định Đạt 100%
Thời gian khởi động GPS (Cold Start) < 35 giây 27 giây Vượt chỉ tiêu
Thời gian chốt vị trí GPS (Hot Start) < 2 giây 1 giây Xuất sắc
Sai số định vị tọa độ mặt đất < 5 mét 2.5 - 3.8 mét Độ chính xác cao
Độ trễ truyền gói tin HTTP POST < 1000 ms 320 - 450 ms Phản hồi mượt mà
Tần suất cập nhật dữ liệu lên Server 1.0 Hz (1 lần/giây) 1.0 Hz Ổn định, không nghẽn bus
Tỷ lệ mất gói tin qua mạng Wi-Fi < 2.0% 0.8% Khả năng chịu lỗi tốt
Tốc độ vòng tua máy (RPM) phản hồi: 750 RPM (Không tải) -> 2200 RPM (Tăng tốc 50km/h)
Nhiệt độ nước làm mát (ECT):        82°C - 88°C (Dải nhiệt độ làm việc tiêu chuẩn)
Độ tải động cơ (Engine Load):       18% (Không tải) -> 64% (Lên dốc/Tăng ga)

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

Hệ thống đã hoàn thành 100% các tính năng đề ra:

  • Khối phần cứng hoạt động ổn định khi cắm trực tiếp vào cổng OBD-II của xe mà không làm nhiễu loạn đường truyền F-CAN của phương tiện.
  • Module giải mã chuẩn xác các tham số động cơ, sai lệch so với đồng hồ taplo của xe là 0% đối với tốc độ số nguyên và $\pm 1%$ đối với vòng tua máy.
  • Giao diện Web hiển thị bản đồ hành trình liên tục trong vòng 1 giờ, tự động đánh dấu các điểm mốc và cập nhật đồng hồ tốc độ thời gian thực.

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

Các đổi mới kỹ thuật nổi bật

  1. Kết hợp kép giữa Telematics và Chẩn đoán chuyên sâu (OBD-II Telematics Hybrid): Không dừng lại ở việc đọc vị trí tĩnh, module chủ động khai thác sâu vào lớp mạng CAN vật lý, giúp quản lý toàn diện cả "vị trí địa lý" lẫn "sức khỏe cơ khí" của phương tiện.
  2. Kiến trúc phần cứng tối ưu chi phí: Ứng dụng thành công vi điều khiển SoC ESP8266 kết hợp chip chuyên dụng MCP2515 tạo ra giải pháp có giá thành linh kiện thấp hơn 75% so với các bộ ECU tracker chuyên dụng nhập khẩu.
  3. Cơ chế phân tách và lọc gói tin thông minh: Tận dụng bộ lọc mặt nạ phần cứng (Hardware Mask & Filter) của MCP2515 để chỉ tiếp nhận đúng các ID bản tin cần thiết (0x7E8, 0x1DC, 0x158), giải phóng 90% tải xử lý cho vi điều khiển ESP8266.

Đóng góp cho chuyên ngành và học thuật

  • Cung cấp tài liệu thiết kế chi tiết và mã nguồn thực nghiệm kết nối mạng CAN ứng dụng trong ngành Công nghệ Kỹ thuật Ô tô tại Việt Nam.
  • Thiết kế hoàn chỉnh mạch giả lập dữ liệu CAN phục vụ công tác giảng dạy, nghiên cứu và thực hành điện tử ô tô mà không cần vận hành trực tiếp xe cơ giới trong phòng thí nghiệm.

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

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

  • Quản lý đội xe cho doanh nghiệp vận tải nhỏ và vừa: Giám sát hành vi lái xe của tài xế (chạy quá tốc độ, ép số/vòng tua cao, xe dừng nổ máy gây hao hụt nhiên liệu).
  • Dịch vụ cho thuê xe tự lái: Cảnh báo sớm các lỗi kỹ thuật phát sinh trên đường thông qua nhiệt độ nước làm mát và mã lỗi chẩn đoán (DTC), định vị xe phòng ngừa rủi ro mất cắp.
  • Hệ thống bảo dưỡng xe thông minh: Tự động tính toán số km thực tế di chuyển từ dữ liệu CAN bus để lên lịch bảo dưỡng định kỳ chính xác thay vì ước lượng cảm quan.

Phân tích Hiệu quả Kinh tế & Chi phí (Cost-Benefit Analysis)

Chi phí đầu tư 01 thiết bị thương mại (1 năm):
  + Tiền mua thiết bị:        2.500.000 VNĐ
  + Cước thuê bao viễn thông: 1.200.000 VNĐ/năm
  = Tổng chi phí năm đầu:     3.700.000 VNĐ

Chi phí triển khai giải pháp đề tài (1 năm):
  + Module ESP8266 + MCP2515:   180.000 VNĐ
  + Module GPS Neo-6M + Anten:   150.000 VNĐ
  + Nguồn Buck 12V-5V + Giắc:    80.000 VNĐ
  + Vỏ hộp, mạch in PCB:         90.000 VNĐ
  + Hạ tầng Web Hosting/Domain:  200.000 VNĐ (chia trên quy mô 10 xe: 20.000 VNĐ/xe)
  = Tổng chi phí năm đầu:       ~520.000 VNĐ (Tiết kiệm > 85%)

Lộ trình thương mại hóa và mở rộng (Implementation Roadmap)

Giai đoạn 1 (Hiện tại)       Giai đoạn 2 (3-6 tháng)       Giai đoạn 3 (6-12 tháng)
+----------------------+     +----------------------+     +----------------------+
| - Hoàn thiện mẫu     | --> | - Nâng cấp ESP32     | --> | - Sản xuất PCB công  |
|   thực nghiệm        |     | - Tích hợp SIM 4G LTE|     |   nghiệp đạt chuẩn   |
| - Kết nối Wi-Fi xe   |     | - Giao thức MQTT/WSS |     | - Ứng dụng Mobile App|
| - Web dashboard cơ   |     | - Bổ sung cảm biến   |     | - Thuật toán AI cảnh |
|   bản                |     |   gia tốc góc nghiêng|     |   báo hỏng hóc sớm   |
+----------------------+     +----------------------+     +----------------------+

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

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

  • Phụ thuộc kết nối Wi-Fi: Thiết bị hiện sử dụng bộ phát Wi-Fi có sẵn trên xe hoặc điểm phát sóng cá nhân, chưa tích hợp khe cắm SIM 4G trực tiếp trên bo mạch.
  • Giới hạn API bản đồ: Sử dụng gói miễn phí của Google Maps JavaScript API nên dễ gặp lỗi giới hạn tần suất truy vấn (OVER_QUERY_LIMIT) khi mở rộng số lượng lớn phương tiện truy cập đồng thời.
  • Dữ liệu lịch sử: Giao diện hiện chỉ trực quan hóa lộ trình trong khung thời gian 1 giờ gần nhất nhằm giảm tải bộ nhớ đệm trình duyệt.

Hướng phát triển nâng cao

  1. Nâng cấp bộ vi xử lý lên dòng ESP32-WROOM-32 tích hợp sẵn CAN Controller phần cứng bên trong chip, kết hợp module truyền thông di động Quectel A7670C (4G LTE Cat-1).
  2. Chuyển đổi giao thức truyền tải từ HTTP POST dạng đồng bộ sang MQTT (Message Queuing Telemetry Transport) với cơ chế nén gói tin định dạng Protocol Buffers, giảm 80% dung lượng băng thông tiêu thụ.
  3. Tích hợp thư viện bản đồ mã nguồn mở OpenStreetMap / Leaflet để làm chủ hoàn toàn hạ tầng máy chủ bản đồ, loại bỏ chi phí API thương mại.
  4. Bổ sung thuật toán Machine Learning tại máy chủ biên phân tích hành vi phanh gấp, tăng tốc đột ngột từ cảm biến gia tốc MPU6050 để chấm điểm lái xe an toàn.

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

  • Sinh viên ngành Kỹ thuật Ô tô / Điện tử: Nguồn học liệu trực quan, thực chứng về kỹ thuật can thiệp mạng CAN, phân tích giao thức OBD-II và tích hợp IoT thực tế.
  • Kỹ sư phát triển phần mềm nhúng (Embedded Developers): Mẫu kiến trúc xử lý tín hiệu UART GPS kết hợp bus SPI tốc độ cao với MCP2515 trên các hệ thống vi điều khiển bộ nhớ giới hạn.
  • Chủ phương tiện & Doanh nghiệp vừa và nhỏ: Giải pháp quản trị phương tiện tiết kiệm chi phí, theo dõi trực tiếp tình trạng kỹ thuật của xe từ xa mà không cần mua thiết bị đắt tiền.
  • Các nhà nghiên cứu hệ thống giao thông thông minh (ITS): Dữ liệu mẫu (Dataset) chuẩn xác về tốc độ, vòng tua, vị trí xe thực tế phục vụ phân tích mô hình tiêu thụ nhiên liệu và lượng phát thải đô thị.

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

1. Yêu cầu phần cứng tối thiểu trên xe để lắp đặt thiết bị là gì?

Phương tiện cần trang bị cổng chẩn đoán tiêu chuẩn OBD-II (chuẩn 16 chân SAE J1962) sản xuất từ sau năm 1996 (chuẩn ISO 15765-4 đối với mạng CAN bus). Cổng này thường được bố trí trong phạm vi 60 cm tính từ vô lăng lái xe (dưới taplo hoặc hộp cầu chì trong xe).

2. Thiết bị có gây xung đột hay ảnh hưởng đến độ an toàn của ECU trên xe không?

Hoàn toàn không. Module MCP2515 được cấu hình lắng nghe bản tin định kỳ hoặc chỉ gửi các khung dữ liệu yêu cầu chẩn đoán tiêu chuẩn (Standard Mode 01 Request 0x7DF) với mức ưu tiên thấp, được tiêu chuẩn hóa quốc tế và hoàn toàn cách ly về mặt logic với các chức năng an toàn chủ động (phanh ABS, túi khí).

3. Giải pháp nào khắc phục khi xe đi vào khu vực mất sóng Internet/Wi-Fi?

Trong phiên bản mở rộng, vi điều khiển ESP8266/ESP32 sẽ sử dụng bộ nhớ flash nội (SPIFFS / LittleFS) hoặc thẻ nhớ MicroSD gắn ngoài để ghi đệm dữ liệu (Local Data Logging) theo cấu trúc hàng đợi FIFO. Khi phát hiện kết nối mạng phục hồi, hệ thống sẽ tự động đồng bộ tuần tự các gói tin chưa gửi lên máy chủ.

4. Chi phí duy trì hệ thống máy chủ và Web Server ước tính là bao nhiêu?

Với mô hình máy chủ web chạy PHP/MySQL (sử dụng gói Cloud Web Hosting tiêu chuẩn), chi phí duy trì chỉ khoảng 30.000 - 50.000 VNĐ/tháng và có thể phục vụ đồng thời đội xe từ 20 đến 50 phương tiện gửi dữ liệu liên tục.

5. Làm thế nào để mở rộng hệ thống sang giám sát nhiều xe (Fleet Management)?

Cấu trúc cơ sở dữ liệu đã có sẵn trường vehicle_id. Trên phần mềm nhúng, mỗi thiết bị được nạp một mã nhận dạng độc nhất (dựa trên địa chỉ MAC của ESP8266). Giao diện Web chỉ cần bổ sung menu thả xuống (Dropdown Selector) để lọc và hiển thị thông tin từng xe độc lập theo thời gian thực.


Kết luận

Đồ án tốt nghiệp "Thiết kế mạch thu thập dữ liệu và giám sát xe từ xa qua Internet" đã giải quyết triệt để bài toán tích hợp giữa kỹ thuật chẩn đoán điện tử ô tô hiện đại và công nghệ Internet vạn vật (IoT). Bằng việc làm chủ giao thức truyền thông CAN bus, tiêu chuẩn NMEA 0183 và phát triển thành công nền tảng Web 2.0 quản lý tập trung, đề tài đã chứng minh tính khả thi cao về mặt kỹ thuật và giá trị thực tiễn vượt trội về mặt kinh tế.

Đây là tiền đề vững chắc cho việc phát triển các giải pháp hộp đen thông minh thế hệ mới "Made in Vietnam", thúc đẩy quá trình chuyển đổi số trong ngành giao thông vận tải và logistics hiện đại.