1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế và thi công hệ thống giám sát và chẩn đoán trên xe cơ giới

109 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Thiết Kế Và Thi Công Hệ Thống Giám Sát Và Chẩn Đoán Trên Xe Cơ Giới
Tác giả Nguyễn Vưu Huy Hoàng, Đỗ Thanh Hoàng Vỹ
Người hướng dẫn ThS. Trương Quang Phúc
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử-Viễn Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 109
Dung lượng 11,24 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN (14)
    • 1.1 GIỚI THIỆU (14)
    • 1.2 MỤC TIÊU ĐỀ TÀI (15)
    • 1.3 TÌNH HÌNH NGHIÊN CỨU (16)
      • 1.3.1 Tình hình nghiên cứu ngoài nước (16)
      • 1.3.2 Tình hình nghiên cứu trong nước (17)
    • 1.4 PHƯƠNG PHÁP NGHIÊN CỨU (17)
    • 1.5 BỐ CỤC CỦA ĐỀ TÀI (18)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (19)
    • 2.1 TỔNG QUAN VỀ HỆ THỐNG IOTS, NHÚNG, GIAO THỨC CAN VÀ CHUẨN (19)
    • 2.2 GIỚI THIỆU VỀ CHUẨN GIAO THỨC J1939 (21)
    • 2.3 GIỚI THIỆU FRAMEWORK SỬ DỤNG TRONG HỆ THỐNG (25)
      • 2.3.1 Flutter (25)
      • 2.3.2 NodeJS (27)
      • 2.3.3 ReactJS (28)
    • 2.4 GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU (30)
      • 2.4.1 Các chứng năng chính của phpMyAdmin (31)
    • 2.5 PHẦN MỀM NODE RED (33)
      • 2.5.1 Các tính năng của node red (33)
      • 2.5.2 Vùng làm việc của node-red (34)
      • 2.5.3 Các thiết lập một node trong node-red (34)
    • 2.6 RASPBERRY PI 4B (36)
    • 2.7 MODULE WAVESHARE CAN HAT RS485 (39)
    • 2.8 MODULE NEO-6M GPS (41)
  • CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG (43)
    • 3.1 YÊU CẦU HỆ THỐNG (43)
    • 3.2 ĐẶC TẢ HỆ THỐNG (43)
      • 3.2.1 Chức năng của hệ thống (43)
      • 3.2.2 Mô hình tổng thể hệ thống (44)
      • 3.2.3 Sơ đồ khối hệ thống (45)
      • 3.2.4 Hoạt động của hệ thống (46)
    • 3.3 THIẾT KẾ PHẦN CỨNG (48)
      • 3.3.1 Khối xử lý trung tâm (49)
      • 3.3.2 Khối đọc CAN (50)
      • 3.3.3 Khối đọc định vị (51)
      • 3.3.4 Khối hiển thị (52)
      • 3.3.5 Khối nguồn (53)
      • 3.3.6 Sơ đồ nguyên lý (55)
    • 3.4 THIẾT KẾ PHẦN MỀM (55)
      • 3.4.1 Lưu đồ giải thuật trên central gateway (55)
      • 3.4.2 Lưu đồ giải thuật trên giao diện người dùng (57)
  • CHƯƠNG 4: KẾT QUẢ, ĐÁNH GIÁ HỆ THỐNG (73)
    • 4.1 KẾT QUẢ PHẦN CỨNG (73)
    • 4.2 GIAO DIỆN HIỂN THỊ TRÊN ỨNG DỤNG ĐIỆN THOẠI ANDROID (74)
      • 4.2.1 Hiển thị giao diện đăng nhập (74)
      • 4.2.2 Giao diện hiển thị các thông số (76)
      • 4.2.3 Giao diện bản đồ (81)
      • 4.2.4 Giao diện thông tin của software (84)
    • 4.3 GIAO DIỆN HIỂN THỊ TRÊN WEB (86)
      • 4.3.1 Giao diện đăng nhập (86)
      • 4.3.2 Giao diện chính (87)
    • 4.4 GIAO DIỆN HIỂN THỊ GUI TRÊN MÀN HÌNH 7INCH (92)
      • 4.4.1 Giao diện trang Home (94)
      • 4.4.2 Giao diện trang Controller (95)
      • 4.4.3 Map (104)
    • 4.5 ĐÁNH GIÁ HỆ THỐNG (105)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (18)
    • 5.1 KẾT LUẬN (106)
    • 5.2 HƯỚNG PHÁT TRIỂN (107)
  • TÀI LIỆU THAM KHẢO (108)

Nội dung

TỔNG QUAN

GIỚI THIỆU

Việt Nam, một quốc gia đang phát triển, có ngành nông nghiệp đóng vai trò quan trọng trong nền kinh tế Các sản phẩm nông nghiệp của Việt Nam ngày càng được ưa chuộng trên thị trường quốc tế Để duy trì vị thế này, cần nâng cao hiệu suất và chất lượng nông sản, đồng thời cải tiến máy móc thiết bị phục vụ cho nông nghiệp Công nghệ IoTs (Internet of Things) đang được áp dụng trong sản xuất nông nghiệp, giúp nâng cao chất lượng sản phẩm Theo báo cáo, việc ứng dụng công nghệ IoTs đã đóng góp hơn 30% giá trị gia tăng, giảm thiểu tổn thất nông sản và nâng cao mức độ cơ giới hóa trong sản xuất, với 94% ở khâu làm đất và 50% ở khâu thu hoạch.

Việc áp dụng công nghệ IoT trong nông nghiệp đang trở thành giải pháp tối ưu để cải thiện và nâng cao chất lượng cũng như hiệu suất của nông sản.

Hiện nay, công nghệ IoT và hệ thống nhúng đang được ứng dụng rộng rãi trong nông nghiệp, giúp điều khiển và quản lý phương tiện sản xuất từ xa Ngành ô tô cũng đang chú trọng ứng dụng IoT để cải tiến các hệ thống tiện ích trên xe nông nghiệp như máy kéo và máy cày Việc quản lý hệ thống trên xe cơ giới, đặc biệt là xe nông nghiệp, diễn ra thông qua bộ điều khiển điện tử ECU (Electronic Control Unit), được coi là "bộ não" của xe ECU có khả năng giao tiếp với các thiết bị khác qua giao thức mạng CAN (Controller Area Network), cho phép kết nối nhiều thiết bị trên một mạng duy nhất với tốc độ cao.

SAE (Society of Automotive Engineers) đã phát triển chuẩn giao thức J1939, một tiêu chuẩn quan trọng cho các dòng xe nông nghiệp, cho phép chẩn đoán và giao tiếp giữa các thành phần xe Giao thức J1939, dựa trên giao thức CAN, đảm bảo việc liên lạc và truyền tải thông tin giữa các ECU trên tất cả các loại xe cơ giới.

Việc áp dụng bộ điều khiển điện tử ECU kết nối Internet giúp người dùng theo dõi và chẩn đoán sự cố trên xe cơ giới, nâng cao năng suất và quản lý hoạt động xe Điều này giảm thiểu thiệt hại và gia tăng cơ giới hóa trong làm đất và thu hoạch nông sản, trở thành xu hướng phát triển quan trọng Nhiều tập đoàn trong ngành ô tô đã cải tiến và phát triển theo xu hướng này, do đó nhóm chúng tôi quyết định nghiên cứu lý thuyết liên quan và thiết kế hệ thống giám sát, chẩn đoán cho xe nông nghiệp dựa trên giao thức J1939.

MỤC TIÊU ĐỀ TÀI

Đối với đề tài nhóm chúng tôi đã đề ra 4 mục tiêu chính:

Thứ nhất: thiết kế hệ thống có thể xử lý, chuyển đổi các dữ liệu CAN được gửi từ

ECU theo chuẩn J1939 và có thể xác định vị trí của phương tiện thông qua GPS

Thứ hai: thiết lập và cấu hình Server có thể truyền các dữ liệu lên Database và giao tiếp với giao diện người dùng

Vào thứ ba, chúng tôi sẽ thiết kế giao diện hiển thị thông số xe như nhiệt độ động cơ, tốc độ, quãng đường đã đi và mức nhiên liệu trên cả website và ứng dụng điện thoại Giao diện người dùng đồ họa (GUI) sẽ cho phép người dùng theo dõi trực tiếp các thông số này một cách dễ dàng.

Thứ tư: tiến hành thiết lập kiểm thử hệ thống và đảm bảo độ trễ truyền dữ liệu của hệ thống không quá 5s

TÌNH HÌNH NGHIÊN CỨU

Trong phần nghiên cứu, chúng tôi sẽ trình bày các công trình đã được thực hiện, nhằm hỗ trợ xây dựng và phát triển đề tài Điều này giúp đưa ra phương án thực hiện tốt nhất, tối ưu nhất cho đề tài, góp phần hoàn thiện và chỉnh chu toàn bộ hệ thống.

1.3.1 Tình hình nghiên cứu ngoài nước:

Việc ứng dụng công nghệ IoTs trong ngành ô tô đang trở thành xu hướng toàn cầu, dẫn đến nhiều nghiên cứu liên quan Nhóm nghiên cứu đã tìm thấy hai bài viết quốc tế quan trọng cho dự án Bài viết đầu tiên đề cập đến chuẩn truyền thông J1939, phân tích kích thước và nội dung dữ liệu trong khung J1939, cùng với phương pháp chẩn đoán lỗi Bài viết thứ hai giúp hiểu rõ hơn về cách hoạt động và truyền nhận dữ liệu theo chuẩn J1939, từ đó hỗ trợ trong việc lựa chọn các khung dữ liệu chứa thông số cần thiết.

Trong bài viết, nhóm tác giả đã phát triển một hệ thống IoTs hoàn chỉnh sử dụng bộ vi điều khiển Raspberry, kết hợp hai chuẩn giao tiếp OBDII và giao thức truyền thông MQTT để theo dõi và chẩn đoán động cơ ô tô Hệ thống này có khả năng đưa ra chẩn đoán về tình trạng hoạt động của xe dựa trên dữ liệu từ khung OBDII và sử dụng giao thức MQTT để truyền nhận dữ liệu với hệ thống Internet Mặc dù nghiên cứu tập trung vào chuẩn OBDII, nhưng việc xây dựng hệ thống này rất phù hợp để áp dụng vào các đề tài liên quan.

Hai bài viết [1] và [2] cung cấp cái nhìn rõ ràng về cách hoạt động của hệ thống IoT, đặc biệt trong việc chẩn đoán và truyền nhận dữ liệu trong động cơ ô tô khi áp dụng giao thức J1939.

1.3.2 Tình hình nghiên cứu trong nước:

Trong nghiên cứu của chúng tôi, chúng tôi đã lựa chọn hai bài viết [3] và [4], được thực hiện song song dưới sự tài trợ của công ty Bosch Hai công trình này được coi là nền tảng quan trọng để phát triển đề tài của chúng tôi.

Các dự án chẩn đoán và theo dõi thông số xe máy cày qua chuẩn giao tiếp J1939 đã được trình bày trong bài viết [3] và [4] Nhóm tác giả đã nêu rõ các thông số quan trọng như tốc độ động cơ, nhiệt độ động cơ và mức độ hao hụt nhiên liệu để chẩn đoán hoạt động của động cơ Kết quả chẩn đoán được mô phỏng thông qua vi điều khiển Arduino Uno R3 Mặc dù hệ thống đã tương đối hoàn chỉnh, nhưng vi điều khiển Arduino Uno R3 vẫn chưa đáp ứng yêu cầu về tốc độ xử lý và truyền dẫn dữ liệu, mở ra cơ hội phát triển hệ thống mới để khắc phục những nhược điểm này.

Dựa vào hai bài viết [3] và [4], chúng ta có thể nhận diện rõ các yếu tố và yêu cầu đặc thù cần chú ý trong việc theo dõi và chẩn đoán xe máy kéo tại thị trường Việt Nam Việc nắm bắt những yếu tố này sẽ giúp nâng cao hiệu quả vận hành và bảo trì xe, đồng thời đáp ứng nhu cầu ngày càng cao của người tiêu dùng trong nước.

PHƯƠNG PHÁP NGHIÊN CỨU

Nhóm chúng tôi sẽ nghiên cứu và phân tích lý thuyết cũng như cách vận hành của ECU để hiểu rõ yêu cầu của người dùng và xác định các thông số phù hợp Tiếp theo, chúng tôi sẽ thiết kế chi tiết hệ thống bằng cách phân chia công việc theo từng thành phần và thiết lập các khối Cuối cùng, chúng tôi sẽ tổng hợp các khối thông qua các chuẩn giao tiếp và kiểm tra hoạt động của toàn bộ hệ thống dựa trên kết quả thực tế.

BỐ CỤC CỦA ĐỀ TÀI

Giới thiệu khái quát và tổng quan về tình hình nghiên cứu cũng như các phương pháp nghiên cứu của đề tài

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

Giới thiệu mô tả về cách hoạt động đặc điểm của các Framework như Flutter, NodeJS, Node-red, ReactJS, MySql và các chuẩn giao thức CAN, J1939

Chương 3: Thiết kế và thi công:

Trình bày các sơ đồ khối hệ thống, nguyên lý hoạt động của các khối thành phần hệ thống

Chương 4: Kết quả, đánh giá hệ thống: Đánh giá các chức năng, trình bày kết quả cuối cùng đạt được từ phần cứng và phần mềm

Chương 5: Kết luận và hướng phát triển:

Kết luận đề tài đối với những kết quả đạt được, nêu mặt còn hạn chế từ đó đề xuất hướng phát triển cho hệ thống

CƠ SỞ LÝ THUYẾT

TỔNG QUAN VỀ HỆ THỐNG IOTS, NHÚNG, GIAO THỨC CAN VÀ CHUẨN

Hiện nay, với sự phát triển của các chuẩn truyền thông không dây như Internet, việc truyền dữ liệu từ xa trở nên dễ dàng hơn bao giờ hết Kết nối vạn vật qua Internet (IoTs) đang bùng nổ trong ứng dụng công nghệ, giúp các thiết bị tự động thu thập và truyền tải thông tin Điều này không chỉ hỗ trợ giám sát và điều khiển các quy trình trong nhà máy, hệ thống chiếu sáng và an ninh, mà còn mang lại lợi ích cho ngành ô tô Việc tích hợp thiết bị truyền dữ liệu vào xe cho phép người dùng theo dõi tình trạng xe từ xa qua ứng dụng di động hoặc website, giúp quản lý hiệu quả hơn.

Hình 2.1: Tổng quan hệ thống nhúng trên xe ô tô

Trong ngành ô tô, hệ thống nhúng đóng vai trò quan trọng trong việc điều khiển và giám sát hoạt động của xe Chúng có thể được lắp đặt trực tiếp trên các bộ phận hoặc trên bo mạch điện tử riêng biệt, giúp phối hợp hoạt động hiệu quả và đáp ứng nhu cầu của người lái và hành khách Mục tiêu chính là tối ưu hóa hiệu suất và giảm thiểu sự cố hệ thống Các thành phần chính của hệ thống nhúng bao gồm vi điều khiển, RAM, thiết bị ngoại vi, cảm biến và actuator.

Giao thức CAN (Controller Area Network) là một ví dụ tiêu biểu về hệ thống nhúng trong ô tô, đóng vai trò quan trọng trong việc kết nối và truyền tín hiệu giữa các bộ phận điện tử Giao thức này được sử dụng rộng rãi trong các hệ thống điện tử ô tô, đảm bảo việc truyền thông tin diễn ra nhanh chóng và đáng tin cậy.

Giao thức CAN, được phát triển bởi Bosch vào những năm 1980, là công nghệ tiên tiến giúp kết nối các thiết bị điện tử trên ô tô Giao thức này sử dụng mạng lưới các nút kết nối, cho phép truyền tín hiệu và dữ liệu giữa các nút thông qua một giao thức truyền thông đặc biệt Hệ thống hoạt động với 2 dây CAN HIGH và CAN LOW cùng với 2 điện trở termination, giúp ngăn chặn xung đột trong mạng.

Giao thức CAN nổi bật với khả năng xử lý lỗi hiệu quả trong truyền dữ liệu, cho phép các nút mạng phát hiện và sửa chữa lỗi khi dữ liệu bị mất hoặc hư hỏng Điều này đảm bảo tính tin cậy và ổn định cao cho các hệ thống điện tử trong ô tô, góp phần quan trọng vào sự phát triển và ứng dụng rộng rãi trong ngành công nghiệp ô tô.

Giao thức CAN không chỉ được ứng dụng trong ngành ô tô mà còn mở rộng ra các hệ thống điện tử công nghiệp, thiết bị y tế và phương tiện bay Định dạng frame của CAN sẽ được giới thiệu chung với giao thức J1939, một giao thức cũng được phát triển dựa trên nền tảng của CAN.

GIỚI THIỆU VỀ CHUẨN GIAO THỨC J1939

J1939 là một chuẩn giao thức truyền thông quan trọng trong ngành công nghiệp ô tô, được phát triển bởi Hiệp hội Kỹ sư ô tô Hoa Kỳ (SAE International) Chuẩn này cho phép các nhà sản xuất ô tô kết nối các bộ phận điện tử một cách tương thích và hiệu quả, đồng thời giảm chi phí phát triển các hệ thống điện tử trong xe.

J1939 là một giao thức quan trọng trong việc truyền tải thông tin về động cơ, hộp số, phanh, hệ thống đánh lái và giám sát giữa các nút trên mạng Thông tin được đóng gói trong các tin nhắn theo định dạng chuẩn và truyền tải qua các kênh truyền thông riêng biệt Mỗi tin nhắn có một địa chỉ ID riêng, giúp các nút khác trên mạng xác định và phân tích nội dung một cách hiệu quả.

J1939 là một giao thức quan trọng được sử dụng rộng rãi trong ngành công nghiệp ô tô và các phương tiện di chuyển như xe tải, xe buýt, máy công trình, tàu thủy và máy bay Giao thức này giúp các hệ thống điện tử hoạt động hiệu quả, đồng thời đảm bảo an toàn cho người sử dụng.

J1939 áp dụng giao thức truyền thông CAN (Controller Area Network) để kết nối và trao đổi dữ liệu giữa các thiết bị trên mạng Do đó, các khung tin truyền thông của J1939 được thiết kế theo định dạng khung tin của CAN.

Hình 2.4: Một khung truyền cơ bản CAN, J1939

Khung truyền của J1939 và CAN bao gồm hai phần chính: Identifier (ID) để nhận diện và xác định giá trị của khung, và Data Field chứa các giá trị có thể chuyển đổi thành các thông số vật lý dễ đọc cho người dùng Hiện nay, vùng Identifier có thể mở rộng lên đến 29 bit, được gọi là khung Extended ID trong cả CAN và J1939.

Hình 2.5: Chi tiết khung truyền Identifier trong J1939

Khung tin truyền thông CAN theo tiêu chuẩn J1939 bao gồm bốn phần chính: khung tiêu đề (header) hay còn gọi là Arbitration Field, trường dữ liệu (data field), khung điều khiển (control field) và khung kết thúc (end of frame).

Khung tiêu đề (header): Đây là phần đầu tiên của khung tin truyền thông sẽ bao gồm các phần về Identifier của khung truyền, bao gồm các trường sau:

Trong J1939, việc xác định mức độ ưu tiên của khung tin truyền thông là rất quan trọng Giá trị priority được sử dụng để phân loại mức độ ưu tiên giữa các thông điệp khác nhau, trong đó các thông điệp quan trọng hơn sẽ có giá trị priority cao hơn.

+ PDU format (Protocol Data Unit format): Xác định định dạng PDU được sử dụng trong khung tin truyền thông

+ Source address: Xác định địa chỉ của thiết bị gửi thông điệp

Hình 2.6: Chi tiết khung truyền CAN, J1939

Khung điều khiển (Control field): Đây là phần đặc biệt của J1939, bao gồm các trường sau:

+ Data page (trang dữ liệu): Xác định trang dữ liệu được sử dụng trong trường dữ liệu

+ Number of packets (số lượng gói tin): Xác định số lượng gói tin được sử dụng để chuyển đổi trường dữ liệu

+ Packet sequence number (số thứ tự gói tin): Xác định số thứ tự của gói tin trong chuỗi gói tin

+ End of message (kết thúc tin nhắn): Xác định kết thúc tin nhắn

Trường dữ liệu trong J1939 chứa thông tin quan trọng cần truyền thông, bao gồm các thông số như tốc độ động cơ, lượng nhiên liệu còn lại, áp suất lốp và nhiệt độ nước làm mát.

Khung CRC (Cyclic Redundancy Check): đây là khung để kiểm tra lỗi

Khung kết thúc là phần cuối của khung tin truyền thông, bao gồm một bit CRC để kiểm tra lỗi và các bit tạm dừng (interframe space) nhằm tạo khoảng thời gian giữa các khung tin.

GIỚI THIỆU FRAMEWORK SỬ DỤNG TRONG HỆ THỐNG

Flutter là một framework UI di động do Google phát triển, giúp giải quyết các vấn đề trong lập trình ứng dụng di động như phát triển nhanh chóng và phát triển Native Flutter được ưa chuộng trong lập trình di động vì cho phép tạo ra ứng dụng cho cả Android và iOS từ một codebase duy nhất, sử dụng một ngôn ngữ lập trình và một nền mã chung.

Flutter's mobile application framework is gaining popularity due to its combination of fast development, native performance, and an expressive, flexible user interface This unique blend offers convenience to users, making Flutter a preferred choice for designing mobile applications.

Fast Development là tính năng cho phép lập trình viên sử dụng Hot Reload trong mili giây, giúp hiển thị giao diện và sửa lỗi nhanh chóng, tiết kiệm thời gian Với nhiều widget đa dạng, việc tùy chỉnh để xây dựng giao diện trở nên dễ dàng và nhanh gọn hơn.

Native Development in Flutter enables seamless integration of widgets across different platforms, overcoming variations in navigation, icons, and fonts This functionality ensures optimal performance and a unified experience for both iOS and Android users.

Giao diện người dùng của Flutter rất linh hoạt và biểu cảm, cho phép dễ dàng kết hợp các thành phần khác nhau để tạo ra những giao diện bắt mắt Việc sử dụng các tính năng như cuộn mượt mà, thiết kế vật liệu (Material Design), Cupertino và các API hỗ trợ giúp tối ưu hóa trải nghiệm người dùng.

Hình 2.8: Ngôn ngữ lập trình Dart trong Flutter

Flutter là một framework phát triển ứng dụng được Google giới thiệu vào năm 2018, sử dụng ngôn ngữ lập trình Dart, cũng do Google phát triển Dart được thiết kế để tối ưu hóa việc xây dựng giao diện người dùng (UI), mang lại nhiều lợi ích cho các nhà phát triển Flutter không chỉ hỗ trợ phát triển ứng dụng di động mà còn mở rộng ra nhiều nền tảng khác, bao gồm iOS, Android, MacOS, web, Windows và Linux, nhờ vào sự hợp tác với cộng đồng mã nguồn mở như Reddit, Stack Overflow và GitHub.

NodeJS là nền tảng được phát triển dựa trên Node runtime, cho phép thực thi các chương trình viết bằng ngôn ngữ Javascript Nền tảng này cung cấp tất cả các thành phần cần thiết để xây dựng và triển khai ứng dụng hiệu quả.

V8 Javascript engine là nền tảng Javascript runtime được phát triển bằng C++ và Javascript, nổi bật với khả năng xử lý mạnh mẽ và tốc độ nhanh, tương tự như động cơ V8 trên xe hơi, biểu thị cho hiệu suất cao và khả năng xử lý thời gian thực.

Hình 2.9: Nền tảng Platform NodeJS

NodeJS là công nghệ phổ biến trong việc phát triển ứng dụng chat trực tuyến, nền tảng phát video trực tiếp và các trang web đa nền tảng, tương thích với nhiều hệ điều hành khác nhau.

Dựa vào Hình 2.9 có thể thấy được các ứng dụng nên được viết bằng NodeJS: + Websocket Server: Tạo một máy chủ Server vận chuyển các dữ liệu

+ Rest API: Dựa vào API có thể cho các ứng dụng khác kết nối sử dụng

+ Real-time data: các ứng dụng yêu cầu về thời gian thực thì NodeJS có thể đáp ứng dễ dàng

+ Cloud Services: Tạo một máy chủ cloud

Trong NodeJS, có nhiều framework nhỏ hỗ trợ cho các công việc và yêu cầu đa dạng Thư viện npm (Node Package Manager) được phát triển bởi cộng đồng lập trình viên giúp giải quyết lỗi, bug fix và cung cấp các package sẵn có, tạo điều kiện thuận lợi cho việc lập trình và thiết kế giao diện người dùng đẹp mắt.

Hình 2.10: ExpressJS framework phổ biến trong NodeJS

ExpressJS là một framework phổ biến trong NodeJS, cung cấp sự linh hoạt cho người dùng trong việc phát triển giao diện ứng dụng Với khả năng hỗ trợ nhiều plugin và tiện ích mở rộng, ExpressJS tăng cường tính đa dạng cho NodeJS Nó sở hữu hơn 14 công cụ mẫu và hiệu suất vượt trội, khiến ExpressJS trở thành lựa chọn hàng đầu cho nhiều nhà phát triển hiện nay.

ReactJS là thư viện mã nguồn mở được phát triển bởi Facebook vào năm 2013, sử dụng ngôn ngữ Javascript Đến nay, ReactJS vẫn được sử dụng rộng rãi trong phát triển front-end, mang lại hiệu quả cao với tốc độ tải nhanh, khả năng mở rộng tốt và dễ dàng sử dụng.

Người dùng có thể dễ dàng kết hợp và chuyển đổi các giao diện người dùng phức tạp thành đơn giản hơn nhờ vào các tính năng dễ sử dụng của ReactJS.

Trong lập trình ứng dụng người dùng, việc tập trung vào giao diện người dùng (UI) và xử lý tương tác của người dùng là vô cùng quan trọng UI chính là phần mà người dùng thực hiện các tương tác, và những tương tác này sẽ dẫn đến các xử lý tương ứng trong ứng dụng.

ReactJS hỗ trợ xây dựng giao diện nhanh chóng và cải thiện hiệu suất web, đồng thời giảm thiểu lỗi lập trình Với khả năng phù hợp với nhiều loại website, ReactJS giúp quá trình khởi tạo website trở nên dễ dàng hơn Các Component linh hoạt có thể tái sử dụng, đáp ứng nhu cầu của nhiều dự án khác nhau Tương tự như tính năng Hot Reload nổi bật của Flutter, ReactJS cũng tích hợp tính năng này, giúp lập trình viên làm việc nhanh và hiệu quả hơn Ngoài ra, ReactJS có thể tương tác với các thư viện và package từ cộng đồng phát triển npm, cho phép kết nối dễ dàng với các framework khác.

GIỚI THIỆU VỀ CƠ SỞ DỮ LIỆU

Cơ sở dữ liệu là hệ thống điện tử chủ yếu dùng để lưu trữ và truy xuất các loại dữ liệu như hình ảnh, số liệu và ký tự Hai loại lưu trữ dữ liệu phổ biến hiện nay là SQL và NoSQL.

Bảng 2.1: So sánh giữa SQL và NoSQL Đối số SQL NoSQL

Ngôn ngữ SQL (Structured Query

Language.) Không sử dụng ngôn ngữ SQL Kiểu thiết kế

Dạng bảng, với các trường dữ liệu được định dạng rõ ràng

Dạng object, với các trường thông tin có thể lồng vào nhau Đối tượng sử dụng

Thích hợp với dạng lưu trữ không phân cấp

Thích hợp với dạng lưu trữ có phân cấp

Cơ sở dữ liệu phpMyAdmin

Hình 2.12: Biểu tượng của cơ sở dữ liệu phpMyAdmin

PhpMyAdmin là phần mềm mã nguồn mở hỗ trợ lưu trữ dữ liệu cho lập trình web bằng ngôn ngữ PHP Công cụ này giúp các nhà phát triển dễ dàng quản lý và trực quan hóa dữ liệu của họ, nâng cao hiệu quả trong quá trình phát triển phần mềm.

Cơ sở dữ liệu NoSQL hỗ trợ lưu trữ và đồng bộ dữ liệu trên đám mây, đảm bảo rằng dữ liệu được cập nhật và đồng bộ hóa trên tất cả các hệ thống người dùng.

2.4.1 Các chứng năng chính của phpMyAdmin

1 Tạo cơ sở dữ liệu và bảng dữ liệu: phpMyAdmin cho phép chúng ta tạo cơ sỡ dữ liệu và các bảng dữ liệu, tùy thuộc từng loại yêu cầu và dịch vụ thì phpMyAdmin sẽ cung cấp một khoảng dung lượng lưu trữ tương ứng

2 Cho phép truy cập từ nhiều thiết bị: phpMyAdmin cho phép truy cập từ nhiều thiết bị khác nhu cũng như từ đa dạng các loại ngôn ngữ lập trình phổ biến hiện nay, tuy nhiên phpMyAdmin có các cơ chế xác minh quyền truy cập của các người dùng, tốt ưu về mặt bảo mật thông tin cũng như tính toàn vẹn dữ liệu cho người dùng, sau khi người dùng đã được xác minh, các thiết bị truy cập có thể truy vấn và sử dụng các dữ liệu đã được lưu trữ từ trước

3 Tự động lưu trữ khi không có mạng:

Khi hoạt động ở trạng thái không có kết nối internet (offline) dữ liệu sẽ được lưu vào bộ nhớ cache của dữ liệu (mặc định ở host localhost:/port80)

4 Không gian làm việc của phpMyAdmin:

Hình 2.13: Trang chủ của phpMyAdmin

PhpMyAdmin cung cấp một không gian làm việc tiện lợi, giúp người dùng dễ dàng quản lý và trực quan hóa cơ sở dữ liệu Giao diện làm việc của phpMyAdmin bao gồm các phần chính, mang lại trải nghiệm sử dụng hiệu quả cho người dùng.

1 Nơi lưu trữ các cơ sở dữ liệu hiện đang có của người dùng, thông tin gồm tên cơ sở dữ liệu, các bảng bên trong cơ sở dữ liệu ấy

2 Chứa tên bảng Khu vực thể hiện chi tiết thông tin của một cơ sở dữ liệu cụ thể hiện ra khi ta chọn vào một cơ sở dữ liệu cụ thể

3 Vùng gồm các thao tác mà ta có thể thực hiện với các bảng bao gồm các hành động: Thêm, xóa, sửa, hiển thị thông tin bảng trống, người dùng có thể điều chỉnh bảng tại đây mà không cần thông qua các thao tác với bảng

4 Nơi chứa thông tin máy chủ hiện tại đang lưu dữ liệu

5 Khu vực cho phép người dùng tạo bảng mới

Hình 2.14: Bảng chứa thông tin dữ liệu

Khi người dùng nhấn chọn một bảng cụ thể để xem dữ liệu đã lưu trữ, không gian lưu trữ dữ liệu sẽ hiển thị, bao gồm hai vùng chính.

1 Khu vực thêm, sửa, xóa các dữ liệu trong bảng, thao tác trực tiếp với từng hàng dữ liệu cụ thể, đây chính là cách giúp người dùng hình dung hóa tốt nhất về hệ thống

2 Khu vực hiển thị dữ liệu, dữ liệu sẽ được hiển thị thành từng hàng với mỗi lần cập nhật là một hàng riêng biệt.

PHẦN MỀM NODE RED

Hình 2.15: Logo phần mềm node-red

Node-RED là một công cụ phần mềm kéo thả giúp kết nối phần cứng với các API và webserver Được phát triển trên nền tảng ngôn ngữ lập trình Node.js, Node-RED cung cấp một trình soạn thảo trực quan cho phép người dùng dễ dàng thiết kế và kết nối phần cứng với phần mềm thông qua các thao tác kéo thả.

2.5.1 Các tính năng của node red

1 Hỗ trợ môi trường thời gian thực, quản lý các luồn hoạt động

2 Thiết kế tính năng các Node đa dạng, đáp ứng nhiều nhu cầu sử dụng của người dùng

3 Được hỗ trợ hầu hết các thiết bị phần cứng Raspberry Pi, Beagle Bone Black, Arduino, các thiết bị Android, v.v

4 Có thể chạy trên môi trường đám mây IBM Cloud, AWS, Microsoft Azure, v.v

2.5.2 Vùng làm việc của node-red

Hình 2.16: Các vùng làm việc chính của node-red

Node-RED cung cấp một không gian làm việc trực quan, tối ưu hóa mức độ tương tác cho người dùng Không gian làm việc này bao gồm các phần chính, giúp người dùng dễ dàng quản lý và phát triển các quy trình tự động hóa.

1 Tiêu đề ở trên cùng, chứa nút Deploy và menu chính

2 Bảng màu (palette) bên trái, nơi lưu trữ các node được sử dụng trong quá trình thiết kế, các node này có thể tải thêm trên thư viện của node-red

3 Khu vực làm việc chính (workspace) ở giữa, nơi các flow được tạo ra, khu vực này có thể tự điều chỉnh kích thước tùy theo nhu cầu sử dụng của người dùng

4 Thanh sidebar bên phải, nơi chứa các thông tin của chung của toàn bộ flow, thường được để ở chế độ xem các lỗi phát sinh trong quá trình thiết kế

2.5.3 Các thiết lập một node trong node-red

Node trong Node-RED là một đơn vị lập trình thực hiện chức năng cụ thể Mỗi node có thể có ngõ vào, ngõ ra hoặc cả hai, tùy thuộc vào nhu cầu của người dùng Điều này cho phép người dùng thiết lập các thông số riêng cho từng node.

Hình 2.17: Định dạng cơ bản của một node

Ta có thể thấy trong Hình 2.17 là định dạng một node của node-red gồm có các thành phần chính:

1 Ký hiệu, biểu tượng của node nằm trên thanh công cụ palette bên trái vùng làm việc

2 Node được triển khai khi người dùng kéo node vào khu vực làm việc (workspace), tại đây khi nhấn chọn node bảng thiết lập của node sẽ hiện lên

3 Các thành phần có thể có trong bảng thiết lập của một node, trong hình minh họa trên người hướng dẫn đang định dạng node chứa một thông điệp dạng “String”

4 Sau khi hoàn thành tất cả các thao tác của thiết lập, người dùng chọn “Done” để lưu các thông tin vừa thiết lập trong node

Hình 2.18: Node chứa hàm của người lập trình

Node-RED không chỉ cho phép người dùng thiết lập cứng mà còn cung cấp các node chứa hàm, giúp người dùng tùy chỉnh chức năng của chương trình theo các điều kiện riêng biệt.

1 Ký hiệu, biểu tượng của node nằm trên thanh công cụ palette bên trái vùng làm việc

2 Node được triển khai khi người dùng kéo node vào khu vực làm việc (workspace), tại đây khi nhấn chọn node bảng thiết lập của node sẽ hiện lên

3 Khu vực chứa toàn bộ nội dung code của người dùng, tất cả các code đều dựa trên ngôn ngữ NodeJS

4 Sau khi hoàn thành tất cả các thao tác của thiết lập, người dùng chọn “Done” để lưu các thông tin vừa thiết lập trong node

Sau khi người dùng xây dựng xong một hoạt động cụ thể có thể chọn lưu và chạy thử chương trình

Hình 2.19: Hình minh họa kết quả thực thi một flow trên node-red

Sau khi chương trình được thực thi kết quả hiển thị sẽ nằm bên khung sidebar bên phải.

RASPBERRY PI 4B

Raspberry Pi 4 Model B là phiên bản mới nhất trong dòng máy tính Raspberry Pi, có kích thước nhỏ gọn như một chiếc điện thoại và được biết đến với mức giá phải chăng.

Pi không giống như thiết bị thông thường nó không có vỏ bạn có thể tìm thấy bên trong PC hoặc máy tính xách tay, nhưng nhỏ hơn nhiều

Raspberry Pi 4 là một máy tính hoàn chỉnh với CPU, RAM và các cổng kết nối, cần cài đặt hệ điều hành Linux thông qua thẻ nhớ để vận hành Thiết bị này rất hữu ích cho việc xây dựng máy tính nhỏ phục vụ công việc hoặc điều khiển thiết bị gia đình, đặc biệt phù hợp cho việc phát triển các hệ thống IoT.

Hình 2.20: Sơ đồ kết nối raspberry

Raspberry Pi 4 có nhiều kết nối ngoại vi đa dạng, bao gồm CPU, RAM, chân IO, khe cắm thẻ nhớ, đầu nối cáp mạng, dây nối nguồn, khe cắm camera CSI, và hai cổng micro-HDMI để kết nối với màn hình.

Raspberry Pi 4 hỗ trợ sử dụng song song hai màn hình, cung cấp nhiều cổng kết nối bao gồm các thiết bị âm thanh, hai cổng USB và hai cổng USB 2B Với 30 chân IO, Raspberry Pi 4 cho phép người dùng tự thiết kế và kết nối nhiều thiết bị điện tử một cách linh hoạt.

Bảng 2.2: Thông số kỹ thuật của module

Dòng hoạt động bình thường 1.1A

Bộ nhớ 1GB, 2GB, 4GB hoặc 8GB

Nhiệt độ hoạt động 0 ~ 50ºC

Bộ xử lý SoC lõi Cortex-A72 (ARM v8) 64 bit @ 1.5GHz

Công suất tiêu thụ 5.5mW

Hình 2.21: Sơ đồ thứ tự các chân của raspberry pi4

Bảng 2.3: Bảng thông tin các chân của Raspberry pi4

1 PWM GPIO12, GPIO13, GPIO18, GPIO19

SPI0: GPIO9 (MISO), GPIO10 (MOSI), GPIO11 (SCLK), GPIO8

SPI1: GPIO19 (MISO), GPIO20 (MOSI), GPIO21 (SCLK), GPIO18 (CE0), GPIO17 (CE1), GPIO16 (CE2)

Data: GPIO2 Clock: GPIO3 EEPROM Data: GPIO0 EEPROM Clock: GPIO1

6 GND GPIO14, GPIO5, GPIO30, GPIO34, GPIO39, GPIO25, GPIO9.

MODULE WAVESHARE CAN HAT RS485

Module RS485 CAN HAT được thiết kế để giúp Raspberry Pi giao tiếp ổn định với các thiết bị khác ở khoảng cách xa thông qua giao thức RS485/CAN Phát triển từ module MCP2515, nó tích hợp chuẩn giao tiếp SPI, cho phép Raspberry Pi nhận dữ liệu từ CAN Bus một cách hiệu quả.

Hình 2.22: Module RS485 CAN HAT

Module này được thiết kế để đồng bộ hóa với Raspberry, với 30 chân tín hiệu giúp người dùng dễ dàng kết nối.

Hình 2.23: Kết nối module RS485 CAN HAT và Raspberry pi4

Hình 2.24: Mô hình hoạt động của module CAN HAT RS485

Như đã trình bày chức năng chính của module CAN HAT RS485 được dùng để giúp raspberry có thể truyền nhận dữ liệu thông qua CAN

Bảng 2.4: Thông số kỹ thuật của module

Dòng hoạt động bình thường 10mA

Công suất tiêu thụ 33mW

Bảng 2.5: Sơ đồ chân của module RS485 CAN HAT

STT Tên chân Chức năng

4 MOSI Ngõ vào liệu chuẩn SPI

5 MISO Ngõ ra dữ liệu chuẩn SPI

8 RX Nhận tín hiệu chuẩn UART

9 TX Truyền tín hiệu chuẩn UART

10 RSE Điều khiển tín hiệu TX/RX (mặc định mức cao TX và mức thấp RX)

MODULE NEO-6M GPS

Module NEO-6M GPS là một thiết bị định vị sử dụng hệ thống GPS của Hoa Kỳ, cung cấp độ chính xác cao và thời gian phản hồi nhanh Thiết bị này rất phù hợp cho các ứng dụng điện tử phổ thông.

Module Neo-6M có 5 chân giao tiếp vi ngoại vi gồm: VCC, GND, TX, RX, PPS chi tiết được trình bày ở bảng…

Bảng 2.6: Ký hiệu chân module NEO-6M

STT Tên chân Chức năng

2 TX Gửi tín hiệu UART

3 RX Nhận tín hiệu UART

Bảng 2.7: Thông số của module GPS-NEO-6M

Dòng hoạt động bình thường 50 mA

Chuẩn giao tiếp UART/TTL

Tốc độ truyền nhận dữ liệu

Gồm nhiều mức khác nhau 1200, 2400, 4800, 19200, 38400,

THIẾT KẾ VÀ THI CÔNG

YÊU CẦU HỆ THỐNG

Hệ thống được thiết kế với những yêu cầu sau:

● Hệ thống có khả năng chuyển đổi các giá trị CAN thành số vật lý mà người dùng có thể đọc được thông qua chuẩn giao thức J1939

Thiết kế thành phần hệ thống Cloud cho phép thu thập, lưu trữ và truyền dữ liệu hiệu quả, đồng thời cung cấp API để các thành phần khác trong hệ thống có thể giao tiếp với nhau một cách mượt mà.

Thiết kế Front-end bao gồm hai giao diện: web và ứng dụng di động trên Android, giúp người dùng theo dõi các thông số quan trọng của xe như tốc độ, nhiệt độ động cơ, quãng đường đã đi và mức nhiên liệu Hệ thống đảm bảo cập nhật thông số liên tục với độ trễ truyền dữ liệu dưới 5 giây.

ĐẶC TẢ HỆ THỐNG

3.2.1 Chức năng của hệ thống

Dựa vào những yêu cầu hệ thống thì nhóm chúng tôi đã thiết kế và xây dựng hệ thống gồm những chức năng như sau:

• Hệ thống có chức năng đăng nhập, đăng xuất dựa trên tài khoản được cấp dành cho người dùng

• Hệ thống có thể thu thập các thông số của xe như nhiệt độ động cơ, tốc độ xe, quãng đường đã đi được, mức nhiên liệu còn lại

• Hệ thống có khả năng cảnh báo cho người dùng khi các thông số được thu thập vượt quá ngưỡng cho phép

• Hệ thống hiển thị các thông số của xe hiển thị trên web và ứng dụng trên điện thoại Android

• Hệ thống có định vị GPS giúp người dùng có thể quan sát vị trí hiện tại của phương tiện

Hệ thống hiển thị thông số trên màn hình riêng giúp người dùng theo dõi dữ liệu ngay cả khi mất mạng Người dùng có thể liên tục quan sát các thông tin quan trọng như nhiệt độ động cơ, tốc độ xe, quãng đường đã đi và mức nhiên liệu còn lại thông qua bảng thống kê dữ liệu.

3.2.2 Mô hình tổng thể hệ thống

Mô hình hoạt động tổng quát của hệ thống giám sát và chẩn đoán trên xe:

Hình 3.1: Mô hình tổng quát của hệ thống

Dựa trên những yêu cầu hệ thống thì nhóm đã thiết kế được mô hình tổng thể cỉa toàn bộ hệ thống như sau:

ECU (Electronic Control Unit) thu thập và điều khiển các thông số từ xe, bao gồm nhiệt độ động cơ, tốc độ xe, quãng đường đã đi và mức nhiên liệu thông qua giao thức CAN Nó cũng thực hiện việc chuyển đổi và xử lý các thông số theo chuẩn giao thức J1939.

+ Gateway: trung tâm thu thập, xử lý và chuyển đổi tất cả các dữ liệu thu được từ

ECU và truyền các dữ liệu đó lên Cloud

+ Cloud: xử lý, truyền và lưu trữ các dữ liệu nhận được từ Gateway, trung chuyển các dữ liệu đó về cho Người Dùng

Người dùng có thể theo dõi các thông số của xe thông qua giao diện hệ thống, hiển thị các giá trị thu thập từ ECU được gửi từ Cloud qua Gateway.

3.2.3 Sơ đồ khối hệ thống

Hình 3.2: Sơ đồ khối tổng thể hệ thống

Khối nguồn: cấp nguồn từ máy cấp nguồn cho khối xử lý (ECU) và khối central gateway hoạt động

Khối xử lý (ECU) là một thiết bị điều khiển điện tử được hỗ trợ bởi công ty Bosch, có chức năng đọc và chuyển đổi các thông số của xe thành giao thức CAN Sau đó, các thông tin này được truyền đến khối central gateway để xử lý.

Khối central gateway sử dụng vi xử lý để thu thập thông số từ các khối xử lý (ECU) qua giao thức CAN, chuyển đổi thành các chỉ số vật lý như tốc độ xe, nhiệt độ động cơ, mức nhiên liệu và quãng đường đã đi Nó hoạt động dựa trên chuẩn giao thức J1939 và có khả năng nhận cũng như truyền các thông số tới khối lưu trữ dữ liệu và khối truyền dữ liệu.

Khối truyền dữ liệu là thành phần quan trọng trong hệ thống, đảm nhiệm việc truyền và nhận thông tin, đồng thời là cầu nối giao tiếp giữa các khối người dùng, khối central gateway và khối lưu trữ dữ liệu Trong khối này, có hai loại giao thức truyền được sử dụng, trong đó có HTTP, đảm bảo tính bảo mật cho quá trình truyền tải dữ liệu.

Sử dụng 33 server để kết nối người dùng với khối lưu trữ dữ liệu, cho phép đăng nhập và giao tiếp qua MQTT thông qua một Broker Phương pháp này giúp truyền tải thông số của xe đến người dùng với độ trễ thấp, đảm bảo hiệu quả trong quá trình trao đổi thông tin.

Khối lưu trữ dữ liệu: có khả năng lưu trữ thông số được gửi từ khối central gateway và khối truyền dữ liệu

Giao diện hiển thị thông số xe cung cấp các thông tin quan trọng như tốc độ, nhiệt độ động cơ, mức nhiên liệu, quãng đường đã đi và vị trí xe Ngoài ra, nó còn hiển thị thông tin về phần mềm đang sử dụng và có chức năng đăng nhập để đảm bảo tính bảo mật cho người dùng, kết nối thông qua khối truyền dữ liệu.

3.2.4 Hoạt động của hệ thống

Hình 3.3: Sơ đồ hoạt động của hệ thống

Hình 3.2 minh họa luồng dữ liệu từ ECU đến giao diện web và ứng dụng di động Android, thể hiện cách thức hiển thị các thông số giá trị vật lý.

Để cấu hình các biến CAN theo chuẩn giao thức J1939, ECU sẽ sử dụng công cụ hỗ trợ từ công ty Bosch và lựa chọn các ID phù hợp Bên cạnh đó, một Module Neo-6M GPS cũng sẽ được gắn vào Raspberry.

Pi 4 để có thể cung cấp vị trí hiện tại của xe

Sau khi dữ liệu CAN được gửi từ ECU, Raspberry Pi sử dụng chuẩn CANBUS với hai dây CAN HIGH và CAN LOW để chuyển đổi các giá trị này thành các thông số vật lý dễ đọc như tốc độ xe, nhiệt độ động cơ, mức nhiên liệu và quãng đường đã đi.

Trên Raspberry, quá trình xử lý dữ liệu bao gồm việc lọc và đọc các khung CAN dựa vào PGN (ID của CAN) theo chuẩn J1939 Hệ thống sẽ dò tìm vị trí, độ phân giải và độ lệch, sau đó áp dụng công thức CAN để chuyển đổi sang giá trị vật lý.

Sử dụng màn hình 7 inch gắn trực tiếp trên Raspberry Pi giúp hiển thị thông số xe, bản đồ chỉ đường và các số liệu thống kê dạng bảng, cho phép người dùng quan sát trực tiếp mà không cần kết nối wifi.

Giá trị vật lý sau khi xử lý sẽ được Raspberry gửi lên cơ sở dữ liệu (Database) để lưu trữ và truyền tải qua MQTT Broker, đảm bảo dữ liệu được gửi theo chuẩn MQTT tới web và ứng dụng di động Một server sẽ kết nối với Database qua giao thức HTTP, sử dụng thông tin tài khoản để hỗ trợ đăng nhập trên web và ứng dụng điện thoại.

Cuối cùng, cả hai giao diện web và ứng dụng điện thoại Android đều yêu cầu người dùng đăng nhập để xem thông số của xe Quá trình này sử dụng API để kết nối với Server hoạt động, dựa trên các mã trạng thái HTTP để đưa ra quyết định về việc đăng nhập Nếu đăng nhập thành công, người dùng sẽ được hiển thị các thông số của xe thông qua chuẩn truyền MQTT, cùng với bản đồ hiển thị vị trí hiện tại.

THIẾT KẾ PHẦN CỨNG

Khối gateway được phát triển nhằm thu thập và xử lý dữ liệu CAN từ khối xử lý (ECU), sau đó gửi các giá trị đã được chuyển đổi đến khối lưu trữ dữ liệu và khối truyền dữ liệu để người dùng có thể dễ dàng đọc hiểu.

Dựa vào đó nhóm chúng tôi sẽ thiết kế sơ đồ khối chi tiết tại central gateway gồm:

Hình 3.4: Sơ đồ khối chi tiết tại central gateway

Khối đọc CAN sử dụng module RS485 CAN HAT để kết nối với ECU thông qua hai dây CAN HIGH và CAN LOW, cho phép đọc dữ liệu CAN Các khung CAN này sau đó được truyền đến khối xử lý trung tâm là Raspberry Pi thông qua giao thức SPI.

Khối xử lý trung tâm sử dụng máy tính thu nhỏ Raspberry Pi để quản lý và xử lý tất cả hoạt động của hệ thống, từ việc chuyển đổi dữ liệu cho đến việc truyền tải dữ liệu lên Cloud.

Khối định vị: dùng module định vị GPS NEO-6M với kích thước nhỏ gọn và độ nhạy cao thích hợp cho việc giám sát, định vị phương tiện

Khối hiển thị: sử dụng màn hình Waveshare 7 Inch kết nối HDMI với Raspberry

Pi được trang bị màn hình cảm ứng, cho phép hiển thị trực tiếp các thông số quan trọng như nhiệt độ động cơ, tốc độ xe, mức nhiên liệu và quãng đường đã đi.

Khối nguồn: dùng máy phát nguồn để cấp trực tiếp cho ECU hoạt động và nguồn chuyên dụng của Raspberry để hoạt động

Dựa trên các thiết kế sơ đồ khối chi tiết, nhóm sẽ tiến hành thiết kế các khối dưới dạng sơ đồ nguyên lý từng phần, cuối cùng tạo ra sơ đồ nguyên lý tổng thể cho toàn bộ hệ thống.

3.3.1 Khối xử lý trung tâm

Nhóm chúng tôi đã chọn Raspberry Pi 4 làm khối xử lý vì nó là một máy tính thu nhỏ có khả năng chạy hệ điều hành và cài đặt nhiều ứng dụng khác nhau Với tốc độ xử lý và truyền dữ liệu rất cao của ECU, khoảng 10ms cho mỗi chu kỳ, việc sử dụng các vi điều khiển như Arduino hay PIC không thể đáp ứng kịp thời gian truyền dữ liệu Hệ thống yêu cầu cập nhật thông số liên tục và độ trễ truyền dữ liệu phải dưới 5 giây, do đó, Raspberry Pi 4 là phần cứng lý tưởng cho toàn bộ hệ thống.

Hình 3.5 : Sơ đồ nguyên lý Raspberry Pi 4

Raspberry Pi 4 trang bị CPU quad-core 64-bit ARM Cortex-A72, được coi là chip mạnh nhất cho máy tính thu nhỏ này Với phiên bản RAM 2GB, thiết bị có khả năng xử lý nhiều tác vụ, không chỉ đọc dữ liệu CAN mà còn chuyển đổi dữ liệu theo chuẩn J1939 Hơn nữa, Raspberry Pi 4 hỗ trợ kết nối wifi, giúp truyền tải dữ liệu lên Database và Broker một cách hiệu quả.

Module Waveshare RS485 CAN HAT là lựa chọn lý tưởng cho nhóm chúng tôi vì khả năng đọc chuẩn CAN và RS485, giá thành hợp lý và dễ dàng tìm thấy tại các cửa hàng linh kiện gần trường Đặc biệt, module này được thiết kế chuyên dụng cho Raspberry Pi, kết nối với vi điều khiển CAN và CAN Transceiver, giao tiếp hiệu quả với khối xử lý trung tâm và ECU của Bosch Nó sử dụng nguồn cấp 3.3V trực tiếp từ Raspberry, đảm bảo tính tiện lợi và hiệu suất cao.

Bảng 3.1: Sơ đồ kết nối module Waveshare RS485 CAN HAT với Raspberry

Module Waveshare RS485 CAN HAT Raspberry Pi 4

Hình 3.6: Sơ đồ nguyên lý kết nối module CAN HAT với Raspberry

Việc kết nối giữa ECU và khối xử lý trung tâm Raspberry Pi 4 sẽ được thực hiện thông qua module CAN, giúp Raspberry Pi đọc các CAN Frame qua hai dây CAN HIGH và CAN LOW Hình 3.6 minh họa cách kết nối module CAN HAT với ECU MD1CS012, được cung cấp bởi công ty Bosch cho hệ thống.

Hình 3.7: Sơ đồ nguyên lý kết nối module CAN HAT với Raspberry và ECU

Module NEO-6M GPS là một trong những module GPS phổ biến nhất hiện nay nhờ vào giá thành hợp lý và tính dễ sử dụng Với khả năng định vị toàn cầu, module này sử dụng hệ thống vệ tinh của Mỹ để cung cấp tọa độ vị trí chính xác và nhanh chóng.

Module này sử dụng giao tiếp UART/TTL để kết nối với khối xử lý, cung cấp giá trị tọa độ với sai số nhỏ trong khoảng bán kính 5m.

Bảng 3.2: Sơ đồ kết nối module NEO-6M với Raspberry

Module NEO-6M GPS Raspberry Pi 4

Hình 3.8: Sơ đồ nguyên lý kết nối module NEO-6M với Raspberry

3.3.4 Khối hiển thị Đây là khối sẽ hiển thị các giá trị thông số cũng như là bảng thống kế trực tiếp được kết nối với khối xử lý trung tâm, nhóm chúng tôi lựa chọn một màn hình hiển thị tương thích với Raspberry, thì hiện nay trên thị trường linh kiện có rất nhiều loại màn hình chúng tôi chọn màn hình với kích thước 7inch nhằm tạo điều kiện thuận lợi nhất cho người dùng có thể quan sát đầy đủ các chi tiết, thông số, giao diện và có tích hợp cảm ứng chạm trên

Màn hình 40 inch giúp thao tác dễ dàng hơn với hai dây kết nối: một dây HDMI để truyền tín hiệu và một dây USB cung cấp nguồn cho màn hình.

Bảng 3.3: Sơ đồ kết nối giữa màn hình 7Inch và Raspberry

Màn hình 7Inch Raspberry Pi 4

Hình 3.9: Sơ đồ nguyên lý kết nối màn hình 7Inch với Raspberry

Về sử dụng nguồn sẽ được chia ra sử dụng 2 nguồn khác nhau:

Nguồn điện cho ECU MD1CS012 được cung cấp từ một máy phát nguồn đa năng, đảm bảo an toàn cho thiết bị này, vì đây là linh kiện thực tế trong xe với giá thành cao Việc sử dụng nguồn đa năng giúp bảo vệ thiết bị khỏi những rủi ro không mong muốn.

Bảng 3.4: Các thông số về dòng điện, điện áp và công suất tiêu thụ của ECU

Tên linh kiện Điện áp hoạt động Dòng điện tiêu thụ Công suất tiêu thụ trung bình

Khi sử dụng Raspberry, bạn sẽ nhận được nguồn adapter với điện áp đầu ra là 5.1V, đây là nguồn chuẩn dành cho Raspberry, do đó không cần phải sử dụng thêm nguồn bên ngoài.

Bảng 3.5: Các thông số về dòng điện, điện áp, công suất tiêu thụ của các linh kiện khác

Tên linh kiện Điện áp hoạt động

Công suất tiêu thụ trung bình

Module NEO-6M GPS 5V 24mA 120mW

THIẾT KẾ PHẦN MỀM

Trong thiết kế phần mềm, quy trình sẽ bắt đầu từ cổng trung tâm (central gateway), tiếp theo là việc xử lý khung CAN (CAN Frame) và đọc dữ liệu từ CAN, cho đến việc phát triển các giao diện người dùng như trang web và ứng dụng trên điện thoại Android.

3.4.1 Lưu đồ giải thuật trên central gateway

Lưu đồ giải thuật trên central gateway được chia thành hai phần chính, bao gồm các bước xử lý dữ liệu và truyền dữ liệu lên cơ sở dữ liệu hoặc MQTT Broker.

⮚ Lưu đồ giải thuật xử lý CAN Frame:

Hình 3.11: Lưu đồ giải thuật xử lý CAN Frame

Thiết lập tốc độ truyền nhận CAN với BaudRate 500000 sử dụng thư viện Python-Can cho phép chọn lọc dữ liệu dựa trên các CAN ID theo tiêu chuẩn J1939 Khi không có dữ liệu phù hợp với CAN ID (PGN) đã chọn, hệ thống sẽ hiển thị thông báo Timeout Nếu các CAN ID hiển thị đúng, giá trị sẽ được chuyển đổi sang giá trị vật lý dựa trên vị trí, offset và resolution tương ứng trong chuẩn J1939 Tất cả quá trình này được thực hiện bằng mã Python trên Raspberry, cho phép theo dõi và quan sát các giá trị đã chuyển đổi qua Terminal.

Công thức chuyển đổi giá trị vật lý như nhiệt độ động cơ, tốc độ xe, quãng đường đi được, mức nhiên liệu từ các giá trị CAN:

⮚ Lưu đồ giải thuật truyền gửi dữ liệu:

Hình 3.12: Lưu đồ giải thuật truyền gửi dữ liệu

Khi đã xác định các giá trị vật lý, bước tiếp theo là thiết lập kết nối với MQTT Broker thông qua Host và Port, cũng như kết nối với Database qua Host, User và Password Sử dụng mã Python để cấu hình các kết nối, nếu kết nối không thành công, hệ thống sẽ thông báo lỗi và tiếp tục thử kết nối lại cho đến khi thành công Khi đã kết nối được với MQTT Broker và Database, quá trình cập nhật và truyền dữ liệu sẽ bắt đầu diễn ra.

3.4.2 Lưu đồ giải thuật trên giao diện người dùng

Giao diện người dùng sẽ bao gồm bốn phần chính, bắt đầu với lưu đồ giải thuật đăng nhập cho người dùng, tiếp theo là lưu đồ giải thuật trên.

45 ứng dụng điện thoại tiếp theo sẽ là lưu đồ giải thuật trên web và cuối cùng là lưu đồ giải thuật trên GUI của màn hình 7inch

Chúng tôi sẽ thiết lập lưu đồ giải thuật đăng nhập tài khoản cho người dùng trên cả web và ứng dụng điện thoại, vì chức năng đăng nhập của cả hai đều tương tự Điều này cho thấy rằng về mặt lý thuyết, cách vận hành và hoạt động của quá trình đăng nhập là giống nhau.

Hình 3.13: Lưu đồ giải thuật đăng nhập tài khoản

Khi người dùng truy cập web và ứng dụng di động, bước đầu tiên để xem thông tin là đăng nhập tài khoản Tài khoản này thường được cung cấp từ nhà cung cấp dịch vụ Nếu tên đăng nhập hoặc mật khẩu không hợp lệ, giao diện sẽ hiển thị thông báo lỗi, có thể do sai tên đăng nhập.

Khi người dùng đăng nhập thành công, giao diện trên web và ứng dụng điện thoại sẽ hiển thị các trang thông số, cho phép người dùng lựa chọn các tính năng khác.

⮚ Lưu đồ người dùng sử dụng xem thông số trên giao diện ứng dụng điện thoại

Ứng dụng trên điện thoại bao gồm ba trang khác nhau, mỗi trang đảm nhiệm một chức năng riêng biệt Mỗi tính năng sẽ được minh họa bằng một lưu đồ tương ứng, giúp người dùng dễ dàng hiểu và sử dụng các chức năng của ứng dụng.

Trang hiển thị giao diện các thông số của xe sẽ được thiết kế để hiển thị thông tin thu thập từ MQTT Broker, được gửi từ Raspberry Pi 4.

Hình 3.14: Lưu đồ người dùng sử dụng xem thông số của xe

Sau khi người dùng đăng nhập thành công, giao diện thông số sẽ hiển thị, cho phép họ chuyển đổi giữa ba trang trên ứng dụng điện thoại Trang đầu tiên, cũng là trang chính, hiển thị các thông số quan trọng của xe như nhiệt độ động cơ, tốc độ xe, quãng đường đã đi và mức nhiên liệu còn lại Các thông số này được thiết lập với ngưỡng cho phép khác nhau, và khi một thông số vượt quá ngưỡng, ứng dụng sẽ gửi thông báo cảnh báo đến điện thoại, ví dụ như khi nhiệt độ quá cao hoặc tốc độ xe vượt mức an toàn.

● Lưu đồ hiển thị giao diện bản đồ:

Hình 3.15: Lưu đồ người dùng sử dụng xem bản đồ

Trang thứ hai sẽ hiển thị bản đồ, cho phép người dùng theo dõi vị trí hiện tại của xe Giao diện bao gồm hai nút chức năng, trong đó có nút "Tìm kiếm Gas".

Khi người dùng chọn “Search Gas Station”, giao diện sẽ hiển thị các cây xăng gần nhất trong bán kính nhất định Nhấn vào cây xăng sẽ hiển thị thông tin chi tiết và chỉ đường đến đó Nếu chọn “Current Location”, vị trí hiện tại của người dùng sẽ được hiển thị, và camera của bản đồ sẽ chuyển đến vị trí này khi nhấn vào bất kỳ đâu trên bản đồ Cuối cùng, người dùng có tùy chọn đăng xuất nếu muốn.

● Lưu đồ hiển thị giao diện thông tin của xe:

Hình 3.16: Lưu đồ người dùng sử dụng xem thông tin của xe

Trang cuối hiển thị thông tin quan trọng như tên ECU, tên phiên bản và tên thiết bị Khi ECU được cập nhật qua OTA, phiên bản mới sẽ được cài đặt.

49 ứng dụng trên điện thoại sẽ cập nhật giá trị phiên bản vào bảng thông tin, giúp người dùng xác định phiên bản ECU hiện tại đang được sử dụng.

KẾT QUẢ, ĐÁNH GIÁ HỆ THỐNG

KẾT QUẢ PHẦN CỨNG

Sau khi lựa chọn linh kiện phần cứng phù hợp với yêu cầu thiết kế, nhóm sẽ tiến hành đóng gói và bố trí hợp lý các linh kiện Việc đi dây lại sẽ giúp tạo ra một sản phẩm gọn gàng, nhỏ gọn và tiện lợi.

Nhóm đã hoàn thành thiết kế và đi dây cho phần cứng dựa trên mô hình đã giới thiệu cho khách hàng tại công ty Bosch Thiết kế này giống như một sa bàn, cho phép người dùng quan sát và kiểm tra hoạt động của các thiết bị, bao gồm ECU và cục Vector của Bosch, giúp truyền gửi CAN Frame Kết quả là một mô hình phần cứng hoàn chỉnh, được nhóm đóng khung và sắp xếp dây dẫn một cách hợp lý Nhóm cũng đã nỗ lực thu gọn mô hình đến kích thước nhỏ nhất so với thực tế, từ ECU đến màn hình hiển thị trên xe.

GIAO DIỆN HIỂN THỊ TRÊN ỨNG DỤNG ĐIỆN THOẠI ANDROID

4.2.1 Hiển thị giao diện đăng nhập

Giao diện đăng nhập trên ứng dụng di động giúp người dùng bảo vệ thông tin cá nhân, đảm bảo an toàn và ngăn chặn việc truy cập trái phép từ bên ngoài vào dữ liệu của xe.

Giao diện đăng nhập kết nối với Server qua API để xác minh tài khoản trong Database Nếu thông tin đúng, người dùng sẽ được chuyển đến trang chính; ngược lại, hệ thống sẽ hiển thị thông báo sai mật khẩu hoặc tên đăng nhập.

Nhóm đã sử dụng đồng thời logo của trường UTE và logo của công ty Bosch, đơn vị hỗ trợ thiết bị và công cụ cho dự án Hai khung dưới sẽ dùng để nhập Username và Password, giả định rằng chủ xe đã nhận thông tin từ nhà cung cấp xe, tiếp theo là nút Log In để truy cập vào trang tiếp theo.

(a) Một số quy tắc khi đăng nhập (b) Khi nhập sai Username hay

Hình 4.3: Các thông tin cần cho đăng nhập

Người dùng cần nhập cả Username và Password theo yêu cầu, không được để trống Mật khẩu phải có ít nhất 8 ký tự để đảm bảo tính bảo mật.

Dưới khung đăng nhập có một nút hình con mắt, giúp người dùng dễ dàng kiểm tra xem mật khẩu đã được nhập chính xác hay chưa, từ đó có thể chỉnh sửa nếu cần.

Sau khi nhập đúng các yêu cầu về mật khẩu, người dùng có thể nhấn nút "Log In" màu xanh để chuyển sang trang tiếp theo Khi đăng nhập, hệ thống sẽ kiểm tra tính chính xác của dữ liệu so với thông tin trong cơ sở dữ liệu Nếu thông tin không khớp, giao diện sẽ hiển thị thông báo lỗi, yêu cầu người dùng nhập lại tên đăng nhập hoặc mật khẩu cho chính xác.

4.2.2 Giao diện hiển thị các thông số Đối với việc đăng nhập thành công thì ứng dụng sẽ trực tiếp chuyển sang trang giao diện hiển thị các thông số Đặc biệt khi người dùng đã đăng nhập vào được ứng dụng điện thoại thì lần đăng nhập sau sẽ không cần đăng nhập lại và chuyển thẳng vào trang giao diện hiển thị các thông số

Hình 4.4: Giao diện hiển thị các thông số

Giao diện hiển thị thông số xe bao gồm tốc độ, nhiệt độ động cơ, mức nhiên liệu và quãng đường đã đi, được sắp xếp theo 4 ô từ trên xuống và từ trái qua phải Ngoài ra, các thông số còn được trình bày thông qua các hoạt ảnh động, tạo ấn tượng mạnh mẽ với người dùng.

Ô đầu tiên trên giao diện sẽ hiển thị tốc độ hiện tại của xe, với dữ liệu được truyền qua giao thức MQTT thông qua một MQTT Broker, đảm bảo độ trễ rất thấp.

(a) Giao diện hiển thị khi tốc độ cao (b) Thông báo khi tốc độ cao

Hình 4.5: Giao diện và tính năng thông số tốc độ xe

Khi xe đạt tốc độ trên 80 Km/h, khung ô tô sẽ chuyển sang màu đỏ để cảnh báo tốc độ cao Ứng dụng cũng sẽ gửi thông báo đến điện thoại người dùng, nhắc nhở về việc lái xe an toàn và tuân thủ tốc độ Mỗi thông báo sẽ có mục đích cảnh báo riêng, phù hợp với các thông số khác nhau để đảm bảo an toàn cho người lái.

(a) Giao diện hiển thị khi nhiệt độ động cơ cao

(b) Thông báo khi nhiệt độ động cơ cao

Hình 4.6: Giao diện và cảnh báo thông số nhiệt độ động cơ

Nhiệt độ động cơ có thể dao động từ -40 đến 210 độ C Khi nhiệt độ vượt quá 80 độ C, hệ thống sẽ thay đổi khung ô trên giao diện và gửi thông báo đến điện thoại, nhằm cảnh báo người dùng về tình trạng nhiệt độ cao của động cơ trong xe.

(a) Giao diện hiển thị khi gần hết nhiên liệu

(b) Thông báo khi gần hết nhiên liệu

Hình 4.7: Giao diện và cảnh báo thông số mức nhiên liệu

Theo tiêu chuẩn J1939, mức tiêu thụ nhiên liệu trung bình là 3,212 L/H, từ đó có thể chuyển đổi để xác định giá trị phần trăm tiêu thụ.

Ứng dụng điện thoại sẽ gửi thông báo và thay đổi màu khung khi mức tiêu thụ nhiên liệu giảm xuống dưới 20%, giúp người dùng dễ dàng theo dõi mức tiêu thụ Điều này nhằm cảnh báo người dùng về việc nạp nhiên liệu kịp thời, tránh tình trạng hết nhiên liệu khi đang lưu thông.

(a) Giao diện hiển thị quãng đường đã đi được

(b) Thông báo khi đến hạn bảo trì dựa trên quãng đường đã được Hình 4.8: Giao diện và cảnh báo thông số quãng đường đi được

Trên ECU, giá trị quãng đường xe đã di chuyển được lưu trữ mặc định và cần được chuyển đổi theo chuẩn J1939.

Khi xe đã di chuyển hơn 200Km, hệ thống sẽ cảnh báo và thay đổi màu khung của ô, nhằm thông báo cho người dùng rằng đã đến lúc cần bảo dưỡng xe.

GIAO DIỆN HIỂN THỊ TRÊN WEB

Hình 4.14: Giao diện đăng nhập

Giống như ứng dụng điện thoại, web cũng có tính năng đăng nhập cho phép người dùng truy cập và sử dụng các tính năng của trang Giao diện web hoạt động tương tự như ứng dụng di động, với sự khác biệt về bố trí, màu sắc và sắp xếp Tài khoản người dùng được cung cấp bởi nhà cung cấp, cho phép đăng nhập cả trên ứng dụng và web Để xác thực thông tin và kiểm tra tài khoản trong cơ sở dữ liệu, giao thức HTTP được sử dụng, đảm bảo tốc độ truyền tải nhanh chóng và tính bảo mật cao.

Để xác định xem bạn đã đăng nhập đúng tài khoản và mật khẩu hay chưa, giao diện sẽ hiển thị thông báo tương ứng Nếu thông tin đăng nhập không chính xác, màn hình sẽ hiện lên dòng chữ thông báo lỗi.

Khi người dùng gặp thông báo “Sai tên đăng nhập hoặc mật khẩu” như hình 4.15, họ cần chắc chắn nhập đúng thông tin tài khoản Nếu đăng nhập thành công, người dùng sẽ được chuyển ngay đến trang tiếp theo.

Hình 4.15: Khi đăng nhập sai mật khẩu

Sau khi người dùng đăng nhập thành công với các giá trị trạng thái từ cơ sở dữ liệu, trang web sẽ chuyển hướng đến giao diện chính.

Giao diện chính hiển thị đầy đủ các thông số quan trọng của xe, bao gồm tốc độ, nhiệt độ động cơ, mức nhiên liệu và quãng đường đã đi Đây là trang giúp người dùng có cái nhìn tổng quát về các giá trị thông số mà nhóm đã lựa chọn.

Người dùng có thể nhấn vào từng thông số để xem chi tiết các thông số giao diện hiển thị như gauge và nhiệt kế Bên cạnh đó, hệ thống cũng cung cấp các thông báo chẩn đoán và cảnh báo hữu ích.

Trong giao diện chính của người dùng, người dùng có thể chọn xem các thông số riêng biệt, trong đó có nhiệt độ động cơ Khi chọn thông số này, giao diện sẽ hiển thị nhiệt độ động cơ và thông báo qua toast nếu nhiệt độ vượt quá 80°C, cảnh báo tình trạng quá nhiệt Mục đích của tính năng này là giúp người dùng nhận biết mức nhiệt độ của động cơ, từ đó có thể thực hiện các biện pháp xử lý kịp thời như đưa đi sửa chữa.

Hình 4.18: Cảnh báo khi nhiệt độ động cơ cao

Khi mức nhiên liệu giảm xuống dưới 20%, người dùng sẽ nhận được thông báo toast trên web, cảnh báo rằng xe sắp hết nhiên liệu Điều này giúp người dùng kịp thời đi đổ xăng hoặc nạp nhiên liệu để tránh tình trạng hết nhiên liệu trong quá trình sử dụng xe.

Hình 4.20: Cảnh báo khi nhiên liệu gần hết

Hình 4.21: Tốc độ hiện tại của xe

Giao diện hiển thị tốc độ hiện tại của xe sử dụng Gauge, như minh họa trong Hình 4.21, cho phép các giá trị thông số được cập nhật liên tục thông qua giao thức MQTT với một MQTT Broker Khi tốc độ xe vượt quá 80km/h, hệ thống sẽ hiển thị cảnh báo tốc độ cao trên trang web, giúp người dùng nhận biết kịp thời.

78 có thể xem và giảm tốc độ hạn chế gây tai nạn cũng như là tránh những việc vi phạm luật giao thông

Hình 4.22: Cảnh báo tốc độ xe cao

● Quãng đường xe đã đi được

Hình 4.23: Thông số quãng đường xe đã đi được

Giao diện hiển thị quãng đường xe đã di chuyển, tương đương với giá trị đồng hồ "Công-tơ-mét" Dựa vào dữ liệu từ ECU, khi xe di chuyển vượt quá 200km, sẽ có cảnh báo cho biết đã đến thời điểm cần bảo trì xe.

Bảo trì xe định kỳ là cần thiết để hạn chế hư hỏng và phát hiện kịp thời các vấn đề Việc này giúp người dùng dễ dàng theo dõi và quản lý tình trạng hiện tại của xe, từ đó nâng cao hiệu suất và độ bền của phương tiện.

Hình 4.24: Thông báo tới lúc xe cần bảo trì, bảo dưỡng

GIAO DIỆN HIỂN THỊ GUI TRÊN MÀN HÌNH 7INCH

Giao diện GUI được phát triển để người dùng theo dõi động cơ trực tiếp trong quá trình di chuyển mà không cần sử dụng web hay ứng dụng Điều này giúp giảm thiểu ảnh hưởng của kết nối internet đến độ chính xác của hệ thống.

Giao diện được thiết kế trên các tiêu chí:

+Hiển thị đúng, đủ các thông số đặc trưng của động cơ

+Thiết kế đơn giản, dễ tương tác với người dùng

Hình 4.25: Giao diện lựa chọn các tab của GUI

Giao diện GUI cần cân bằng giữa việc hiển thị nhiều thông tin và đảm bảo tính thẩm mỹ cũng như sự tương tác đơn giản Để đạt được điều này, chúng tôi đã phân chia thông tin thành ba trang chính, cho phép người dùng dễ dàng lựa chọn hiển thị thông qua nút chọn trang ở góc trên bên trái màn hình.

1 Home, trang này thể hiện tổng thể các thông số động cơ

2 Controller, ở trang này người dùng có thể chọn xem chi tiết từng thông số mà mình muốn theo dõi

3 Map, được cấu hình như một bản đồ giúp người dùng định hình được vị trí của phương tiện và các con đường xung quanh

Hình 4.26: Giao diện tổng thể GUI

Trên giao diện trang "Home", các thông số vật lý của động cơ được thu thập qua chuẩn J1939 sẽ được hiển thị Sau khi chuyển đổi từ CAN, các thông số này sẽ được lưu trữ trong các tệp dữ liệu, và GUI sẽ đọc trực tiếp từ các tệp này để hiển thị trên trang "Home" theo thứ tự lần lượt.

1 Đồng hồ thể hiện thời gian thực

2 Bản đồ thu nhỏ, thể hiện vị trí hiện tại của phương tiện

3 Đồ thị hiển thị lượng nhiên liệu hiện tại của phương tiện, đơn vị (%)

4 Đồ thị hiển thị nhiệt độ hiện tại của động cơ, đơn vị (°C)

5 Đồ thị thể hiện quãng đường mà phương tiện đã đi được, đơn vị (Km)

6 Đồ thị hiển thị vận tốc của phương tiện ở thời điểm hiện tại, đơn vị (Km/h)

GUI đọc dữ liệu trực tiếp từ các tệp lưu trữ mà không cần thông qua giao thức truyền thông, giúp giảm thiểu thời gian trễ và không phụ thuộc vào đường truyền mạng Các tệp lưu trữ cũng được ghi đè liên tục, ngăn ngừa hiện tượng tràn bộ nhớ.

4.4.2 Giao diện trang Controller Ở trang “Controller” người dùng có thể theo dõi chi tiết các thông số của động cơ, đồng thời có thể truy xuất các giá trị lớn nhất, nhỏ nhất và giá trị trung bình của một thông số vật lý bất kỳ từ dữ liệu đã được lưu trữ trên cơ sở dữ liệu

Hình 4.27: Các thành phần trong trang Controller

Giao diện “Controller” gồm hai phần chính:

Nhóm nút nhấn bên trái màn hình (đánh số 1) cho phép người dùng lựa chọn các thông số vật lý cần theo dõi, bao gồm tốc độ xe, nhiệt độ động cơ, mức nhiên liệu hiện tại, quãng đường đã đi và trích xuất lịch sử dữ liệu Trục hoành tương ứng hiển thị giá trị thời gian theo định dạng giờ, phút và giây.

Sau khi người dùng chọn thông số qua các nút nhấn, chi tiết của thông số sẽ hiển thị ở bên phải màn hình Khi truy cập trang “Controller”, thông số mặc định hiển thị là tốc độ của xe.

Hình 4.28: Thông số tốc độ xe

Khi người dùng nhấn nút “Vehicle speed”, giao diện chi tiết hiển thị thông số tốc độ của xe sẽ xuất hiện Giao diện này bao gồm các thành phần chính liên quan đến tốc độ của xe.

1 Nút chọn theo dõi tốc độ của xe

2 Biểu độ hiển thị tốc độ của xe trong vòng 1 giờ tính từ khi người dùng chọn theo dõi tốc độ của xe Biểu đồ được thế kế là dạng biểu đồ điểm với trục tung tương ứng với giá trị của tốc độ của xe (có giới hạn từ 0-120 Km/h)

3 Gauge thể hiện tốc độ của động cơ ở thời điểm hiện tại

4 Dãy đèn báo gồm 3 đèn đỏ, xanh, vàng Ba đèn này giúp người dùng có thể nhận biết được khi tốc độ của xe vượt quá ngưỡng cho phép Ba đèn báo có các giá trị giới hạn theo thứ tự xanh, vàng, đỏ lần lượt là 0-40 (Km/h), 41-100 (km/h), 100-

5 Chú thích thể hiện trạng thái của tốc độ của xe gồm các mức độ cảnh bảo tốc độ thấp, vừa, cao lần lượt tương ứng với các ngưỡng 0-40 (Km/h), 41-100 (km/h), 100-

Hình 4.29: Thông số nhiệt độ động cơ

Khi người dùng nhấn nút “temperature”, giao diện chi tiết về thông số nhiệt độ động cơ sẽ xuất hiện Giao diện này bao gồm các thành phần chính liên quan đến nhiệt độ động cơ.

1 Nút chọn theo dõi nhiệt độ động cơ

2 Biểu độ hiển thị nhiệt độ động cơ trong vòng 1 giờ tính từ khi người dùng chọn theo dõi nhiệt động cơ Biểu đồ được thế kế là dạng biểu đồ điểm với trục tung tương ứng với giá trị của nhiệt độ động cơ (có giới hạn từ -40°C-210°C), trục hoành tương ứng với giá trị thời gian theo kiểu (giờ, phút, giây)

3 Gauge thể hiện nhiệt độ của động cơ ở thời điểm hiện tại, dạng gauge được chọn có biểu tượng thang đo nhiệt độ giúp người dùng dễ hình dung về đại lượng vật lý nhiệt độ, giới hạn của gauge là từ -40 -210(°C), gauge có khả năng chuyển đổi màu sắc tùy thuộc vào nhiệt độ tại các thời điểm khác nhau

4 Dãy đèn báo gồm 3 đèn đỏ, xanh, vàng Ba đèn này giúp người dùng có thể nhận biết được khi nhiệt độ động cơ vượt quá ngưỡng cho phép Ba đèn báo có các giá trị giới hạn theo thứ tự xanh, vàng, đỏ lần lượt là -40-20 (°C), 21-70 (°C), 71-210 (°C)

Ngày đăng: 08/12/2023, 15:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w