4.3.1. Tác vụ cài đặt
71 ESP32 là một chip có khả năng kết nối đến mạng WiFi như một client (điện thoại, laptop,...) và trở thành một điểm truy cập cho những thiết bị khác như là một Modem. Ở sơ đồ này, ESP32 được khởi tạo như một client để kết nối vào mạng WiFi ở trạng thái client. Nếu kết nối không thành công nó sẽ kiểm tra trạng thái nút nhấn để vào chế độ cài đặt mềm và thực hiện tái kết nối lại vào mạng WiFi. Nếu quá 8 giây mà không kết nối được WiFi và không có tín hiệu vào trạng thái cài đặt mềm, ESP32 sẽ được reset bởi watchdog timer. Trường hợp nối kết thành công vào WiFi, ESP32 sẽ thực hiện việc gán giá trị trong các ô nhớ EEPROM vào các biến được khai báo cho các tác vụ đọc dữ liệu rồi tiến hành khởi tạo các đối tượng, hàm cần thiết rồi vào vòng lặp chính.
4.3.2. Vòng lặp chính
Hình 4.17. Vòng lặp chính
Khi ESP32 vào vòng lặp chính, nó sẽ thực hiện các tác vụ chính là giữ kết nối đến MQTT broker, kiểm tra trạng thái nút nhấn để thực hiện tác vụ cài đặt mềm và đọc dữ liệu. Sau đó ESP32 sẽ đóng gói và gửi dữ liệu về MQTT broker. Ngoài ra, ESP32 sẽ kiểm tra điều kiện để thực hiện OTA nếu có phiên bản phần mềm mới.
72
4.3.3. Tác vụ cài đặt mềm
Hình 4.18. Tác vụ cài đặt mềm
Tác vụ cài đặt mềm xảy ra khi có điều kiện là nút nhấn được nhấn và giữ hơn 2 giây. Trong quá trình hoạt động của ESP32 mỗi khi có sự thay đổi về SSID và password của WiFi ta phải nạp lại code nếu như không cấu hình chức năng cài đặt mềm. Ngoài ra ở đây nhóm có bổ sung thêm một vài thông số như ID cho gateway và một số thông số cài đặt cho các hàm như thời gian chờ cho bản tin CAN, số cảm biến MPU6050.
4.4. Các lưu đồ thuật toán của Server và Client 4.4.1. Nhận và lọc các gói tin MQTT 4.4.1. Nhận và lọc các gói tin MQTT
73 Sau khi khởi tạo MQTT broker, Server sẽ vào trạng thái chờ để nhận các bản tin được publish từ Gateway. Khi nhận được một gói tin nào đó đến đúng địa chỉ Ip và port, Server kiểm tra Id và password để xác thực xem đây có phải bản tin đến từ Gateway trong hệ thống. Nếu kiểm tra điều kiện đúng, Server sẽ tiếp tục kiểm tra cấu trúc gói tin để xác thực gói tin có nghĩa hay không. Nếu điều kiện sai hoặc gói tin không có nghĩa, Server sẽ bỏ qua gói tin. Sau cùng Server quay lại trạng thái chờ gói tin.
4.4.2. Web Server xử lý các tác vụ từ Web client
Hình 4.20. Web Server xử lý các tác vụ từ Web client
Sau khi khởi tạo HTTP server, Server sẽ vào trạng thái chờ để nhận các yêu cầu từ client. Khi nhận được một gói tin nào đó đến đúng địa chỉ Ip và port, Server sẽ kiểm tra Gateway ID và node ID trong phần body của HTTP request từ client. Sau đó, Server sẽ truy vấn vào cơ sở dữ liệu dựa vào Gateway ID và node ID rồi trả về cho client ở dạng JSON. Nếu không sẽ gửi về mã lỗi để gỡ lỗi.
74
4.4.3. Client gửi yêu cầu và xử lý dữ liệu trả về từ Server
Hình 4.21. Client gửi yêu cầu và xử lý dữ liệu trả về từ Server
Sau khi khởi tạo HTTP Client, client gửi request về Server và chờ đợi Server trả lời với dữ liệu cần thiết hoặc mã lỗi. Nếu Server trả lời với gói tin dữ liệu đúng nhưng định nghĩa trước với ý nghĩa của từng dữ liệu thì client sẽ render ra từng màn hình. Nếu server không trả lời hoặc trả lời gói tin không đúng định nghĩa từ trước, client sẽ không render dữ liệu ra màn hình mà thực hiện lại việc gửi yêu cầu đến Server.
4.5. Kết quả kiểm tra giao tiếp giữa hộp Gateway với ECU Toyota Yaris 2009
Sau khi thực hiện đấu nối thiết bị với mô hình ECU Toyota Yaris 2009 nhóm đã kết nối thành công với ECU và đọc được các giá trị dữ liệu OBD, tín hiệu GPS cùng các dữ liệu cảm biến. Dữ liệu được gửi về Server và được lưu vào cơ sở dữ liệu.
75
Hình 4.22. Dữ liệu được gửi về Server và lưu vào cơ sở dữ liệu
Hình 4.23. Các gói tin CAN thu được
76
CHƯƠNG 5. QUY TRÌNH VÀ KẾT QUẢ THỰC NGHIỆM 5.1. Thiết lập quy trình kiểm thử hoạt động hệ thống
Các thiết bị cần thiết cho việc thử nghiệm hoạt động của hệ thống trên xe gồm:
Hộp Gateway
4 cảm biến gia tốc
Ăng-ten GPS
Các loại dây cáp, gồm: 1 cáp OBD2, 4 cáp RJ45 và 1 cáp nạp code
Hình 5.1. Các thiết bị của hệ thống
Sau khi chuẩn bị đầy đủ các thiết bị cần thiết, ta tiến hành bố trí các thiết bị lên xe. Hộp thiết bị được đặt ở dưới vị trí ghế ngồi của tài xế và được kết nối với xe thông qua cổng OBD2 ở dưới vô lăng của xe bằng dây cáp OBD2. 4 cảm biến gia tốc được đặt ở vị trí 4 góc của xe và được cố định trên sàn xe bằng băng dính. 4 cảm biến này được kết nối với hộp thiết bị bằng dây cáp chuẩn RJ45.
77
Hình 5.2. Hộp thiết bị và 2 cảm biến gia tốc đặt ở phía trước xe
Hình 5.3. Hai cảm biến gia tốc được đặt ở phía sau xe
Sau khi đã bố trí hoàn chỉnh các thiết bị của hệ thống lên xe, ta tiến hành kích hoạt server trên EC2.
78
Hình 5.4. Kích hoạt server trên EC2
Hình 5.5. Cấu hình Server trên AWS EC2
Sau khi kích hoạt server trên EC2, ta bắt đầu quá trình thử nghiệm. Trong quá trình thử nghiệm, tài xế sẽ lái xe trong phạm vi khuôn viên Trường Đại học Sư phạm Kỹ thuật TPHCM theo các trường hợp cụ thể, với tốc độ trung bình <30 km/h. Người quản lý sẽ ngồi tại vị trí xưởng điện – điện tử ô tô để theo dõi tình trạng xe thông qua màn hình Web dashboard. Các trường hợp di chuyển của xe trong bài thử nghiệm này bao gồm:
Xe đang đứng yên và động cơ hoạt động ở tốc độ cầm chừng
Xe tăng tốc và giảm tốc đột ngột rồi dừng lại
Xe lên và xuống dốc
Xe quay vòng trái, phải
79
Hình 5.6. Tài xế lái xe và người quản lý ngồi tại xưởng điện – điện tử ô tô
5.2. Kết quả chạy thực nghiệm trên xe Vios 2009 5.2.1. Dữ liệu thu được trên giao diện máy tính 5.2.1. Dữ liệu thu được trên giao diện máy tính
Hình 5.7. Tab Dashboard trên màn hình máy tính Các thông số hiển thị trên màn hình máy tính ở tab Dashboard bao gồm:
Vị trí hiện tại của xe
Vận tốc của xe (km/h)
Tốc độ động cơ (rpm)
Độ mở bướm ga (%)
Nhiệt độ nước làm mát (oC)
Loại nhiên liệu và mức nhiên liệu còn lại (%)
80
Hình 5.8. Tab Charts trên màn hình máy tính Các thông số hiển thị trên màn hình máy tính ở tab Charts bao gồm:
Gia tốc dịch chuyển thẳng đứng (m/s2)
Vận tốc góc gyroscope (độ/giây)
Ngoài ra, dữ liệu thu được trong quá trình vận hành cũng được lưu vào thẻ SD card.
81
5.2.2. Phân tích kết quả thực nghiệm
Trường hợp 1: Xe tăng tốc nhanh và phanh đột ngột rồi dừng lại
Hình 5.10. Bài kiểm tra tăng tốc, phanh đột ngột
82
Trong trường hợp tăng tốc và phanh đột ngột, gia tốc aX là thông số có giá trị thay đổi
nhiều nhất. Khi xe bắt đầu tăng tốc và đạt tốc độ cao khoảng 30 – 35 km/h, aX tăng nhanh
khoảng 4 – 6 m/s2. Khi xe đạt đến tốc độ 30 km/h thì bất ngờ đạp phanh, gia tốc aX giảm
đột ngột xuống khoảng 3 – 4 m/s2. Các giá trị aY và aZ thay đổi không đáng kể.
Trường hợp 2: Xe lên và xuống dốc
Hình 5.12. Bài kiểm tra lên và xuống dốc
83
Khi xe lên dốc, giá trị aX tăng nhanh khoảng 2 m/s2 và aZ tăng chậm khoảng 1 – 2 m/s2.
Khi xe xuống dốc, giá trị aX và aZ giảm từ từ khoảng 1.5 – 2 m/s2. Còn giá trị gia tốc aY có
giá trị thay đổi không đáng kể ở cả trường hợp lên dốc và xuống dốc.
Trường hợp 3: Xe quay vòng trái, phải
Hình 5.14. Bài thử nghiệm quay vòng trái, phải
84 Tiến hành thử nghiệm đánh lái quay vòng với tốc độ trung bình 20 km/h, nhận thấy thông số bị tác động lớn nhất là vận tốc góc gyroscope theo trục Z, cụ thể giá trị vận tốc
theo trục Z đạt cực đại khoảng 15 độ/giây. Thông số gia tốc aX và aY tăng nhẹ, còn aZ thay
đổi không đáng kể.
Trường hợp 4: Xe đi một đoạn đường ngẫu nhiên
Hình 5.16. Bài thử nghiệm xe đi đoạn đường ngẫu nhiên
85 Khi xe đi trên đoạn đường ngẫu nhiên, các giá trị gia tốc dịch chuyển thẳng đứng và vận tốc góc gyroscope thay đổi tùy theo điều kiện mặt đường và tình trạng giao thông tại nơi xe di chuyển. Trong bài thử nghiệm, đoạn đường xe di chuyển từ khu E sang cổng chính thì mặt đường khá bằng phẳng nên các giá trị gia tốc thay đổi không đáng kể.
Đánh giá chung: Khi xe đi qua những mấp mô với vận tốc cao, thân xe bị tác động
mạnh, gia tốc dịch chuyển rơi vào khoảng 2-3 m/s2 gây khó chịu cho người ngồi trên xe.
Trong trường hợp khi xe quay vòng tốc độ cao, thân xe bị nghiêng tác động đến giá trị vận tốc gyroscope, giá trị cao nhất rơi vào khoảng 10-12 độ/giây.
Kết quả cụ thể của quá trình thử nghiệm được thể hiện rõ trong video có đường
86
CHƯƠNG 6. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 6.1.Kết luận
Sau khoảng thời gian gần 4 tháng tìm hiểu và nghiên cứu, nhóm chúng em đã hoàn thành được mục tiêu ban đầu mà đề tài đặt ra là: “Nghiên cứu, thiết kế hệ thống giám sát và thu thập dữ liệu trên ô tô”. Qua đó tích lũy được cho bản thân vốn kiến thức có ích về thiết kế và chế tạo thiết bị phục vụ cho các yêu cầu cấp thiết, cụ thể là thiết bị hỗ trợ giám sát hành trình trên ô tô. Bên cạnh đó là sự củng cố các kiến thức chuyên ngành về lập trình và kiến thức căn bản về điều khiển tự động trên ô tô mà chúng em đã được học qua môn học “Điều khiển tự động trên ô tô” và “An toàn tiện nghi trên ô tô” trong chương trình đào tạo của nhà trường. Các mục tiêu cụ thể mà nhóm đã đạt được như sau:
Nắm được một số hàm cơ bản khi lập trình với JavaScript.
Thiết lập, vận hành được Server trên nền tảng AWS EC2.
Nắm được lý thuyết và thực hiện truyền thông dữ liệu qua các chuẩn giao tiếp
UART, SPI, I2C, MQTT, HTTP.
Nắm được cơ sở lý thuyết và thực hiện xây dựng hệ thống web cơ bản.
Nắm được lý thuyết cơ bản về GPS và thực hiện được thao tác lấy dữ liệu từ module
GPS Neo M8N.
Nắm được lý thuyết và vai trò của CAN và OBD-II đối với nghành công nghệ ô tô,
lấy được các dữ liệu xe thông qua các PID được hỗ trợ trên xe Toyota Vios 2009 và Ford Ranger 2016.
Hoàn thành mô hình để lấy và truyền dữ liệu từ xe lên web server thông qua kết nối
Wifi.
Kết nối các module để có thể truyền và nhận dữ liệu lên web server.
Lưu trữ dữ liệu vào thẻ microSD.
Xây dụng được giao diện Web phù hợp để hiển thị dữ liệu cho người dùng.
Bên cạnh những thành quả đạt được, nhóm cũng còn một số yếu điểm và thiếu sót trong quá trình thực hiện. Cụ thể như sau:
Lập trình điều khiển nhận và lấy tín hiệu chưa được tối ưu. Dữ liệu đầu ra vẫn còn
khá nhiễu, chưa ổn định, chưa xây dựng được thuật toán lọc nhiễu phù hợp.
87
Phạm vi thử nghiệm còn hạn hẹp, chỉ ở trong phạm vi khuôn viên trường, chưa thể
thử nghiệm ở điều kiện xe chạy trên đường trường.
Hạn chế về số lượng và đặc tính của các cảm biến.
Chưa thực hiện được quy trình kiểm thử với nhiều xe trong cùng một thời điểm.
6.2. Hướng phát triển của đề tài
Để phát triển đề tài nhóm đề xuất một số phương án sau:
Tổ chức lại phương án lập trình cho Server: lựa chọn công nghệ tối ưu và cải thiện
giải thuật để đáp ứng tốc độ cập nhật dữ liệu từ phần cứng đến việc lưu database, tốc độ render dữ liệu ra màn hình cho người dùng theo dõi.
Cải thiện độ chính xác của tọa độ GPS để định vị tốt hơn, thay đổi và mở rộng tính
năng liên quan đến bản đồ để phát triển đề tài theo hướng theo dõi, quản lý xe.
Thay đổi phần cứng để đáp ứng các yêu cầu cao cho một sản phẩm có tính thương
mại cao hơn ví dụ như việc chuyển sang sử dụng GPRS, mạng không dây truyền tải dữ liệu giữa Gateway và các node cảm biến. Thiết kế lại PCB và vỏ hộp để tối ưu kích thước và hình dạng thiết bị. Cập nhật thêm tính năng hoạt động tiết kiệm năng lượng để có thể gắn xuyên suốt lên xe mà không ảnh hưởng nhiều đến nguồn điện bình accu.
Thay đổi các cảm biến để mở rộng các ứng dụng.
88
TÀI LIỆU THAM KHẢO
[1] https://infonet.vietnamnet.vn/phuong-tien/iot-va-ai-bien-nhung-chiec-o-to-trong-mo- thanh-hien-thuc-167342.html [2] https://www.slideshare.net/mbedlabsTechnosoluti/can-bus-65612867 [3] https://en.wikipedia.org/wiki/OBD-II_PIDs [4] https://tinhte.vn/thread/kien-thuc-co-ban-ve-he-thong-dinh-vi-toan-cau-gps.1268551/ [5] https://www.makerfabs.com/desfile/files/a9g_product_specification.pdf [6] https://www.u-blox.com/sites/default/files/NEO-M8-FW3_DataSheet_%28UBX- 15031086%29.pdf [7] https://www.u-blox.com/sites/default/files/products/documents/NEO- 6_DataSheet_%28GPS.G6-HW-09005%29.pdf [8] https://www.itead.cc/sim908-gsm-gprs-gps-module.html [9] https://www.robotshop.com/media/files/pdf/maduino-a7-gprs-gsm-module- datasheet.pdf [10]https://simcom.ee/documents/SIM868/SIM868_GNSS_AGPS_Application%20 Note_V1.01.pdf [11] https://mechasolution.vn/Blog/bai-21-cam-bien-gia-toc-goc-nghieng-mpu6050 [12] https://iotmakervn.github.io/iot-starter-book/?fbclid=IwAR0- bQS4psIIwLFM4fc_6G96s1WmkboLm9kO5mHHywccvKHWBts0nk0TRLE [13] https://vi.wikipedia.org/wiki/Internet_Vạn_Vật [14] https://helpex.vn/article/ung-dung-o-to-iot-va-cach-phat-trien-chung- 5c6b91b5ae03f61e2464d7fe [15] https://en.wikipedia.org/wiki/Advanced_driver-assistance_systems [16] https://viettimes.vn/bai-do-xe-to-to-thong-minh-dau-tien-o-da-nang-post116492.html [17] https://micas.vn [18] https://www.baovan.com.vn/post/phan-mem-quan-tri-logistics-tms-va-fms [19] https://www.espressif.com/sites/default/files/documentation/esp32_datasheet_en.pdf [20] ww1.microchip.com/downloads/en/DeviceDoc/MCP2515-Stand-Alone-CAN- Controller-with-SPI-20001801J.pdf [21] https://www.alldatasheet.com/datasheet-pdf/pdf/463228/TI1/TCA9548APW.html [22] https://vi.wikipedia.org/wiki/Điện_toán_đám_mây [23] https://magenest.com/vi/aws-la-gi-cac-dich-vu-cua-amazon-web-services/