(Luận văn thạc sĩ) nghiên cứu, chế tạo mạng cảm biến không dây giám sát nhiệt độ, độ ẩm môi trường

122 24 0
(Luận văn thạc sĩ) nghiên cứu, chế tạo mạng cảm biến không dây giám sát nhiệt độ, độ ẩm môi trường

Đ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

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHAN QUỐC THẮNG NGHIÊN CỨU, CHẾ TẠO MẠNG CẢM BIẾN KHÔNG DÂY GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM MÔI TRƢỜNG LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG Hà Nội – Năm 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ PHAN QUỐC THẮNG NGHIÊN CỨU, CHẾ TẠO MẠNG CẢM BIẾN KHÔNG DÂY GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM MƠI TRƢỜNG Ngành: Cơng nghệ Điện Tử - Viễn Thông Chuyên ngành: Kỹ thuật Điện tử Mã số: 60520203 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ ĐIỆN TỬ VIỄN THÔNG NGƢỜI HƢỚNG DẪN KHOA HỌC: TS.PHẠM MINH TRIỂN Hà Nội – Năm 2015 LỜI CAM ĐOAN Tôi xin cam đoan công trình nghiên cứu riêng tơi Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tác giả Phan Quốc Thắng LỜI CẢM ƠN Để hoàn thành đƣợc luận văn này, em đƣợc học hỏi kiến thức vô quý báu từ thầy, cô giáo trƣờng Đại Học Công Nghệ - Đại Học Quốc Gia Hà Nội hai năm qua Em vô biết ơn dạy dỗ, bảo tận tình thầy, thời gian học tập cao học trƣờng Em đặc biệt bày tỏ lòng biết ơn tới thầy TS.Phạm Minh Triển – Khoa Điện Tử Viễn Thông – Trƣờng Đại Học Công Nghệ - Đại học Quốc Gia Hà Nội bảo định hƣớng cho em nghiên cứu đề tài Thầy cho em lời khuyên bổ ích q báu suốt q trình hồn thành luận văn Do hạn chế thời gian, tài liệu trình độ thân, luận văn em khơng thể tránh khỏi thiếu sót, mong thầy góp ý củng cố đề luận văn đƣợc hoàn thiện Em xin chân thành cảm ơn! MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT DANH MỤC BẢNG BIỂU DANH MỤC HÌNH VẼ 10 MỞ ĐẦU 12 CHƢƠNG1 - TỔNG QUAN VỀ MẠNG CẢM BIẾN KHÔNG DÂY VÀ ỨNG DỤNG 13 Tổng quan mạng cảm biến không dây 13 1.1 Mạng cảm biến không dây gì? 13 1.2 Thành phần cấu trúc mạng cảm biến không dây 13 1.2.1 Cấu trúc mạng cảm biến 14 1.2.2 Cấu trúc nút mạng [6] 15 1.3 Đặc điểm mạng cảm biến không dây 16 1.4 Sự khác WSN mạng truyền thống 17 Ứng dụng mạng cảm biến không dây [3] 17 2.1 Mạng cảm biến môi trƣờng 18 2.2 Ứng dụng y tế 19 2.3 Ứng dụng gia đình điện dân dụng 19 2.4 Ứng dụng giám sát điều khiển công nghiệp 20 2.5 WSN nông nghiệp 20 2.6 WSN quân 21 Những khó khăn hạn chế việc phát triển mạng cảm biến không dây [4] 22 3.1 Những khó khăn thƣờng thấy 22 3.2 Hạn chế việc xây dựng WSN 23 Kết luận 24 CHƢƠNG – ĐỊNH TUYẾN TRONG MẠNG CẢM BIẾN KHÔNG DÂY 25 Những vấn đề cần quan tâm định tuyến mạng WSN[4],[8] 25 1.1 Tính động mạng 25 1.2 Trật tự xếp mạng 25 1.3 Khả nút mạng 25 1.4 Vấn đề lƣợng 26 1.5 Vấn đề tập trung hợp liệu 26 Cách truyền liệu mạng cảm biến 27 Các định tuyến hay đƣợc dùng mạng WSN[5],[11] 28 3.1 Định tuyến trung tâm liệu 28 3.1.1 Giao thức Flooding gossiping 28 3.1.2 Giao thức SPIN 29 3.2 Truyền tin trực tiếp 31 3.3 Định tuyến phân cấp 32 3.3.1 Giao thức LEACH 32 3.3.2 Giao thức PEGASIS 34 3.4 Định tuyến dựa vào vị trí 34 3.4.1 Giao thức GAF 34 3.4.2 Giao thức GEAR 36 Kết luận 36 CHƢƠNG 3–CHUẨN TRUYỀN THÔNG KHÔNG DÂY ZIGBEE/IEEE 802.15.4 37 Tổng quan chuẩn Zigbee[1] 37 Mô mạng Zigbee[10] 38 2.1 Mạng hình (Star Network) 38 2.2 Mạng hình lƣới (Mesh Network) 38 2.3 Mạng hình (Cluster Tree Topology) 39 Cấu trúc tầng chuẩn Zigbee[2] 39 Tầng vật lý (PHY)[10] 40 4.1 Điều chế tín hiệu tầng vật lý 42 4.2 Thông số kỹ thuật 44 4.3 Định dạng khung tin PPDU 45 5 Tầng điều khiển liệu (MAC) [5] 45 5.1 Cấu trúc siêu khung 45 5.2 Thuật toán tránh xung đột đa truy cập sử dụng cảm biến sóng mang CSMA- CA 48 5.3 Các mơ hình truyền liệu 50 5.4 Phát thông tin báo hiệu beacon 54 5.5 Định dạng khung tin MAC 54 Tầng mạng Zigbee [5] 54 6.1 Dịch vụ mạng 54 6.2 Dịch vụ bảo mật 55 Tầng ứng dụng Zigbee/IEEE 802.15.4 [5] 55 Kết luận 56 CHƢƠNG 4–MƠ HÌNH ỨNG DỤNG GIÁM SÁT CÁC THƠNG SỐ MÔI TRƢỜNG 57 Bài toán đặt 57 1.1 Mơ hình tốn cần xây dựng 57 1.2 Bài tốn mơ đặt 57 Sơ đồ khối chung mạch 58 Chi tiết phần cứng cho mạch 58 3.1 Vi điều khiển ATmega[13] 58 3.2 Mạch cảm biến nhiệt độ, độ ẩm[14],[15] 60 3.3 Mạch thu phát sóng radio tần số 2.4Ghz[16] 64 3.4 Phần mềm giám sát 66 3.4.1 Hoạt động chung 66 3.4.2 Hoạt động truyền liệu nút mạng 67 3.4.3 Hoạt động giao tiếp nút chủ máy tính 69 Kết toán 70 4.1 Mạch thực tế 70 4.2 Màn hình giám sát 72 Kết luận 74 KẾT LUẬN VÀ ĐỊNH HƢỚNG ĐỀ TÀI 75 TÀI LIỆU THAM KHẢO 77 PHỤ LỤC 79 Chƣơng trình code cho vi điều khiển 79 1.1 Chƣơng trình cho nút thực đo, thu phát tín hiệu 79 1.2 Chƣơng trình cho nút chủ đo, phát thu tín hiệu 92 Chƣơng trình code phần mềm 114 2.1 Hàm đọc giá trị từ nút chủ vẽ đồ thị 114 2.2 Giao diện 118 DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT Nghĩa tiếng Anh Từ viết tắt Nghĩa tiếng việt ACK Acknowledge Báo nhận đƣợc ADC Analog to Digital converter Bộ chuyển tín hiệu điện sang số BE Backoff Exponent Chỉ số Backoff BPSK Binary Phase Shift Keying Điều chế pha nhị phân CAP Contention Access Period Thời gian tranh chấp truy cập CCA Clear Channel Assessment Ƣớc lƣợng kênh truyền CFP Contention Free Period Thời gian tranh chấp tự CSMA-CA Carrier Sense Multiple Access Đa truy nhập cảm biến sóng mang phát with Collision Detection đụng độ CW Congestion Window Cửa sổ tranh chấp FFD Full Function Device Thiết bị hỗ trợ đầy đủ chức theo chuẩn Zigbee GAF Global Assessment of Giải thuật xác theo địa lý Functioning GEAR Geographic Energy- Định tuyến nhận biết lƣợng and Aware Routing phƣơng pháp báo thong tin qua địa lý GTS Guaranteed Time Slots Quản lý khe thời gian IEEE Institute of Electrical and Viện kỹ thuật điện điện tử Electronics Engineers LCD Liquid Crystal Display LEACH Low Engergy Màn hình tinh thể lỏng Adaptive Phân cấp cụm thích ứng với lƣợng Clustering Hierachy thấp MAC Medium access control Điều khiển truy nhập MCU Microprocessor Control Unit Vi điều khiển MSK Minimun Shift Keying Khóa dich tối thiểu đồng NB Number of Backoff Số lần back off O-QPSK Offset-Quadrature Phase Shift Khóa dịch pha góc 1/4 có góc lệch pha Keying ban đầu Mạng cá nhân PAN Personal Area Networks PEGASIS Power-efficient Gathering in Giao thức định tuyến tập trung hiệu Sensor Information Systems suất mạng cảm biến PHY Physical layer Tầng vật lý PPDU Presentation Protocol Data Khối liệu giao thức trình diễn Unit REQ Request Yêu cầu RF Radio Frequency Tần số vô tuyến RFD Reduced Function Device Những thiết bị giới hạn chức chuẩn Zigbee SPIN Sensor Protocol for Giao thức định tuyến thông tin dựa vào Information via Negotiation dàn sếp liệu WLAN Wireless local area network Mạng vô tuyến cục WSN Wireless Sensor Network Mạng cảm biến không ZC Zigbee Coordinator Thiết bị điều phối Zigbee ZDO Zigbee Device Object Đối tƣợng thiết bị Zigbee 106 ASSR=0x00; TCCR2=0x00; TCNT2=0x00; OCR2=0x00; // External Interrupt(s) initialization // INT0: Off // INT1: Off MCUCR=0x00; // Timer(s)/Counter(s) Interrupt(s) initialization TIMSK=0x00; // USART initialization // Communication Parameters: Data, Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud Rate: 9600 UCSRA=0x00; UCSRB=0x98; UCSRC=0x86; UBRRH=0x00; UBRRL=0x33; // Analog Comparator initialization // Analog Comparator: Off // Analog Comparator Input Capture by Timer/Counter 1: Off ACSR=0x80; SFIOR=0x00; // ADC initialization // ADC disabled ADCSRA=0x00; // SPI initialization // SPI disabled 107 SPCR=0x00; // TWI initialization // TWI disabled TWCR=0x00; // Alphanumeric LCD initialization // Connections specified in the // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu: // RS - PORTD Bit // RD - PORTD Bit // EN - PORTD Bit // D4 - PORTB Bit // D5 - PORTB Bit // D6 - PORTB Bit // D7 - PORTB Bit // Characters/line: 16 lcd_init(16); // Global enable interrupts #asm("sei") init_NRF24L01(); lcd_gotoxy(0,0); lcd_putsf("1."); lcd_gotoxy(0,1); lcd_putsf("2."); lcd_gotoxy(0,2); lcd_putsf("3."); lcd_gotoxy(0,3); lcd_putsf("4."); while (1) { // Place your code here clear_stack(); ok=fs=0; cout++; Txbuf[3]=cout; 108 //************doc kenh 1************ if(get_data(10,0)) { send_ok[ok]=10; ok++; lcd_gotoxy(7,0); temp[1]=Rxbuf[1]; humi[1]=Rxbuf[2]; lcd_dis(1); lcd_gotoxy(15,1); lcd_putsf("0"); } else { if(get_data(10,0)) { send_ok[ok]=10; ok++; temp[1]=Rxbuf[1]; humi[1]=Rxbuf[2]; lcd_dis(1); lcd_gotoxy(15,1); lcd_putsf("0"); } else { send_false[fs]=10; fs++; } } delay_ms(10); //************doc kenh 2************ if(get_data(20,0)) { send_ok[ok]=20; ok++; 109 temp[2]=Rxbuf[1]; humi[2]=Rxbuf[2]; lcd_dis(2); lcd_gotoxy(15,2); lcd_putsf("0"); } else { if(get_data(20,0)) { send_ok[ok]=20; ok++; temp[2]=Rxbuf[1]; humi[2]=Rxbuf[2]; lcd_dis(2); lcd_gotoxy(15,2); lcd_putsf("0"); } else { send_false[fs]=20; fs++; } } //************doc kenh 3************ if(get_data(30,0)) { send_ok[ok]=30; ok++; temp[3]=Rxbuf[1]; humi[3]=Rxbuf[2]; lcd_dis(3); lcd_gotoxy(15,3); lcd_putsf("0"); } else { 110 if(get_data(30,0)) { send_ok[ok]=30; ok++; temp[3]=Rxbuf[1]; humi[3]=Rxbuf[2]; lcd_dis(3); lcd_gotoxy(15,3); lcd_putsf("0"); } else { send_false[fs]=30; fs++; } } //************** tim kiem ************** if(fs>2) { lcd_gotoxy(15,1); lcd_putsf("N"); lcd_gotoxy(15,2); lcd_putsf("N"); lcd_gotoxy(15,3); lcd_putsf("N"); } else { if(ok==2) { get_data(send_ok[0],0); Rxbuf[1]=0; Txbuf[4]=send_false[0]; if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) 111 { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[0]/10); } else if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[0]/10); } else if(get_data(send_ok[1],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[1]/10); } else if(get_data(send_ok[1],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[1]/10); } else { lcd_gotoxy(15,(send_false[0]/10)); lcd_putsf("N"); } } 112 else if(ok==1) { get_data(send_ok[0],0); Txbuf[4]=send_false[0]; if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[0]/10); Txbuf[4]=send_false[1]; if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[1]/10); temp[send_false[1]/10]=Rxbuf[1]; humi[send_false[1]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[1]/10)); lcd_putnum(send_ok[0]/10); } else { if(get_data(send_ok[0],2)&&Rxbuf[1]!=0) { lcd_dis(send_false[1]/10); temp[send_false[1]/10]=Rxbuf[1]; humi[send_false[1]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[1]/10)); lcd_putnum(send_ok[0]/10); } } goto END; } Txbuf[4]=send_false[1]; if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) { 113 lcd_dis(send_false[1]/10); temp[send_false[1]/10]=Rxbuf[1]; humi[send_false[1]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[1]/10)); lcd_putnum(send_ok[0]/10); Txbuf[4]=send_false[0]; if(get_data(send_ok[0],1)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[0]/10); } else { if(get_data(send_ok[0],2)&&Rxbuf[1]!=0) { lcd_dis(send_false[0]/10); temp[send_false[0]/10]=Rxbuf[1]; humi[send_false[0]/10]=Rxbuf[2]; lcd_gotoxy(15,(send_false[0]/10)); lcd_putnum(send_ok[0]/10); } } goto END; } { lcd_gotoxy(15,send_false[0]/10); lcd_putsf("N"); lcd_gotoxy(15,send_false[1]/10); lcd_putsf("N"); END: } 114 } } DHT_GetTemHumi(&temp[0],&humi[0]); lcd_dis(0); load_data(); for(i=0;i { // Dispatcher.Invoke(new Action(() > { tempChart.pushPoint(0, timestamp, _t1); tempChart.pushPoint(1, timestamp, _t2); tempChart.pushPoint(2, timestamp, _t3); tempChart.pushPoint(3, timestamp, _t4); 118 humidChart.pushPoint(0, timestamp, _h1); humidChart.pushPoint(1, timestamp, _h2); humidChart.pushPoint(2, timestamp, _h3); humidChart.pushPoint(3, timestamp, _h4); t1.Content = _t1.ToString(); t2.Content = _t2.ToString(); t3.Content = _t3.ToString(); t4.Content = _t4.ToString(); h1.Content = _h1.ToString(); h2.Content = _h2.ToString(); h3.Content = _h3.ToString(); h4.Content = _h4.ToString(); })); } } } 2.2 Giao diện 119 0 0 0 Grid.Row="0" Style="{StaticResource HorizontalAlignment="Center" x:Name="t4" Grid.Row="0" Grid.Row="0" Style="{StaticResource x:Name="humidChartHolder" 120 1

Ngày đăng: 05/12/2020, 11:43

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan