MÔ HÌNH BIỂN THÔNG báo TRẠNG THÁI XE BUS tại các TRẠM sử DỤNG GPS dùng pic16f877a (có code và sơ đồ mạch bên dưới) MÔ HÌNH BIỂN THÔNG báo TRẠNG THÁI XE BUS tại các TRẠM sử DỤNG GPS dùng pic16f877a (có code và sơ đồ mạch bên dưới) MÔ HÌNH BIỂN THÔNG báo TRẠNG THÁI XE BUS tại các TRẠM sử DỤNG GPS dùng pic16f877a (có code và sơ đồ mạch bên dưới) MÔ HÌNH BIỂN THÔNG báo TRẠNG THÁI XE BUS tại các TRẠM sử DỤNG GPS dùng pic16f877a (có code và sơ đồ mạch bên dưới) MÔ HÌNH BIỂN THÔNG báo TRẠNG THÁI XE BUS tại các TRẠM sử DỤNG GPS dùng pic16f877a (có code và sơ đồ mạch bên dưới)
ĐỒ ÁN MƠ HÌNH BIỂN THƠNG BÁO TRẠNG THÁI XE BUS TẠI CÁC TRẠM SỬ DỤNG GPS MỤC LỤC DANH MỤC CÁC HÌNH VẼ VII DANH MỤC CÁC BẢNG BIỂU VIII DANH MỤC CÁC TỪ VIẾT TẮT IX CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 MỤC ĐÍCH, Ý NGHĨA 1.2 NỘI DUNG 1.3 PHƯƠNG PHÁP CHƯƠNG THIẾT KẾ PHẦN CỨNG 2.1 SƠ ĐỒ KHỐI CHỨC NĂNG 2.2 KHỐI NGUỒN 2.3 KHỐI VI ĐIỀU KHIỂN 2.4 KHỐI GIAO TIẾP GPS 2.5 KHỐI GIAO TIẾP SIM 2.6 KHỐI HIỂN THỊ CHƯƠNG KẾT QUẢ MÔ PHỎNG 10 3.1 THIẾT KẾ MẠCH NGUYÊN LÝ 10 3.2 THIẾT KẾ MẠCH IN 11 3.3 THI CÔNG PHẦN CỨNG 12 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 13 4.1 KẾT LUẬN .13 4.2 HƯỚNG PHÁT TRIỂN .14 TÀI LIỆU THAM KHẢO 15 PHỤ LỤC A 16 DANH MỤC CÁC HÌNH VẼ HÌNH 2.1: SƠ ĐỒ KHỐI CHỨC NĂNG HÌNH 2.2: SƠ ĐỒ NGUYÊN LÝ CỦA MODULE LM2596 HÌNH 2.3: HÌNH ẢNH THỰC TẾ CỦA MODULE LM2596.[2] HÌNH 2.4: SƠ ĐỒ CHÂN CỦA PIC16F887.[2] HÌNH 2.5: HÌNH ẢNH THỰC TẾ CỦA PIC16F887.[4] .8 HÌNH 2-6: HÌNH ẢNH THẬT TẾ VÀ SƠ ĐỒ CHÂN CỦA MODULE SIM808 [3].9 HÌNH 2-7: HÌNH ẢNH THỰC TẾ MODULE SIM900A [4] .10 HÌNH 2-8: HÌNH ẢNH THỰC TẾ VÀ SƠ ĐỒ CHÂN LCD [5] .11 HÌNH 3.1: MẠCH NGUYÊN LÝ 12 HÌNH 3.2: MẠCH IN SAU KHI THIẾT KẾ 13 HÌNH 3.2: MẶT SAU CỦA PHẦN CỨNG SAU KHI THI CÔNG 14 HÌNH 3.3: MẶT TRƯỚC CỦA PHẦN CỨNG .14 DANH MỤC CÁC BẢNG BIỂU BẢNG 1.1: THÔNG SỐ KĨ THUẬT CỦA LM2696 .5 BẢNG 1.2: THÔNG SỐ KĨ THUẬT CỦA PIC .6 BẢNG 1.3: THÔNG SỐ KĨ THUẬT CỦA MODULE SIM808 BẢNG 1-4: THÔNG SỐ KĨ THUẬT CỦA MODULE SIM900A DANH MỤC CÁC TỪ VIẾT TẮT GPS Global Positioning System LCD Liquid Crystal Dislay PIC Peripheral Interface Controller PCB Printed Circuit Board SIM Subscriber Identity Module LCD Liquid Crystal Display ĐỒ ÁN Trang 1/24 CHƯƠNG GIỚI THIỆU ĐỀ TÀI 1.1 Mục đích, ý nghĩa Ngày nay, xã hội phát triển kéo theo nhu cầu sử dụng phương tiện công cộng Đặc biệt vào cao điểm TP.HCM, phương tiện giao thông bị ùn tắc Để giải vấn đề sử dụng phương tiện cơng cộng xe bus giảm tải ùn tắc giao thông Để tiện cho người tiện theo dõi thời gian tuyến xe bus gần tới trạm, em tìm hiểu thực đề tài “Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS” nhằm góp phần công sức việc giải vấn đề 1.2 Nội dung Trên tuyến xe bus, ta đặt GPS với nhiệm vụ gửi tin nhắn thông báo tọa độ cho trạm Sau trạm nhận tọa độ tính tốn thời gian dự kiến xe bus tới trạm Trạm hiển thi thông báo thời gian chờ dự kiến lên bảng thông báo 1.3 Phương pháp Trên tuyến xe bus, ta sử dụng Module SIM808 để gửi thông tin tọa độ cho PIC16F887 Sau nhận chuỗi tọa độ từ Module SIM808, PIC16F887 xử lý gửi tin nhắn trạm Tại trạm, ta sử dụng Module SIM900 Module SIM900A nhận chuỗi tọa độ gửi thông số cho PIC16F887 xử lý số liệu tính khoảng cách Khi có khoảng cách, PIC16F887 chia khoảng cách với vận tốc trung bình xe bus để có thời gian dự kiến xuất hình LCD để thông báo thời gian chờ dự kiến Để thiết kế phần cứng, ta sử dụng phần mềm ALTIUM DESIGNER Phần mềm thiết kế mạch tự động AlTIUM DESIGNER mơi trường thiết kế mạch điện tử đồng nhất, tích hợp nhiều chức bao gồm thiết kế mạch nguyên lý, mạch in PCB, lập trình hệ thống nhúng FPGA ALTIUM DESIGNER có thư viện đa dạng bao gồm 2D 3D, người dùng thiết kế vẽ mạch in cách dễ dàng Phần mềm ALTIUM DESIGNER cịn sử dụng nhiều phím tắt để vẽ thiết kế nguyên lý mạch in nhanh chóng Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 2/24 Để lập trình cho vi điều khiển PIC16F887, ta sử dụng phần mềm CCS C COMPILER CCS trình biên dịch lập trình ngơn ngữ C cho Vi điều khiển PIC hãng Microchip Cũng trình biên dịch C khác cho PIC, CCS giúp người dùng nắm bắt nhanh ứng dụng dễ dàng sử dụng Cùng với đó, tài liệu hướng dẫn CCS có sẵn chi tiết Help giúp người dùng dễ dàng lập trình Tab Communication CCS liệt kê hết tất kết nối mà PIC hỗ trợ giao tiếp RS232, giao tiếp I2C… Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 3/24 CHƯƠNG THIẾT KẾ PHẦN CỨNG 1.4 Sơ đồ khối chức KHỐI NGUỒN 5VDC VI ĐIỀU KHIỂN KHỐI GIAO GIAO TIẾP SIM VI ĐIỀU KHIỂN TIẾP GPS VỆ TINH KHỐI HIỂN THỊ Hình 2.1: Sơ đồ khối chức Nguyên lý hoạt động: khối nguồn 5VDC cấp vào cho khối giao tiếp GPS GPS nhận tín hiệu từ vệ tinh GPS gửi thông tin tọa độ nhận cho khối vi điều khiển xử lý Vi điều khiển sau xử lý xong gửi lại cho khối giao tiếp GPS gửi tin nhắn cho khối giao tiếp SIM Khối giao tiếp SIM gửi thông tin nhận cho khối vi điều khiển Khối vi điều khiển xử lý thơng tín tính tốn thời gian Sau tính tốn thời gian, khối vi điều khiển xuất khối hiển thị 1.5 Khối nguồn Khối nguồn ta sử dụng module LM2596 Module lm2596 mạch giảm áp DC LM2596 3A Mạch giảm áp DC có khả giảm áp từ 30V xuống cịn 1.5V Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 4/24 mà đạt hiệu suất cao Module LM2596 sử dụng nhiều ứng dụng chia nguồn, hạ áp, cấp nguồn cho thiết bị camera, motor, robot… Hình 2.2: Sơ đồ nguyên lý module LM2596 Hình 2.3: Hình ảnh thực tế module LM2596.[2] Thông số kĩ thuật LM2596: Điện áp đầu vào Điện áp đầu Dòng tối đa Hiệu suất 3V đến 30V 1.5 đến 30V 3A 92% Mô hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 5/24 Công suất Kích thước 15W 15*20*14 (mm) Bảng 1.1: Thơng số kĩ thuật LM2696 1.6 Khối vi điều khiển Hiện nay, ngồi thị trường có nhiều vi điều khiển 8051, AVR, ARM Nhưng sử dụng rộng rãi họ vi điều khiển PIC Vi điều khiển PIC dễ dàng mua thị trường Việt Nam, giá thành lại khơng q đắt, có đầy đủ chức năng… Kí hiệu vi điều khiển PIC: - PIC12xxxx: độ dài lệnh 12 bit - PIC16xxxx: độ dài lệnh 16 bit - PIC18xxxx: độ dài lệnh 18 bit Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 11/24 Hình 3.1: Mạch nguyên lý Khi cấp nguồn 5Vdc cho Module SIM808, Module SIM808 gửi tín hiệu cho PIC16F887 PIC16F887 xử lý để tách chuỗi tọa độ xe bus, gửi tọa độ đến trạm thông qua GSM Module SIM808 Ở trạm kế tiếp, Module SIM900A nhận tin nhắn gửi chuỗi tọa độ Module SIM900A gửi tín hiệu cho PIC16F887 xử lý PIC16F887 xử lý tọa độ tính tốn khoảng cách từ xe bus tới trạm Từ khoảng cách vận tốc trung bình xe bus, PIC16F887 tính khoảng thời gian dự kiến xe bus tới trạm hiển thị lên LCD 1.11 Thiết kế mạch in Mơ hình biển thông báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 12/24 Hình 3.2: Mạch in sau thiết kế 1.12 Thi công phần cứng Hình 3.2: Mặt sau phần cứng sau thi cơng Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 13/24 Hình 3.3: Mặt trước phần cứng CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 1.13 Kết luận Sau thời gian nỗ lực, cố gắng nghiên cứu thực hiện, với dẫn tận tình TS TRẦN THANH PHƯƠNG, em hoàn thành xong đề tài yêu cầu thời hạn đặt Sau thực xong, mạch mơ hình biển thông báo trạng thái xe bus trạm xe sử dụng GPS đạt mục tiêu sau: - Lấy tọa độ xe bus để gửi cho trạm xử lý - Đưa thời gian chờ dự kiến hiển thị lên LCD để thông báo - Mạch thiết kế tương đối nhỏ gọn, dễ sử dụng - Giá thành rẻ, chi phí khơng q cao Tuy nhiên, cịn số hạn chế như: - Khơng thể lấy xác vận tốc xe bus - GPS lấy tọa độ PIC xử lý khơng nhanh - GPS cịn nhiều sai số - Tốn nhiều tài ngun gửi tin nhắn Mơ hình biển thông báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 14/24 Mơ hình biển thông báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 15/24 1.14 Hướng phát triển Mơ hình biển thơng báo trạng thái xe bus trạm xe bus sử dụng GPS có nhiều hướng phát triển: - Thiết kế app di động để tiện theo dõi - Thiết kế mạch nhiều lớp để thu gọn mạch - Đưa tọa độ nhanh xử lý để lấy số liệu nhanh - Khắc phục sai số để đưa thơng số xác Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 16/24 TÀI LIỆU THAM KHẢO Tiếng Việt: [1] http://hshop.vn [2] https://vi.wikipedia.org [3] http://banlinhkien.vn/ Mơ hình biển thông báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 17/24 PHỤ LỤC A #include #device ADC=10 #use delay(clock= 20M) #use rs232(UART1,baud=9600,parity=N,bits=8,stream=UART) #define SPK PIN_C1 #fuses NOBROWNOUT //#fuses BORV21 #fuses NOWDT #define LCD_ENABLE_PIN PIN_B5 #define LCD_RS_PIN #define LCD_RW_PIN PIN_B7 PIN_B6 #define LCD_DATA4 PIN_B4 #define LCD_DATA5 PIN_B3 #define LCD_DATA6 PIN_B2 #define LCD_DATA7 PIN_B1 #include "lcd.c" int count=0, count1=0; char data[]="000.000000,000.000000";//Khai báo mảng lưu tọa độ int1 done=0; const char GPS_RC[]="+UGNSINF:";//khai báo mãng chứa chuỗi tọa độ GPS int count5=0; int1 F_GPS_RC=0; Mô hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 18/24 const char KTTD[]="Kiem tra toa do"; //char sdt[]="\"+84909774616\"";//sdt int count4=0; int GTD=0;// int count7 = 0,count6 = 0; int Fsms=0; const char sms[]="+CMT: \""; #INT_RDA//vector ngat UART void RDA_isr(VOID) { CHAR c = fgetc (UART) IF(c==GPS_RC[count5]) { count5++; if(count5>=9) { F_GPS_RC=1; //fputc('P'); } } else count5=0; Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 19/24 if(F_GPS_RC==1) { if(c==',') { count++; } else if(c=='\n') { count=0; F_GPS_RC=0; } else { if((count==3)||(count==4)) { if(count1==9) { data[9]=','; count1=10; } data[count1]=c; count1++; } if(count==5) { done=1; count1=0; Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 20/24 } } } if(c==sms[count7]) { count7++; if(count7==7) { Fsms=1; } } else count7=0; if(Fsms==1) { sdt[count6]=c; count6++; if((count6>=9)&&(c==34)) { Fsms=0; count6=0; } } Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 21/24 if(c==KTTD[count4]) { count4++; if(count4>=15) { GTD=1; } } else(count4=0); } void cause_of_restart() { switch ( restart_cause() ) { case WDT_TIMEOUT: { fprintf(UART,"\r\nRestarted processor because of watchdog timeout!\r\n"); break; } case NORMAL_POWER_UP: { fprintf(UART,"\r\nNormal power up!\r\n"); delay_ms (5000); reset_cpu(); break; } Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 22/24 case WDT_FROM_SLEEP: { fprintf(UART,"\r\nWDT_FROM_SLEEP!\r\n"); break; } case MCLR_FROM_SLEEP: { fprintf(UART,"\r\nMCLR_FROM_SLEEP!\r\n"); break; } case MCLR_FROM_RUN: { fprintf(UART,"\r\nMCLR_FROM_RUN!\r\n"); break; } case BROWNOUT_RESTART: { fprintf(UART,"\r\nBROWNOUT_RESTART!\r\n"); break; } } } void main() { lcd_init(); lcd_putc("Loading "); cause_of_restart(); Mô hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 23/24 lcd_gotoxy(1,1); lcd_putc("Ready "); enable_interrupts (INT_RDA); enable_interrupts (GLOBAL) ; fprintf (UART, "AT\r\n"); delay_ms(500); fprintf(UART,"ATE1\r\n") ; delay_ms(200); fprintf(UART,"AT+CLIP=1\r\n") ; delay_ms(200); fprintf(UART,"AT+CNMI=2,2\r\n") ; delay_ms(200); fprintf(UART,"AT+CMGF=1\r\n") ; delay_ms(200); fprintf(UART,"AT+CMGDA=\"DEL ALL\"\r\n") ; delay_ms(200); fprintf (UART, "AT + CGNSPWR = 1\r\n"); delay_ms(500); //restart_wdt(); fprintf (UART, "AT + CGNSINF\r\n"); delay_ms(500); //restart_wdt(); fprintf (UART, "AT + CGNSURC = 3\r\n"); Mơ hình biển thơng báo trạng thái xe bus trạm sử dụng GPS ĐỒ ÁN Trang 24/24 delay_ms(500); lcd_gotoxy(1,1); lcd_putc("Getting GPS data"); //enable_interrupts (INT_RDA); //setup_wdt(WDT_2304MS); WHILE (TRUE) { //restart_wdt(); if(done==1) { lcd_gotoxy(1,1); lcd_putc(" "); lcd_gotoxy(1,1); for(int i = 0; i < 9; i++) printf (lcd_putc,"%c",data[i]); lcd_gotoxy(1,2); for(i = 10; i