Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 112 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
112
Dung lượng
2,59 MB
Nội dung
NHIỆM VỤ ĐỒ ÁN Đề suất ý tường thiết kế chế tạo hệthốngcảnhbáocháyrừng phục vụ công tác bảo vệ rừng chức hệthống thu thập nhiệt độ, độ ẩm từ môi trường để xử lý đưa cảnhbáo giúp cho quản trị viên có cách khắc phục sớm - Xâydựng nút cảm biến thu thập nhiệt độ, độ ẩm - Xâydựng phần mềm giám sát cảnhbáocháyrừng LỜI CẢM ƠN Em xin chân thành cảm ơn: Thầy giáo T.S Vũ Chiến Thắng, Khoa Công Nghệ Điện Tử Truyền Thông, trường Đại Học Công nghệ thông tin truyền thông – Đại học Thái Nguyên Cùng thầy cô giáo Khoa Công Nghệ Điện Tử Truyền Thông – trường đại học Công nghệ thông tin truyền thông – Đại học Thái Nguyên tạo điều kiện giúp đỡ em suốt thời gian thực đồ án Thái Nguyên, tháng năm 2016 Sinh viên thực đồ án Hạ Văn Hùng LỜI CAM ĐOAN Em xin cam đoan toàn nội dungbáo cáo em tự tìm hiểu nghiên cứu định hướng thầy giáo hướng dẫn Nội dungbáo cáo không chép vi phạm quyền từ công trình nghiên cứu Nếu lời cam đoan không đúng, em xin chịu hoàn toàn trách nhiệm trước pháp luật Thái Nguyên, tháng năm 2016 Sinh viên thực đồ án Hạ Văn Hùng MỤC LỤC NHIỆM VỤ ĐỒ ÁN LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG LỜI MỞ ĐẦU CHƯƠNG I: CƠ SỞ LÝ THUYẾT 10 1.1 Ý tưởng toán 10 1.1.1 Hệthống theo dõi cháyrừng trực tuyến 10 1.1.2 Hệthống tự động cảnhbáo phát sớm cháyrừng 12 1.1.3 Phần mềm Cảnhbáocháyrừng - CBCR 13 1.2 Công nghệ mạng cảm biến không dây 14 1.3 Chuẩn truyền thông 802.15.4 16 1.3.1 Các mô hình truyền thông 18 1.3.2 Định dạng địa theo chuẩn IEEE 802.15.4 19 1.3.3 Lớp vật lý theo chuẩn IEEE 802.15.4 20 1.3.4 Điều khiển truy nhập kênh truyền theo chuẩn IEEE 802.15.4 1.3.5 Cấu trúc khung liệu theo chuẩn IEEE 802.15.4 23 CHƯƠNG II: THIẾT KẾ PHẦN CỨNG 26 2.1 Sở đồ khối 26 2.1.1 Khối nguồn 26 2.1.2 Khối vi điều khiển ARM 26 2.1.3 Khối cảm biến (Sensor) 26 2.1.4 Khối Radio 27 2.2 Linh kiện sử dụng mạch 27 2.2.1 Arduino uno R3 27 2.2.2 Module CC2530(DRF1605h) 32 2.2.3 Module sim 908 38 2.3.4 Module cảm biến DTH11 46 2.3.5 Công cụ xâydựng phần mềm nhúng 48 2.3 Mạch nguyên lý 53 2.4 Lưu đồ thuật toán bên client 54 2.5 Sản phẩm thực tế 55 22 CHƯƠNG III: THIẾT KẾ PHẦN MỀM GIÁM SÁT 56 3.1 Ngôn ngữ C# 56 3.1.1Các kiểu liệu 57 3.1.2 Biến 59 3.1.3 Biểu thức 60 3.1.4 Khoảng trắng 60 3.1.5 Câu lệnh 60 3.1.6 Toán tử 64 3.1.7 Tạo vùng tên 66 3.1.8 Chỉ thị tiền xử lý66 3.1.9 Lập trình hướng đối tượng với C# 68 3.2 Tìm hiểu hệ quản trị sở liệu MySQL 69 3.2.1 Giới thiệu hệ quản trị SQL Server 2008 69 3.2.2 Các tính SQL Server 2008 70 3.2.3 Các phiên SQL Server 2008 70 3.3 Môi trường lập trình phần mềm Visual studio 2010 3.4 Sở đồ khối bên server 75 3.5 Giao diện phần mềm giám sát cảnhbáocháyrừng 3.6 Lưu đồ thuật toán phần mềm giám sát bên server77 3.7 Thực nghiệm 78 3.7.1 Triển khai thực nghiệm 78 3.7.2 Đánh giá sản phẩm 79 KẾT LUẬN 81 TÀI LIỆU THAM KHẢO 82 PHỤ LỤC 83 74 76 DANH MỤC HÌNH ẢNH Hình 1.1 Hình ảnh vệ tinh 10 Hình 1.2 FireWatch 12 Hình 1.3 Phần mềm cảnhbáocháyrừng 13 Hình 1.4 Mạng cảm biến không dây với nút cảm biến phân bố rải rác trường cảm biến 14 Hình 1.5 Mạng IEEE 802.15.4 17 14 Hình 1.6 Mô hình truyền thông Điểm - Điểm 18 Hình 1.7 Mô hình truyền thông Đa điểm - Điểm 18 Hình 1.8 Hai định dạng địa hỗ trợ IEEE 802.15.4 địa dài (64 bit) địa ngắn (16 bit) 19 Hình 1.9 Chuẩn IEEE 802.15.4 quy định 26 kênh vô tuyến vật lý 20 Hình 1.10 Các kênh 11-24 IEEE 802.15.4 chồng chéo lên kênh 802.11 21 Hình 1.11 Lớp vật lý IEEE 802.15.4 định dạng tiêu đề lớp MAC 23 Hình 2.1 Sở đồ khối nút thu thập client 26 Hình 2.2 Hình ảnh thực tế Arduino uno Hình 2.3 Sơ đồ chân ATMega328 27 30 Hình 2.4 Sơ đồ chân cc2530 drf1605h 33 Hình 2.5 khoảng cách pin module 34 Hình 2.6.Giao diện phần mềm 35 Hình 2.7 Cấu hình kiểu Coordinator Hình 2.8 Cấu hình kiểu Router 36 36 Hình 2.9 CC2530 ZigBee Module USB to UART Module (DRF1605-USB) 37 Hình 2.10 Module sim908.39 Hình 2.11 Sơ đồ chức sim 908 41 Hình 2.12 Phân cấp cấu trúc địa lí mạng GSM 42 Hình 2.13.Tắt mở nguồn dùng xung kích BJT 44 Hình 2.14 Sự thay đổi trạng thái chân STATUS Hình 2.15 Anten GSM 45 Hình 2.16 Cảm biến nhiệt độ, độ ẩm DTH11 Hình 2.17 Cách kết nối với vi xử lý 46 46 Hình 2.18 Link download phần mềm Arduino 48 Hình 2.19 Hình ảnh bật giao diện arduino 48 Hình 2.20 Giao diện lập trình Arduino 49 45 Hình 2.21 Sử dụng giao diện lập trình 49 Hình 2.22 Ví dụ có sẵn Arduino 50 Hình 2.23 Sơ đồ mạch nguyên lý bên client 53 Hình 2.24 Lưu đồ thuật toán bên client 54 Hình 2.25 Hình ảnh thực tế nút thu thập liệu 55 Hình 2.26 Hình ảnh thực tế nút thu thập liệu 55 Hình 3.1 Giao diện phần mềm visual studio 2010 74 Hình 3.2 Giao diện viết code Visual studio 2010 74 Hình 3.3 Sơ đồ khối bên server 75 Hình 3.4 Nút nhận bên Server 75 Hình 3.5 Giao diện phần mềm giám sát 76 Hình 3.6 Giao diện phần mềm có liệu 76 Hình 3.7 Lưu đồ thuật toán phần mềm giám sát.77 Hình 3.8 Nút cảm biến bên client.78 Hình 3.9 Nút cảm biến bên client.78 DANH MỤC BẢNG Bảng 3.1 Các kiểu dựng sẵn 57 Bảng 3.2 Các ký tự đặc biệt thôngdụng 58 Bảng 3.3 Các nhóm toán tử C# 64 Bảng 3.4 Thứ tự ưu tiên nhóm toán tử (chiều ưu tiên từ xuống) 65 Bảng 3.5 Bảng sở liệu hệthống 72 Bảng 3.6 Các đối tượng sở liệu 73 LỜI MỞ ĐẦU Khoa học kỹ thuật giới phát triển không ngừng qua thời kì Trong khứ phát triển công nghệ tự động hóa lượng hạt nhân Ngày phát triển mạnh mẽ Công nghệ thông tin Và tương lai gần chiếm lĩnh Công nghệ sinh học, Công nghệ Nano, xa Khoa học vũ trụ Khoa học kỹ thuật phát triển không ngừng để phục vụ cho nhu cầu ngày cao sống, nhằm đem lại thuận lợi, tiện nghi, thoái mải cho hoạt động hàng ngày người, giúp cho việc chuyển giao thông tin xa nhanh hơn, việc nghiên cứu, phòng ngừa chống lại bệnh kỷ nhờ công nghệ gen tìm “vùng đất sống mới”… Khoa học phát triển thực hỗ trợ nhiều sống Nhưng khoa học ứng dụng dành cho tất người Vì khoa học công nghệ không tiếp cận người mà phải quan tâm, tiếp cận đến khu rừng xanh phỗi mẹ thiên nhiên Cháyrừng mối đe dọa đến khu rừng tự nhiên cần phải có biện pháp phòng chống cháyrừngxảy Để góp phần nhỏ vào việc bảo vệ tài nguyên thiên nhiên bảo vệ người, dựa ý tưởng có việc phòng chống cháy rừng, báo cáo hình thành với mục đích thu thập liệu nhiệt độ, độ ẩm để đưa cảnhbáo thích hợp vấn đề cháyrừng CHƯƠNG I: CƠ SỞ LÝ THUYẾT 1.1 Ý tưởng toán Vấn đề cháyrừng giới việt nam vấn đề cấp bách Cháyrừng mối de dọa đáng sợ nhiều lo ngại hệ sinh thái rừng cho xã hội, gây lên thiệt hại khó lường Cháyrừng không làm thiệt hại tới tài nguyên rừng mà anh hưởng nghiêm trọng đến môi trường sống sinh vật, động vật trái đất Vì cần phải phát kịp thời sớm để nhanh chóng đưa cách xử lý nhăm tránh hạn chế cháyrừng Chính giới có số hệthống giúp phát cảnhbáocháyrừng cách sớm Qua tìm hiểu thấy số hệthốngcảnhbáo như: Hệthống theo dõi cháyrừng trực tuyến(FireWatch Việt Nam),Hệ thống tự động cảnhbáo phát sớm cháy rừng(FireWatch), Phần mềm Cảnhbáocháyrừng – CBCR 1.1.1 Hệthống theo dõi cháyrừng trực tuyến Hệthống theo dõi cháyrừng trực tuyến Cục Kiểm lâm (gọi tắt FireWatch Việt Nam) hệthống tự động phát sớm điểm cháy (hotspots) toàn lãnh thổ Việt Nam từ liệu ảnh MODIS AVHRR vệ tinh TERRA, AQUA vệ tinh NOAA thu thường xuyên trạm thu TeraScan đặt Cục FireWatch Việt Nam (Phiên 2.0, 2008) nhằm hỗ trợ lực lượng kiểm lâm toàn quốc đơn vị, người dân liên quan thực PCCCR, khai thác thông tin cháy, quản lý cháyrừng kịp thời hiệu 10 Hình 3.7 Lưu đồ thuật toán phần mềm giám sát Bắt đầu, phần mềm giám sát lấy thông tin cổng Com kết nối với máy tính Sau chờ người quản trị viên kết nối với cổng Com cần kết nối Khi kết nối thành công phần mềm đọc liệu từ cổng Com gửi tới xử lý liệu hiển thị lên giao diện phần mềm 3.7 Thực nghiệm 3.7.1 Triển khai thực nghiệm Hình 3.8 Nút cảm biến bên client 98 Hình 3.9 Nút cảm biến bên client Các bước triển khai: + Chuẩn bị mã nguồn, thiết bị phần cứng + Nạp chương trình lên kit + Xâydựng mô hình hệthống + Test truyền nhận liệu mạch đo + Test truyền nhận liệu Client – Server 3.7.2 Đánh giá sản phẩm Độ tin cậy: + Hệthống hoạt động tương đối ổn định, đáp ứng điều kiện đề tài + Cảm biến đọc nhiệt độ, độ ẩm cho giá trị tương đối xác + Vi xử lý xử lý liệu gửi xác + Phần mềm đơn giản dễ hiểu + Phần mềm nhận liệu từ client xử lý hiển thị lên giao diện đạt yêu cầu Đánh giá lượng tiêu thụ sản phẩm 99 So với hệthống sử dụng vi điều khiển khác 8051, PIC hệthốngcảnhbáocháyrừng sử dụng module Arduino có nhiều ưu điểm hỗ trợ giao tiếp với nhiều thiết bị khác, phần cứng gọn nhẹ, đơn giản, giá phải Module CC2530(drf1605h) sử dụng nguồn 3.3v dùng để truyền nhận liệu module tiết kiệm lượng giúp tăng thời gian sử dụnghệthống Module sim 908 sử dụng nguồn 3.2V – 4.8V ta điều khiển nguồn cho sim phần mềm tắt chức GPS, GPRS không dùng tới giúp tiết kiệm lượng cho mạch Hệthống sử dụng nguồn pin cell loại 4.2V sạc lại giúp tiết kiệm chi phí thuận tiện sử dụng, pin nối tiếp cung cấp dòng lên tới 2A phục vụ cho chức GPS sim, lượng cho toàn mạch sử dụng ngày Tính khả dụng: Hệthống hoạt động ổn định thân thiện với môi trường Có thể sử dụng nguồn pin sạc lại Phần cứng thiết kế tương đối nhỏ gọn đẹp mắt, test giao tiếp uart modlue sim 908 PC thực dễ dàng Mức chi phí dành hệthống thấp, ứng dụng lĩnh vực quốc phòng giúp cho việc giám sát điều khiển thuận tiện 100 Đánh giá độ xác tọa độ - Tọa độ cập nhật liên tiếp gửi sang server, server thực xử lý liệu hiển thị lên google map, phần mềm thực lệnh cách nên không tránh khỏi sai sót Hướng phát triển Bằng nỗ lực thân, đề tài đạt số kết đáng khích lệ Bên cạnh hạn chế vấn đề thời gian kinh phí phát triển, hệthống giám sát chưa khai thác hết tính module CC2530 nên đạt số yêu cầu đề định Để nâng cao chất lượng đưa hệthống lên tầm cao em đề định hướng phát triển sau: + Mở nhiều nút cảm biến + Xâydựnghệthống lượng mặt trời cung cấp cho hệthống + Thiết kế phần cứng cho nhỏ gọn + Tiến tới thương mại hóa sản phẩm 101 KẾT LUẬN Sau thời gian nghiên cứu em hoàn thành báo cáo đồ án tốt nghiệp Trong báo cáo này, em tìm hiểu trình bày nội dung kiến thức cảm biến DTH11, sim 908, ngôn ngữ c# từ thiết kế chế tạo phần cứng nhằm xâydựng ứng dụng thực tế Phần lý thuyết có liên quan trình bày đầy đủ Sơ đồ nguyên lý lưu đồ giải thuật giải thích rõ ràng mô tả chi tiết báo cáo Phần trình bày kết giúp người xem hình dung nguyên lý hoạt động hệthống người xem điều kiện sử dụnghệthống Tuy nhiên, thời gian thực báo cáo hạn hẹp, nên báo cáo em không tránh khỏi thiếu sót Em mong nhận phê bình, đóng góp thầy, cô môn để báo cáo em hoàn thiện Em xin chân thành cảm ơn TS Vũ Chiến Thắng – Bộ môn Công Nghệ Điện Tử – Khoa Công Nghệ Điện Tử Truyền Thông – Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông, tận tình giúp đỡ hướng dẫn em thời gian thực báo cáo 102 TÀI LIỆU THAM KHẢO [1] Khoa Công Nghệ Thông Tin, Giáo trình Lập Trình Cơ Bản Về Ngôn Ngữ C [2] Vũ Cao Đàm (2000) Phương pháp nghiên cứu khoa học Nhà xuất xây dựng, Hà Nội [3] Dương Minh Trí Cảm biến ứng dụng Nhà xuất Trẻ [6] http://www.alldatasheet.com [7] http://www.dientumaytinh.com [8] arduino.vn [9] hshop.vn 103 PHỤ LỤC Mã nguồn chường trình bên client //""""""""""""""""""""""""DHT nhiet do am""""""""""""""""""""""""""''' #include "DHT.h" #define DHTPIN #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); float doAm; // ****************************************************************** *************** //********************khai bao cong UART******************************************** #include SoftwareSerial mySerial(10, 11); // 10-RX 11-TX // ****************************************************************** ************8 int PWR = A0; int LedConfig = 13; int answer; short sms_mode=false; const int buffer_size = 300; // Buffer size you can adjust this size bo dem cho sim908 char c=0; char c1=0; char *ptr2=0; 104 char *buffer_map=0; char aux_string[30]; char map_string[100]; char aux1_string[40]; char latitude_data[12]; char longitude_data[13]; float latitude=0; float latitude_map=0; float longitude=0; float longitude_map=0; char tr_latitude_map[12]; char tr_longitude_map[13]; char tr_temperature_C[10]; char tr_doAm_C[10]; char buffer[buffer_size]; // Data from UART int xbuff=0; char cgpsinf[]="32"; // ***************************************SETUP********************* ****************************************** void setup() { //"""""""""""""""""""""""'DHT dht.begin(); //"""""""""""""""""""""""""""" Serial.begin(9600); while (!Serial) {} mySerial.begin(9600); pinMode(PWR, OUTPUT);//dinh nghia chan dau dung de bat nguon sim 908 105 pinMode(LedConfig, OUTPUT); power_on(); init_SIM908(); // Power on Module SIM908 // Configuration GSM and GPS for Module SIM908 erase_buffer(); } // ****************************************************************** ************************************ void loop() { doAm=getDoAmDTH11(); dtostrf(doAm,0,2,tr_doAm_C); nhietdo=getNhietDoDTH11(); dtostrf(nhietdo,0,2,tr_temperature_C); if(nhietdo>10){ get_position(); sprintf(aux1_string,"%s:%s:%s:%s \n",tr_temperature_C,tr_doAm_C,tr_latitude_map,tr_longitude_map); Serial.println(aux1_string); mySerial.print(aux1_string); erase_buffer(); delay(300); } } // ****************************************************************** ************************************ void init_SIM908() { digitalWrite(LedConfig, LOW); { answer = sendAT("AT+CREG?","+CREG: 0,1",1000);} while(answer==0); // Connecting to the network 106 // config GSM { answer = sendAT("ATE0","OK",1000);} while(answer==0); { answer = sendAT("AT+CMGF=1", "OK",1000);} while(answer==0); // Set SMS into text mode { answer = sendAT("AT+CNMI=2,2,2,0,0", "OK",1000);} while(answer==0); // Set Message mode when receive new SMS // config GPS { answer = sendAT("AT+CGPSIPR=9600","OK",1000);} while(answer==0); { answer = sendAT("AT+CGPSPWR=1","OK",1000);} while(answer==0); // bat nguon cho gps { answer = sendAT("AT+CGPSRST=0","OK",1000);} while(answer==0); // chon mode auto { answer = sendAT("AT+CGPSOUT=32","OK",1000);} while(answer==0); // { answer = sendAT("AT+CGPSSTATUS?","Location 3D Fix",5000);} while (answer==0); //trạng thái GPS cố định 3D } // ****************************************************************** ************************************ 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(); Serial.println(ATcommand); 107 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