nén dữ liệu trên mạng cảm biến không dây

66 2 0
  • Loading ...
1/66 trang

Thông tin tài liệu

Ngày đăng: 23/11/2016, 02:54

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LÂM VĂN LỢI ĐỀ TÀI NÉN DỮ LIỆU TRÊN MẠNG CẢM BIẾN KHÔNG DÂY Chuyên ngành: Công nghệ thông tin LUẬN VĂN THẠC SĨ KỸ THUẬT Công nghệ thông tin Người hướng dẫn khoa học TS Ngô Quỳnh Thu Hà Nội - 2015 MỤC LỤC DANH CỤM CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ MỞ ĐẦU Chương TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY I Giới thiệu mạng cảm biến không dây Giới thiệu chung Các ứng dụng mạng cảm biến không dây Kiến trúc mạng cảm biến 10 II Các tiêu mạng cảm biến không dây 17 Thời gian sống 17 Kích thước chi phí 18 Truyền thông 18 Khả tính toán 19 Đồng thời gian 19 III Các hướng nghiên cứu giảm thiểu tiêu hao lượng mạng cảm biến không dây 19 Tổng quan lượng 19 Mô hình lượng 20 Những nguyên nhân gây lãng phí lượng 21 Các hướng tiết kiệm lượng mạng cảm biến không dây 21 IV Internet of things 28 V Mô hình mạng sử dụng giao thức định tuyến RPL - IP6 routing protocol for Low power and Lossy Network 29 Vấn đề định tuyến 29 Tổng quan giao thức định tuyến RPL 30 Chương 39 NÉN DỮ LIỆU TRÊN MẠNG CẢM BIẾN KHÔNG DÂY 39 I Bài toán đặt 39 II Các giải pháp nén liệu mạng cảm biến không dây 40 Nhận xét chung 40 Nén liệu dựa giá trị chênh lệch 40 Nén liệu dựa hàm tiên đoán tuyến tính 41 Kỹ thuật tập hợp liệu-Data aggregation techniques 43 Khả ứng dụng 46 Chương 47 MÔ PHỎNG NÉN DỮ LIỆU BẰNG PHẦN MỀM OMNET++ 47 I Giới thiệu 47 Omnet++ gì? 47 Các thành phần Omnet++ 47 Ứng dụng 48 Mô hình Omnet++ 48 II Mô nén liệu mạng cảm biến không dây 48 Xây dựng nút cảm biến 50 Xây dựng modul giao thức RPL 50 Cài đặt phương pháp nén sử dụng giao thức định tuyến RPL 50 KẾT LUẬN 63 Tài liệu tham khảo 65 DANH CỤM CÁC TỪ VIẾT TẮT ADC Alalog Digital Convert CPU Center processor unit CSMA Carrier sense multiple access DRAM Dynamic Random Access Memory IoT Internet of Things MAC Medium Access Control MEMS Micro electromechanical systems TDMA Task Assignment and Data Advertisement Protocol PN Processing node WSN Wireless sensor network DANH MỤC CÁC BẢNG Trang Bảng 1: Bảng so sánh số đặc điểm dạng kiến trúc mạng…… 16 Bảng 2: Dữ liệu cảm biến dùng để mô phỏng…………………………… 39 Bảng 3: Dữ liệu sau chuyển đổi nhân thêm hệ số……………………… 50 DANH MỤC CÁC HÌNH VẼ Hình 1: Sơ đồ mạng cảm biến không dây – WSN Hình 2: Cấu trúc nút sensor………………………………………… 12 Hình 3: Mô hình bố trí nút cảm biến…………………………………… 13 Hình 4: Kiến trúc mạng đơn…………………………………………… 13 Hình 5: Kiến trúc mạng liên kết bước…………………………………… 14 Hình 6: Kiến trúc mạng liên kết bó……………………………………… 15 Hình 7: Phân loại phương pháp hướng liệu………………………… 23 Hình 8: Mô hình RPL DAG……………………………………………… 32 Hình 9: RPL Instance DRAG sequence number……………… ……… 33 Hình 10: Cấu trúc tin UDP/Ipv6………………………… ………… 38 Hình 11: Khái niệm mô hình tập hợp liệu dựa cây………… 44 Hình 12: Sơ đồ mạng với 80 nút cảm biến……………………………… 58 Hình 13: So sánh lượng tiêu hao toàn mạng sử dụng phương pháp chênh lệch liệu với liệu không nén………… …… 59 Hình 14: So sánh lượng tiêu hao không nén với nén dự đoán… 59 Hình 15: So sánh lượng tiêu hao không nén với kỹ thuật tập hợp liệu……………………………………………………… 60 Hình 16: So sánh lượng tiêu hao nén Chênh lệch, Tuyến tính Dựa cây…………………………………………………… 60 Hình 17: Năng lượng tiêu hao toàn mạng phuong pháp nén không nén………………………… ………………………… 61 Hình 18: So sánh lượng lại nút mạng ………………… 61 Hình 19: Sự chênh lệch liệu nhiệt độ phương pháp nén với liệu gốc ……………………………………………………… 62 MỞ ĐẦU Ngày nay, với phát triển nhanh chóng khoa học kỹ thuật giới, đặc biệt ứng dụng công nghệ thông tin năm gần trở nên phổ biến thiếu sống người Mạng cảm biến không dây (WSN) không ngừng phát triển đòi hỏi yêu cầu cao hơn, nhằm phục vụ mục đích ứng dụng, nghiên cứu khoa học nhiều lĩnh vực y tế, giáo dục, quân sự, cảnh báo,… Tuy nhiên, mạng cảm biến đặt nhiều thách thức yêu cầu trình triển khai, với hạn chế lượng, khả xử lý tính chất đặc thù mạng Việc mở rộng, triển khai mạng cảm biến không dây, yếu tố lựa chọn giao thức định tuyến phù hợp cần có phương pháp khác làm giảm thiểu việc tiêu tốn lượng, phương pháp phải kể đến phương pháp nén liệu để giảm bớt khối lượng liệu phải truyền mạng Nén liệu mạng cảm biến nhiều nhà khoa học, nhà nghiên cứu, tổ chức giới nghiên cứu, song lĩnh vực rộng lớn mà ta chưa khai thác hết Trong phạm vi đề tài em xin đề xuất số phương pháp nén liệu cho mạng cảm biến không dây, ứng dụng với nhiều kịch khác nhằm mục đích giảm thiểu tiêu hao lượng toàn mạng Các giải thuật cài đặt ứng dụng với kiểu liệu định đo đạc thông số nhiệt độ, độ ẩm cường độ ánh sáng môi trường Khi sử dụng giải thuật nén, tổng số liệu cảm biến gửi giảm đi, tiêu hao lượng giảm thời gian sống mạng tăng lên Để ứng dụng thực tiễn, em sử dụng giao thức định tuyến RPL - IP6 Routing protocol for Low power and lossy network kết hợp kỹ thuật nén liệu cảm biến xây dựng mạng cảm biến Luận văn thực khuân khổ đề tài B2013-01-83 Nội dung trình bày chương sau: CHƯƠNG 1: Tổng quan mạng cảm biến không dây Trình bày số lý thuyết, kiến trúc mạng cảm biến không dây Các yếu tố định việc tiết kiệm lượng nút cảm biến tiêu khác để đánh giá mạng cảm biến Mô hình mạng sử dụng giao thức định tuyến RPL CHƯƠNG 2: Các phương pháp nén liệu mạng cảm biến không dây Truyền liệu mô hình mạng sử dụng giao thức định tuyến RPL liệu cảm biến từ môi trường nhiệt độ, độ ẩm cường độ ánh sáng Để tiết kiệm lượng em đề xuất ba phương pháp nén liệu: Nén chênh lệch giá trị, nén liệu dựa hàm tiên đoán tuyến tính sử dụng phương pháp tập hợp liệu nút RPL Cả ba phương pháp ứng dụng thực tiễn, đặc biệt phương pháp tập hợp liệu nút RPL phù hợp với trình định tuyến CHƯƠNG 3: Thực cài đặt kỹ thuật phần mềm mô Omnet++ liệu có Chương giới thiệu tổng quan phần mềm mô thực cài đặt phương pháp nén liệu Trên sở lý thuyết phương pháp nén liệu, trình cài đặt sử dụng ý tưởng phương pháp nêu cài đặt chạy thử nghiệm Kết thử nghiệm đưa trình tiêu hao lượng toàn mạng đánh giá kết cụ thể phương pháp Phương pháp nghiên cứu: Chủ yếu nghiên cứu tài liệu sách, báo công trình luận văn Ngoài em cài đặt phương pháp phần mềm mô thử nghiệm liệu thu thập Mặc dù có nhiều cố gắng kinh nghiệm có hạn, mặt thời gian hạn chế, nên luận văn không tránh khỏi thiếu sót nội dung hình thức Kính mong nhận góp ý thầy cô, bạn bè đồng nghiệp để luận văn hoàn thiện Em xin gửi lời cảm ơn đến thầy cô Viện đào tạo sau đại học, Viện công nghệ thông tin truyền thông, bạn bè đồng nghiệp giúp đỡ em suốt trình học tập thực luận văn Em xin đặc biệt chân thành cảm ơn cô giáo TS Ngô Quỳnh Thu tận tình hướng dẫn bảo để em hoàn thành luận văn hạn Chương TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY I Giới thiệu mạng cảm biến không dây Giới thiệu chung Một mạng cảm biến không dây (WSN) mạng không dây bao gồm nút cảm biến phân bố theo không gian cảm biến để giám sát điều kiện vật chất hay môi trường Thông thường nút cảm biến thiết bị vi điều khiển có bốn thành phần bản: Một hệ thống cảm biến để thu thập liệu từ môi trường xung quanh, xử lý lưu trữ liệu, hệ thống thu phát tín hiệu không dây nguồn cung cấp lượng Nguồn lượng thường pin có nguồn lượng hạn chế Hình 1: Sơ đồ mạng cảm biến không dây – WSN Các thành phần mạng cảm biến không dây: Có thành phần tạo nên mạng cảm biến không dây: - Các cảm biến phân bố theo mô hình tập trung hay phân bố rải - Mạng lưới liên kết cảm biến - Điểm trung tâm tập hợp liệu - Bộ phận xử lý liệu trung tâm Các ứng dụng mạng cảm biến không dây Trong năm gần đây, nghiên cứu WSN đạt bước phát triển mạnh mẽ, bước tiến nghiên cứu hứa hẹn tác động lớn đến ứng dụng rộng rãi lĩnh vực an ninh quốc gia, chăm sóc sức khỏe, môi trường, lượng, an toàn thực phẩm sản xuất Các ứng dụng mạng WSN thực bị giới hạn tưởng tượng người Sau ứng dụng phổ biến WSN: 2.1 Ứng dụng quân an ninh quốc gia: - Giám sát chiến trường - Bảo vệ an ninh cho công trình trọng yếu - Ứng dụng quân đội - Thông tin, giám sát, điều khiển - Theo dõi mục tiêu - Phát phóng xạ hạt nhân - Giám sát nước, không - Hệ thống radars - Rà soát bom mìn 2.2 Ứng dụng bảo vệ môi trường - Phát hoạt động núi lửa - Giám sát cháy rừng - Giám sát dịch bệnh - Sử dụng hiệu tài nguyên thiên nhiên - Cảm biến dùng nông nghiệp - Phát động đất 2.3 Ứng dụng thương mại - Điều khiển không lưu - Quản lý cầu đường - Quản lý kiến trúc xây dựng - Điều khiển nhiệt độ - Quản lý tải tiêu thụ điện - Hệ thống tự động - Cảm biến chất hóa học, sinh học, nguyên tử - Thu thập liệu thời gian thực - Các hệ thống nhận dạng sóng radio - Quản lý lượng - Điều khiển nhiệt độ - Quản lý sản xuất - Robot tự hành - Đo lượng khí gas, nước, điện - Hệ thống xử lý vật liệu (hóa học, gas, nhiệt ) 2.4.Ứng dụng y học - Cảm biến gắn trực tiếp lên thể người - An toàn thực phẩm - Phân tích nồng độ chất - Giám sát bệnh nhân, nhân viên y tế Kiến trúc mạng cảm biến Trong mạng phẳng hoàn toàn cấu trúc lôgic, tất nút phải hợp tác để điều khiển mạng - xác định việc tạo thành mối liên kết, hợp tách nút giá truyền thông nút trực tiếp ý thức môi trường mạng vùng lân cận tức thời chúng 3.1 Kiến trúc nút mạng Tương tự kiến trúc máy tính thông thường, thành phần kiến trúc vật lý nút mạng cảm nhận không dây phân loại vào nhóm chính: Bộ vi xử lý (processing subsystem) với vi điều khiển nhớ để xử lý liệu; truyền thông radio (radio subsystem) để truyền liệu không dây; cảm biến (sensing subsystem) chứa nhiều cảm biến, khởi động; cuối cung cấp lượng Tùy theo ứng 10 (check_and_cast(simulation.getModuleByPath("statistic"))>registerStatistic(APP_SEND)); } 3.2 Phương pháp sử dụng hàm tiên đoán tuyến tính Với giải pháp cần xây dựng hàm tuyến tính, đồng thời đảm bảo khách quan ta xây dựng ngưỡng Với loại liệu cần có mức ngưỡng cho phù hợp với tính chất loại liệu Dựa liệu thật đo được, em đề xuất phương án chọn ngưỡng sử dụng hàm tính Entropy n giá trị có Vì liệu thu rời rạc, nên áp dụng công thức tính Entropy sau: H ( S ) = − ∑ p(x) log p(x) x∈X Trong đó: S- tập liệu xét X- tập giá trị S P(x)- tỷ lệ phần tử có giá trị x phần tử S Sau tính Entropy giá trị tập liệu, để chọn giá trị ngưỡng, ta lấy phần tử có giá trị x có Entropy H(x) nhỏ Dựa liệu thực tế, ta tính mức ngưỡng cụ thể loại liệu, áp dụng ngưỡng giải thuật Nút cảm biến thu nhận n mẫu liệu truyền liệu nút gốc lưu lại giá trị liệu nút Từ lần sau, cảm biến liệu mới, nút cảm biến thực tiên đoán giá trị, sau tính giá trị chênh lệch hai liệu này, giá trị tuyệt đối lớn ngưỡng gửi giá trị chênh lệch nút gốc, ngược lại không làm Cài đặt hàm gửi liệu sử dụng phương pháp dự đoán tuyến tính sau: void Client::sendData() { // create data to send char buf[30],tmpBuf[10], space[2]; buf[0]='\0'; space[0]='x'; space[1]='\0'; int len; int tempValue; int humValue; int asValue; 52 int iTemp; int iHum; int iAs; // hack port, address int destinationPort = UDP_SERVER_PORT; int destinationAddress = simulation.getModuleByPath("server.net")->getId(); sensor_file >>iTemp; sensor_file >>iHum; sensor_file >>iAs; if(pre_data[0]!=0) { tempValue= abs((C1*pre_data[0]+C2*pre_data[1]+C3*pre_data[2]+C4*pre_data[3])-iTemp); humValue=abs(C1*pre_hum[0]+C2*pre_hum[1]+C3*pre_hum[2]+C4*pre_hum[3]-iHum); asValue=abs(C1*pre_as[0]+C2*pre_as[1]+C3*pre_as[2]+C4*pre_as[3]-iAs); } else {// Gửi n giá trị cảm biến ban đầu tempValue= iTemp; humValue=iHum; asValue=iAs; pre_data[0]=pre_data[1]; pre_data[1]=pre_data[2]; pre_data[2]=pre_data[3]; pre_data[3]=iTemp; pre_hum[0]=pre_hum[1]; pre_hum[1]=pre_hum[2]; pre_hum[2]=pre_hum[3]; pre_hum[3]=iHum; pre_as[0]=pre_as[1]; pre_as[1]=pre_as[2]; pre_as[2]=pre_as[3]; pre_as[3]=iAs; } if(tempValue>EPSILON_TEM) { itoa(iTemp, tmpBuf, 10); pre_data[0]=pre_data[1]; pre_data[1]=pre_data[2]; pre_data[2]=pre_data[3]; pre_data[3]=iTemp; } else itoa(0, tmpBuf, 10); AddChar(tmpBuf, buf); AddChar(space, buf); if(humValue>EPSILON_TEM) { itoa(iHum, tmpBuf, 10); pre_hum[0]=pre_hum[1]; pre_hum[1]=pre_hum[2]; pre_hum[2]=pre_hum[3]; pre_hum[3]=iHum; } else itoa(0, tmpBuf, 10); 53 AddChar(tmpBuf, buf); AddChar(space, buf); if(asValue>EPSILON_TEM) { itoa(iAs, tmpBuf, 10); pre_as[0]=pre_as[1]; pre_as[1]=pre_as[2]; pre_as[2]=pre_as[3]; pre_as[3]=iAs; } else itoa(0, tmpBuf, 10); AddChar(tmpBuf, buf); len=strlen(buf); sendMessage(buf, strlen(buf), destinationPort, destinationAddress); (check_and_cast(simulation.getModuleByPath("statistic"))>registerStatistic(APP_SEND)); } 3.3 Phương pháp tập hợp liệu Theo phương pháp tập hợp liệu, có hai phương pháp trình bày, ta thấy định tuyến RPL có khả đáp ứng yêu cầu toán Các nút cảm biến thiết lập thuộc DRAG đó, theo mô hình kiểu kiến trúc ta coi nút kết nối đến DRAG parent nút cha nút kết nối đến, liên kết nút mạng có hướng định, hướng DRAG ROOT nên đảm bảo trình truyền liệu nút gốc qua số nút trung gian hữu hạn Tại nút trung gian xử lý liệu hàm tập hợp f(.,…) Trong trình tính toán giá trị cảm biến với giá trị cần gửi nút gốc số giá trị cảm biến từ nút nút trung gian Để đơn giản em đề xuất lấy giá trị lớn số giá trị tập hợp được, vật hàm f thực sau: Đối với phương pháp tập hợp liệu dựa cây: Hàm f(x1,x2) lấy giá trị max(x1,x2) Trong x1 giá trị cảm biến từ nút gửi lên, x2 giá trị cảm biến gần nút trung gian xét Tương tự vậy, phương pháp phân cụm nút cảm biến,nút chủ có nút kết nối đến, giả thiết nút trung gian có n nút kết nối đến, nút trung gian xét tập hợp n liệu gửi lên từ n nút Sau giá trị hàm f ta truyền giá trị nút gốc thông qua nút trung gian theo hướng định tuyến giao thức RPL Tại nút trung gian tiếp 54 theo lại nút tập hợp liệu, việc tập hợp liệu liệu truyền đến nút gốc Khi thực truyền liệu cảm biến toàn mạng cần kiểm tra nút thu thập liệu cảm biến từ môi trường có phải nút không, nút thực truyền liệu nút chủ Cài đặt Dựa theo nguyên lý phương pháp tập hợp liệu, liệu cảm biến chuyển nút gốc phân biệt nút nút nút trung gian Để xác định nút nút lá, nút nút trung gian thông qua trình hình thành DRAG, việc xác định đơn giản cách ban đầu tất nút cho nút lá, qua trình tìm kiếm nút parent, nút có nút thiết lập nút trung gian, thông tin lưu vào biến logic nodeLeaf, mặc định giá trị nodeLeaf giá trị true Đối với nút lá: - Nút nút nút - Truyền liệu: Khi nút cảm biến liệu nhiệt độ, ánh sáng độ ẩm chuyển lên nút cha Đối với nút trung gian: - Nút trung gian(nút chủ) nút có nút - Truyền liệu: Do nút trung gian nên nút cần xử lý truyền liệu từ nút gửi lên liệu cảm biến nút gốc Quá trình xử lý tình sau: Đối với liệu cảm biến nút gửi lên: Kiểm tra giá trị nhiệt độ biến trung gian pre_data có kiểu gói tin chứa thông tin nhiệt độ, độ ẩm cường độ ánh sáng, giá trị nhiệt độ vừa nhận lớn giá trị biến pre_data lưu lại vào biến pre_data, đồng nghĩa với việc hủy bỏ liệu cảm biến chuyển tiếp từ nút đến nút gốc Đối với liệu nút xét nút trung gian: Các nút thiết lập theo định kỳ thu nhận liệu cảm biến gửi đi, thu nhận liệu nút xét kiểm tra giá trị nhiệt độ biến pre_data rỗng gửi liệu cảm biến thu được, ngược lại so sánh giá trị nhiệt độ lớn liệu vừa thu với giá trị nhiệt độ biến pre_data gửi đi, đồng 55 thời đặt giá trị cảm biến biến pre_data để khởi động lại từ đầu Như vậy, nút trung gian đến chu kỳ cảm nhận giá trị cảm biến thực gửi giá trị cảm biến, điều tránh trường hợp nút không gửi liệu lý Quá trình tiếp tục liệu gửi tới nút gốc nút DRAG ROOT Hàm gửi liệu từ sử dụng hàm tập hợp: void Client::sendData() { char buf[30],tmpBuf[10], space[2]; buf[0]='\0'; space[0]='x'; space[1]='\0'; int len; int iTemp; int iHum; int iAs; int destinationPort = UDP_SERVER_PORT; int destinationAddress = simulation.getModuleByPath("server.net")->getId(); sensor_file >>iTemp; sensor_file >>iHum; sensor_file >>iAs; itoa(iTemp, tmpBuf, 10); AddChar(tmpBuf, buf); AddChar(space, buf); itoa(iHum, tmpBuf, 10); AddChar(tmpBuf, buf); AddChar(space, buf); itoa(iAs, tmpBuf, 10); AddChar(tmpBuf, buf); len=strlen(buf); if ( pre_data[0]==0) { pre_data[0] = iTemp; pre_data[1] = iHum; pre_data[2] = iAs; } else if (pre_data[0]>iTemp) // doi gia tri { iTemp=pre_data[0]; iHum=pre_data[1]; iAs=pre_data[2]; pre_data[0]=0; pre_data[1]=0; pre_data[2]=0; buf[0]='\0'; itoa(iTemp, tmpBuf, 10); AddChar(tmpBuf, buf); AddChar(space, buf); itoa(iHum, tmpBuf, 10); AddChar(tmpBuf, buf); AddChar(space, buf); itoa(iAs, tmpBuf, 10); 56 AddChar(tmpBuf, buf); len=strlen(buf); } sendMessage(buf,len, destinationPort, destinationAddress); //Gửi bình thường (check_and_cast(simulation.getModuleByPath("statistic"))>registerStatistic(APP_SEND)); } Khi nhận liệu cảm biến nút gửi lên, thực hàm tập hợp cách so sánh có giá trị nhiệt độ lớn Hàm lưu lại giá trị cảm biến giá trị nhiệt độ lớn hơn: void Client::processLowerLayerMessage(cPacket* packet) { Data* data = check_and_cast(packet); int iTemp=0; int iHum=0; int iAs=0; splitString(&iTemp, &iHum, &iAs, data->getValue()); //tách lấy giá trị if (pre_data[0]getKind()) { case DATA: /* Data */ { check_and_cast(getParentModule()->getSubmodule("count"))->transmit( check_and_cast(packet)->getBitLength()); unicast(check_and_cast(packet)); break; } default: delete packet; if (DEBUG) std::cout
- Xem thêm -

Xem thêm: nén dữ liệu trên mạng cảm biến không dây , nén dữ liệu trên mạng cảm biến không dây , nén dữ liệu trên mạng cảm biến không dây

Mục lục

Xem thêm

Gợi ý tài liệu liên quan cho bạn

Nạp tiền Tải lên
Đăng ký
Đăng nhập