Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh khoa học – công nghệ và kinh tế phát triển nhanh chóng, khối lượng dữ liệu phát sinh trong đời sống ngày càng đa dạng và gia tăng về quy mô. Việc lưu trữ, xử lý và giám sát dữ liệu thực tế đóng vai trò thiết yếu trong việc hỗ trợ con người giải quyết các bài toán quản lý, đặc biệt là trong lĩnh vực vận tải và điều hướng phương tiện giao thông. Xuất phát từ nhu cầu quản trị dữ liệu hành trình cùng mong muốn tiếp cận và ứng dụng các công nghệ hiện đại, đề tài "Xây dựng hệ thống quản lý và giám sát hành trình xe sử dụng ASP.NET Core và IoTs" được thực hiện bởi sinh viên Nguyễn Đức Bốn và Nguyễn Nhật Trường, dưới sự hướng dẫn của ThS. Nguyễn Hữu Trung tại Khoa Công nghệ Thông tin, Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh (khóa 2015 – 2019).

Mục tiêu tổng quát của đề tài bao gồm ba nội dung chính:

  1. Tìm hiểu về công nghệ .NET Core trên nền tảng .NET Core Framework 2.0.
  2. Tìm hiểu về Internet of Things (IoTs) và vận hành thiết bị định vị GPS.
  3. Xây dựng hệ thống website quản lý và giám sát hành trình phương tiện vận tải sử dụng ASP.NET Core kết hợp thiết bị IoTs.

Để hiện thực hóa các mục tiêu trên, tác giả đã xác định 7 nhiệm vụ nghiên cứu cụ thể:

  1. Tìm hiểu và áp dụng Google Map API vào môi trường web.
  2. Áp dụng công nghệ truyền thông thời gian thực SignalR.
  3. Tìm hiểu phần cứng IoTs bo mạch GPS (Board GPS KienViet tích hợp Module Sim808).
  4. Xây dựng website quản lý các thực thể và hành trình.
  5. Tiếp nhận và xử lý chuỗi dữ liệu gửi về từ thiết bị phần cứng GPS.
  6. Xử lý chức năng tìm kiếm tuyến đường di chuyển.
  7. Xử lý chức năng phát hiện và cảnh báo khi phương tiện đi lệch hành trình đã thiết lập trước.

Đối tượng và phạm vi nghiên cứu của khóa luận được giới hạn như sau:

  • Đối tượng nghiên cứu: Các tính năng mới của framework .NET Core 2.0, kiến trúc phần mềm ASP.NET MVC, giao tiếp phần cứng IoTs (thiết bị thu nhận dữ liệu GPS/GSM) và quy trình thiết kế, triển khai ứng dụng web tương tác.
  • Phạm vi nghiên cứu: Giám sát hành trình và trạng thái vận hành của phương tiện giao thông đường bộ; thu nhận tọa độ từ Module Sim808 thông qua Web API; thời gian thực hiện nghiên cứu từ ngày 18/02/2019 đến ngày 15/07/2019.

Cơ sở lý thuyết và phương pháp

Khóa luận kết hợp giữa nghiên cứu lý thuyết nền tảng về công nghệ phần mềm, viễn thông định vị và phương pháp thực nghiệm thiết kế - xây dựng hệ thống phần mềm nhúng kết nối máy chủ web.

Khung lý thuyết và mô hình công nghệ

  • Mô hình kiến trúc MVC (Model – View – Controller): Được Trygve Reenskaug đề xuất từ thập niên 1970, tách biệt ứng dụng thành ba thành phần độc lập: Model (xử lý logic nghiệp vụ và truy xuất cơ sở dữ liệu), View (hiển thị giao diện và tương tác với người dùng) và Controller (tiếp nhận, điều hướng các yêu cầu từ phía người dùng).
  • Nền tảng .NET Core và ASP.NET Core 2.0: Framework mã nguồn mở, đa nền tảng do Microsoft và cộng đồng phát triển. Nền tảng này hỗ trợ triển khai đa kiến trúc (x64, x86, ARM), hỗ trợ cơ chế chạy song song nhiều phiên bản (side-by-side) và tối ưu hóa hiệu năng xử lý cho các ứng dụng đám mây cũng như Web API.
  • Hệ thống định vị toàn cầu GPS (Global Positioning System): Hệ thống định vị dựa trên mạng lưới không gian gồm 27 vệ tinh nhân tạo (24 vệ tinh hoạt động và 3 vệ tinh dự phòng) quay quanh Trái Đất ở độ cao 20.200 km (bán kính quỹ đạo 26.600 km). Hệ thống kiểm soát gồm 5 trạm mặt đất (1 trạm trung tâm và 4 trạm tự động) cùng các trạm dự phòng/quan sát chuyên biệt. Tín hiệu dân sự sử dụng dải tần L1 (1575.42 MHz) mang mã giả ngẫu nhiên (pseudo random), dữ liệu thiên văn (ephemeris) và dữ liệu lịch vệ tinh (almanac). Máy thu cần bắt tín hiệu tối thiểu từ 3 vệ tinh để tính tọa độ 2 chiều (kinh độ, vĩ độ) và từ 4 vệ tinh để xác định tọa độ 3 chiều (kinh độ, vĩ độ, độ cao).
  • Phần cứng Module Sim808: Module GSM/GPRS/GPS phát triển dựa trên chip Sim808 của SIMCOM, hỗ trợ 4 băng tần mạng di động và công nghệ định vị GPS có độ nhạy cao (22 kênh theo dõi, 66 kênh tiếp nhận), tích hợp công nghệ A-GPS và chuẩn kết nối Bluetooth, sử dụng nguồn cấp 9 – 12V/2A.
  • Thư viện ASP.NET SignalR: Công nghệ hỗ trợ bổ sung tính năng thời gian thực (real-time web functionality) vào ứng dụng web thông qua cơ chế Remote Procedure Calls (RPC), cho phép máy chủ chủ động đẩy dữ liệu (server push) tới máy khách đang kết nối mà không cần cơ chế thăm dò lặp lại của giao thức HTTP truyền thống.
  • Google Map API (phiên bản v3): Dịch vụ giao diện lập trình ứng dụng bản đồ trực tuyến, hỗ trợ vẽ bản đồ, đánh dấu tọa độ (markers), tìm tuyến đường tối ưu và khoanh vùng vị trí trên giao diện web.

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thu thập và phân tích tài liệu: Nghiên cứu tài liệu chính thống từ Microsoft Docs, tài liệu phần cứng SIMCOM và tài liệu hướng dẫn tích hợp Google Map API.
  • Phương pháp mô phỏng và thực nghiệm: Sử dụng công cụ Postman để đóng gói và gửi thử nghiệm chuỗi dữ liệu JSON qua phương thức GET/POST của Web API trước khi tích hợp vào phần cứng thực tế.
  • Phương pháp triển khai phần cứng: Sử dụng bo mạch định vị GPS KienViet (do 3DVisionLab cung cấp tại Viện Sư phạm Kỹ thuật TP.HCM) và thực hiện nạp code, hiệu chỉnh lỗi tại Phòng thí nghiệm Robot (Viện Sư phạm Kỹ thuật).
  • Nguồn dữ liệu: Tọa độ thực tế (vĩ độ, kinh độ), vận tốc, thời gian, trạng thái gia tốc thu thập từ bo mạch phần cứng GPS/GSM lắp đặt trên phương tiện.

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo kiến trúc phân tầng dựa trên ASP.NET Core MVC, kết nối với thiết bị định vị ngoại vi qua giao diện Web API và đồng bộ hóa trạng thái lên giao diện giám sát thông qua kết nối thời gian thực SignalR Hub.

[Module Sim808 / GPS Board] --(GPRS/HTTP POST Json)--> [ASP.NET Core Web API]
                                                                |
                                                                v
                                                       [SQL Server Database]
                                                                |
[Trình duyệt Web Quản trị/Người dùng] <--(SignalR Push / MVC)--+

Thiết kế cơ sở dữ liệu

Hệ thống sử dụng cơ sở dữ liệu quan hệ với các bảng dữ liệu danh tính (ASP.NET Identity) và các bảng dữ liệu nghiệp vụ:

Tên bảng dữ liệu Khóa chính Các trường thuộc tính chính Mục đích lưu trữ
Cars Id (int) CarName, CarNumber, CompanyId, DateTime, Distance, FuelRate, Lat, Long, Speed, Acc, Ex1, Ex2 Lưu trữ thông tin xe, công ty sở hữu, tọa độ và trạng thái vận hành hiện thời
Companies Id (int) CompanyName, Address, FoundingYear, UserId Lưu trữ thông tin doanh nghiệp sở hữu xe và tài khoản liên kết
Employees Id (int) FullName, Birthday, PhoneNumber, CarId, IsDriving Lưu trữ danh sách tài xế, trạng thái điều khiển và gán xe phụ trách
Histories Id (int) CarId, DateChange, Lat, Long, Speed, Distance, FuelRate, Acc, Ex1, Ex2 Ghi nhận nhật ký di chuyển của xe theo từng mốc thời gian
Routes Id (int) CarId, Lat, Long Lưu trữ các tọa độ điểm mốc của lộ trình đã thiết lập sẵn cho phương tiện
AspNetUsers Id (nvarchar) UserName, Email, PasswordHash, PhoneNumber, LockoutEnabled, TwoFactorEnabled Quản lý thông tin tài khoản đăng nhập người dùng và quản trị viên
AspNetRoles Id (nvarchar) Name, NormalizedName, ConcurrencyStamp Quản lý các nhóm quyền truy cập trong hệ thống
AspNetUserRoles UserId, RoleId UserId, RoleId Bảng liên kết phân quyền tài khoản vào các nhóm vai trò

Cấu trúc mô hình hóa phần mềm

Hệ thống được tổ chức thành các thành phần lớp nghiệp vụ:

  • Controllers: Điều hướng các luồng xử lý tương tác giữa giao diện người dùng và hệ thống quản lý.
  • Hubs: Xử lý kết nối liên tục của SignalR để đẩy tọa độ xe mới nhất đến máy khách.
  • Data & Models: Ánh xạ các thực thể cơ sở dữ liệu và cấu hình quan hệ bảng thông qua Entity Framework Core.
  • Services: Chịu trách nhiệm thực thi các logic nghiệp vụ (tính toán khoảng cách, xử lý định dạng chuỗi dữ liệu GPS).
  • ViewModels: Đóng gói dữ liệu hiển thị tương thích với từng khung nhìn màn hình.

Nội dung chính theo từng chương

Chương 1: Cơ sở lý thuyết

Chương 1 hệ thống hóa toàn bộ các nền tảng công nghệ được lựa chọn trong đề tài. Nội dung tập trung phân tích đặc điểm của .NET Core (tính đa nền tảng, công cụ dòng lệnh, hiệu năng nâng cao so với .NET Framework truyền thống) và cấu trúc 3 thành phần của mô hình ASP.NET MVC Core. Tác giả tổng hợp sự khác biệt giữa hai nền tảng framework trong văn bản:

Tiêu chí ASP.NET Core ASP.NET
Lịch sử ra đời Giới thiệu lần đầu ngày 27/06/2016 cùng .NET Core 1.0 Ra đời tháng 01/2002 cùng phiên bản .NET đầu tiên
Nhà phát triển Microsoft và cộng đồng mã nguồn mở Microsoft
Hệ điều hành hỗ trợ Đa nền tảng: Windows, macOS, Linux Chỉ hỗ trợ trên hệ điều hành Windows
Công nghệ tích hợp MVC, Web API, SignalR, Entity Framework Core Web Forms, MVC, Web API, SignalR, WebHooks, Web Pages, Entity Framework
Cơ chế phiên bản Chạy độc lập nhiều phiên bản trên cùng một máy (Side-by-side) Một phiên bản chung duy nhất trên một máy
Công cụ phát triển Visual Studio, Visual Studio for Mac, Visual Studio Code Visual Studio
Môi trường biên dịch Lựa chọn giữa .NET Framework runtime và .NET Core runtime Sử dụng .NET Framework runtime

Bên cạnh đó, chương 1 trình bày chi tiết về cấu tạo 3 phần của hệ thống định vị GPS (Không gian, Kiểm soát, Sử dụng), dải tần sóng vô tuyến L1/L2, đặc tính kỹ thuật của chip Sim808, cơ chế gọi hàm từ xa RPC của SignalR và các phương thức nhúng dịch vụ Google Map API v3.

Chương 2: Phân tích hiện trạng và thiết kế cơ sở dữ liệu

Chương này đi sâu vào việc xác định các yêu cầu chức năng, mô hình hóa tác nhân và đặc tả use case của hệ thống.

  • Nhận diện tác nhân: Hệ thống bao gồm 2 nhóm tác nhân chính:
    1. Bộ phận quản trị (Admin): Đăng nhập, đổi mật khẩu, quản lý toàn diện danh sách công ty, quản lý phương tiện, quản lý tài xế, quản lý và xóa nhật ký hành trình, tra cứu tuyến đường di chuyển.
    2. Bộ phận người dùng (Doanh nghiệp/Chủ xe): Đăng ký tài khoản, đăng nhập, khởi tạo và cập nhật công ty, thêm/sửa/xóa thông tin xe, gán tài xế cho phương tiện, quan sát vị trí thời gian thực trên bản đồ, tra cứu lịch sử hành trình, thiết lập tuyến đường định trước, xuất báo cáo lịch sử ra tệp Excel và tìm kiếm phương tiện gần nhất.
  • Mô hình hóa chi tiết: Tác giả xây dựng 21 chức năng use case (kèm 21 bảng đặc tả luồng sự kiện từ Bảng 2.4 đến Bảng 2.24) và 24 sơ đồ tuần tự (Sequence Diagram) minh họa tương tác giữa Người dùng/Quản trị viên, Giao diện (View), Bộ điều khiển (Controller), Mô hình (Model) và Cơ sở dữ liệu. Thiết kế dữ liệu chi tiết được định nghĩa với 12 bảng thực thể.

Chương 3: Giao diện và các chức năng

Chương 3 trình bày kết quả thiết kế và hiện thực hóa giao diện người dùng trên nền web:

  • Màn hình xác thực: Trang đăng nhập và đăng ký tài khoản thành viên mới tích hợp kiểm tra dữ liệu đầu vào.
  • Màn hình giám sát trực quan (Trang chủ): Tích hợp Google Map API hiển thị bản đồ trực tuyến, các điểm đánh dấu (marker) thể hiện vị trí thực tế của các xe đang hoạt động theo thời gian thực nhờ kết nối SignalR.
  • Màn hình tra cứu hành trình: Cho phép chọn phương tiện và khoảng thời gian (từ ngày... đến ngày...) để hiển thị đường di chuyển đã lưu trong bảng Histories.
  • Màn hình quản trị dữ liệu: Các biểu mẫu (form) thực hiện thao tác thêm, sửa, xóa, xem danh sách đối với Công ty (Companies), Phương tiện (Cars) và Tài xế (Employees), cho phép phân công tài xế phụ trách từng xe cụ thể.
  • Màn hình mở rộng: Tính năng thiết lập hành trình chuẩn, trích xuất dữ liệu lịch sử xe sang file Excel phục vụ lưu trữ và chức năng định vị tìm kiếm xe gần nhất tại điểm xuất phát.

Kết quả và đóng góp

Kết quả chính

  • Vận hành thành công phần cứng bo mạch GPS KienViet sử dụng Module Sim808 tại Phòng thí nghiệm Robot (Viện Sư phạm Kỹ thuật), cấu hình thành công việc lấy tọa độ định vị vệ tinh và truyền qua mạng dữ liệu di động GSM/GPRS.
  • Xây dựng hoàn chỉnh ứng dụng web quản lý và giám sát hành trình phương tiện dựa trên nền tảng framework ASP.NET Core 2.0.
  • Ứng dụng thành công Google Map API v3 để hiển thị bản đồ, vẽ lộ trình và bám sát vị trí di chuyển của phương tiện.
  • Ứng dụng công nghệ ASP.NET SignalR để thiết lập kết nối thời gian thực giữa máy chủ web và trình duyệt, giúp cập nhật tọa độ phương tiện lên bản đồ mà không cần tải lại trang.
  • Hoàn thiện đầy đủ các chức năng quản lý nghiệp vụ vận tải: quản lý danh sách công ty, quản lý hồ sơ xe, quản lý tài xế, gán tài xế cho xe, truy xuất lịch sử, xuất báo cáo ra file Excel, tạo hành trình định sẵn và tìm xe gần vị trí yêu cầu.

Giải pháp và đóng góp của đề tài

  • Đóng góp một giải pháp tích hợp giữa công nghệ web hiện đại (.NET Core đa nền tảng) và phần cứng viễn thông IoTs (GPS/GSM Module Sim808) phục vụ bài toán giám sát giao thông thực tế.
  • Xây dựng tài liệu thiết kế hệ thống chi tiết bao gồm 21 use case nghiệp vụ, 24 biểu đồ tuần tự tương tác và cấu trúc 12 bảng cơ sở dữ liệu quan hệ, tạo cơ sở tham khảo kỹ thuật cho việc triển khai các hệ thống tracking phương tiện quy mô vừa và nhỏ.

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

Dựa trên nội dung đánh giá và tiến độ ghi nhận trong khóa luận:

  • Hạn chế: Hệ thống mới thử nghiệm với số lượng thiết bị phần cứng giới hạn (bo mạch thử nghiệm tại phòng lab); các giải pháp xử lý khi xe đi lệch hành trình định sẵn và tối ưu hóa xử lý lỗi mất kết nối mạng di động ở phần cứng cần được kiểm nghiệm kỹ hơn trên môi trường thực địa rộng.
  • Hướng phát triển: Nghiên cứu nâng cấp, hoàn thiện thêm các tính năng bổ trợ phát sinh, tối ưu hóa giải thuật phát hiện phương tiện đi lệch hành trình và nâng cấp toàn diện các phân hệ chức năng để phát triển lên mức Luận văn tốt nghiệp kỹ sư hoàn chỉnh.

Giá trị tham khảo

Tài liệu khóa luận có giá trị tham khảo chuyên môn đối với sinh viên và lập trình viên thuộc các chuyên ngành Công nghệ thông tin, Công nghệ phần mềm và Kỹ thuật Hệ thống nhúng & IoTs:

  • Về mặt kỹ thuật phần mềm: Cung cấp tài liệu tham khảo thực tế về việc áp dụng kiến trúc ASP.NET Core MVC, cách cấu hình SignalR để truyền dữ liệu thời gian thực và cách thức nhúng Google Map API vào website quản lý.
  • Về mặt phân tích thiết kế: Cung cấp mẫu đặc tả use case, thiết kế sơ đồ tuần tự và mô hình cơ sở dữ liệu quan hệ hoàn chỉnh cho bài toán quản trị phương tiện giao thông.
  • Về mặt tích hợp hệ thống nhúng: Hướng dẫn phương thức kết nối, giao tiếp giữa module phần cứng GPS/GSM (Sim808) và hệ thống máy chủ web thông qua định dạng chuỗi JSON của Web API.

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

1. Đề tài sử dụng module phần cứng nào để thu nhận tín hiệu định vị và gửi về máy chủ?
Đề tài sử dụng bo mạch Board GPS KienViet tích hợp Module Sim808 của SIMCOM (được cung cấp bởi 3DVisionLab tại Viện Sư phạm Kỹ thuật). Module này hỗ trợ 4 băng tần GSM/GPRS, tích hợp GPS độ nhạy cao (22 kênh theo dõi, 66 kênh tiếp nhận), A-GPS, Bluetooth và sử dụng nguồn điện 9 – 12V/2A.

2. Công nghệ nào được tác giả sử dụng để hiển thị vị trí xe theo thời gian thực trên bản đồ mà không cần tải lại trang?
Tác giả sử dụng thư viện ASP.NET SignalR kết hợp với Google Map API v3. SignalR duy trì kết nối liên tục giữa server và client bằng cơ chế Remote Procedure Calls (RPC), cho phép máy chủ chủ động đẩy (server push) dữ liệu tọa độ mới nhận được từ xe đến thẳng trình duyệt web của người dùng ngay lập tức.

3. Cơ sở dữ liệu của hệ thống gồm những bảng dữ liệu nghiệp vụ chính nào?
Ngoài các bảng quản lý danh tính tài khoản của ASP.NET Identity (AspNetUsers, AspNetRoles, AspNetUserRoles...), hệ thống gồm 5 bảng nghiệp vụ chính: Cars (lưu thông tin xe và tọa độ hiện tại), Companies (lưu thông tin công ty vận tải), Employees (lưu thông tin tài xế và xe phân công), Histories (lưu vết tọa độ, vận tốc, khoảng cách theo thời gian) và Routes (lưu các tọa độ của hành trình định sẵn).

4. Trong quá trình phát triển, nhóm tác giả đã sử dụng công cụ gì để kiểm thử dữ liệu API trước khi nạp chạy với thiết bị GPS thật?
Nhóm tác giả đã sử dụng phần mềm Postman để giả lập việc gửi các chuỗi định dạng JSON thông qua phương thức GET và POST tới Web API của hệ thống trước khi kết nối và nhận dữ liệu từ bo mạch phần cứng GPS thật.


Kết luận

Khóa luận tốt nghiệp của sinh viên Nguyễn Đức Bốn và Nguyễn Nhật Trường đã giải quyết thành công bài toán tích hợp giữa nền tảng phần mềm ASP.NET Core 2.0 và thiết bị phần cứng IoTs (Module Sim808) nhằm giám sát hành trình phương tiện vận tải. Đề tài đã xây dựng hoàn thiện hệ thống website quản lý với đầy đủ các nghiệp vụ quản trị công ty, xe, tài xế, hiển thị bản đồ trực tuyến theo thời gian thực thông qua SignalR và Google Map API. Các kết quả nghiên cứu và quy trình thiết kế cơ sở dữ liệu, sơ đồ chức năng được trình bày chi tiết, tạo nguồn tư liệu tham khảo hữu ích cho các nghiên cứu ứng dụng công nghệ thông tin vào quản lý giao thông.