Kết nối module OBD-II UART với Arduino Mega 2560

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo thiết bị thu thập và giám sát trên ô tô đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 56)

Lắp mạch như hình vẽ:

49 3.3 GỬI DỮ LIỆU BẰNG GIAO THỨC TCP, ĐÓNG GÓI KIỂU JSON

3.3.1 Thiết lập giao thức TCP

Gửi các lệnh sau để đưa dữ liệu theo gói TCP lên web

• AT+CIPSTART=”TCP”,”52.200.142.198”,80 thiết lập kiểu kết nối TCP và địa chỉ trang web cần giao tiếp. ”52.200.142.198” là địa chỉ của trang web: fast-anchorage-66763.herokuapp.com

• AT+CIPSEND=N,”n” : gữi dữ liệu với 1 dòng , N ứng với số kí tự của n • AT+CIPSEND : gữi dữ liệu nhiều dòng

• AT+CIPCLOSE : đóng thiết lập TCP

50

Kết quả cuối cùng nhận được là “+TCPCLOSE: 0” tức là đã gửi dữ liệu lên web thành công.

3.3.2 Đóng gói kiểu Json

Kiểu chuỗi Json gửi dữ liệu lên web có định dạng như sau:

Bảng 3.1: Định dạng chuổi Json

TT Key Giá trị Đơn

vị

Phạm vi dữ liệu

Mô tả Min Max

1 dtc_numb 2 Số lỗi động cơ

2 DTCs 1 P0102 Mã lỗi 2 P0113 ………… 3 ID 76-D11234 Biển số xe 4 GPS 0.Latitude 10.91464 ° (độ) 8 24 Tọa độ GPS 1.Longitude 106.014863 ° (độ) 102 110 5 a 1000 rpm 0 16,383.75 Tốc độ động cơ 6 b 30 % 0 100 Vị trí bướm ga 7 c 40 °C -40 215 Nhiệt độ không khí nạp 8 d 10 °C -40 215 Nhiệt độ nước làm mát 9 e 10 V 0 30 Điện áp ắc quy 10 f 10 Grams /sec 0 655.35 Lưu lượng khí nạp 11 g 10 ° (độ) -64 63.5 Góc đánh lửa sớm 12 h 10 ° (độ) -210 302

Thời gian phun nhiên liệu

13 j 10 °C -40 210

Nhiệt độ dầu động cơ

51

Kiểu chuổi Json tương ứng:

{"GPS":["10.914640","106.014863"]," ID ": 76-D11234, "a":1000, "b":30, "c":40, "d":10, "e":10, "f":10, "g":10, "h":10, " dtc_numb ":2, " DTCs ":["P0102","P0113"], "j":29011}.

3.4 GIAO DIỆN CỦA WEB 3.4.1 Đăng nhập vào địa chỉ 3.4.1 Đăng nhập vào địa chỉ

Ta đăng nhập vào địa chỉ: http://159.65.4.55:1333/bằng phần mền duyệt trình web. Sau đó hiện ra giao diện chính của web

Hình 3.16 Giao diện chính của Web

Sau khi giao diện chính của web hiện ra, ta thấy có 3 tiêu đề: Live update, Chart, Map

3.4.2 Giao diện Live Update

Tiêu đề này có mục đích là hiện thị tọa độ GPS, các thông số của xe và biểu đồ thông số của xe theo thời gian.

52

Sau khi click chuột ta có giao diện như sau

Hình 3.17 Giao diện của Live Update

Bên trái là cột thông số của xe còn bên phải mà bản đồ để hiện tọa độ

Hình 3.18 Biểu đồ thông số của xe

3.4.3 Giao diện Chart

Tiêu đề này có mục đích hiện thị lại các thông số của xe theo dạng biểu đồ theo ngày giờ.

Ta click chuột vào ô “Chart” để vào giao diện Sau khi click chuột ta có giao diện như sau

53

Hình 3.19 Giao diệp của Chart

Chọn ngày giờ muốn biết nhiệt độ nước làm mát vào ngày đó. VD: chọn từ 4:20 PM đến 4:30 PM ngày 21/07/2018, và thông số muốn chọn xem là Nhiệt độ nước làm mát.

54 3.4.4 Giao diện Map

Tiêu đề này có mục đích hiện thị lại tọa độ GPS theo ngày và theo thời gian

Theo ngày

Ta click chuột vào “Theo ngày” ở phía dưới tiêu để vào giao diện Sau khi click chuột ta có giao diện như sau

Hình 3.21 Giao diện của Map theo ngày

Ta chọn ngày muốn xem lại bản đồ. VD: ngày 30/06/2018

55

Theo thời gian

Ta click chuột vào “Theo thời gian” ở phía dưới tiêu để vào giao diện Sau khi click chuột ta có giao diện như sau

Hình 3.23 Giao diện của Map theo thời gian

Ta chọn thời gian muốn xem lại bản đồ. VD: ngày 30/06/2018 từ 10:00 AM đến 02:00 PM.

56

CHƯƠNG 4. THI CÔNG MÔ HÌNH VÀ KẾT QUẢ MÔ

PHỎNG 4.1 NHỮNG THIẾT BỊ LÀM MÔ HÌNH

Dưới đây là một số thiết bị để làm mô hình: • ECU Toyota Yaris

Hình 4.1 ECU Toyota Yaris • Đầu Jack OBD

57 • Cáp kết nối OBD-II Hình 4.3 Cáp kết nối OBD-II • Mạch giảm áp DC-DC Hình 4.4 Mạch giảm áp • Mạch OBD-II URAT • Module A9G • Arduino Mega 2560 • Nguồn 12V

58 4.2 SƠ ĐỒ KẾT NỐI MÔ HÌNH

Hình 4.5 Sơ đồ kết nối mô hình

4.3 MÔ HÌNH THỬ NGHIỆM THỰC TẾ

59

Hình 4.7 Mô hình kết nối module A9G, OBD-II, Mega 2560,Giảm áp

4.4 KẾT QUẢ CHẠY MÔ HÌNH

Thông số động cơ

60

Thay đổi biến trở để giả lập tín hiệu nhiệt nước làm mát và nhiệt độ không khí nạp

Hình 4.9 Thay đổi thông số THW, THA

Khi ta thay đổi biến trở để giả lập tín hiệu nhiệt độ nước làm mát và nhiệt độ không khí nạp thì thấy 2 tín hiệu này thay đổi. Ở hình 4.7 thì 2 tín hiệu có giá trị là 8℃. Còn hình 4.8 thì 2 giả trị đã thay đổi. THW: 46, THA: 63.

Tọa độ GPS

61

CHƯƠNG 5. QUY TRÌNH VÀ KẾT QUẢ THỰC NGHIỆM

5.1 THIẾT LẬP THIẾT BỊ

Mô hình tổng quan của hệ thống

Hình 5.1 Mô hình tổng quan của hệ thống

Thiết lập mô hình

Cắm 1 đầu của cáp OBD-II vào jack chuẩn đoán trong xe, đầu còn lại cấm mô hình.

62

Khởi động giao diện web

Hình 5.3 Khởi động web

5.2 KẾT QUẢ CHẠY THỰC NGHIỆM

Thông số động cơ

Khi chìa khóa xe ở chế độ IG thì máy đã chạy ở tốc độ cầm chừng

Hình 5.4 Thông số khi xe nổ máy

Lúc này, xe đã khỏi động và chạy ở chết độ cầm chừng nên tốc độ động cơ đã có. Khoảng 733 vòng/phút.

63

Đập bàn đạp ga để thay đổi vị trí bướm ga và tốc độ động cơ

Hình 5.5 Thông số khi xe tăng tốc

Khi ta đập bàn đạp ga để thay đổi vị trí bướm ga và tốc độ động cơ thì thấy 2 tín hiệu này thay đổi. Ở hình 5.3 thì 2 tín hiệu có giá trị lần lượt là VTA: 16, RPM: 733. Còn hình 5.4 thì 2 giả trị đã thay đổi. VTA: 20, RPM: 2439.

Tọa độ GPS

64

Đọc mã lỗi

Đầu tiên ta tạo lỗi cho xe bằng cách rút cảm biến đo lưu lượng không khí nạp. Sau đó vào khởi động động cơ. Sẻ thấy đèn Check Engine sáng.

Hình 5.7 Hiện thị mã lỗi

Sau khi đọc được mã lỗi ta bắt đầu sửa lỗi bằng cách gắn cảm biến lưu lượng không khí nạp vào. Sau đó rút cọc âm của bình ắc quy, chờ khoảng 5-10s rồi gắn cọc âm lại vào bình ắc quy. Vào xe khởi động lại máy. Sẻ thấy đèn Check Engine tắt.

Hình 5.8 Sửa mã lỗi

Lúc này đã hiện thông số nhiệt độ không khí nạp, lưu lượng không khí nạp và lỗi cũng đã biến mất.

65

CHƯƠNG 6. KẾT LUẬN VÀ ĐỊNH HƯỚNG PHÁT TRIỂN

6.1 NHỮNG KẾT QUẢ ĐẠT ĐƯỢC

• Nắm được một số hàm cơ bản khi lập trình với Arduino và Javascript • Nắm được lý thuyết của chuẩn giao tiếp UART

• Nắm được cơ sở lý thuyết xây dựng web server

• Nắm được lý thuyết về module GPS cũng như cách xác định vị trí

• Nắm được lý thuyết về OBD-II cũng như vai trò của OBD đối với nghành công nghệ ô tô

• Hoàn thành mô hình để lấy và truyền dữ liệu từ từ xe lên web server thông qua kết nối GPRS

• Kết nối các module GPRS và OBD-II UART để có thể truyền và nhận dữ liệu lên web server

6.2 HẠN CHẾ CỦA ĐỀ TÀI

• Chưa hoàn thành hộp đựng khi gắn lên xe

• Lập trình điều khiển nhận và lấy tín hiệu chưa được tối ưu. • Việc lấy dữ liệu GPS đôi lúc còn sai số nhiều khi ở trong nhà. • Chưa xử lý được những trường hợp lỗi không xác định

• Chưa tối ưu khi xe tắt máy module vẫn chạy làm tổn hao pin.

6.3 HƯỚNG PHÁT TRIỂN ĐỀ TÀI

• Đưa hình ảnh từ xe về web server.

• Đưa module về chế độ ngủ khi xe không hoạt động. • Hỗ trợ update phiên bản mới vào module từ xa.

66 PHỤ LỤC

Hướng dẫn thêm thư viện Json vào Arduino

Bước 1: Vào trang https://github.com/bblanchon/ArduinoJson để tải thư viện Arduino

Json về.

Hình 7.1 Tải thư viện Arduino Json

Bước 2: Sau khi tải thư viện Arduino Json về, khởi động phần mền Arduino IDE vào

Sketch/Include Library/Add .ZIP Library rồi chọn file ArduinoJson-master.Zip

67 Bước 3: Vào lại Sketch/Include Library/Add .ZIP Library xem thư viện có được thêm

vào chưa. Nếu thấy xuất hiện thì đã thêm vào thành công.

68 TÀI LIỆU THAM KHẢO

[1] https://learn.sparkfun.com/tutorials/obd-ii-uart-hookup-guide [2] https://vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_%C4%90%E1%BB% 8Bnh_v%E1%BB%8B_To%C3%A0n_c%E1%BA%A7u [3] https://vi.wikipedia.org/wiki/H%E1%BB%87_th%E1%BB%91ng_th%C3%B4ng_tin_di _%C4%91%E1%BB%99ng_to%C3%A0n_c%E1%BA%A7u [4] https://www.thegioididong.com/tin-tuc/hieu-ro-hon-ve-gprs-canh-cong-internet-cho-di- don-590218 [5] https://www.w3schools.com/nodejs/default.asp [6] http://aprs.gids.nl/nmea/ [7] https://en.wikipedia.org/wiki/OBD-II_PIDs [8] https://longvan.net/web-server.html [9] https://randomnerdtutorials.com/decoding-and-encoding-json-with-arduino-or-esp8266 [10] https://vi.wikipedia.org/wiki/TCP/IP

Một phần của tài liệu Nghiên cứu, thiết kế, chế tạo thiết bị thu thập và giám sát trên ô tô đồ án tốt nghiệp ngành công nghệ kỹ thuật ô tô (Trang 56)

Tải bản đầy đủ (PDF)

(76 trang)