Giao thức 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 45)

Giao thức TCP/IP là gì:

Bộ giao thức TCP/IP, (tiếng Anh: Internet protocol suite hoặc IP suite hoặc TCP/IP protocol suite - bộ giao thức liên mạng), là một bộ các giao thức truyền thông cài đặt chồng giao thức mà Internet và hầu hết các mạng máy tính thương mại đang chạy trên đó. Bộ giao thức này được đặt tên theo hai giao thức chính của nó là TCP (Giao thức Điều khiển Giao vận) và IP (Giao thức Liên mạng). Chúng cũng là hai giao thức đầu tiên được định nghĩa.

Như nhiều bộ giao thức khác, bộ giao thức TCP/IP có thể được coi là một tập hợp các tầng, mỗi tầng giải quyết một tập các vấn đề có liên quan đến việc truyền dữ liệu, và cung cấp cho các giao thức tầng cấp trên một dịch vụ được định nghĩa rõ ràng dựa trên việc sử dụng các dịch vụ của các tầng thấp hơn. Về mặt lôgic, các tầng trên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúng dựa vào các giao thức tầng cấp dưới để biến đổi dữ liệu thành các dạng mà cuối cùng có thể được truyền đi một cách vật lý.

Ứng dụng giao thức TCP/IP vào đề tài:

Giao thức TCP/IP được sử dụng để truyền thông tin từ module GPRS lên web server. Để làm được việc đó, ta sử dụng chức năng send TCP/IP của module A9G đề gửi một mẫu tin lên server. Ví dụ muốn gửi một mẫu tin “Hello world ” ta gửi một số tập lệnh sau:

AT+CIPSTART=\"TCP\",\"159.65.4.55\",1334 AT+CIPSEND

“Hello World” 0x1A

Bên phía server, ta sử dụng module “net” để lắng nghe dữ liệu và phân tích chuỗi dữ liệu đó thành dữ liệu để gửi đến cho trình duyệt web.

38

CHƯƠNG 3. LẤY DỮ LIỆU GPS VÀ THÔNG SỐ ĐỘNG CƠ

ĐƯA LÊN WEB 3.1 LẤY DỮ LIỆU GPS

3.1.1 Thiết lập và kích hoạt module A9G

Muốn thiết lập module A9G ta phải biết được sơ đồ chân của module.

Hình 3.1 Sơ đồ chân module A9G

Sau khi biết được chân của module A9G thì lắp mạch như hình vẽ:

39

Mô hình thực tế:

Hình 3.3 Mô hình thực tế kết nối với máy tính và modue A9G

Thiết lập module

Lấy module và sẽ thấy chủ thẻ micro sim ở mặt sau của mô-đun. Lắp sim vào khay và khóa nó.

Kích hoạt module

Đầu tiên mở phần mền AI-Thinker (không bật module A9G). Sau đó thiết lập tốc độ baud đến 115200, chọn PortNum cho phù hợp.

Sau đó, nhấn nút nguồn trong module A9G trong khoảng 2 giây và module này sẽ khởi động. Khi module được khởi động đúng cách, bạn sẽ thấy màn hình nối tiếp của bạn đang cho kết quả đầu ra. Gõ AT vào màn hình nối tiếp và nhấn Enter.

40

Hình 3.4 Gửi lệnh AT

Kết quả trả về khi gửi AT là “Ok”, tức là module đã được thiết lập thành công

3.1.2 Thiết lập chế độ GPS,GPRS

Thiết lập GPS

Gửi các lệnh sau để thiết lập chế độ GPS

AT+GPS = 1 bắt đầu thiết lập chế độ GPS AT+GPS = 0 tắt chế độ GPS

AT+GPS? xem thữ GPS đang ở chế độ nào (0,1) AT+GPSRD=N : thời gian để module trả về giá trị tọa độ

41

Hình 3.5 Gửi lệnh AT+GPSRD = 5

Thiết lập GPRS

Gửi các lệnh sau để thiết lập chế độ GPS At+CREG=1 : cho phép đăng kí mạng AT+CGATT=1 kích hoạt PDP

AT+CGDCONT=1,”IP”,”V-INTERNET” thiết lập tham số PDP của mạng Viettel

42

Hình 3.6 Tập lệnh thiết lập GPRS

3.1.3 Kết nối module A9G với Arduino Mega 2560

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

43 3.2 LẤY VÀ CHUYỂN ĐỔI THÔNG SỐ ĐỘNG CƠ

3.2.1 Thiết lập OBD-II URAT

Một khi đã kết nối với máy board OBD-II UART chúng ta sử dụng lệnh AT để giao tiếp với board. Những câu lệnh này thường bắt đầu với “AT”. Sau câu lệnh “AT” những chữ cái tiếp theo gửi tới board sẽ là những chỉ thị để board thực hiện.

Để bắt đầu kết nối với board, gõ “ATZ” và nhấn enter vào terminal. Thao tác này sẽ gửi tập lệnh để reset board OBD-II UART. Thông thường sẽ có một số LEDs trên board nhấp nháy trên board và tín hiệu trả về của board sẽ được hiển thị trên terminal.

44

Nếu nhận về những kí tự không có ý nghĩa. Chúng ta cần kiểm tra lại đường dây dẫn có đúng không và sau đó gửi lại lệnh “ATZ”. Một khi đã kết nối với board thành công. Ta đọc điện áp của hệ thống bằng cách gửi lệnh “ATRV” vào terminal và gõ enter. Board sẽ tự động gửi về giá trị điện áp của hệ thống như hình:

Hình 3.9 Gửi lệnh ATRV đến board OBD-II UART

Giá trị điện áp này sẽ tương đương với điện áp của ắc quy gắn trong xe. Nhưng trên hình giá trị điện áp này là 12.1V.

Để đọc những thông số tiếp theo của động cơ, board OBD-II UART phải được cấu hình về đúng chuẩn của giao thức OBD. Có một vài chuẩn giao thức OBD khác nhau, vì vậy sẽ gặp rắc rối để tìm giao thức đúng. Tuy nhiên, board OBD này có thể tự động tìm và nhận dạng giao thức đúng. Để sử dụng tính năng tự động tìm kiếm này. Mở chìa khóa xe

45

ở chế độ ON. Một khi xe đã ở chế độ ON, gửi dòng lệnh “ATSP0”. Board OBD-II UART sẽ tự động gửi lại “OK” nếu đã tìm ra giao thức đúng để giao tiếp với xe.

Hình 3.10 Gửi lệnh ATSP0 đến board OBD-II UART

3.2.2 Lấy thông số động cơ trong qua OBD-II UART

Chúng ta sẽ tập trung vào chế độ số 1 (Mode 01) của OBD để lấy các dữ liệu hiện hành của xe như là : tốc độ động cơ, nhiệt độ nước làm mát, nhiệt độ khí nạp, vị trí bướm ga, góc đánh lửa sớm, …

Ở Mode 01, thông số quan trọng nhất là 00. Thông số này sẽ cho chúng ta biết xe sẽ hỗ trợ những chế độ nào, những thông tin nào sẽ được hỗ trợ hiển thị. Ở cửa sổ terminal gõ “0100”. Tập lệnh này được truyền với board OBD-II UART sẽ được hiểu là người dùng đang muốn lấy dữ liệu ở chế độ “01”, PID “00”.

46

Hình 3.11 Gửi lệnh 0100 đến board OBD-II UART

Ở tập lệnh trả về này : “0100SEARCHING...41 00 BE 1F B8 13”, “41” là byte xác nhận mode đã yêu cầu tới tập lệnh. “00” là PID chúng ta đã gửi tới. “BE 1F B8 13” là dữ liệu trả về và sau khi phân tích chúng ta sẽ tìm ra những PID được hỗ trợ ở mode 01 này.

47

Ví dụ: Để lấy được nhiệt độ nước làm mát ta gửi lệnh “0105” theo tiêu chuẩn OBD.

Hình 3.12 Gửi lệnh 0105 đến board OBD-II UART

Dữ liệu nhận về là “010541 05 5A >” Sau khi phân tích ta sẽ có nhiệt độ nước làm mát hiện tại của động cơ là 50°C.

3.2.3 Chuyển đổi thông số động cơ

Sau khi lấy dữ liệu nhiệt độ nước là mát về ta được: “0105 41 05 5A”. Trong đó:

• 0105 là mã PIDs (01 là chế độ mode, 05 là mã PID) • 41 là mã kiểm tra của chế độ 01

• 05 là mã PID của nhiệt độ nước làm mát • 5A là thông số của nhiệt độ nước làm mát

48

5A là thông số theo cơ số 16 vậy nên muốn áp dụng công thức thì ta phải chuyển sang cơ số 10. Vậy 5A chuyển sang cơ số 10 là: 90. Sau đó ta tra bảng công thức

Hình 3.13 Bảng mã PID mode 01

Vậy giá trị A=90 nên nhiệt độ nước làm mát có giá trị là: 50℃.

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

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

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 45)

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

(76 trang)