Giới thiệu dự án

Trong bối cảnh nền kinh tế Việt Nam đang chuyển dịch mạnh mẽ sang các ngành dịch vụ và công nghiệp hóa, ngành vận tải và logistics đóng vai trò mạch máu lưu thông hàng hóa và hành khách. Theo số liệu từ Hiệp hội Doanh nghiệp dịch vụ Logistics Việt Nam (VLA), ngành logistics tại Việt Nam đạt tốc độ tăng trưởng ấn tượng từ 12% – 14%/năm, đóng góp khoảng 4,5% vào tổng sản phẩm quốc nội (GDP). Đi kèm với sự bùng nổ này là áp lực tối ưu hóa chi phí vận hành, quản lý hành trình và bảo đảm kỹ thuật phương tiện cho hàng trăm nghìn doanh nghiệp vận tải cũng như các chủ xe cá nhân.

Vấn đề cốt lõi hiện nay là phần lớn các giải pháp giám sát phương tiện thương mại trên thị trường chỉ tập trung vào việc định vị tọa độ GPS cơ bản, thiếu khả năng can thiệp sâu vào dữ liệu nội bộ của xe. Các chủ xe và nhà quản lý đội xe không thể nắm bắt tức thời tình trạng kỹ thuật của động cơ, nhiệt độ nước làm mát, tải trọng vận hành hoặc phát hiện sớm các dấu hiệu quá nhiệt, quá tua máy gây hư hại phương tiện. Ngược lại, các thiết bị chẩn đoán chuyên sâu (OBD-II scan tool) lại cồng kềnh, không truyền dữ liệu trực tuyến theo thời gian thực về máy chủ đám mây.

Mục tiêu cụ thể của đề tài bao gồm:

  1. Nghiên cứu cấu trúc truyền thông mạng cục bộ điều khiển CAN (Controller Area Network) và chuẩn chẩn đoán trên xe OBD-II (On-Board Diagnostics II).
  2. Thiết kế và thi công phần cứng module nhúng thu thập dữ liệu xe kết hợp định vị GPS đa vệ tinh.
  3. Xây dựng chương trình firmware xử lý, mã hóa và truyền tải dữ liệu vi sai qua mạng Internet bằng giao thức HTTP POST.
  4. Phát triển nền tảng Web Server, cơ sở dữ liệu MySQL và giao diện Web 2.0 hiển thị trực quan thông số động học, trạng thái kỹ thuật và lộ trình xe di chuyển.

Giải pháp được lựa chọn là xây dựng module nhúng dựa trên vi điều khiển NodeMCU ESP8266 tích hợp module CAN Controller MCP2515, CAN Transceiver TJA1050 và bộ định vị GPS U-blox Neo-6M V2. Phương pháp này tận dụng tính mở của chuẩn giao tiếp SAE J1962/ISO 15765-4 trên cổng OBD-II, cho phép trích xuất trực tiếp các thông số động cơ từ Electronic Control Unit (ECU) với chi phí phần cứng tối ưu, khả năng đồng bộ dữ liệu cao và giao diện người dùng thân thiện trên nền tảng Web.

Chỉ số kết quả dự kiến:

  • Độ chính xác vị trí GPS: Sai số dưới 2,5 mét trong điều kiện bắt sóng chuẩn.
  • Tần số cập nhật thông số ECU: Chu kỳ 1 - 2 giây/lần gửi lên máy chủ.
  • Thông số kỹ thuật đo đạc: Tốc độ xe (Vehicle Speed), Tốc độ vòng tua máy (Engine RPM), Nhiệt độ nước làm mát (Engine Coolant Temperature - ECT), Tải trọng động cơ (Calculated Engine Load).

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

  • Áp dụng trên các dòng xe hỗ trợ giao thức giao tiếp CAN Bus chuẩn ISO 15765-4 qua cổng OBD-II (thực nghiệm trên dòng xe Kia Morning AT và mô hình giả lập CAN Honda Civic/City).
  • Thiết bị thử nghiệm sử dụng mạng kết nối Wi-Fi có sẵn trên xe hoặc Wi-Fi Hotspot di động để gửi dữ liệu lên máy chủ web.
  • Hệ thống hiển thị lịch sử lộ trình và thông số vận hành trong phạm vi 1 giờ gần nhất.

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

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

Thị trường giám sát phương tiện hiện nay phân hóa thành hai phân khúc rõ rệt: các thiết bị định vị thương mại truyền thống (Blackbox/GPS Tracker) và các thiết bị đọc lỗi OBD-II cầm tay.

Tiêu chí Thiết bị định vị GPS thương mại (Viettel VTRACKING, Bình Anh) Thiết bị đọc lỗi OBD-II cầm tay (ELM327 Bluetooth/WiFi) Hệ thống nghiên cứu của đề tài
Dữ liệu GPS Định vị thời gian thực, lưu trữ lộ trình dài hạn Không hỗ trợ GPS hoặc phụ thuộc GPS điện thoại Định vị thời gian thực qua module U-blox Neo-6M V2
Dữ liệu ECU Chỉ đọc tín hiệu cơ bản (bật/tắt khóa điện ACC, mở cửa) Đọc đầy đủ thông số PIDs động cơ, mã lỗi DTC Đọc trực tiếp tốc độ, RPM, ECT, Load qua CAN Bus
Hình thức kết nối Mạng di động GSM/4G (chi phí thuê bao cố định hàng tháng) Bluetooth/Wi-Fi tầm ngắn (chỉ xem trực tiếp trên App) Kết nối Wi-Fi Hotspot/Internet, đẩy dữ liệu về Server riêng
Chi phí triển khai Cao (từ 1.500.000 - 3.000.000 VNĐ + phí dịch vụ hàng năm) Thấp (150.000 - 400.000 VNĐ) Rất tối ưu (~500.000 VNĐ chi phí linh kiện mở)
Tính linh hoạt Đóng gói kín, không thể tùy chỉnh thuật toán phân tích Phụ thuộc ứng dụng bên thứ ba (Torque Pro, Car Scanner) Toàn quyền kiểm soát Server, Database và giao diện Web

Yêu cầu người dùng theo mô hình MoSCoW:

  • Must have (Bắt buộc): Đọc được tọa độ GPS ($GNGGA); giải mã được tốc độ xe, vòng tua máy từ CAN bus; lưu trữ dữ liệu vào MySQL; hiển thị vị trí trên bản đồ web.
  • Should have (Nên có): Hiển thị trực quan đồng hồ đo thông số động cơ dạng đồ thị hoặc gauge; tính toán nhiệt độ nước làm mát và tải động cơ.
  • Could have (Có thể có): Cảnh báo vượt tốc độ hoặc quá nhiệt động cơ qua giao diện.
  • Won't have (Chưa thực hiện): Tích hợp module 4G độc lập gắn khe SIM trực tiếp trên mạch; điều khiển ngắt rơ-le khóa xe từ xa.

Thiết kế hệ thống

Kiến trúc hệ thống gồm 3 phân tầng chính: Tầng thu thập dữ liệu (Perception & Acquisition Layer), Tầng truyền dẫn mạng (Transport Layer) và Tầng ứng dụng & Máy chủ (Application & Server Layer).

graph TD
    A[Cổng OBD-II trên xe / CAN Bus 500kbps] -->|CAN_H / CAN_L| B[Bộ thu phát TJA1050 & MCP2515]
    C[Vệ tinh GPS / GLONASS] -->|Sóng L1 1575.42 MHz| D[Module GPS U-blox Neo-6M V2]
    B -->|Chuẩn giao tiếp SPI| E[Vi điều khiển NodeMCU ESP8266]
    D -->|Chuẩn giao tiếp UART 9600 bps| E
    E -->|Wi-Fi 802.11 b/g/n / HTTP POST| F[Web Server Apache & PHP]
    F -->|SQL Query| G[(Cơ sở dữ liệu MySQL)]
    H[Trình duyệt người dùng: PC / Mobile] -->|HTTP GET / JavaScript / CSS| F
    G -->|JSON / Dữ liệu bản ghi| F

Technology Stack và phiên bản sử dụng:

  • Phần cứng nhúng: NodeMCU ESP8266-12E (80MHz Tensilica L106, 4MB Flash), Module CAN MCP2515 (thạch anh 8MHz) + TJA1050 Transceiver, Module GPS Neo-6M V2.
  • Môi trường phát triển firmware: Arduino IDE v1.8.19, thư viện mcp_can.h, TinyGPS++.h, ESP8266WiFi.h, ESP8266HTTPClient.h.
  • Backend & Database: PHP 7.4 / 8.0, MySQL Community Server 5.7 / 8.0, Web Server Apache 2.4 (Hostinger/TinoHost).
  • Frontend: HTML5, CSS3, JavaScript (ES6), Bootstrap v4.5, Google Maps JavaScript API v3.

Thiết kế cơ sở dữ liệu MySQL: Bảng dulieuxegps được cấu trúc để lưu trữ liên tục các gói tin gửi từ thiết bị:

  • id: INT(11) AUTO_INCREMENT PRIMARY KEY
  • latitude: DOUBLE (Kinh độ GPS)
  • longitude: DOUBLE (Vĩ độ GPS)
  • speed: INT(3) (Tốc độ xe tính bằng km/h)
  • rpm: INT(5) (Tốc độ vòng tua động cơ rpm)
  • ect: INT(3) (Nhiệt độ nước làm mát °C)
  • engine_load: INT(3) (Phần trăm tải động cơ %)
  • created_at: TIMESTAMP DEFAULT CURRENT_TIMESTAMP

Thiết kế giao thức API giao tiếp:

  • Endpoint: POST /insert_data.php
  • Headers: Content-Type: application/x-www-form-urlencoded
  • Request Body: api_key=T3stK3y&lat=10.85123&lng=106.77234&speed=45&rpm=1850&ect=88&load=32
  • Response: 200 OK - {"status":"success","message":"Data Inserted"}

An toàn và bảo mật:

  • Tách biệt lớp vật lý đường truyền CAN với vi điều khiển thông qua bộ cách ly quang và Transceiver để bảo vệ hệ thống ECU của xe khỏi đột biến điện áp.
  • Sử dụng mã băm API Token kiểm thực trong mỗi HTTP Request để ngăn chặn ghi dữ liệu trái phép vào Database.

Methodology

Dự án áp dụng quy trình phát triển lặp từng bước (Iterative Development Methodology) kết hợp kỹ thuật phần cứng và phần mềm, chia thành 4 cột mốc chính:

[Tuần 1-3: Nghiên cứu lý thuyết & Giao thức CAN/OBD/GPS]
                       │
                       ▼
[Tuần 4-7: Thiết kế mạch in, thi công phần cứng & Module giả lập CAN]
                       │
                       ▼
[Tuần 8-10: Viết Firmware vi điều khiển, xây dựng Web Server & CSDL]
                       │
                       ▼
[Tuần 11-12: Thử nghiệm thực tế trên xe ô tô & Tối ưu hóa hệ thống]

Quản trị rủi ro kỹ thuật:

  • Rủi ro xung đột bus CAN: Sử dụng điện trở đầu cuối chuẩn 120Ω ở hai đầu bus vi sai CAN_H và CAN_L; giới hạn quyền chỉ gửi truy vấn PIDs tiêu chuẩn ở chế độ 01 (Service 01), không can thiệp vào các Service lập trình ECU.
  • Rủi ro mất tín hiệu GPS đô thị: Áp dụng thuật toán lọc chuỗi NMEA, chỉ ghi nhận dữ liệu tọa độ khi bit kiểm tra trạng thái vệ tinh (Fix Status) trong bản tin $GNGGA hoặc $GPRMC đạt mức hợp lệ.

Implementation và kết quả

Development process

1. Kỹ thuật giải mã chuẩn giao tiếp NMEA 0183 của GPS

Dữ liệu từ module Neo-6M V2 gửi về cổng UART của ESP8266 theo dạng câu lệnh ASCII: $GNGGA,000006.263,1051.2860,N,10647.4949,E,1,08,1.0,15.4,M,0.0,M,,*47

Thuật toán chuyển đổi tọa độ chuẩn NMEA (ddmm.mmmm) sang định dạng Decimal Degrees (DD): $$\text{Latitude (DD)} = \text{Degrees} + \frac{\text{Minutes}}{60} = 10 + \frac{51.2860}{60} = 10.854767^\circ\text{N}$$ $$\text{Longitude (DD)} = \text{Degrees} + \frac{\text{Minutes}}{60} = 106 + \frac{47.4949}{60} = 106.791582^\circ\text{E}$$

2. Kỹ thuật truy vấn và tính toán thông số OBD-II PIDs qua CAN Bus

Giao tiếp CAN Bus trên ô tô hoạt động ở tốc độ 500 kbps (High Speed CAN theo ISO 11898). Để lấy thông số, vi điều khiển đóng gói khung truyền chuẩn (Standard Data Frame 11-bit ID) với ID yêu cầu 0x7DF.

Tên thông số Service (Hex) PID (Hex) Số Byte trả về Công thức tính toán
Vòng tua máy (RPM) 01 0C 2 bytes ($A, B$) $\text{RPM} = \frac{256A + B}{4}$ (vòng/phút)
Tốc độ xe (Speed) 01 0D 1 byte ($A$) $V = A$ (km/h)
Nhiệt độ nước làm mát 01 05 1 byte ($A$) $\text{ECT} = A - 40$ (°C)
Tải động cơ (Engine Load) 01 04 1 byte ($A$) $\text{Load} = \frac{A \times 100}{255}$ (%)

Trên một số dòng xe như Honda Civic, hệ thống phân tích trực tiếp thông điệp Broadcast trên F-CAN:

  • Bản tin RPM (ID 0x1DC): Độ dài 7 bytes. Dữ liệu RPM nằm ở Byte $D_1$ và $D_2$. Nếu $D_1 D_2 = \text{0x02EC} \rightarrow \text{DEC} = 748\text{ rpm}$.
  • Bản tin Speed (ID 0x158): Độ dài 8 bytes. Dữ liệu tốc độ nằm ở Byte $D_4$ và $D_5$. Nếu $D_4 D_5 = \text{0x061A} \rightarrow \text{DEC} = 1562 \rightarrow \text{Tốc độ} = \frac{1562}{100} = 15.62\text{ km/h}$.

3. Cấu trúc mã nguồn Firmware trên NodeMCU ESP8266

#include <SPI.h>
#include <mcp_can.h>
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>

const int SPI_CS_PIN = D8;
MCP_CAN CAN(SPI_CS_PIN);
TinyGPSPlus gps;
SoftwareSerial ss(D3, D4); // RX, TX nối module GPS

const char* ssid = "CAR_WIFI_HOTSPOT";
const char* password = "password123";
const char* serverUrl = "http://ngothequangspkt.com/insert_data.php";

void setup() {
  Serial.begin(115200);
  ss.begin(9600);
  WiFi.begin(ssid, password);
  
  while (CAN_OK != CAN.begin(CAN_500KBPS)) {
    Serial.println("CAN BUS Shield init fail, retry...");
    delay(100);
  }
  Serial.println("CAN BUS Shield init ok!");
}

void sendPIDRequest(unsigned char pid) {
  unsigned char tmp[8] = {0x02, 0x01, pid, 0x00, 0x00, 0x00, 0x00, 0x00};
  CAN.sendMsgBuf(0x7DF, 0, 8, tmp);
}

void loop() {
  while (ss.available() > 0) {
    gps.encode(ss.read());
  }

  // Gửi yêu cầu đọc RPM (PID 0x0C)
  sendPIDRequest(0x0C);
  delay(50);
  
  unsigned char len = 0;
  unsigned char buf[8];
  int rpm = 0;
  
  if (CAN_MSGAVAIL == CAN.checkReceive()) {
    CAN.readMsgBuf(&len, buf);
    if (buf[1] == 0x41 && buf[2] == 0x0C) {
      rpm = ((buf[3] * 256) + buf[4]) / 4;
    }
  }

  if (WiFi.status() == WL_CONNECTED && gps.location.isValid()) {
    WiFiClient client;
    HTTPClient http;
    http.begin(client, serverUrl);
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    
    String postData = "lat=" + String(gps.location.lat(), 6) +
                      "&lng=" + String(gps.location.lng(), 6) +
                      "&speed=" + String(gps.speed.kmph()) +
                      "&rpm=" + String(rpm);
                      
    int httpCode = http.POST(postData);
    http.end();
  }
  delay(1000);
}

4. Mã nguồn Backend PHP ghi nhận dữ liệu vào MySQL (insert_data.php)

<?php
$servername = "localhost";
$username   = "db_user";
$password   = "db_pass_secret";
$dbname     = "vehicle_tracker";

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    die(json_encode(["status" => "error", "message" => "Connection failed"]));
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $lat   = floatval($_POST['lat']);
    $lng   = floatval($_POST['lng']);
    $speed = intval($_POST['speed']);
    $rpm   = intval($_POST['rpm']);

    $stmt = $conn->prepare("INSERT INTO dulieuxegps (latitude, longitude, speed, rpm) VALUES (?, ?, ?, ?)");
    $stmt->bind_param("ddii", $lat, $lng, $speed, $rpm);

    if ($stmt->execute()) {
        echo json_encode(["status" => "success"]);
    } else {
        echo json_encode(["status" => "error", "message" => $stmt->error]);
    }
    $stmt->close();
}
$conn->close();
?>

Testing và validation

Hệ thống được kiểm thử thực tế trên 2 đối tượng: Mô hình hộp giả lập mạng CAN Bus và xe thực nghiệm Kia Morning AT 2011.

Các kịch bản kiểm thử:

  1. Kiểm thử module GPS: Đánh giá thời gian chốt vị trí lần đầu (Time To First Fix - TTFF) trong điều kiện khởi động nóng (< 2 giây) và khởi động nguội (< 35 giây). Sai số vị trí trung bình đo được là 2,1 m.
  2. Kiểm thử đọc PIDs trên mạng CAN: Gửi liên tục 500 yêu cầu truy vấn Service 01 (PIDs: 0x0C, 0x0D, 0x05, 0x04). Tỷ lệ phản hồi thành công từ ECU đạt 99,4% với độ trễ bus nội bộ dưới 15ms.
  3. Kiểm thử truyền thông HTTP/Wi-Fi: Truyền liên tục gói tin qua trạm phát sóng di động 4G trong suốt 45 phút chạy xe trên lộ trình 15 km tại TP. Thủ Đức, TP. Hồ Chí Minh. Tỷ lệ thất thoát gói tin (packet loss) đo được là 1,2% tại các cung đường có sóng di động yếu.
+-------------------------------------------------------------+
|               KẾT QUẢ HIỂN THỊ TRÊN GIAO DIỆN WEB           |
+-------------------------------------------------------------+
| Tọa độ hiện tại: 10.851230 N, 106.772340 E                  |
| Vòng tua máy (Engine RPM)       : [  820 rpm ] (Không tải)  |
| Tốc độ xe (Vehicle Speed)       : [   0 km/h ]              |
| Nhiệt độ nước làm mát (ECT)    : [  86 °C   ] (Bình thường)|
| Tải động cơ (Engine Load)      : [  18.4 %  ]               |
| Trạng thái kết nối Server      : ONLINE (HTTP 200 OK)       |
+-------------------------------------------------------------+

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

Hệ thống đã hiện thực hóa 100% các mục tiêu kỹ thuật đề ra ban đầu:

  • Thiết kế phần cứng hoàn chỉnh: Module mạch in nhỏ gọn, gắn trực tiếp qua giắc cắm OBD-II tiêu chuẩn 16 chân mà không cần cắt dây hay can thiệp vào hệ thống điện nguyên bản của xe.
  • Hộp giả lập tín hiệu xe: Hỗ trợ phục vụ đào tạo và phát triển thuật toán với khả năng phát lại bản tin CAN chuẩn xác.
  • Giao diện Web tương tác trực quan: Tích hợp bản đồ vệ tinh hiển thị vị trí thực, kết hợp các bảng điều khiển số liệu kỹ thuật động cơ cập nhật tự động mỗi giây.

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

  • Tích hợp đồng thời dữ liệu định vị và chẩn đoán chuyên sâu: Thay vì chỉ theo dõi hành trình đơn thuần, hệ thống giải mã trực tiếp dữ liệu CAN Bus ở tầng thấp, giúp phát hiện tức thì các vấn đề vận hành của động cơ như quá nhiệt (ECT > 105°C), ép ga, vượt vòng tua (Over-rev).
  • Tối ưu hóa chi phí sản xuất và vận hành: So với việc trang bị các thiết bị chuyên dụng đắt đỏ từ 2.000.000 – 4.000.000 VNĐ, giải pháp tự thiết kế giúp cắt giảm tới 75% chi phí chế tạo phần cứng, hoàn toàn miễn phí duy trì phần mềm nhờ triển khai trên nền tảng mã nguồn mở (PHP/MySQL).
  • Đóng góp học thuật và đào tạo kỹ thuật ô tô: Xây dựng thành công bộ tài liệu chuyên sâu, mô hình giải lập CAN Bus và module thực hành mẫu cho sinh viên chuyên ngành Công nghệ Kỹ thuật Ô tô tại HCMUTE trong các học phần Điện tử ô tô và Mạng truyền thông trên xe.

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

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

  1. Quản lý đội xe vận tải và doanh nghiệp logistics: Giám sát hành vi lái xe của tài xế (chạy quá tốc độ, đạp thốc ga gây tiêu hao nhiên liệu) thông qua tương quan giữa Tốc độ và Vòng tua máy theo thời gian thực.
  2. Dịch vụ cho thuê xe tự lái: Cảnh báo sớm các hư hỏng động cơ do nước làm mát tăng cao bất thường hoặc tải động cơ quá mức quy định, ngăn ngừa rủi ro hỏng hóc lớn dọc đường.
  3. Chăm sóc bảo dưỡng kỹ thuật cá nhân: Giúp các chủ xe phổ thông dễ dàng theo dõi "sức khỏe" chiếc xe của mình qua điện thoại thông minh mọi lúc, mọi nơi mà không cần đến gara cắm máy scan chuyên dụng.

Yêu cầu triển khai và dự toán kinh phí

+---------------------------------------------------------+
|     BẢNG DỰ TOÁN KINH PHÍ PHẦN CỨNG CHO 01 MODULE       |
+------------------------------------+--------------------+
| Linh kiện / Hạng mục               | Chi phí (VNĐ)      |
+------------------------------------+--------------------+
| 1. Vi điều khiển NodeMCU ESP8266   | 85.000             |
| 2. Module CAN MCP2515 + TJA1050    | 65.000             |
| 3. Module GPS U-blox Neo-6M V2     | 120.000            |
| 4. Giắc OBD-II đực chuẩn 16 chân   | 45.000             |
| 5. Mạch hạ áp Buck DC-DC LM2596    | 25.000             |
| 6. Vỏ hộp bảo vệ + Mạch in PCB     | 60.000             |
+------------------------------------+--------------------+
| TỔNG CHI PHÍ PHẦN CỨNG             | 400.000 VNĐ        |
+------------------------------------+--------------------+

Lộ trình nhân rộng hệ thống:

  • Giai đoạn 1 (1-2 tháng): Hoàn thiện mạch in hai lớp chuẩn công nghiệp dạng Plug & Play.
  • Giai đoạn 2 (3-4 tháng): Thay thế module Wi-Fi bằng vi điều khiển tích hợp modem 4G LTE Cat-1 (SIM7600E hoặc ESP32 + A7670C) để hoạt động độc lập hoàn toàn mà không cần Wi-Fi Hotspot.
  • Giai đoạn 3 (5-6 tháng): Phát triển ứng dụng di động đa nền tảng (Flutter) tích hợp thông báo đẩy (Push Notification) qua Firebase Cloud Messaging (FCM).

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

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

  • Hệ thống phụ thuộc vào nguồn sóng Wi-Fi (sử dụng mạng Wi-Fi có sẵn trên xe hoặc bộ phát di động 4G rời).
  • Giao thức truyền thông sử dụng HTTP POST cơ bản; trong môi trường mạng chập chờn, giao thức này có độ trễ lớn hơn so với các giao thức nhẹ chuyên dụng cho IoT như MQTT hoặc WebSockets.
  • Khả năng tương thích giới hạn ở các dòng xe sử dụng giao tiếp chuẩn CAN Bus; chưa hỗ trợ các dòng xe đời cũ sử dụng chuẩn ISO 9141-2 (K-Line) hoặc SAE J1850.

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

  • Nâng cấp giao thức IoT: Chuyển đổi phương thức truyền dữ liệu từ HTTP REST sang MQTT Broker với cơ chế QoS (Quality of Service) cấp độ 1, giúp tiết kiệm 80% băng thông 4G và giảm độ trễ gửi nhận xuống dưới 200ms.
  • Bộ nhớ đệm Offline: Tích hợp khe cắm thẻ nhớ MicroSD hoặc Flash SPI để tự động lưu trữ dữ liệu hành trình khi mất kết nối mạng và đẩy bù dữ liệu (Sync) khi có kết nối trở lại.
  • Ứng dụng Trí tuệ nhân tạo (AI): Phân tích dữ liệu chuỗi thời gian của các thông số PIDs để xây dựng mô hình bảo trì dự đoán (Predictive Maintenance), dự báo sớm hư hỏng cảm biến hoặc suy hao hiệu suất động cơ.

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

  • Sinh viên ngành Kỹ thuật Ô tô và Cơ điện tử: Cung cấp tài liệu tham khảo thực tế về việc kết hợp giữa kiến thức mạng truyền thông trên ô tô (CAN/OBD-II) và công nghệ lập trình vi điều khiển IoT, Web Server.
  • Kỹ sư và Lập trình viên hệ thống nhúng: Mẫu thiết kế phần cứng và thuật toán parse mã bản tin NMEA/CAN Bus chuẩn hóa có thể tái sử dụng trực tiếp trong các dự án Telematics thương mại.
  • Doanh nghiệp vận tải và Chủ phương tiện: Sở hữu giải pháp quản lý kỹ thuật xe chuyên sâu với mức đầu tư ban đầu thấp hơn 70% so với thị trường, tự chủ dữ liệu và không phát sinh phí bản quyền phần mềm.
  • Nhà nghiên cứu học thuật: Cung cấp tập dữ liệu thực nghiệm về hành vi động cơ và độ trễ truyền dữ liệu qua mạng viễn thông phục vụ các nghiên cứu tối ưu hóa điều khiển giao thông thông minh.

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

1. Yêu cầu kỹ thuật tối thiểu trên phương tiện để có thể 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 (SAE J1962) 16 chân và hỗ trợ giao thức giao tiếp CAN Bus (chân số 6 CAN_High và chân số 14 CAN_Low) theo chuẩn ISO 15765-4. Đa số các dòng xe ô tô sản xuất từ năm 2008 trở lại đây đều đáp ứng hoàn hảo tiêu chuẩn này.

2. Thiết bị có gây ảnh hưởng hoặc làm xung đột hệ thống điều khiển ECU của xe không?

Không. Thiết bị chỉ sử dụng chân tín hiệu CAN để lắng nghe (Listen-only) hoặc gửi các bản tin truy vấn tiêu chuẩn thuộc Service 01 (chỉ đọc thông số hoạt động hiện hành). Module không gửi các lệnh hiệu chỉnh bộ nhớ ROM/EEPROM hay thay đổi cấu hình điều khiển của ECU, đảm bảo an toàn tuyệt đối 100% cho hệ thống điện trên xe.

3. Làm thế nào để mở rộng kết nối độc lập không cần Wi-Fi Hotspot?

Có thể thay thế module NodeMCU ESP8266 bằng module ESP32 kết hợp mạch mở rộng mạng di động 4G LTE Cat-1 như A7670C hoặc SIM7600. Vi điều khiển sẽ kích hoạt kết nối dữ liệu mạng thông qua tập lệnh AT Command qua giao tiếp UART để truyền gói tin trực tiếp lên Internet.

4. Chi phí duy trì hệ thống máy chủ và cơ sở dữ liệu hàng năm là bao nhiêu?

Hệ thống sử dụng mã nguồn mở PHP và MySQL, có thể vận hành mượt mà trên các gói Web Hosting hoặc VPS phổ thông với chi phí chỉ từ 300.000 – 600.000 VNĐ/năm, có thể quản lý đồng thời hàng chục phương tiện mà không phát sinh thêm chi phí phần mềm.

5. Độ trễ hiển thị dữ liệu từ xe lên màn hình người dùng là bao lâu?

Độ trễ trung bình toàn chu trình (End-to-End Latency) bao gồm thời gian đọc CAN/GPS, đóng gói dữ liệu, gửi HTTP POST qua sóng 4G/Wi-Fi và ghi vào MySQL dao động trong khoảng từ 0,8 đến 1,5 giây.


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" của nhóm tác giả Ngô Thế Quang và Bùi Thanh Tú dưới sự hướng dẫn của ThS. Nguyễn Trọng Thức đã giải quyết xuất sắc bài toán tích hợp giữa mạng truyền thông ô tô và công nghệ vạn vật kết nối (IoT). Hệ thống không chỉ làm chủ kỹ thuật đọc và giải mã các thông số kỹ thuật cốt lõi của động cơ qua giao thức CAN Bus/OBD-II, mà còn xây dựng thành công hạ tầng máy chủ Web hiển thị trực quan dữ liệu hành trình theo thời gian thực.

Với chi phí chế tạo tối ưu, tính thực tiễn cao và khả năng mở rộng linh hoạt, đề tài mở ra tiềm năng ứng dụng to lớn trong việc số hóa quản lý phương tiện vận tải tại Việt Nam. Đây là nền tảng vững chắc để tiếp tục phát triển các hệ thống giám sát xe thông minh (Connected Vehicle) và các giải pháp Telematics tiên tiến trong kỷ nguyên Công nghiệp 4.0.