Bối cảnh và vấn đề nghiên cứu
Ngành công nghiệp ô tô tại Việt Nam ghi nhận sự tăng trưởng mạnh mẽ trong những năm gần đây. Theo số liệu thống kê của Hiệp hội các nhà sản xuất ô tô Việt Nam (VAMA) năm 2022, thị trường đã tiêu thụ hơn 490.000 xe ô tô các loại, tăng 33% so với năm 2021. Sự gia tăng về nhu cầu phương tiện đặt ra yêu cầu nâng cao về chất lượng, an toàn và các giải pháp tiện ích cho người sử dụng. Trong các dòng xe hiện đại, việc điều khiển và vận hành hầu hết được đảm nhiệm bởi hệ thống nhúng thông qua các bộ điều khiển điện tử (Electronic Control Units - ECU). Số lượng thiết bị điện tử gia tăng làm tăng khối lượng dây dẫn và độ phức tạp của hệ thống, dẫn đến việc ứng dụng mạng nối tiếp tốc độ cao Controller Area Network (CAN) làm tiêu chuẩn giao tiếp chung trên ô tô.
Trên nền tảng mạng CAN, chuẩn giao thức On-Board Diagnostics II (OBD-II) được tiêu chuẩn hóa bắt buộc trên ô tô từ năm 1996 tại Mỹ và từ năm 2001 tại Châu Âu cùng Nhật Bản. Giao thức này cho phép giám sát các hệ thống động cơ, khí thải, đồng thời truy xuất các mã chẩn đoán lỗi (Diagnostic Trouble Code - DTC). Đề tài "Thiết kế và thi công hệ thống giám sát và chẩn đoán trên ô tô" do nhóm sinh viên Trần Mạc Gia Phong và Trần Lam Nhật Vy thực hiện dưới sự hướng dẫn của ThS. Trương Quang Phúc tại Trường Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh (khoá 2019, chuyên ngành Công nghệ Kỹ thuật Điện tử - Viễn thông Chất lượng cao) nhằm mục đích nghiên cứu cấu trúc truyền thông ô tô và xây dựng hệ thống thu thập, cảnh báo thông số kỹ thuật theo thời gian thực.
Mục tiêu nghiên cứu của đề tài bao gồm 6 nhiệm vụ cụ thể:
- Nghiên cứu nguyên lý hoạt động của vi điều khiển 32-bit ARM Cortex®-M4 STM32F103C8T6, kết hợp hai module giao tiếp CAN để truyền nhận dữ liệu và kết nối với máy tính đơn bo Raspberry Pi 4 thiết lập phần cứng xử lý trung tâm.
- Tìm hiểu cấu trúc và cơ chế hoạt động của giao thức OBD-II, tiến hành mô phỏng khung dữ liệu thô của giao thức để tạo dữ liệu cho các thông số vận hành của ô tô.
- Nghiên cứu công nghệ đám mây và xây dựng máy chủ trên nền tảng cơ sở dữ liệu thời gian thực Firebase Realtime Database nhằm lưu trữ và đồng bộ hóa dữ liệu.
- Sử dụng ngôn ngữ Dart và framework Flutter để thiết kế giao diện ứng dụng di động, tích hợp giao diện lập trình ứng dụng (API) giao tiếp với Firebase.
- Thiết kế giao diện hiển thị trên màn hình LCD (Dashboard) thông qua nền tảng Node-RED chạy trực tiếp tại xe.
- Thi công mô hình thực nghiệm và kiểm tra hiệu suất hoạt động của toàn bộ hệ thống.
Đối tượng nghiên cứu của khóa luận là hệ thống truyền nhận dữ liệu OBD-II trên nền mạng CAN và cơ chế giám sát 5 thông số vận hành chính của xe gồm: tốc độ động cơ (RPM), vận tốc ô tô, nhiệt độ động cơ, mức nhiên liệu và quãng đường di chuyển. Phạm vi nghiên cứu được thực hiện tại phòng thí nghiệm trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh trong thời gian từ tháng 09/2023 đến tháng 01/2024, trong đó dữ liệu xe được giả lập từ các vi điều khiển ngoại vi theo định dạng khung chuẩn OBD-II.
Cơ sở lý thuyết và phương pháp
Khóa luận dựa trên các cơ sở lý thuyết truyền thông công nghiệp và công nghệ phần mềm:
- Giao thức CAN: Hoạt động theo kiến trúc đường truyền chia sẻ (BUS) với cơ chế đa truy cập cảm nhận sóng mang kết hợp phát hiện xung đột và phân xử theo quyền ưu tiên thông điệp (CSMA/CD+AMP). Mạng sử dụng hai dây vi sai CAN_HIGH và CAN_LOW nối với hai điện trở đầu cuối 120 $\Omega$ để giảm phản xạ tín hiệu. Dữ liệu được truyền qua 4 loại khung: Khung dữ liệu (Data Frame), Khung yêu cầu (Remote Frame), Khung báo lỗi (Error Frame) và Khung báo tràn (Overload Frame). Cấu trúc khung dữ liệu gồm 7 trường: trường bắt đầu khung (SOF 1 bit), trường phân xử (Arbitration Field 12 bit đối với chuẩn 2.0A hoặc 32 bit đối với chuẩn 2.0B), trường điều khiển (Control Field 6 bit gồm DLC 4 bit), trường dữ liệu (Data Field 0-8 byte), trường kiểm tra (CRC 16 bit), trường báo nhận (ACK 2 bit) và trường kết thúc (EOF 7 bit).
- Chuẩn giao thức OBD-II: Hoạt động theo mô hình yêu cầu/phản hồi (Request/Response) đóng gói trên khung truyền CAN 11 bit. Địa chỉ ID của khung yêu cầu là
0x7DF, địa chỉ khung phản hồi từ ECU dao động trong dải 0x7E8 - 0x7DF. Cấu trúc gói tin gồm trường độ dài, trường chế độ (Mode 01 đến Mode 0A, trong đó Mode 01 dùng để đọc dữ liệu hiện hành), trường mã định danh thông số (Parameter ID - PID từ 0x00 đến 0xFF) và trường dữ liệu (0-4 byte giá trị số HEX cần chuyển đổi sang đơn vị vật lý).
- Nền tảng công nghệ và phần mềm:
- Flutter và Dart: Framework mã nguồn mở phát triển giao diện ứng dụng di động đa nền tảng theo kiến trúc cây Widget, hỗ trợ cơ chế biên dịch JIT/AOT và tính năng Hot Reload.
- Firebase Realtime Database: Cơ sở dữ liệu NoSQL lưu trữ dưới định dạng JSON, hỗ trợ đồng bộ dữ liệu thời gian thực và lưu trữ ngoại tuyến.
- Node-RED: Công cụ lập trình theo luồng dữ liệu (flow-based) trên nền tảng trình duyệt để xây dựng bảng điều khiển Dashboard.
- Giao thức HTTP: Giao thức ứng dụng trao đổi dữ liệu không trạng thái (Connectionless) theo mô hình Client/Server qua các phương thức GET và POST.
- Phần cứng sử dụng: Máy tính nhúng Raspberry Pi 4 (vi xử lý SoC lõi Cortex-A72, nguồn 5V/3A, chạy hệ điều hành Linux), vi điều khiển STM32F103C8T6, mạch Arduino Nano, module mở rộng RS485 CAN HAT (tích hợp bộ điều khiển CAN MCP2515) và màn hình LCD cảm ứng 7 inch.
Phương pháp nghiên cứu thực hiện qua ba hướng tiếp cận:
- Phương pháp tổng hợp và phân tích lý thuyết: Khảo sát tài liệu kỹ thuật về CAN, OBD-II, sơ đồ chân và thông số phần cứng.
- Phương pháp mô hình hóa: Thiết kế sơ đồ khối, sơ đồ nguyên lý phần cứng, phân chia các luồng dữ liệu và xây dựng lưu đồ giải thuật cho toàn bộ hệ thống.
- Phương pháp thực nghiệm: Thi công mô hình mạch thực tế, cấu hình truyền nhận dữ liệu trên bus CAN, nạp chương trình vi điều khiển, kiểm tra tính đúng đắn của dữ liệu chuyển đổi và kiểm thử hoạt động cảnh báo.
Thiết kế và triển khai
Hệ thống được thiết kế theo cấu trúc phân tầng gồm ba khối chức năng chính:
| Khối chức năng |
Phần cứng / Nền tảng |
Vai trò và nhiệm vụ kỹ thuật |
| Khối xử lý dữ liệu (Mô phỏng ECU) |
STM32F103C8T6, Arduino Nano, Bộ thu phát CAN |
Arduino Nano đóng vai trò gửi các khung yêu cầu dữ liệu (Request Frame). STM32F103C8T6 mô phỏng hoạt động của ECU ô tô, tiếp nhận khung yêu cầu và tính toán phản hồi các khung dữ liệu (Response Frame) chứa 5 thông số xe dạng mã HEX qua đường truyền CAN BUS vi sai. |
| Khối xử lý trung tâm |
Raspberry Pi 4, Module RS485 CAN HAT |
Giao tiếp với CAN BUS thông qua module CAN HAT qua giao tiếp SPI. Thực hiện thu thập các khung dữ liệu thô OBD-II, giải mã các byte HEX thành đại lượng vật lý thực tế. Đóng vai trò máy chủ cục bộ chạy Node-RED và gửi dữ liệu lên Firebase qua giao thức HTTP POST. |
| Khối giao diện người dùng |
Màn hình LCD 7 inch (cục bộ), Ứng dụng Flutter (từ xa) |
Màn hình LCD 7 inch hiển thị Dashboard Node-RED kết nối trực tiếp với Raspberry Pi 4 qua cổng HDMI/DSI, hoạt động không cần Internet. Ứng dụng di động Flutter đọc dữ liệu từ Firebase Realtime Database qua HTTP GET, hiển thị thông số và kích hoạt giao diện cảnh báo khi có thông số vượt ngưỡng. |
Quy trình giải thuật phần mềm bao gồm:
- Giải thuật truyền nhận CAN: Arduino gửi yêu cầu với ID
7DF. STM32 kiểm tra cờ nhận; nếu đúng định dạng, vi điều khiển phân tích PID, trích xuất dữ liệu cảm biến tương ứng, đóng gói thành khung phản hồi với ID 7E8 và đẩy ngược lại đường truyền.
- Giải thuật khối trung tâm: Raspberry Pi liên tục lắng nghe mạng CAN. Khi phát hiện khung dữ liệu từ
7E8, hệ thống kiểm tra độ dài dữ liệu, đối chiếu chế độ và PID, sau đó áp dụng công thức giải mã vật lý. Dữ liệu sau xử lý được đồng thời đẩy vào luồng Node-RED nội bộ và đóng gói chuỗi JSON gửi lên endpoint của Firebase.
- Giải thuật hiển thị và cảnh báo: Tại ứng dụng di động và màn hình LCD, các biến trạng thái liên tục so sánh giá trị nhận được với các ngưỡng an toàn định trước. Nếu phát hiện giá trị bất thường, hệ thống bật sáng biểu tượng cảnh báo và chuyển hướng sang màn hình thông báo nguy hiểm.
Nội dung chính theo từng chương
Chương 1: Tổng quan
Chương 1 giới thiệu khái quát về sự phát triển của công nghiệp ô tô thế giới và Việt Nam, trích dẫn dữ liệu tiêu thụ xe của VAMA năm 2022. Tác giả phân tích nhu cầu tích hợp hệ thống nhúng với IoTs và điện toán đám mây nhằm giảm thiểu hệ thống dây nối qua mạng CAN và giao thức OBD-II. Phần tổng quan lược khảo các nghiên cứu trong nước:
- Nghiên cứu của nhóm tác giả sử dụng thiết bị OBD-II Wi-Fi đo tốc độ, mức tiêu hao nhiên liệu và vòng tua trên xe Hyundai i20 (đời 2010) khi vận hành thực tế qua đèo Hải Vân và trong đô thị.
- Nghiên cứu ứng dụng OBD-II xác định suất tiêu hao nhiên liệu nhằm đưa ra khuyến cáo tiết kiệm năng lượng và giảm phát thải.
- Đề tài thiết kế mô hình dạy học hệ thống điều khiển động cơ Diesel thu thập tín hiệu qua Arduino và thiết bị chẩn đoán Techstream.
Đối với nghiên cứu quốc tế, tác giả trích dẫn các công trình giám sát tình trạng phương tiện dựa trên chuẩn OBD-II và nghiên cứu bảo mật mạng CAN sử dụng bộ vi điều khiển DSP-F28335 cùng phần mềm CANoe. Từ các dữ liệu này, chương xác lập 6 mục tiêu, phương pháp nghiên cứu và bố cục tổng quát của báo cáo.
Chương 2: Cơ sở lý thuyết
Chương 2 trình bày chi tiết các cơ sở lý thuyết kỹ thuật:
- Cấu tạo mạng CAN, nguyên lý phân xử bus CSMA/CD+AMP, cấu trúc 4 loại khung truyền CAN. Tác giả lập bảng so sánh hai phiên bản CAN 2.0A và CAN 2.0B:
| Đặc tính kỹ thuật |
CAN 2.0A (Tiêu chuẩn) |
CAN 2.0B (Mở rộng) |
| Độ dài trường ID |
11 bit |
29 bit |
| Tốc độ truyền |
Cố định |
Không cố định |
| Tính tương thích |
Không tương thích với CAN 2.0B |
Tương thích ngược với CAN 2.0A |
| Độ dài kiểm tra CRC |
15 bit |
17 bit |
- Cấu trúc khung OBD-II, phân loại 10 chế độ hoạt động (Mode 01 đến Mode 0A) và các dải mã PID:
- Mode 01: Yêu cầu dữ liệu chẩn đoán động cơ và hệ thống kiểm soát khí thải hiện tại.
- Mode 02: Lấy dữ liệu khung đóng băng (Freeze Frame) tại thời điểm phát hiện lỗi.
- Mode 03 & Mode 07: Đọc mã lỗi DTC liên quan đến khí thải (phát hiện trong chu kỳ lái hiện tại hoặc đã xác nhận).
- Mode 04: Xóa các mã lỗi DTC và dữ liệu khung đóng băng.
- Mode 09: Đọc thông tin phương tiện (số khung VIN, mã hiệu xe).
- Dải PID:
0x00 - 0x20 (thông số động cơ chung như tốc độ, nhiệt độ, áp suất); 0x21 - 0x3F (thông số hệ thống khí thải, cảm biến oxy, NOx); 0x40 - 0x5F (hệ thống an toàn TPMS, ABS).
- Nguyên lý hoạt động của framework Flutter, ngôn ngữ hướng đối tượng Dart, các tính năng của Firebase Realtime Database (lưu trữ JSON, đồng bộ NoSQL), kiến trúc luồng dữ liệu Node-RED, mô hình Request/Response của HTTP.
- Thông số kỹ thuật chi tiết của phần cứng: Vi điều khiển STM32F103C8T6, Arduino Nano, máy tính đơn bo Raspberry Pi 4, module mở rộng RS485 CAN HAT và màn hình màu LCD 7 inch.
Chương 3: Thiết kế hệ thống
Chương 3 thuyết minh các bước tính toán và thiết kế:
- Xây dựng đặc tả hệ thống và mô hình tổng quát. Phân tích nguyên lý làm việc của từng khối chức năng.
- Thiết kế phần cứng: Sơ đồ chân kết nối vi điều khiển STM32F103C8T6 làm nhiệm vụ giả lập tín hiệu; kết nối bộ thu phát CAN; sơ đồ giao tiếp ngoại vi của Raspberry Pi 4 qua các cổng GPIO, SPI nối với CAN HAT và cổng xuất hình ảnh sang màn hình LCD 7 inch; thiết kế đường nguồn và bảo vệ hệ thống.
- Thiết kế phần mềm: Xây dựng các lưu đồ giải thuật:
- Lưu đồ giải thuật truyền nhận dữ liệu trên CAN BUS.
- Lưu đồ xử lý và giải mã khung dữ liệu OBD-II tại khối xử lý trung tâm.
- Lưu đồ thuật toán kết nối và đẩy dữ liệu lên cơ sở dữ liệu Firebase.
- Lưu đồ điều hướng người dùng trên ứng dụng di động (màn hình xác thực đăng nhập tài khoản, màn hình hiển thị trực quan 5 thông số vận hành).
- Lưu đồ giao diện Dashboard Node-RED hiển thị trên màn hình LCD đặt trong khoang lái ô tô.
Chương 4: Kết quả
Chương 4 công bố kết quả kiểm thử thực nghiệm:
- Lắp ráp hoàn chỉnh mô hình phần cứng gồm các vi điều khiển, module CAN và Raspberry Pi 4 được kết nối trên khung thử nghiệm.
- Kiểm tra tính đúng đắn của chu trình truyền nhận khung tin OBD-II qua bus CAN:
- Khung yêu cầu từ Arduino Nano:
7DF 02 01 0D (Yêu cầu thông số vận tốc ô tô - Vehicle Speed).
- Khung dữ liệu phản hồi từ STM32F103C8T6:
7E8 03 41 0D 32 (Dữ liệu byte 0x32 chuyển đổi thành vận tốc $50 \text{ km/h}$).
- Ghi nhận việc truyền nhận ổn định các thông số khác: tốc độ vòng tua động cơ (RPM), nhiệt độ nước làm mát động cơ, mức nhiên liệu còn lại và quãng đường tích lũy.
- Dữ liệu thô sau khi được Raspberry Pi xử lý được đẩy thành công lên Firebase Realtime Database dưới cấu trúc JSON và cập nhật theo thời gian thực.
- Giao diện người dùng:
- Màn hình LCD 7 inch hiển thị đầy đủ bảng điều khiển Node-RED với các đồng hồ đo thông số và biểu tượng cảnh báo tương ứng khi thông số vượt ngưỡng an toàn.
- Ứng dụng di động Flutter vận hành ổn định trên thiết bị di động, bao gồm trang đăng nhập xác thực và trang bảng tin theo dõi từ xa. Khi phát hiện nhiệt độ động cơ quá cao, vận tốc vượt giới hạn, vòng tua động cơ vượt ngưỡng hoặc mức nhiên liệu giảm xuống thấp, ứng dụng hiển thị thông báo cảnh báo tức thời.
Chương 5: Hướng phát triển
Chương 5 tóm tắt các kết quả đạt được về mặt thi công phần cứng, giải mã giao thức và lập trình ứng dụng. Đồng thời, tác giả phân tích các mặt hạn chế của đề tài và đề xuất các giải pháp kỹ thuật nhằm nâng cấp hệ thống trong tương lai.
Kết quả và đóng góp
Khóa luận đã hoàn thành các nội dung kỹ thuật đặt ra với các kết quả cụ thể:
- Chế tạo thành công mô hình phần cứng tích hợp hoàn chỉnh bao gồm STM32F103C8T6, Arduino Nano, Raspberry Pi 4, Module RS485 CAN HAT và màn hình LCD 7 inch.
- Thiết lập thành công mạng truyền thông CAN nội bộ tốc độ cao với 2 điện trở đầu cuối 120 $\Omega$, thực hiện chính xác chu trình gửi khung yêu cầu (
ID: 0x7DF) và nhận khung phản hồi (ID: 0x7E8) theo đúng quy chuẩn giao thức OBD-II Mode 01.
- Giải mã thành công dữ liệu HEX sang các giá trị vật lý thời gian thực đối với 5 thông số kỹ thuật then chốt của ô tô: tốc độ động cơ, vận tốc xe, nhiệt độ động cơ, mức nhiên liệu và quãng đường đã đi.
- Triển khai giải pháp hiển thị kép (Dual-interface):
- Giao diện Dashboard nội bộ bằng Node-RED hiển thị trực tiếp tại khoang lái trên màn hình LCD 7 inch, độc lập hoàn toàn với kết nối mạng Internet.
- Giao diện giám sát từ xa bằng ứng dụng Flutter trên điện thoại thông minh, nhận dữ liệu đồng bộ qua Firebase Realtime Database.
- Hiện thực hóa tính năng cảnh báo an toàn trên cả hai giao diện khi các thông số vượt ngưỡng cài đặt (quá tốc độ động cơ, quá vận tốc ô tô, quá nhiệt độ nước làm mát, cảnh báo mức nhiên liệu thấp).
Về mặt đóng góp khoa học và thực tiễn, đề tài cung cấp tài liệu kỹ thuật chi tiết về cấu trúc đóng gói khung tin CAN/OBD-II, chứng minh tính khả thi của việc sử dụng các linh kiện nhúng chi phí thấp để xây dựng hệ thống chẩn đoán trên ô tô, kết nối hạ tầng nhúng với dịch vụ điện toán đám mây IoT.
Hạn chế và hướng nghiên cứu tiếp
Khóa luận ghi nhận các hạn chế kỹ thuật:
- Hệ thống dữ liệu đầu vào hiện tại mới được tạo ra bằng phương pháp mô phỏng và giả lập từ các vi điều khiển ngoại vi (STM32F103C8T6 và Arduino Nano), chưa được đấu nối và thử nghiệm trực tiếp trên cổng kết nối OBD-II vật lý của xe ô tô thực tế đang tham gia giao thông.
- Chức năng chẩn đoán lỗi mới dừng lại ở mức độ giám sát thông số và cảnh báo vượt ngưỡng an toàn dựa trên Mode 01, chưa khai thác đầy đủ các chế độ chẩn đoán chuyên sâu như đọc mã sự cố chẩn đoán DTC (Mode 03, Mode 07) hay xóa mã lỗi hệ thống (Mode 04).
Hướng phát triển được tác giả đề xuất:
- Kết nối và kiểm nghiệm hoạt động của thiết bị trực tiếp trên cổng giao tiếp OBD-II tiêu chuẩn của các dòng xe ô tô thương mại thực tế.
- Mở rộng chức năng phần mềm để đọc, phân tích và thực hiện xóa các mã lỗi chẩn đoán DTC tiêu chuẩn của nhà sản xuất.
- Bổ sung các cảm biến vật lý thực tế vào mô hình và nghiên cứu tích hợp thuật toán trí tuệ nhân tạo (AI) nhằm phân tích phong cách lái xe, dự đoán nguy cơ hỏng hóc cơ học và lập lịch bảo dưỡng xe tự động.
- Tối ưu hóa kích thước mạch phần cứng, thiết kế vỏ hộp công nghiệp chuyên dụng và tích hợp bộ chuyển đổi nguồn chịu tải phù hợp với tiêu chuẩn điện áp của ắc-quy ô tô.
Giá trị tham khảo
Báo cáo khóa luận là tài liệu tham khảo cho sinh viên, giảng viên và kỹ sư thuộc các ngành:
- Công nghệ Kỹ thuật Điện tử - Viễn thông.
- Kỹ thuật Cơ điện tử.
- Kỹ thuật Ô tô.
- Kỹ thuật Máy tính và Hệ thống Nhúng & IoT.
Tài liệu cung cấp cơ sở dữ liệu chuyên môn về cách thức thiết lập đường truyền mạng CAN BUS, cách xử lý xung đột tín hiệu và phân bổ trường dữ liệu. Đặc biệt, nội dung Chương 2 và Chương 3 trình bày chi tiết phương pháp bóc tách cấu trúc khung tin OBD-II theo bảng mã PID, quy trình chuyển đổi số HEX thành đại lượng đo lường vật lý, cùng mô hình kết nối liên tầng từ vi điều khiển đến máy tính nhúng, cơ sở dữ liệu thời gian thực và giao diện ứng dụng di động.
Câu hỏi thường gặp
1. Khóa luận giám sát và cảnh báo cụ thể những thông số vận hành nào của ô tô?
Hệ thống giám sát 5 thông số vận hành: tốc độ vòng tua động cơ (Engine RPM), vận tốc di chuyển của ô tô (Vehicle Speed), nhiệt độ nước làm mát động cơ (Engine Coolant Temperature), mức nhiên liệu trong bình chứa (Fuel Level) và quãng đường ô tô đã đi (Distance Traveled / Odometer).
2. Cấu trúc khung truyền dữ liệu OBD-II trên mạng CAN trong đề tài được định dạng như thế nào?
Gói tin hoạt động theo mô hình yêu cầu/phản hồi 11 bit ID. Khung yêu cầu có ID cố định là 7DF (ví dụ yêu cầu vận tốc xe: 7DF 02 01 0D), trong đó 02 là độ dài byte dữ liệu còn lại, 01 là Mode 01 và 0D là mã PID của tốc độ xe. Khung phản hồi mang địa chỉ ID 7E8 (ví dụ: 7E8 03 41 0D 32), trong đó 03 là độ dài byte dữ liệu còn lại, 41 biểu thị phản hồi cho Mode 01, 0D là mã PID và 32 là giá trị dữ liệu thô dạng HEX (tương ứng $50 \text{ km/h}$).
3. Phần cứng của hệ thống phân chia chức năng giữa các vi điều khiển và máy tính nhúng như thế nào?
Mạch Arduino Nano đóng vai trò gửi khung yêu cầu dữ liệu. Vi điều khiển STM32F103C8T6 đóng vai trò giả lập ECU ô tô tiếp nhận yêu cầu và tạo các khung dữ liệu phản hồi tương ứng. Máy tính nhúng Raspberry Pi 4 kết hợp module RS485 CAN HAT đóng vai trò khối xử lý trung tâm, có nhiệm vụ thu nhận dữ liệu từ CAN BUS, giải mã byte HEX thành số đo vật lý, cấp dữ liệu cho bảng điều khiển Node-RED tại xe và truyền dữ liệu lên cơ sở dữ liệu Firebase.
4. Hệ thống xử lý việc hiển thị thông số và cảnh báo cho người dùng ra sao trong điều kiện có và không có Internet?
Khi không có kết nối Internet (ngoại tuyến), người lái vẫn theo dõi trực tiếp các thông số và cảnh báo lỗi trên màn hình LCD 7 inch đặt tại xe thông qua bảng điều khiển Node-RED chạy nội bộ trên Raspberry Pi 4. Khi có kết nối Internet, dữ liệu từ Raspberry Pi 4 được đồng bộ lên Firebase Realtime Database qua giao thức HTTP POST, sau đó ứng dụng di động Flutter tải về qua HTTP GET để người dùng theo dõi và nhận thông báo cảnh báo từ xa.
5. Đề tài sử dụng những công nghệ phần mềm nào để xây dựng các giao diện người dùng?
Hệ thống sử dụng hai nền tảng phần mềm độc lập: nền tảng Node-RED chạy trên nền trình duyệt để tạo giao diện bảng điều khiển (Dashboard) trên màn hình LCD 7 inch gắn với Raspberry Pi, và framework Flutter viết bằng ngôn ngữ Dart để xây dựng ứng dụng di động đa nền tảng giám sát từ xa.
Kết luận
Khóa luận tốt nghiệp "Thiết kế và thi công hệ thống giám sát và chẩn đoán trên ô tô" của sinh viên Trần Mạc Gia Phong và Trần Lam Nhật Vy đã thiết kế và thi công hoàn chỉnh mô hình giám sát 5 thông số kỹ thuật ô tô theo chuẩn giao thức OBD-II trên nền tảng mạng CAN. Đề tài kết hợp giải pháp phần cứng nhúng (STM32F103C8T6, Arduino Nano, Raspberry Pi 4) với các nền tảng phần mềm hiện đại (Node-RED, Flutter, Firebase Realtime Database), hiện thực hóa thành công cơ chế hiển thị kép tại xe và cảnh báo từ xa qua Internet. Công trình cung cấp giải pháp kỹ thuật thực nghiệm có giá trị tham khảo ứng dụng cao cho việc nghiên cứu và phát triển các hệ thống tiện ích chẩn đoán trên phương tiện giao thông thông minh.