GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔGIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔ
BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ơ TƠ GVHD: Th.S Nguyễn Ngơ Lâm SVTH : Đỗ Văn Hải MSSV: 13141077 Tp Hồ Chí Minh – 07/2018 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔ GVHD: Th.S Nguyễn Ngô Lâm SVTH : Đỗ Văn Hải MSSV: 13141077 Tp Hồ Chí Minh – 07/2018 TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TP HỒ CHÍ MINH ĐỘC LẬP - TỰ DO - HẠNH PHÚC KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Tp HCM, ngày tháng 07 năm 2018 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Đỗ Văn Hải Kỹ thuật Điện - Điện tử Đại học quy 2013 MSSV: 13141077 Mã ngành: Mã hệ: Lớp: 01 13141DT2D I TÊN ĐỀ TÀI: GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔ II NHIỆM VỤ Các số liệu ban đầu: - Sử dụng module sim 808 để thực hiện: gọi, nhắn tin GSM định vị GPS - Module Sim808 có GPS với độ nhạy cao với 22 kênh theo dõi 66 kênh tiếp nhận Bên cạnh đó, hỗ trợ công nghệ A-GPS, giúp cho việc định vị xác hơn, thiết bị nhà - Sai số định vị 10m - Tọa độ nhận biết xe ngã tối thiểu theo trục x là: 10000 - Giá trị nhận biết xe bị rung nhỏ 900 Khi xe không bị rung lắc va chạm giá trị hoạt động ổn định cảm biến rung thu thập từ 1021-1023 - Thiết bị thực cảnh báo gọi nhắn tin điện thoại theo dõi nằm vùng phủ sóng Nội dung thực hiện: - nghiên cứu hộp đen - Nghiên cứu gps, gsm Từ lưạ chọn linh kiện phù hợp (module sim) - Nghiên cứu Arduino số cảm cảm biến rung, cảm biến đo gia tốc góc số cảm biến khác liên quan đến hộp đen - Thực thiết kế mạch phần mềm chuyên dụng altium designer - Tiến hành thi công mạch in lắp ráp linh kiện phần cứng - Tìm hiểu cài đặt phần mềm lập trình cho board vi xử lý Arduino Arduino IDE ii - Lập trình kết nối liệu từ cảm biến thông qua vi xử lý trung tâm board Arduino hiển thị điện thoại Smart Phone - Chạy thử nghiệm hệ thống giám sát cảnh báo phương tiện vận tải ô tô monitor thực tế - Cân chỉnh hệ thống - Viết báo cáo - Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 13/03/2018 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 03/07/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Th.S Nguyễn Ngô Lâm CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iii TRƯỜNG ĐH SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH Tp HCM, ngày tháng 07 năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên : Đỗ Văn Hải Lớp: 13141DT2D MSSV: 13141077 Tên đề tài: GIÁM SÁT VÀ CẢNH BÁO HOẠT ĐỘNG PHƯƠNG TIỆN VẬN TẢI Ô TÔ Tuần/ngày Nội dung Tuần (13/3 – 19/3) Tuần (20/3 – 26/3) Tuần (27/3 – 02/4) Tuần (03/4 – 09/4) Tuần 10 (10/4 – 16/4) Gặp giáo viên hướng dẫn, nhận đề tài đồ án tốt nghiệp Tìm tài liệu phục vụ cho nghiên cứu thực đề tài, viết đề cương đồ án tốt nghiệp Thiết kế sơ đồ khối, sơ đồ nguyên lý mạch Tuần 11 (17/4 – 23/4) Lập trình điều khiển Module SIM808 gửi tin nhắn nhận gọi Tuần 12 (24/4 – 30/4) Chỉnh sửa, hoàn thiện lập trình cho tồn hệ thống Tuần 13,14 (01/5 – 14/5) Tuần 15 (15/5 – 21/5) Chỉnh sửa, hoàn thiện mạch thi công Tuần 16 (22/5 – 28/5) Tuần 17,18 (29/5 – 11/6) Tuần 19,20,21 (12/6 – 03/7) Tuần 22 (04/7 – 10/7) Xác nhận GVHD Cài đặt cơng cụ hỗ trợ lập trình điều khiển để thực đề tài Lập trình điều khiển arduino giao tiếp với module SIM808 Chạy thử nghiệm thực tế tinh chỉnh, đóng gói sản phẩm Lấy kết thực nghiệm viết đề cương cho báo cáo Viết báo cáo tốt nghiệp Chỉnh sửa, kiểm tra lần cuối nộp báo cáo Báo cáo đồ án tốt nghiệp iv GV HƯỚNG DẪN (Ký ghi rõ họ tên) Th.S Nguyễn Ngô Lâm v LỜI CAM ĐOAN Đề tài nhóm đồ án tự thực dựa vào số tài liệu cơng trình nghiên cứu, khơng chép từ tài liệu hay cơng trình có trước Nếu có chép nhóm đồ án hồn tồn chịu trách nhiệm Tp Hồ Chí Minh, ngày 01 tháng 07 năm 2017 Sinh viên thực ĐỖ VĂN HẢI vi LỜI CẢM ƠN “Uống nước nhớ nguồn, ăn nhớ kẻ trồng cây” truyền thống mang giá trị nhân văn vô quý báu mà từ xưa đến ơng cha ta dạy gìn giữ tận ngày hơm Chính lẽ mà nhóm nghiên cứu ln ln vơ tỏ lòng biết ơn chân thành đến tất người giúp đỡ nhóm tận tình thời gian qua để hoàn thành tốt đề tài đồ án tốt nghiệp “Giám sát cảnh báo hoạt động phương tiện vận tải ô tô” Và điều vô đặc biệt mà khơng thể khơng nhắc đến hướng dẫn vơ tận tình Thầy ThS.Nguyễn Ngơ Lâm Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh giúp đỡ nhiệt tình nhóm suốt q trình nghiên cứu hồn thành đề tài giao Quả với câu “Không Thầy đố mày làm nên” Vì thế, lời báo cáo đồ án tốt nghiệp này, Nhóm muốn dành lời cảm ơn chân thành sâu sắc đến Thầy ThS.Nguyễn Ngô Lâm Thầy Cô môn Điện Tử Công Nghiệp – Y Sinh Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chính Minh Đồng thời nhóm nghiên cứu thể biết ơn bạn lớp góp ý kiến xây dựng đề tài hồn thiện Khơng thể qn được, nhóm nghiên cứu xin gửi lời cảm ơn đến đấng sinh thành dưỡng dục hỗ trợ, động viên niềm động lực lớn lao để nhóm hồn thành tốt đề tài Mặc dù cố gắng nhiều, nhóm khó tránh khỏi lúc làm Thầy Cơ, bạn phiền lịng Kính mong q Thầy Cô, bạn lượng thứ bỏ qua Với vốn kiến thức hạn hẹp kinh nghiệm sống ỏi chắn báo cáo có sai lầm thiếu sót Nhóm nghiên cứu làm thứ lỗi mong nhận dạy, đóng góp vơ q báu q Thầy bạn để nhóm hồn thiện tốt đề tài Một lần nữa, nhóm nghiên cứu xin chân thành cảm ơn! Sinh viên thực ĐỖ VĂN HẢI vii viii MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iv Cam đoan vi Lời cảm ơn vii Mục lục viii Liệt kê hình vẽ x Liệt kê bảng vẽ xii Tóm tắt xiii Chương 1: TỔNG QUAN ĐẶT VẤN ĐỀ MỤC TIÊU NỘI DUNG NGHIÊN CỨU GIỚI HẠN BỐ CỤC Chương 2: CƠ SỞ LÝ THUYẾT 2.1TÌM HIỂU VỀ HỆ THỐNG GPS 2.1.1 Hệ thống định vị toàn cầu (GPS) 2.1.2 Cấu trúc hệ thống định vị toàn cầu GPS 2.1.3 Phương trình chuyển hướng 2.1.4 Thành phần tín hiệu gps 11 2.1.5 Cách thức làm việc hệ thống gps 15 2.2 TÌM HIỂU VỀ HỆ THỐNG MẠNG GSM 19 2.2.1 Mạng thơng tin di động tồn cầu (GSM) 19 2.2.2 Cấu trúc mạng điện thoại di động 20 2.2.3 Các Thành Phần Của Mạng Điện Thoại Di Động 22 2.2.4 Một số tập lệnh AT sử dụng cho ứng dụng GSM 24 2.3 CÁC CHUẨN GIAO TIẾP 32 2.3.1 Chuẩn giao tiếp I2C 32 2.3.2 Chuẩn giao tiếp UART 34 2.3.3 Chuẩn NMEA0183 35 2.4 GIỚI THIỆU PHẦN CỨNG 42 viii TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Nguyễn Quốc Vương, “Nghiên cứu, chế tạo hộp đen ô tô”, Luận văn Thạc sĩ, Trường DHSPKT, Tp.HCM, 2014 [2] Mohinder S Grawer, Lawrence R.Weill, Angus P.Andrews, “Global Positioning Systems, Inertial Navigation, and Integration”, A John Wiley & Sons, inc Publication, 2001 [3] Ahmed El-Rabbany, “Introduction to GPS the Global Positioning System”, Artech House, Inc Publication, 2002 [4] Wikipedia, Hệ thống định vị toàn cầu (sửa lần cuối vào 24 tháng năm 2018), http://vi.wikipedia.org/ [5] Tài liệu tham khảo datasheet linh kiện, https://www.alldatasheet.com/ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xiv PHỤ LỤC PHỤ LỤC Chương trình kiểm tra nút nhấn chống trộm void kt_nut() { byte button3 = digitalRead(chong_trom); if (button3 == LOW) { chongtrom = 0; digitalWrite(led_gps, HIGH); rung_ok = 0; } else { chongtrom = 1; digitalWrite(led_gps, LOW); } } Chương trình bị rung void rung() { int value = analogRead(A0); Serial.println(value); delay(20); if (value < 900) { digitalWrite(coi, HIGH); delay(4000); digitalWrite(coi, LOW); char data_to_send_sms[160]; sprintf(data_to_send_sms, " XE BAN DANG BI RUNG"); SendSMS(phone_number_to_send, data_to_send_sms); Serial.println("send_ok_ok"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xv PHỤ LỤC delay(3000); } } Chương trình thiết lập đọc giá trị cảm biến gia tốc MPU-6050 void mpu() { Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr, 14, true); // request a total of 14 registers AcX = Wire.read() 0) { Serial.println(respond); if (strcmp(respond, "\r\nOK\r\n") != 0) { digitalWrite (led_xinhan, HIGH); delay (3000); digitalWrite (led_xinhan, LOW); return false; } } } delay (2000); return false; } Chương trình thiết lập kết nối Arduino module SIM void ModemInit(void) { static bool is_modem_init_ok = false; int status_pin_level = 0; // to detect modem has been turn-on // Turnon modem: try_on: status_pin_level = analogRead(STATUS_PIN); if (status_pin_level < 500) // Check module on ? if not turn-off { is_modem_init_ok = false; Serial.write("No Sim808"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxii PHỤ LỤC digitalWrite(PWK_PIN, HIGH); delay(2000); digitalWrite(PWK_PIN, LOW); delay(2000); goto try_on; // We try turn-on until module SIM ready too use } if (is_modem_init_ok == false) { Serial.write("Initting "); modemSerial.write("ATE0\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } modemSerial.write("AT+CMGF=1\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxiii PHỤ LỤC modemSerial.write("AT+CGNSPWR=1\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } modemSerial.write("AT+CGNSSEQ=\"RMC\"\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } modemSerial.write("AT+CMGF=1\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxiv PHỤ LỤC { goto try_on; } modemSerial.write("AT+CNMI=2,2,0,0,0\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } modemSerial.write("AT+CMGDA=DEL ALL\r"); if (readSerialFrame(respond) > 0) { if (strcmp(respond, "\r\nOK\r\n") != 0) { goto try_on; } } else { goto try_on; } is_modem_init_ok = true; Serial.write("Initted"); delay(2000); kt_ok = 1; } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxv PHỤ LỤC int readSerialFrame(char result[]) { int i = 0; unsigned long currentMillis, previousMillis; previousMillis = millis(); currentMillis = previousMillis; while (1) { if (currentMillis - previousMillis >= 100) { return i; } else { if (modemSerial.available() > 0) { previousMillis = currentMillis; char inChar = modemSerial.read(); result[i] = inChar; i++; result[i] = 0; } } currentMillis = millis(); } } static int GetMessageFeilds(unsigned char **message_feildls, unsigned char *msg, unsigned char separate_char, int max_feild_get) { int count_feild = 0; *message_feildls = msg; message_feildls++; count_feild++; while (*msg != '\0') { if (*msg == separate_char) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxvi PHỤ LỤC { *msg = '\0'; *message_feildls = msg + 1; message_feildls++; count_feild++; if (count_feild >= max_feild_get) return count_feild; } msg++; } return count_feild; } static void NMEA_GPRMC_Decoder(GPS_T *gps_data, char *data_bytes) { //Get data char *message_field[13]; if (GetMessageFeilds(message_field, data_bytes, ',', 13) == 13) { Serial.write(message_field[GPS_FSTS]); Serial.write(message_field[GPS_SPEED]); Serial.write(message_field[GPS_ORG]); Serial.write(message_field[GPS_LON]); Serial.write(message_field[GPS_TIME]); if (strcmp(message_field[GPS_FSTS], "1") == 0) { gps_data->State_gps = true; gps_data->State_gps = true; gps_data->SpeedGPS = atof(message_field[GPS_SPEED]); gps_data->OrGPS = atof(message_field[GPS_ORG]); gps_data->Lat = atof(message_field[GPS_LAT]); gps_data->Lng = atof(message_field[GPS_LON]); } else BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxvii PHỤ LỤC { gps_data->State_gps = false; gps_data->Lat = 0; gps_data->Lng = 0; gps_data->SpeedGPS = 0; } gps_data->time_gps.time.sec = message_field[GPS_TIME][13] - '0' + 10 * (message_field[GPS_TIME][12] - '0'); gps_data->time_gps.time.minute = message_field[GPS_TIME][11] - '0' + 10 * (message_field[GPS_TIME][10] - '0'); gps_data->time_gps.time.hour = message_field[GPS_TIME][9] - '0' + 10 * (message_field[GPS_TIME][8] - '0'); gps_data->time_gps.time.date = message_field[GPS_TIME][7] - '0' + 10 * (message_field[GPS_TIME][6] - '0'); gps_data->time_gps.time.month = message_field[GPS_TIME][5] - '0' + 10 * (message_field[GPS_TIME][4] - '0'); gps_data->time_gps.time.year = message_field[GPS_TIME][3] - '0' + 10 * (message_field[GPS_TIME][2] - '0') + 100 * (message_field[GPS_TIME][1] - '0') + 1000 * (message_field[GPS_TIME][0] - '0'); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP- Y SINH xxviii