1. Trang chủ
  2. » Luận Văn - Báo Cáo

kl dinh cong duy 2015 621 384

76 1 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

Nội dung

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN – ĐIỆN TỬ -oOo - ĐỒ ÁN TỐT NGHIỆP ĐỊNH VỊ VÀ THEO DÕI VỊ TRÍ PHƯƠNG TIỆN GIAO THƠNG Người hướng dẫn: TS ĐẶNG NGỌC MINH ĐỨC Người thực hiện: ĐINH CÔNG DUY Lớp: 1004002 Khóa: ĐH 14 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2015 TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG KHOA ĐIỆN – ĐIỆN TỬ -oOo - ĐỒ ÁN TỐT NGHIỆP ĐỊNH VỊ VÀ THEO DÕI VỊ TRÍ PHƯƠNG TIỆN GIAO THƠNG Người hướng dẫn: TS ĐẶNG NGỌC MINH ĐỨC Người thực hiện: ĐINH CƠNG DUY Lớp: 1004002 Khóa: ĐH 14 THÀNH PHỐ HỒ CHÍ MINH, NĂM 2015 LỜI CẢM ƠN Sau gần tháng nghiên cứu thực hiện, đồ án tốt nghiệp hồn thành Để làm điều ngồi nỗ lực thân em nhận góp ý hỗ trợ cần thiết vật chất lẫn tinh thần từ gia đình, thầy cô bạn bè Em xin gửi lời cảm ơn chân thành đến thầy Đặng Ngọc Minh Đức, người hướng dẫn trực tiếp, nhiệt tình giúp đỡ bảo em nhiều kiến thức đề tài em, giúp em chỉnh sửa sai sót góp phần cho luận văn thêm xác hồn thiện Em xin cảm ơn thầy cô Bộ môn Điện Tử - Viễn Thông thầy cô khoa truyền đạt cho em kiến thức từ đến chuyên sâu suốt năm qua học tập trường để em có kiến thức ngày hơm Điều quan trọng em xin gửi lời cảm ơn chân thành sâu sắc đến gia đình em, khơng có quan tâm, chăm sóc, hỗ trợ từ vật chất đến tinh thần từ gia đình có lẽ em khơng thể hồn thành tốt đề tài luận văn Mặc dù em cố gắng khó tránh khỏi sai sót mặt kiến thức lý thuyết cách trình bày Em mong nhận thông cảm nhiều ý kiến đóng góp Thầy, Cơ để đề tài ngày hoàn chỉnh hơn! Một lần em xin chân thành cảm ơn! TP Hồ Chí Minh, ngày Tác giả tháng năm 2015 CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI TRƯỜNG ĐẠI HỌC TƠN ĐỨC THẮNG Tơi xin cam đoan cơng trình nghiên cứu riêng hướng dẫn khoa học thầy Đặng Ngọc Minh Đức Các nội dung nghiên cứu, kết đề tài trung thực chưa cơng bố hình thức trước Những số liệu bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá tác giả thu thập từ nguồn khác có ghi rõ phần tài liệu tham khảo Ngoài ra, luận văn sử dụng số nhận xét, đánh số liệu tác giả khác, quan tổ chức khác có trích dẫn thích nguồn gốc Nếu phát có gian lận tơi xin hồn tồn chịu trách nhiệm nội dung luận văn Trường đại học Tôn Đức Thắng không liên quan đến vi phạm tác quyền, quyền gây q trình thực (nếu có) TP Hồ Chí Minh, ngày tháng năm 2015 Tác giả BẢNG THEO DÕI TIẾN ĐỘ THỰC HIỆN ĐATN Họ tên sinh viên: Đinh Công Duy Ngành: Điện tử - Truyền thông Lớp: 10040002 MSSV: 41000014 Tên đề tài: Định vị theo dõi vị trí phương tiện giao thơng Giáo viên hướng dẫn: TS Đặng Ngọc Minh Đức Tuần / ngày Tuần 01 09-15/03/2015 Tuần 02 16-22/03/2015 Tuần 03 23-29/03/2015 Tuần 04 09-15/03/2015 Tuần 05 30-05/04/2015 Tuần 06 06-12/04/2015 Tuần 07 13-19/04/2015 Tuần 08 20-26/04/2015 Tuần 09 27-03/05/2015 Tuần 10 04-10/05/2015 Tuần 11 11-17/05/2015 Tuần 12 18-24/05/2015 Tuần 13 25-31/05/2015 Tuần 14 01-07/06/2015 Tuần 15 08-14/06/2015 Nội dung Bảo vệ 50%: (Đánh giá khối lượng hoàn thành) Hoàn thiện báo cáo ĐATN Hoàn thiện báo cáo ĐATN Đánh giá Xác nhận GVHD MỤC LỤC Lời cảm ơn I Lịch trình làm đồ án tốt nghiệp II Danh mục hình ảnh III Danh mục bảng biểu IV Danh mục viết tắt V CHƯƠNG 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Sự phát triển công nghệ 1.3 Phạm vi đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU VỀ GPS 2.1.1 Hệ thống định vị toàn cầu 2.1.2 Tổng quan GPS 2.1.3 Hoạt động GPS 2.1.4 Độ xác GPS 2.1.5 Tín hiệu định vị 2.1.6 Các thành phần GPS 2.1.6.1 Phần không gian (Các vệ tinh) 2.1.6.2 Phần kiểm soát (Trạm mặt đất) 2.1.6.3 Phần sử dụng (Bộ thu tín hiệu) 10 2.1.7 Những dạng lỗi GPS 10 2.1.8 Bản tin GPS 11 2.1.9 Chuyển đổi tọa độ, thời gian, vận tốc 12 2.2 TỔNG QUAN VỀ GSM 13 2.2.1 Giới thiệu chung hệ thống GSM 13 2.2.2 Đặc điểm hệ thống GSM 15 2.2.3 Các dịch vụ hệ thống GSM 17 2.3 GIỚI THIỆU VỀ MODULE SIM 908 EASY 17 2.3.1 Tổng quan MODULE SIM908 17 2.3.2 Đặc điểm kĩ thuật module SIM908 19 2.3.3 Sơ đồ kết nối chân 21 2.3.4 Giao tiếp nối tiếp UART 22 2.3.5 Khảo sát tập lệnh AT Command 23 2.4 TỔNG QUAN VỀ VI ĐIỀU KHIỂN 24 2.4.1 Giới thiệu chung 24 2.4.2 Cấu trúc vi điều khiển 25 2.4.3 Giới thiệu Arduino 26 2.4.4 Arduino Uno 28 2.4.4.1 Bộ nhớ Arduino Uno 29 2.4.4.2 Các chân nguồn 30 2.4.4.3 Các cổng vào 31 2.4.5 Giới thiệu Arduino IDE 32 CHƯƠNG 3: TÍNH TỐN THIẾT KẾ 34 3.1 Phương án thiết kế 34 3.2 Sơ đồ khối chức khối 34 3.2.1 Sơ đồ khối hệ thống 34 3.2.2 Chức khối 35 3.3 Thiết kế phần cứng 36 3.4 Nguyên lý hoạt động 39 3.5 Sơ đồ mạch in 41 3.6 Hình ảnh mạch thực tế 41 CHƯƠNG 4: KẾT LUẬN 43 4.1 Đánh giá đề tài 43 4.2 Hướng phát triền đề tài 43 PHỤ LỤC 1: AT COMMAND 46 PHỤ LỤC 2: MÃ NGUỒN CHƯƠNG TRÌNH 52 TÀI LIỆU THAM KHẢO 62 DANH MỤC HÌNH ẢNH Hình 2.1: Hệ thống định vị toàn cầu GNSS Hình 2.2: Ba dạng quỹ đạo vệ tinh Hình 2.3: Hệ thống vệ tinh GPS Hình 2.4: Chịm vệ tinh GPS Hình 2.5: Định vị từ GPS Hình 2.6: Những vị trí điều khiển 10 Hình 2.7: Các nguồn tác động khác gây sai số GPS 11 Hình 2.8: Cấu trúc hệ thống GSM 14 Hình 2.9: Phân cấp cấu trúc địa lí mạng GSM 14 Hình 2.10: SIM908 Easy 18 Hình 2.11: Module anten GPS 19 Hình 2.12: Sơ đồ chân Module SIM908 Easy 21 Hình 2.13: Kết nối giao tiếp nối tiếp 22 Hình 2.14: Những người sáng tạo Arduino 27 Hình 2.15: Một vài thành viên gia đình Arduino 28 Hình 2.16: Board Arduino Uno R3 28 Hình 2.17: Sơ đồ chân Arduino Uno 31 Hình 2.18: Phần mềm Arduino IDE 33 Hình 3.1: Sơ đồ khối hệ thống 35 Hình 3.2: Sơ đồ nguyên lý khối nguồn 36 Hình 3.3: Sơ đồ nguyên lý mạch Sim908 Easy 37 Hình 3.4: Sơ đồ nguyên lý Arduino Uno 38 Hình 3.5: Sơ đồ nguyên lý hệ thống 38 Hình 3.6: Lưu đồ thuật tốn hệ thống 40 ĐỒ ÁN TỐT NGHIỆP Trang 48/62 AT+CMGS - Nếu gởi tin nhắn dạng text: (+CMGT=1) +CMGS:,[] text is entered - Nếu gởi tin nhắn dạng PDU: (+CMGR=0) +CMGS= PDU is given  Lệnh viết tin nhắn lưu vào ngăn nhớ: AT+CMGW - Nếu viết tin nhắn dạng text: AT+CMGW=[[,[,]]] text is entered - Lệnh thực liệu trả dạng: +CMGW: OK - Nếu lệnh bị lỗi trả dạng: +CMS ERROR Các lệnh GPS SimCom cung cấp hệ thống lệnh AT Command để điều khiển GPS, nhiệm vụ quan trọng khả áp dụng lệnh vào ứng dụng cụ thể mà người dùng mong muốn STT Lệnh Chức Điều khiển nguồn GPS AT+CGPSPWR AT+CGPSRST Đặt lại chế độ GPS (Hot/Warm/Cold) AT+CGPSINF Nhận thơng tin vị trí GPS AT+CGPSOUT Điều khiển liệu NMEA GPS AT+CGPSSTATUS Tình trạng GPS AT+CGPSIPR Set tốc độ baudrate Bảng 4: Chức lệnh GPS Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 49/62 Cấu hình tập lệnh GPS  Lệnh AT+CGPSPWR: a Lệnh test: AT+CGPSPWR=? Phản hồi: + CGPSPWR (danh sách mode) b Lệnh đọc AT+CGPSPWR? Phản hồi: + CGPSPWR:[mode] c Lệnh ghi AT+CGPSPWR=[mode] [mode]: tắt nguồn GPS [mode]: bật nguồn GPS  Lệnh AT+CGPSRST: a Lệnh test: AT+CGPSRST=? Phản hồi: + CGPSRST: (danh sách mode) b Lệnh đọc: AT+CGPSRST? Phản hồi: + CGPSRST:[mode] c Lệnh ghi: AT+CGPSRST=[mode] [mode]: reset GPS in COLD start mode [mode]: mode tự động Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 50/62  Lệnh AT+CGPSINF a Lệnh test: AT+CGPSINF=? Phản hồi: +CGPSINF:(0,2,4,8,16,32,64,128) b Lệnh đọc: AT+CGPSINF=[mode] Nếu [mode] phản hồi: [mode],[kinh độ],[vĩ độ],[độ cao],[UTC time],[TTFF],[num],[tốc độ],[course]  Lệnh AT+CGPSOUT a Lệnh test: AT+CGPSOUT=? Phản hồi: +CGPSOUT:(0-255) b Lệnh đọc: AT+CGPSOUT? Phản hồi: +CGPSOUT:[mode] c Lệnh ghi: AT+CGPSOUT=[mode] Nếu mode thì: giảm thiểu thơng tin ngõ GPS NMEA từ debug UART Nếu: Bit1=1, cho phép liệu ngõ NMEA  Lệnh AT+CGPSSTATUS a Lệnh test: AT+CGPSSTATUS=? Phản hồi: +CGPSSTATUS: (danh sách mode) b Lệnh đọc: AT+CGPSSTATUS? Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 51/62 Phản hồi: +AT+CGPSSTATUS:[mode] Các thông số GPS MODE RESET [mode] giá trị chuỗi: “Location Not Fix”: GPS chạy không cố định “Location 2D Fix”: trạng thái GPS cố định 2D “Location 3D Fix”: trạng thái GPS cố định 3D  Lệnh AT+CGPSIPR a Lệnh test: AT+CGPSIPR=? Phản hồi: +CGPSIPR: (danh sách mode) b Lệnh đọc: AT+CGPSIPR:[mode] c Lệnh ghi: AT+CGPSIPR=[mode] [mode]: 4800,9600,19200,38400,57600,115200,230400,460800 Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 52/62 PHỤ LỤC 2: MÃ NGUỒN CHƯƠNG TRÌNH #include "LiquidCrystal.h"; //THU VIEN LCD #include ; #include #include #include LiquidCrystal lcd(8, 9, 10, 11, 12, 13); int8_t answer; int onModulePin= 8; int PWR = A3; short sms_mode = false; const int buffer_size = 300; char c=0; char *ptr1_p=0; char *ptr1_l=0; char *ptr1_u=0; char *ptr2=0; char *buffer_map=0; char aux_string[30]; char map_string[100]; char aux1_string[30]; char latitude_data[12]; char longitude_data[13]; char tocdo_data[12]; Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 53/62 float tocdo=0; float tocdo_map=0; float latitude=0; float latitude_map=0; float longitude=0; float longitude_map=0; char tr_tocdo_map[13]; char tr_latitude_map[12]; char tr_longitude_map[13]; char latitude_map1[12]; char longitude_map1[13]; char number[]="0975861101"; char buffer[buffer_size]; // so dien thoai cua chu xe // Du lieu tu UART int xbuff=0; int k,m,b,d,e,f; char positions[]="odau"; char lock[]="luuvitri"; char unlock[]="movitri"; char cgpsinf[]="32"; //**************************************************************** void setup() { pinMode(PWR, OUTPUT); power_on(); init_SIM908(); // bật Module SIM908 // thiet lap cho module SIM908 erase_buffer(); } Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 54/62 //**************************************************************** void loop() { while (1) { receive_uart(); // giao tiep UART if (k==2) {unlocked(); k=0; m=0;} if (k==3) {vitri(); k=0;} if (k==4) {luuvitri(); m=1; k=0; b = (int)tr_longitude_map; d = (int)tr_latitude_map;} while (m==1) {get_position(); e = (int)tr_longitude_map; //chuyển sang hệ f = (int)tr_latitude_map; if (b!=e && d!=f) { sprintf(aux_string,"ATD%s;",number); do{ answer = sendAT(aux_string,"BUSY",52000);} while(answer==0); m=0; Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 55/62 break;} else if (b==e && d==f) { break;}}} //*************************************************************** void vitri() { get_position(); sprintf(aux_string,"AT+CMGS=\"%s\"",number); { answer = sendAT(aux_string,">",2000);} while(answer==0); // gui tin nhan den chu xe sprintf(aux1_string, "Toa do: %sN %sE \nVan toc: %s Km/h " ,tr_latitude_map,tr_longitude_map,tr_tocdo_map); Serial.println(aux1_string); sprintf(map_string,"Hien thi tren Google Map: http://maps.google.com/maps?q=%s,%s&t=m&z=36",tr_latitude_map,tr_longitu de_map); Serial.println(map_string); Serial.write(26); erase_buffer(); //**************************************************************** void luuvitri() { get_position(); sprintf(aux_string,"AT+CMGS=\"%s\"",number); { answer = sendAT(aux_string,">",2000);} while(answer==0); // Send the SMS number sprintf(aux1_string,"Da luu vi tri!"); Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 56/62 Serial.println(aux1_string); sprintf(map_string, "Vi tri da luu: http://maps.google.com/maps?q=%s,%s&t=m&z=36",tr_latitude_map,tr_longitu de_map); Serial.println(map_string); Serial.write(26); erase_buffer(); } //**************************************************************** void unlocked() { get_position(); sprintf(aux_string,"AT+CMGS=\"%s\"",number); { answer = sendAT(aux_string,">",2000);} while(answer==0); // Send the SMS number sprintf(aux1_string,"Da mo vi tri!"); Serial.println(aux1_string); sprintf(map_string,"Vi tri hien tai: http://maps.google.com/maps?q=%s,%s&t=m&z=36",tr_latitude_map,tr_longitu de_map); Serial.println(map_string); Serial.write(26); erase_buffer(); } //**************************************************************** void init_SIM908() { { answer = sendAT("AT+CREG?","+CREG: Định vị theo dõi phương tiện giao thông 0,1",1000);} SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 57/62 while(answer==0); // ket noi voi mang // thiết lập GSM { answer = sendAT("ATE0","OK",1000);} while(answer==0); { answer = sendAT("AT+CMGF=1", "OK",1000);} while(answer==0); // cai dat che SMS { answer = sendAT("AT+CNMI=2,2,2,0,0", "OK",1000);} while(answer==0); Serial.write(26); // thiết lập GPS { answer = sendAT("AT+CGPSIPR=9600","OK",1000);} while(answer==0); { answer = sendAT("AT+CGPSPWR=1","OK",1000);} while(answer==0); { answer = sendAT("AT+CGPSRST=0","OK",1000);} while(answer==0); { answer = sendAT("AT+CGPSOUT=32","OK",1000);} while(answer==0); { answer = sendAT("AT+CGPSSTATUS?","Location 3D Fix",2000);} while(answer==0); sprintf(aux_string,"AT+CMGS=\"%s\"",number); {answer = sendAT(aux_string,">",2000); } while(answer==0); Serial.write(26); } //**************************************************************** int sendAT(char* ATcommand, char* expected_answer, unsigned int timeout) { int x=0, answer=0; char response[100]; unsigned long previous; memset(response, '\0', 100); // Initialize the string delay(100); while( Serial.available() > 0) Serial.read(); Định vị theo dõi phương tiện giao thông SVTH: Đinh Công Duy ĐỒ ÁN TỐT NGHIỆP Trang 58/62 Serial.println(ATcommand); x = 0; previous = millis(); { if(Serial.available() != 0){ response[x] = Serial.read(); x++; if (strstr(response, expected_answer) != NULL) { answer = 1; buffer_map=response; } } } while((answer == 0) && ((millis() - previous) < timeout)); return answer; } //**************************************************************** void power_on(){ answer = sendAT("AT", "OK", 2000); if(answer==0) {digitalWrite(PWR,HIGH); // Create pulse trigger on pin power key of Module SIM908 delay(2000); digitalWrite(PWR,LOW); while(answer==0) {answer = sendAT("AT", "OK", 2000);} } } //**************************************************************** void erase_buffer() { unsigned int i; for(i=0;i

Ngày đăng: 29/10/2022, 23:53

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN