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

(Đồ án hcmute) ứng dụng xử lý ảnh để phát hiện và cảnh báo cháy rừng qua tin nhắn điện thoại

107 12 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 TP.HCM KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÁT HIỆN VÀ CẢNH BÁO CHÁY RỪNG QUA TIN NHẮN ĐIỆN THOẠI GVHD: TS NGUYỄN THANH HẢI SVTH: LÝ HOÀNG ANH MSSV: 12141467 SVTH: NGUYỄN THANH ĐIỀN MSSV: 12141059 SKL 0 5 Tp Hồ Chí Minh, tháng 01/2017 an 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 - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÁT HIỆN VÀ CẢNH BÁO CHÁY RỪNG QUA TIN NHẮN ĐIỆN THOẠI GVHD: TS Nguyễn Thanh Hải SVTH: Lý Hoàng Anh 12141467 Nguyễn Thanh Điền 12141059 Tp Hồ Chí Minh - 1/2017 an 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 - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ CÔNG NGHIỆP ĐỀ TÀI: ỨNG DỤNG XỬ LÝ ẢNH ĐỂ PHÁT HIỆN VÀ CẢNH BÁO CHÁY RỪNG QUA TIN NHẮN ĐIỆN THOẠI GVHD: TS Nguyễn Thanh Hải SVTH: Lý Hoàng Anh Nguyễn Thanh Điền Tp Hồ Chí Minh - 1/2017 an 12141467 12141059 TRƯỜNG ĐH 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 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 09 tháng 01 năm 2017 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Lý Hồng Anh Nguyễn Thanh Điền Điện tử Cơng nghiệp Đại học quy 2012 MSSV: 12141467 MSSV: 12141059 Mã ngành: 141 Mã hệ: Lớp: 12141DT1 I TÊN ĐỀ TÀI: Ứng dụng xử lý ảnh để phát cảnh báo cháy rừng qua tin nhắn điện thoại II NHIỆM VỤ Các số liệu ban đầu: Các tài liệu MATLAB, Giáo trình Xử lý ảnh Các ví dụ trang mathwork.com Nội dung thực hiện: Thu thập ảnh, video clip, nhận dạng cảnh báo có khói, lửa Thiết kế - Thi cơng hệ thống cảnh báo qua tin nhắn điện thoại giao tiếp với máy tính III NGÀY GIAO NHIỆM VỤ: 04/10/2016 IV NGÀY HỒN THÀNH NHIỆM VỤ: 09/01/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: TS Nguyễn Thanh Hải CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP an TRƯỜNG ĐH 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 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 09 tháng 01 năm 2017 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Lý Hoàng Anh Lớp: 12141DT1 MSSV: 12141467 Họ tên sinh viên 2: Nguyễn Thanh Điền Lớp:12141DT1 MSSV: 12141059 Tên đề tài: Ứng dụng xử lý ảnh để phát cảnh báo cháy rừng qua tin nhắn điện thoại Tuần/ngày Nội dung Tuần (3/10 – 8/10) Tuần (10/10–15/10) Gặp GVHD để nghe phổ biến yêu cầu làm đồ án, tiến hành chọn đồ án Tuần (17/10–22/10) Tuần (24/10–29/10) Tuần (31/10–5/11) Tuần (7/11–12/11) Tuần (14/11–19/11) Tuần (21/11–26/11) Tuần (28/11–3/12) Tuần 10 (5/12–10/12) Gặp GVHD tiến hành xét duyệt đề tài Viết tóm tắt yêu cầu đề tài chọn: đề tài làm gì, nội dung thiết kế, thông số giới hạn đề tài Tiến hành thiết kế sơ đồ khối, giải thích chức khối - Thiết kế sơ đồ mạch, giải thích nguyên lý hoạt động mạch - Mô mạch - Tiến hành tính tốn để lựa chọn linh kiện, vẽ PCB - Tiến hành thi công mạch - Tiến hành thi công mạch - Kiểm tra mạch thi công - Kiểm tra mạch thi công - Viết báo cáo nội dung làm an Xác nhận GVHD Tuần 11 (12/12–17/12) Tuần 12 Hoàn thiện báo cáo gởi cho GVHD để xem (18/12–24/12) xét góp ý lần cuối trước in báo cáo Tuần 13 (26/12–31/12) Tuần 14 (2/1-7/1/2017) Tuần 15 (9/01-14/01) Nộp báo cáo báo cáo đề tài GV HƯỚNG DẪN (Ký ghi rõ họ tê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 Lý Hoàng Anh Nguyễn Thanh Điền an LỜI CẢM ƠN Nhóm em xin gởi lời cảm ơn sâu sắc đến Thầy Nguyễn Thanh Hải, góp ý chia sẻ nhiều kinh nghiệm quý báu cho em thực tốt đề tài Nhóm em xin gởi lời chân thành cảm ơn thầy cô Khoa Điện-Điện Tử bạn bè bên cạnh giúp đỡ tạo điều kiện tốt cho nhóm hồn thành đề tài Cảm ơn đến cha mẹ, người bên cạnh lúc gặp khó khăn nguồn động lực lớn để nhóm hồn thành xong đề tài tốt nghiệp Xin chân thành cảm ơn! Người thực đề tài Lý Hoàng Anh Nguyễn Thanh Điền an MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii Lịch trình iii Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ x Liệt kê bảng vẽ …………………………………………………………… xiv Chương TỔNG QUAN ĐẶT VẤN ĐỀ MỤC TIÊU NỘI DUNG NGHIÊN CỨU GIỚI HẠN CỦA ĐỀ TÀI BỐ CỤC Chương CƠ SỞ LÝ THUYẾT HỆ THỐNG XỬ LÝ VÀ PHÁT HIỆN KHÓI LỬA Đặc tính khói lửa Các phương pháp nhận biết khói lửa Các trình xử lý ảnh GIỚI THIỆU PHẦN CỨNG 26 Thiết bị thu nhận hình ảnh 26 Vi điều khiển 27 an Modul SIM800 30 Module USB UART 32 Chương TÍNH TỐN VÀ THIẾT KẾ 33 GIỚI THIỆU 33 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 33 Thiết kế sơ đồ khối hệ thống 33 Tính tốn thiết kế mạch báo động Error! Bookmark not defined Sơ đồ nguyên lý toàn mạch 40 Chương THI CÔNG HỆ THỐNG 42 GIỚI THIỆU 42 THI CÔNG MẠCH 42 LẬP TRÌNH CHO KHỐI CẢNH BÁO 44 Lưu đồ giải thuật 44 Phần mềm lập trình cho vi điều khiển 45 LẬP TRÌNH XỬ LÝ ẢNH 50 Lưu đồ giải thuật 50 Phần mềm lập trình mô MATLAB 55 Chương KẾT QUẢ THỰC NGHIỆM 61 THU THẬP DỮ LIỆU 61 KẾT QUẢ NHẬN DẠNG KHÓI VÀ LỬA 63 CẢNH BÁO THÔNG QUA SIM800A 68 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 71 KẾT LUẬN 71 HƯỚNG PHÁT TRIỂN 71 an PHỤ LỤC % - Executes on button press in pushbutton1 function pushbutton1_Callback(hObject, eventdata, handles) % hObject handle to pushbutton1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % global frame_1 clc; [ video_file_name,video_file_path ] = uigetfile({'*.avi'},'Pick a video file'); %;*.png;*.yuv;*.bmp;*.tif'},'Pick a file'); if(video_file_path == 0) return; end input_video_file = [video_file_path,video_file_name]; set(handles.edit1,'String',input_video_file); % Acquiring video % videoObject = mmreader(input_video_file); videoObject = VideoReader(input_video_file); % Display first frame frame_1 = read(videoObject,1); % frame_1 = imresize(frame_1,[400 400]); % disp(bw_1); % disp(frame_1); % frame_1 = imresize(frame_1,[400 400]); axes(handles.axes1); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 77 PHỤ LỤC imshow(frame_1); drawnow; axis(handles.axes1,'off'); % Display Frame Number set(handles.text3,'String','1'); set(handles.text4,'String',[' / ',num2str(videoObject.NumberOfFrames)]); set(handles.text2,'Visible','on'); set(handles.text3,'Visible','on'); set(handles.text4,'Visible','on'); set(handles.pushbutton2,'Enable','on'); set(handles.pushbutton1,'Enable','off'); %Update handles handles.videoObject = videoObject; guidata(hObject,handles); % ************************ BROWSE TEXT BOX ******************************** function edit1_Callback(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Hints: get(hObject,'String') returns contents of edit1 as text BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 78 PHỤ LỤC % str2double(get(hObject,'String')) returns contents of edit1 as a double % - Executes during object creation, after setting all properties function edit1_CreateFcn(hObject, eventdata, handles) % hObject handle to edit1 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles empty - handles not created until after all CreateFcns called % Hint: edit controls usually have a white background on Windows % See ISPC and COMPUTER if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end % ************************ START ****************************************** % - Executes on button press in pushbutton2 function pushbutton2_Callback(hObject, eventdata, handles) % hObject handle to pushbutton2 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % global frame_1 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 79 PHỤ LỤC videoObject = handles.videoObject; set(handles.pushbutton3,'Enable','on'); set(handles.pushbutton2,'Enable','off'); % axes(handles.axes1); % frame_1=read(videoObject,1); a=10; k = videoObject.NumberOfFrames; m = k/a; n = round(m); if (n*a) > k n = n - 1; end % disp(n); % disp(m); frame_1 = read(videoObject,1); % frame_2 = read(videoObject,2); % delta = frame2 - frame1; for frameCount = 2:n % Display frames % set(handles.text3,'String',num2str(frameCount)); set(handles.text3,'String',num2str((frameCount-1)*a)); frame1 = read(videoObject,(frameCount-1)*a); frame2 = read(videoObject,frameCount*a); frame_trc = imsubtract(frame2,frame_1); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 80 PHỤ LỤC frame_sau = imsubtract(frame2,frame1); frame = frame_trc + frame_sau; % frame2 - frame1; axes(handles.axes2); imshow(frame); drawnow; % frame2 = imresize(frame2,[400 400]); % Convert RGB image to HSV hsvImage = rgb2hsv(frame); % Extract out the H, S, and V images individually hImage = hsvImage(:,:,1); sImage = hsvImage(:,:,2); vImage = hsvImage(:,:,3); hueThresholdLow = 0.14; hueThresholdHigh = graythresh(hImage); saturationThresholdLow = 0; saturationThresholdHigh = graythresh(sImage); valueThresholdLow = graythresh(vImage); valueThresholdHigh = 1.0; hueMask =~((hImage >= hueThresholdLow) & (hImage = saturationThresholdLow) & (sImage = valueThresholdLow) & (vImage 2000 soluong = soluong + 1; axes(handles.axes1); imshow(frame2); dim = size(BW); col = round(dim(2)/2)-90; row = min(find(BW(:,col))); BW_filled = imfill(BW,'holes'); boundaries = bwboundaries(BW_filled); for k=1:length(boundaries); hold on; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 82 PHỤ LỤC b = boundaries{k}; plot(b(:,2),b(:,1),'g','LineWidth',2.5); end drawnow; end end if soluong == axes(handles.axes1); imshow(frame2); drawnow; end end set(handles.pushbutton4,'Enable','on'); set(handles.pushbutton1,'Enable','on'); set(handles.pushbutton3,'Enable','off'); % ************************ PAUSE / PLAY *********************************** % - Executes on button press in pushbutton3 function pushbutton3_Callback(hObject, eventdata, handles) % hObject handle to pushbutton3 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 83 PHỤ LỤC % handles structure with handles and user data (see GUIDATA) if(strcmp(get(handles.pushbutton3,'String'),'Pause')) set(handles.pushbutton3,'String','Play'); uiwait(); else set(handles.pushbutton3,'String','Pause'); uiresume(); end % ************************ EXIT ******************************************* % - Executes on button press in pushbutton4 function pushbutton4_Callback(hObject, eventdata, handles) % hObject handle to pushbutton4 (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) delete(handles.figure1); % - Executes on button press in pushbutton5 function pushbutton5_Callback(hObject, eventdata, handles) % hObject handle to pushbutton5 (see GCBO) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 84 PHỤ LỤC % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) wc_list = webcamlist; if iscell(wc_list) if find(strcmp(wc_list,'USB2.0 PC CAMERA')) set(handles.textStatusWebcam,'String','CONNECTED!'); set(handles.textStatusWebcam,'ForegroundColor', 'blue'); else set(handles.textStatusWebcam,'String','NOT CONNECTED!'); set(handles.textStatusWebcam,'ForegroundColor', 'red'); end end II CODE CHƯƠNG TRÌNH TRÊN VI ĐIỀU KHIỂN #include #include #include #define buff 40 char str[buff]="alo"; char call[] = "call"; char sms[] = "sms"; unsigned int8 i = 0; char str1; unsigned int1 flag_usb=0; unsigned int1 flag_debug=0; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 85 PHỤ LỤC unsigned int1 flag_sim=0; unsigned int1 flag_sim_echo=0; #int_rda void getString() { str[i] = fgetc(UART_USB); if(((i+1) == buff)||(str[i] == 0x0D)||(str[i] == 0x0A)){ flag_usb = 1; str[i] = '\0'; i = 0; } else i++; } void Gsm_Init() { LED_STT = 0; ENA_SIM = 0; delay_ms(100); ENA_SIM = 1; //output HIGH for enable SIM900 delay_ms(5000); fprintf(UART_SIM,"ATE0\r\n"); // Tat che phan hoi (Echo mode) delay_ms(2000); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 86 PHỤ LỤC fprintf(UART_SIM,"AT+IPR=9600\r\n"); // Dat toc truyen nhan du lieu 9600 bps delay_ms(2000); fprintf(UART_SIM,"AT+CMGF=1\r\n"); // Chon che TEXT Mode delay_ms(2000); fprintf(UART_SIM,"AT+CLIP=1\r\n"); // Hien thi thong tin nguoi goi den delay_ms(2000); fprintf(UART_SIM,"AT+CNMI=2,2\r\n"); // Hien thi truc tiep noi dung tin nhan delay_ms(2000); LED_STT = 1; fprintf(UART_USB, "done_setup"); } void Gsm_MakeSMS() { fprintf(UART_USB, "start_sms"); fprintf(UART_SIM,"AT+CMGS=\"0963251710\"\r"); delay_ms(3000); // Lenh gui tin nhan // Cho ky tu '>' phan hoi ve fprintf(UART_SIM, "alo\n\r"); fprintf(UART_SIM, "%c", 0x1A); // Gui noi dung // Gui Ctrl+Z hay 26 de ket thuc noi dung tin nhan va gui tin di delay_ms(5000); fprintf(UART_USB, "done_sms"); // delay 5s } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 87 PHỤ LỤC void Gsm_MakeCall() { fprintf(UART_SIM, "ATD"); fprintf(UART_SIM, &str[strlen(call)]); fprintf(UART_SIM, ";"); fprintf(UART_SIM, "%c", 0x0D); fprintf(UART_SIM, "%c", 0x0A); } void main() { setup_adc_ports(NO_ANALOGS); TRISC3 = 0; //SET enable SIM out TRISB4 = 0; // set output led TRISC7 = 1; //SET RX USB IN TRISC6 = 0; // SET TX USB OUT TRISB6 = 1; //SET RX DEBUG IN TRISB7 = 0; // SET TX DEBUG OUT TRISD0 = 1; //SET RX SIM IN TRISD1 = 0; // SET TX SIM OUT enable_interrupts(GLOBAL); enable_interrupts(INT_RDA); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 88 PHỤ LỤC Gsm_Init(); while(TRUE) { if(kbhit(UART_SIM)){ str[i] = fgetc(UART_SIM); if((i+1 == buff)||(str[i] == 0x0D)||(str[i] == 0x0A)){ flag_sim = 1; str[i] = '\0'; i = 0; } else i++; } if(flag_usb) { if(strstr(strlwr(str), call)){ Gsm_MakeCall(); flag_usb = 0; } if(strstr(strlwr(str), sms)){ Gsm_MakeSMS(); flag_usb = 0; }else str = ""; //! fprintf(UART_SIM, str); //! fprintf(UART_SIM, "%c", 0x0D); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 89 PHỤ LỤC //!fprintf(UART_SIM, "%c", 0x0A); flag_usb = 0; } if(flag_sim) { fprintf(UART_USB, str); flag_sim = 0; str = ""; } //! fprintf(UART_USB, "HiThere"); //! output_toggle(PIN_B4); //! delay_ms(1000); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 90 S an K L 0

Ngày đăng: 27/12/2023, 03:46

Xem thêm:

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

TÀI LIỆU LIÊN QUAN