1. Trang chủ
  2. » Tất cả

(Đồ án hcmute) thiết kế hệ thống thông minh cảnh báo cho xe máy

75 3 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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ HỆ THỐNG THÔNG MINH CẢNH BÁO CHO XE MÁY GVHD:NGUYỄN THANH HẢI SVTH: NGUYỄN QUANG HUY MSSV: 14141130 SVTH: DƯƠNG VĂN HUÂN MSSV: 14141120 SKL 0 Tp Hồ Chí Minh, tháng 07/2018 an TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày 16 tháng 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: Nguyễn Quang Huy Dương Văn Huân Kỹ thuật Điện tử Truyền thông Đại học quy 2014 MSSV: 14141130 MSSV: 14141120 Mã ngành: 41 Mã hệ: Lớp: 14141DT I TÊN ĐỀ TÀI: THIẾT KẾ HỆ THỐNG THÔNG MINH CẢNH BÁO CHO XE MÁY II NHIỆM VỤ Các số liệu ban đầu: [1] Phạm Quang Huy, Lê Cảnh Trung, “Lập trình điều khiển với Arduino”, NXB Khoa học kỹ thuật, 2014 [2] Trần Thu Hà, “Điện tử bản”, NXB ĐH Quốc Gia Tp.HCM, 2013 Nội dung thực hiện: - Tìm hiểu nhu cầu thực tiễn công nghệ đề tài - Tìm hiểu lý thuyết liên quan, linh kiện sử dụng đề tài - Tính tốn thiết kế hệ thống điều khiển Arduino - Thiết kế mạch, điều khiển thiết bị, lập trình cho hệ thống - Đánh giá kết thực tiến tới hoàn thiện đề tài - Kết luận đề tài, đưa hướng phát triển tương lai III NGÀY GIAO NHIỆM VỤ: 20/3/2018 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/7/2018 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: PGS.TS Nguyễn Thanh Hải CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH i an TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 16 tháng năm 2018 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Quang Huy Lớp: 14141DT2B Họ tên sinh viên 2: Dương Văn Huân Lớp: 14141DT1B MSSV:14141130 MSSV:14141120 Tên đề tài: THIẾT KẾ HỆ THỐNG THÔNG MINH CẢNH BÁO CHO XE MÁY Tuần Nội dung Tuần Tìm hiểu cơng nghệ đề tài thực lý thuyết liên quan Tuần Tính tốn thiết kế sơ đồ khối hệ thống Tuần Tính tốn thiết kế sơ đồ nguyên lý mạch cần hệ thống, lựa chọn linh kiện cần thiết cho hệ thống Tuần Nghiên cứu Arduino UNO R3 Tuần Nghiên cứu module sim 808A, cảm biến rung module gia tốc Tuần 6-7 Lập trình giao tiếp Arduino với module sim 808A, cảm biến rung module gia tốc Tuần Tuần 9-10 Chạy thử nghiệm hệ thống testboard, kit Vẽ mạch in, thi công mạch in hệ thống Lắp ráp kiểm tra Tuần 11 Thiết kế mơ hình Tuấn 12 Đóng gói hệ thống chạy thử nghiệm Tuần 13-Tuần 16 Xác nhận GVHD Chạy thử nghiệm cân chỉnh toàn hệ thống Đánh giá kết đạt được, viết báo cáo GV HƯỚNG DẪN ii an LỜI CAM ĐOAN Đề tài tự thực dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Người thực đề tài Nguyễn Quang Huy Dương Văn Huân iii an LỜI CẢM ƠN Trong thời gian thực đề tài, người thực giúp đỡ gia đình, q thầy bạn bè nên đề tài hoàn thành Những người thực xin chân thành gửi lời cảm ơn đến: Thầy Nguyễn Thanh Hải, giảng viên trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM trực tiếp hướng dẫn tận tình giúp đỡ tạo điều kiện để nhóm hồn thành tốt đề tài Những người thực xin chân thành cám ơn đến thầy cô khoa Điện - Điện tử trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM tận tình dạy dỗ, bảo, cung cấp cho người thực kiến thức nền, chuyên môn làm sở để hồn thành đề tài Cảm ơn gia đình động viên luôn bên cạnh lúc khó khăn Xin gửi lời cảm ơn đến người bạn sinh viên khoa Điện-Điện tử giúp đỡ người thực đề tài để hoàn thành tốt đề tài Xin chân thành cảm ơn! Người thực đề tài Nguyễn Quang Huy Dương Văn Huân iv an MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii LỜI CAM ĐOAN iii LỜI CẢM ƠN .iv MỤC LỤC v DANH MỤC HÌNH vii DANH MỤC BẢNG .ix TÓM TẮT x CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục đích nghiên cứu 1.3 Nội dung nghiên cứu 1.4 Giới hạn đề tài 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT .4 2.1 Tổng quan gps .4 2.2 Giới thiệu phần cứng 2.2.1 Board Arduino 2.2.2 Module sim 808a 2.2.3 Cảm biến rung HDX-01 2.2.4 Cảm biến gia tốc MPU-6050 2.3 Các chuẩn giao tiếp 2.3.1 Chuẩn giao tiếp uart v an 2.3.2 Chuẩn giao tiếp I2C 10 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 11 3.1 Giới thiệu 11 3.2 Tính tốn thiết kế hệ thống 11 3.2.1 Thiết kế sơ đồ khối hệ thống 11 3.2.2 Tính tốn thiết kế mạch 12 3.2.3 Sơ đồ nguyên lý toàn mạch 18 CHƯƠNG THI CÔNG HỆ THỐNG 20 4.1 Giới thiệu 20 4.2 Thi công hệ thống 20 4.2.1 Thi công bo mạch hệ thống 20 4.2.2 Lắp ráp kiểm tra bo mạch hệ thống 21 4.3 Lập trình hệ thống 22 4.3.1 Lưu đồ 22 4.3.2 Phần mềm lập trình cho vi điều khiển 25 4.4 Viết tài liệu hướng dẫn sử dụng, thao tác 29 CHƯƠNG KẾT QUẢ - NHẬN XÉT - ĐÁNH GIÁ .30 5.1 Kết .30 5.2 Nhận xét – đánh giá 36 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37 6.1 Kết luận 37 6.2 Hướng phát triển 37 TÀI LIỆU THAM KHẢO 38 DANH SÁCH TỪ VIẾT TẮT 39 PHỤ LỤC .40 vi an DANH MỤC HÌNH Hình 2.1 Board Arduino UNO R3 Hình 2.2 Module sim 808A thực tế Hình 2.3 Cảm biến rung HDX-01 Hình 2.4 Cảm biến gia tốc MPU - 6050 Hình 2.5 Giản đồ truyền liệu UART .10 Hình 3.1 Sơ đồ khối hệ thống .12 Hình 3.2 Khối xử lý trung tâm sử dụng board Arduino UNO R3 13 Hình 3.3 Module Sim 808A 13 Hình 3.4 Sơ đồ nguyên lý kết nối Module Sim 808A vào Arduino UNO R3 .14 Hình 3.5 Sơ đồ nguyên lý kết nối module MPU-6050 vào Arduino 15 Hình 3.6 Sơ đồ nguyên lý kết nối cảm biến rung HDX-01 vào Arduino .16 Hình 3.7 Sơ đồ nguyên lý kết nối khối nút nhấn 17 Hình 3.8 Sơ đồ nguyên lý kết nối khối cảnh báo 18 Hình 3.9 Sơ đồ nguyên lý toàn mạch 19 Hình 4.1 Sơ đồ dây phủ đồng bo mạch hệ thống 20 Hình 4.2 Hình dạng 3D lớp bo mạch hệ thống 21 Hình 4.3 Lưu đồ cảm biến rung tác động 22 Hình 4.4 Lưu đồ module gia tốc tác động .23 Hình 4.5 Lưu đồ cho chương trình 24 Hình 4.6 Giao diện file menu arduino IDE 25 Hình 4.7 Giao diện Examples menu arduino IDE .26 Hình 4.8 Giao diện Sketch Menu Arduino IDE 26 Hình 4.9 Giao diện edit menu arduino IDE 27 Hình 4.10 Giao diện Tool Menu Arduino IDE 27 Hình 4.11 Board Arduino sử dụng 28 Hình 4.12 Arduino Toolbar 28 Hình 5.1 Hình thực tế khối nút nhấn cảnh báo .31 Hình 5.2 Hình thực tế khối cảm biến 31 Hình 5.3 Hình thực tế gắn linh kiện cho mặt .32 Hình 5.4 Trạng thái led cho biết trạng thái mạch 33 vii an Hình 5.6 Thao tác với module gia tốc 34 Hình 5.7 Tọa độ GPS mà module sim gửi điện thoại 34 Hình 5.8 Tra cứu địa với tọa độ nhận 35 Hình 5.9 Lỗi thường gặp anten khơng bắt tín hiệu .35 Hình 5.10 Tin nhắn cảnh báo chống trộm 35 viii an DANH MỤC BẢNG Bảng 2.1 Cấu trúc tổng quát Arduino UNO R3 .5 Bảng 5.1 Số liệu thực nghiệm 36 ix an PHỤ LỤC digitalWrite (led_xe, LOW); digitalWrite (coi, HIGH); delay(5000); digitalWrite (coi, LOW); delay(5000); gui_tin(); dk1 = 1; nga = 1; } delay(3); } } } void display_gps() { char float_str[10]; if (g_gps_data.State_gps == true) { dtostrf(g_gps_data.Lat, 10, 6, float_str); if (gps_ok == 0) { Serial.println(float_str); dtostrf(g_gps_data.Lng, 10, 6, float_str); Serial.println( float_str); digitalWrite(led_gps, HIGH); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 50 PHỤ LỤC delay(1000); digitalWrite(led_gps, LOW); delay(700); digitalWrite(led_gps, HIGH); delay(1000); digitalWrite(led_gps, LOW); delay(700); digitalWrite(led_gps, HIGH); delay(1000); digitalWrite(led_gps, LOW); delay(700); gps_ok = 1; } } } void gui_tin() // chuong trinh gui tin nhan di { char data_to_send_sms[160]; char tmp_str1[20], tmp_str2[20]; dtostrf(g_gps_data.Lat, 10, 6, tmp_str1); dtostrf(g_gps_data.Lng, 10, 6, tmp_str2); sprintf(data_to_send_sms, " Xe Ban Hien Tai O : https://maps.google.com/maps?q=%s,%s", tmp_str1, tmp_str2); SendSMS(phone_number_to_send, data_to_send_sms); Serial.println("send_ok_ok"); } void goi () // chuong trinh thuc hien cuoc goi { modemSerial.write("AT+CLIP=1\r"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 51 PHỤ LỤC modemSerial.write("ATD0968987377;\r"); Serial.write("ATD0968987377x`;\r"); delay(15000); modemSerial.write("ATH\r"); Serial.write("ATH\r"); } void update_gps() { static unsigned long previousMillis; unsigned long currentMillis; // Update GPS data currentMillis = millis(); if (currentMillis - previousMillis >= 2000) { modemSerial.write("AT+CGNSINF\r"); if (readSerialFrame(respond) > 0) { if (strncmp(respond, "\r\n+CGNSINF: ", 12) == 0) { NMEA_GPRMC_Decoder(&g_gps_data, respond + 12); } } previousMillis = currentMillis; } // End Update GPS data } /* Read input serial */ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 52 PHỤ LỤC int readSerial(char result[], int time_out) { int i = 0; unsigned long currentMillis, previousMillis; previousMillis = millis(); currentMillis = previousMillis; while (1) { if (currentMillis - previousMillis >= time_out) { return 0; } else { while (modemSerial.available() > 0) { char inChar = modemSerial.read(); if (inChar == '\r') { result[i] = '\0'; modemSerial.flush(); return i; } if (inChar != '*') { result[i] = inChar; i++; } } } currentMillis = millis(); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 53 PHỤ LỤC bool SendSMS(char *phone_num, char *data) { unsigned long currentMillis, previousMillis; char sms_cmd[50]; char respond[30]; char command_en[2] = {0x1A, 0}; sprintf(sms_cmd, "AT+CMGS=\"%s\"\r", phone_num); modemSerial.write(sms_cmd); if (readSerialFrame(respond) > 0) { Serial.println(respond); if (strcmp(respond, "\r\n>") != 0) { modemSerial.write(data); } } modemSerial.write(command_en); modemSerial.write(0X1A); Serial.println("send ok"); previousMillis = millis(); currentMillis = previousMillis; while (currentMillis - previousMillis < 12000) // timeout 5s { currentMillis = millis(); if (readSerialFrame(respond) > 0) { Serial.println(respond); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 54 PHỤ LỤC if (strcmp(respond, "\r\nOK\r\n") != 0) { digitalWrite (led_xinhan, HIGH); delay (3000); digitalWrite (led_xinhan, LOW); return false; } } } delay (2000); return false; } void ModemInit(void) // chuong trinh thiet lap giao tiep giua arduino voi sim808 { 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"); digitalWrite(PWK_PIN, HIGH); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 55 PHỤ LỤC 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; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 56 PHỤ LỤC } } else { goto try_on; } 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 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 57 PHỤ LỤC { 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; } 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; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 58 PHỤ LỤC 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; } } int readSerialFrame(char result[]) { int i = 0; unsigned long currentMillis, previousMillis; previousMillis = millis(); currentMillis = previousMillis; while (1) { if (currentMillis - previousMillis >= 100) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 59 PHỤ LỤC { 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 an 60 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; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 61 PHỤ LỤC 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 { 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'); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH an 62 PHỤ LỤC 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 an 63 an ... 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 3.2.1 Thiết kế sơ đồ khối hệ thống Hệ thống thông minh cảnh báo cho xe máy thiết kế gồm khối kết nối lại với theo nhiều hướng tạo nên hệ thống hoạt động ổn định... tài: THIẾT KẾ HỆ THỐNG THÔNG MINH CẢNH BÁO CHO XE MÁY Tuần Nội dung Tuần Tìm hiểu cơng nghệ đề tài thực lý thuyết liên quan Tuần Tính tốn thiết kế sơ đồ khối hệ thống Tuần Tính tốn thiết kế sơ... tài ? ?Thiết kế hệ thống thông minh cho cảnh báo xe máy? ?? Đề tài hoàn thành cụ thể:  Kết thi cơng hồn thiện  Hệ thống chạy ổn định, hồn thành 75% mục tiêu ban đầu  Độ phản hồi hệ thống cảnh báo

Ngày đăng: 02/02/2023, 09:26

Xem thêm: