1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Nghiên cứu và xây dựng cụm cảm biến sử dụng cho hệ thống cảnh báo sạt lở đất

84 28 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

Thông tin cơ bản

Định dạng
Số trang 84
Dung lượng 2,02 MB

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -  - NGUYỄN VĂN HÙNG NGHIÊN CỨU VÀ XÂY DỰNG CỤM CẢM BIẾN SỬ DỤNG CHO HỆ THỐNG CẢNH BÁO SẠT LỞ ĐẤT LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG Hà Nội – 2015 ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -  - NGUYỄN VĂN HÙNG NGHIÊN CỨU VÀ XÂY DỰNG CỤM CẢM BIẾN SỬ DỤNG CHO HỆ THỐNG CẢNH BÁO SẠT LỞ ĐẤT Ngành: Công Nghệ Điện Tử - Viễn Thông Chuyên ngành: Kỹ Thuật Điện Tử Mã Số: 60.52.02.03 LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ ĐIỆN TỬ - VIỄN THÔNG Cán hƣớng dẫn: PGS.TS TRẦN ĐỨC TÂN Hà Nội – 2015 LỜI CẢM ƠN Sau thời gian làm nghiên cứu liên tục nghiêm túc, với hướng dẫn tận tình cán hướng dẫn khoa học, thầy cô khoa, giúp đỡ học viên lớp bạn đồng nghiệp, đến luận văn hồn thành Qua tơi xin gửi lời cảm ơn chân thành sâu sắc tới PGS.TS Trần Đức Tân, người thầy ln tận tình hướng dẫn, giúp đỡ, tạo điều kiện tốt cho suốt thời gian làm luận văn Tôi xin gửi lời cám ơn tới quý thầy cô, anh/chị 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 tạo điều kiện giúp đỡ, bảo cho lời khuyên quý báu Tôi xin cảm ơn hỗ trợ đề tài cấp ĐHQGHN mã số QG.14-05 Tơi xin cảm ơn gia đình, bè bạn ủng hộ vật chất lẫn tinh thần thời gian nghiên cứu để hoàn thành tốt cơng trình nghiên cứu Mặc dù hướng dẫn tận tình cán hướng dẫn với nỗ lực cố gắng thân; song phần kiến thức cịn hạn chế, phần điều kiện tiếp xúc thực tế chưa nhiều, nên luận văn khơng tránh khỏi thiếu sót định Vì thế, mong tiếp tục giúp đỡ, góp ý nhiệt tình q thầy cơ, bạn bè đồng nghiệp Xin chân thành cảm ơn ! Hà Nội, ngày tháng năm 2015 Học viên Nguyễn Văn Hùng LỜI CAM ĐOAN Tên là: Nguyễn Văn Hùng Sinh ngày 26 tháng 28 năm 1983 Học viên lớp Cao học khố – Điện Tử Viễn Thơng – Trường Đại học Công Nghệ – Đại học Quốc Gia Hà Nội Hiện công tác khoa Điện – Trường Cao đẳng nghề Thừa Thiên Huế Tôi xin cam đoan tồn nội dung luận văn tơi làm theo định hướng giáo viên hướng dẫn PGS.TS Trần Đức Tân, không chép người khác Các phần trích lục tài liệu tham khảo luận văn Nếu có sai tơi hồn tồn chịu trách nhiệm Hà Nội, ngày tháng năm 2015 Học viên Nguyễn Văn Hùng MỤC LỤC LỜI CẢM ƠN LỜI CAM ĐOAN MỤC LỤC DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH VẼ TÓM TẮT CHƢƠNG 1: GIỚI THIỆU VỀ HIỆN TƢỢNG SẠT LỞ ĐẤT 1.1 Tổng quan tượng sạt lở đất 1.2 Mạng cảm biến không dây phát sạt lở đất 1.2.1 Giới thiệu mạng WSN 1.2.2 Cấu trúc mạng WSN 1.2.3 Kiến trúc giao thức mạng WSN CHƢƠNG 2: NGUYÊN TẮC HOẠT ĐỘNG THIẾT BỊ PHÁT HIỆN CẢNH BÁO SẠT LỞ ĐẤT 2.1 Phần cứng 2.1.1 Sơ đồ khối 2.1.2 Các khối sơ đồ 2.1.3 Các loại cảm biến thiết bị dùng phát sạt lở đất 2.1.3.1 Các loại cảm biến 2.1.3.2 Các thiết bị thường dùng phát hiện, cảnh báo sạt lở đất 2.2 Phần mềm thu thập liệu cảm biến 2.2.1 Chương trình Waspmote IDE 2.2.2 Chương trình Visual Studio 2.2.2.1 Ứng dụng Visual Studio 2.2.2.2 Chương trình Visual Studio (phụ lục) 2.3 Truyền thông mạng WSN 2.4 Mơ hình dự đốn trượt lở đất 2.4.1 Giới thiệu 2.4.2 Độ dốc ổn định 2.4.3 Tính chất thủy văn đồi dốc 2.4.4 Ngưỡng lượng mưa đồi dốc không ổn định 2.4.5 Mơ thí nghiệm 2.4.6 Sự phát triển quy mô đồi dốc theo thời gian CHƢƠNG 3: MÔ PHỎNG VÀ THỰC NGHIỆM 3.1 Mô mạng WSN dùng Omnet++ 3.1.1 Công cụ mô OMNeT++ 3.1.2 Mơ hình truyền gói tin 3.1.3 Xây dựng mơ hình mơ 3.1.4 Kịch kết thực nghiệm mô 3.2 Thực nghiệm kiểm chứng 3.2.1 Thực nghiệm phòng 3.2.2 Thực nghiệm trời 3.3 Nâng cao thời gian hoạt động hệ thống 3.4 Thảo luận KẾT LUẬN TÀI LIỆU THAM KHẢO PHỤ LỤC DANH MỤC CÁC TỪ VIẾT TẮT TỪ VIẾT TẮT WSN GIS GPS ADC DAC RF API MEMS GSM GPRS IDE OMNet BER IIS UART DANH MỤC CÁC BẢNG Bảng 3.1: Điện áp Offset độ nhạy Bảng 3.2: Kịch thực nghiệm đo lường phịng thí nghiệm Bảng 3.3: Số lượng gói tin truyền - nhận q trình thực nghiệm phịng Bảng 3.4: Kịch thực nghiệm đo lường trời Bảng 3.5: Số lượng gói tin truyền - nhận q trình thực nghiệm ngồi trời Bảng 3.6: Công suất tiêu thụ điện nút cảm biến DANH MỤC CÁC HÌNH VẼ Hình 1.1: Hiện trường vụ sạt lở đất Hình 1.2: Minh họa việc lắp đặt hộp cảm biến kết nối thành mạng Hình 1.3: Cấu trúc chung mạng WSN Hình 1.4: Kiến trúc giao thức mạng WSN Hình 2.1: Sơ đồ khối thiết bị phát sạt lở đất Hình 2.2: Pin 6600mAh Hình 2.3: Thiết bị XBEE Hình 2.4: Cảm biến nhiệt độ LM35 Hình 2.5: Sơ đồ chân cảm biến nhiệt độ Hình 2.6: Sơ đồ khối sơ đồ chân cảm biến ADXL335 Hình 2.7: Cảm biến độ ẩm 6440 Hình 2.8: Cấu trúc chung nút cảm biến Hình 2.9: Bộ Waspmote Hình 2.10: Mơ tả phương thức truyền thông Hình 2.11: Mơ địa hình đồi dốc Hình 2.12: Cân vỏ đất để thay đổi tỷ lệ độ dốc tương đối tanθ/tanΦ' Hình 2.13: Mơ hình độ nhạy tỷ lệ độ rỗng e cho mức độ trạng thái đất bão hòa bên mực nước ngầm: (a) khô, (b c) trung gian, (d) bão hồ Hình 2.14: Phác thảo lưu vực Hình 2.15: Chiều cao mực nước ngầm so với thời gian mưa khác theo a/b điều kiện quy định Hình 2.16: Dịng chảy tạo so với thời gian mưa khác theo a/b điều kiện quy định Hình 2.17: Giá trị cường độ mưa so với thời gian cho giá trị khác tỷ lệ độ dốc tương đối thông số quy định đất e, Sr Gs Hình 2.18: Đường biểu diễn mối quan hệ tỉ lệ lượng mưa thời gian mưa với đường cong IDF biểu diễn giai đoạn trở lại sạt lở đồi dốc Hình 3.1: Các module đơn giản kết hợp Hình 3.2: Truyền message Hình 3.3: Độ ẩm thu Hình 3.4: Giá trị thực nghiệm gia tốc trục y điều kiện tĩnh Hình 3.5: Giao diện quản lý liệu trang web Hình 3.6: Mơ hình thực nghiệm hệ thống WSNs thí nghiệm phịng Hình 3.7: Số lượng gói tin nhận q trình thực nghiệm phịng Hình 3.8: Số lượng gói tin gửi q trình thực nghiệm phịng Hình 3.9: Mơ hình thực tế hệ thống WSNs thí nghiệm phịng Hình 3.10: Mơ hình thực nghiệm hệ thống WSNs thí nghiệm ngồi trời Hình 3.11: Số lượng gói tin nhận q trình thực nghiệm ngồi trời Hình 3.12: Số lượng gói tin gửi q trình thực nghiệm ngồi trời Hình 3.13: Mơ hình thực tế hệ thống WSNs thực nghiệm trời Hình 3.14: Mơ hình phương thức truyền liệu 61 int angle_z = (180 / PI) * asin(z_acc/1000); */ delay(500); / Create new frame frame.createFrame(ASCII, "G"); / Add frame fields frame.addSensor(SENSOR_TCA,temp); frame.addSensor(SENSOR_HUMI1,moisture1); // Do am frame.addSensor(SENSOR_HUMI2,moisture2); // Do am frame.addSensor(SENSOR_BAT, PWR.getBatteryLevel()); // % pin //frame.addSensor(SENSOR_ACC,angle_x,angle_y,angle_z); // Gia toc tai box frame.addSensor(SENSOR_ACC1,x_ac,y_ac,z_ac); // Gia toc tren mat dat frame.addSensor(SENSOR_STR,"D"); / set parameters to packet: packet=(packetXBee*) calloc(1,sizeof(packetXBee)); // Memory allocation packet>mode=BROADCAST; // Choose transmission mode: UNICAST or BROADCAST // 4.2 set destination XBee parameters to packet xbeeZB.setDestinationParams( packet, MAC_ADDRESS, frame.buffer, frame.length); /4.3 send XBee packet xbeeZB.sendXBee(packet); / 4.4 check TX flag if( xbeeZB.error_TX == 0) { USB.println(F("ok")); } else { USB.println(F("error")); } / free variables free(packet); packet=NULL; frame.showFrame(); // wait for one second delay(1000); digitalWrite(DIGITAL2, LOW); delay(500); 62 } /******************************************* * *checkNetworkParams - Check operating *network parameters in the XBee module * *******************************************/ void checkNetworkParams() { / get operating 64-b PAN ID xbeeZB.getOperating64PAN(); / wait for association indication xbeeZB.getAssociationIndication(); while( xbeeZB.associationIndication != ) { delay(2000); /get operating 64-b PAN ID xbeeZB.getOperating64PAN(); USB.print(F("operating 64-b PAN ID: ")); USB.printHex(xbeeZB.operating64PAN[0]); USB.printHex(xbeeZB.operating64PAN[1]); USB.printHex(xbeeZB.operating64PAN[2]); USB.printHex(xbeeZB.operating64PAN[3]); USB.printHex(xbeeZB.operating64PAN[4]); USB.printHex(xbeeZB.operating64PAN[5]); USB.printHex(xbeeZB.operating64PAN[6]); USB.printHex(xbeeZB.operating64PAN[7]); USB.println(); xbeeZB.getAssociationIndication(); } USB.println(F("\nJoined a network!")); / get network parameters xbeeZB.getOperating16PAN(); xbeeZB.getOperating64PAN(); xbeeZB.getChannel(); USB.print(F("operating 16-b PAN ID: ")); USB.printHex(xbeeZB.operating16PAN[0]); USB.printHex(xbeeZB.operating16PAN[1]); USB.println(); 63 USB.print(F("operating 64-b PAN ID: ")); USB.printHex(xbeeZB.operating64PAN[0]); USB.printHex(xbeeZB.operating64PAN[1]); USB.printHex(xbeeZB.operating64PAN[2]); USB.printHex(xbeeZB.operating64PAN[3]); USB.printHex(xbeeZB.operating64PAN[4]); USB.printHex(xbeeZB.operating64PAN[5]); USB.printHex(xbeeZB.operating64PAN[6]); USB.printHex(xbeeZB.operating64PAN[7]); USB.println(); USB.print(F("channel: ")); USB.printHex(xbeeZB.channel); USB.println(); } 64 CODE CHẠY VISUAL STUDIO / Programmer: Nguyen Van Hung / Date: 05/05/2015 / code mieu ta phan giao dien nguoi dung using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using System.Text.RegularExpressions; using System.Data.SqlClient; using DataAccess; using BusinessLogic; using System.Text; using System.IO; using System.Net; using System.Collections.Specialized; namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); serialPortGateway.Parity = System.IO.Ports.Parity.None; serialPortGateway.StopBits = StopBits.One; serialPortGateway.DataBits = 8; serialPortGateway.DataReceived += new SerialDataReceivedEventHandler(serialPortGateway_DataReceived); ////////////////////////////////////////////////////////////////////// serialPortGSM.Parity = System.IO.Ports.Parity.None; serialPortGSM.StopBits = StopBits.One; serialPortGSM.DataBits = 8; 65 serialPortGSM.DataReceived += new SerialDataReceivedEventHandler(serialPortGSM_DataReceived); ///////////////////////////////////////////////////////////////////////// serialPortWS.Parity = System.IO.Ports.Parity.None; serialPortWS.StopBits = StopBits.One; serialPortWS.DataBits = 8; serialPortWS.DataReceived += new SerialDataReceivedEventHandler(serialPortWS_DataReceived); } private void Form1_Load(object sender, EventArgs e) { foreach (String t in System.IO.Ports.SerialPort.GetPortNames()) { cbComGateway.Items.Add(t); cbComGSM.Items.Add(t); cbComWS.Items.Add(t); } } byte[] s = new byte[150]; / int i = 0; string frame; int index = 0, lenghtFrame; // nhan data private void serialPortGateway_DataReceived(object sender, SerialDataReceivedEventArgs e) { try { int bn = serialPortGateway.BytesToRead; for (int j = 0; j < bn; j++) { byte temp = s[index] = (byte)serialPortGateway.ReadByte(); index++; if (temp == 0x80) { frame = Encoding.ASCII.GetString(s); this.Invoke(new EventHandler(type)); lenghtFrame = index; index = 0; 66 } } } catch (Exception ex) { MessageBox.Show(ex.Message + "63" ); } } byte[] s1 = new byte[150]; / int i = 0; string frame1; int index1 = 0, lenghtFrame1; privatevoidserialPortWS_DataReceived(objectsender, SerialDataReceivedEventArgs e) { try { int bn = serialPortWS.BytesToRead; for (int j = 0; j < bn; j++) { byte temp = s1[index1] = (byte)serialPortWS.ReadByte(); index1++; if (temp == 0x66) { frame1 = Encoding.ASCII.GetString(s1); this.Invoke(new EventHandler(type1)); lenghtFrame1 = index1; index1 = 0; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } // button connect to Gateway private void btnConnectGatewaye_Click(object sender, EventArgs e) { 67 serialPortGateway.PortName = Convert.ToString(cbComGateway.Text); serialPortGateway.BaudRate = Convert.ToInt32(cbBaudGateway.Text); if (!serialPortGateway.IsOpen) try { serialPortGateway.Open(); MessageBox.Show("Connected"); } catch (Exception ex) { MessageBox.Show(ex.Message); } btnConnectGatewaye.Enabled = false; btnDisconnectGateway.Enabled = true; } // connect to GSM private void btnConncetGSM_Click(object sender, EventArgs e) { serialPortGSM.PortName = Convert.ToString(cbComGSM.Text); serialPortGSM.BaudRate = Convert.ToInt32(cbBaudGSM.Text); if (!serialPortGSM.IsOpen) try { serialPortGSM.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); } btnConnectGSM.Enabled = false; btnDisconnectGSM.Enabled = true; } // connect to Weather Station private void btnConnectWS_Click_1(object sender, EventArgs e) { serialPortWS.PortName = Convert.ToString(cbComWS.Text); serialPortWS.BaudRate = Convert.ToInt32(cbBaudWS.Text); if (!serialPortWS.IsOpen) try 68 { serialPortWS.Open(); } catch (Exception ex) { MessageBox.Show(ex.Message); } btnConnectWS.Enabled = false; btnDisconnectWS.Enabled = true; } private void btnDisconnectGateway_Click(object sender, EventArgs e) { serialPortGateway.Close(); btnConnectGatewaye.Enabled = true; btnDisconnectGateway.Enabled = false; } private void btnDisconnectWS_Click(object sender, EventArgs e) { serialPortWS.Close(); btnConnectWS.Enabled = true; btnDisconnectWS.Enabled = false; } /// void type1(object s, EventArgs e) { string[] field1; string fm = frame1.Trim(); tbReceive.AppendText(fm); if (lenghtFrame1 > 3) { field1 = Regex.Split(fm.Substring(0, fm.Length), "#"); txtWspeed.Text = field1[0].ToString(); txtDirect.Text = field1[2].ToString(); txtPrecip.Text = field1[1].ToString(); string url = "http://www.uetlandslide.com/upload.action"; NameValueCollection nvc = new NameValueCollection(); nvc.Add("content", "weather;" + field1[1].ToString() + ";" + field1[0].ToString() + ";" + field1[2].ToString() + ""); HttpUploadText(url, nvc); 69 } } / / gataway processing / string[] field; void type(object s, EventArgs e) { string fm = frame.Trim(); tbReceive.AppendText(fm); if (lenghtFrame > 45) { field = Regex.Split(fm.Substring(0, fm.Length), "#"); //try / { / field = Regex.Split(fm.Substring(0, fm.Length), "#"); / } / catch (Exception ex) / { / MessageBox.Show(ex.Message + " split"); / } if (String.Compare(field[1].ToString(), "382553448", true) == 0) // node no.1 { Logic lg = new Logic(); string[] temp1 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp1.Text = temp1[1].ToString(); string[] mois1 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist1.Text = mois1[1].ToString(); string[] bat1 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat1.Text = bat1[1].ToString(); string[] acc1 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc1.Text = acc1[1].ToString(); string[] date1 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield1 = Regex.Split(date1[1].Substring(0, date1[1].Length), "-"); tbDate1.Text = datefield1[0].ToString() + "/" + datefield1[1].ToString() + "/" + datefield1[2].ToString(); string[] time1 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); 70 string[] timefield1 = Regex.Split(time1[1].Substring(0, time1[1].Length), "-"); tbTime1.Text = timefield1[0].ToString() + ":" + timefield1[1].ToString() + ":" + timefield1[2].ToString(); lg.InsertDataNode1(temp1[1].ToString(), mois1[1].ToString(), bat1[1].ToString(), acc1[1].ToString(), tbDate1.Text, tbTime1.Text); / ghi file.txt / FileInfo myfile1 = new FileInfo("D:\\Data\\382553448_" + datefield1[0].ToString() + datefield1[1].ToString() + datefield1[2].ToString() + "_" + timefield1[0].ToString() + timefield1[1].ToString() + timefield1[2].ToString() + ".txt"); / StreamWriter tex1 = myfile1.CreateText(); / tex1.Write("382553448;" + tbTemp1.Text + ";" + tbMoist1.Text + ";" + tbBat1.Text + ";" + tbAcc1.Text + ";" + tbDate1.Text + ";" + tbTime1.Text + ""); / tex1.Close(); } else if (String.Compare(field[1].ToString(), "382545049", true) == 0) // node no.2 { Logic lg = new Logic(); string[] temp2 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp2.Text = temp2[1].ToString(); string[] mois2 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist2.Text = mois2[1].ToString(); string[] bat2 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat2.Text = bat2[1].ToString(); string[] acc2 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc2.Text = acc2[1].ToString(); string[] date2 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield2 = Regex.Split(date2[1].Substring(0, date2[1].Length), "-"); tbDate2.Text = datefield2[0].ToString() + "/" + datefield2[1].ToString() + "/" + datefield2[2].ToString(); string[] time2 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); string[] timefield2 = Regex.Split(time2[1].Substring(0, time2[1].Length), "-"); tbTime2.Text = timefield2[0].ToString() + ":" + timefield2[1].ToString() + ":" + timefield2[2].ToString(); 71 lg.InsertDataNode2(temp2[1].ToString(), tbMoist2.Text, bat2[1].ToString(), acc2[1].ToString(), tbDate2.Text, tbTime2.Text); / ghi file.txt / FileInfo myfile2 = new FileInfo("D:\\Data\\382545049_" + datefield2[0].ToString() + datefield2[1].ToString() + datefield2[2].ToString() + "_" + timefield2[0].ToString() + timefield2[1].ToString() + timefield2[2].ToString() + ".txt"); / StreamWriter tex2 = myfile2.CreateText(); / tex2.Write("382545049;" + tbTemp2.Text + ";" + tbMoist2.Text + ";" + tbBat2.Text + ";" + tbAcc2.Text + ";" + tbDate2.Text + ";" + tbTime2.Text + ""); / tex2.Close(); } else if (String.Compare(field[1].ToString(), "382537687", true) == 0) // node no.3 { MessageBox.Show("OK"); Logic lg = new Logic(); string[] temp3 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp3.Text = temp3[1].ToString(); string[] mois3 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist3.Text = mois3[1].ToString(); string[] bat3 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat3.Text = bat3[1].ToString(); string[] acc3 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc3.Text = acc3[1].ToString(); string[] date3 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield3 = Regex.Split(date3[1].Substring(0, date3[1].Length), "-"); tbDate3.Text = datefield3[0].ToString() + "/" + datefield3[1].ToString() + "/" + datefield3[2].ToString(); string[] time3 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); string[] timefield3 = Regex.Split(time3[1].Substring(0, time3[1].Length), "-"); tbTime3.Text = timefield3[0].ToString() + ":" + timefield3[1].ToString() + ":" + timefield3[2].ToString(); lg.InsertDataNode3(temp3[1].ToString(), mois3[1].ToString(), bat3[1].ToString(), acc3[1].ToString(), tbDate3.Text, tbTime3.Text); // ghi file.txt 72 / FileInfo myfile3 = new FileInfo("D:\\Data\\382537687_" + datefield3[0].ToString() + datefield3[1].ToString() + datefield3[2].ToString() + "_" + timefield3[0].ToString() + timefield3[1].ToString() + timefield3[2].ToString() + ".txt"); / StreamWriter tex3 = myfile3.CreateText(); / tex3.Write("382537687;" + tbTemp3.Text + ";" + tbMoist3.Text + ";" + tbBat3.Text + ";" + tbAcc3.Text + ";" + tbDate3.Text + ";" + tbTime3.Text + ""); / tex3.Close(); ///////////////////////////////////////// } else if (String.Compare(field[1].ToString(), "382551826", true) == 0) // node no.4 { Logic lg = new Logic(); string[] temp4 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp4.Text = temp4[1].ToString(); string[] mois4 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist4.Text = mois4[1].ToString(); string[] bat4 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat4.Text = bat4[1].ToString(); string[] acc4 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc4.Text = acc4[1].ToString(); string[] date4 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield4 = Regex.Split(date4[1].Substring(0, date4[1].Length), "-"); tbDate4.Text = datefield4[0].ToString() + "/" + datefield4[1].ToString() + "/" + datefield4[2].ToString(); string[] time4 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); string[] timefield4 = Regex.Split(time4[1].Substring(0, time4[1].Length), "-"); tbTime4.Text = timefield4[0].ToString() + ":" + timefield4[1].ToString() + ":" + timefield4[2].ToString(); // lg.InsertDataNode4(temp4[1].ToString(), mois4[1].ToString(), bat4[1].ToString(), acc4[1].ToString(), tbDate4.Text, tbTime4.Text); / ghi file.txt / FileInfo myfile4 = new FileInfo("D:\\Data\\382551826_" + datefield4[0].ToString() + datefield4[1].ToString() + datefield4[2].ToString() + "_" + timefield4[0].ToString() + timefield4[1].ToString() + timefield4[2].ToString() + ".txt"); 73 / StreamWriter tex4 = myfile4.CreateText(); / tex4.Write("382551826;" + temp4[1].ToString() + ";" + mois4[1].ToString() + ";" + bat4[1].ToString() + ";" + acc4[1].ToString() + ";" + tbDate4.Text + ";" + tbTime4.Text + ""); / tex4.Close(); } else if (String.Compare(field[1].ToString(), "382542510", true) == 0) // node no.5 { Logic lg = new Logic(); string[] temp5 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp5.Text = temp5[1].ToString(); string[] mois5 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist5.Text = mois5[1].ToString(); string[] bat5 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat5.Text = bat5[1].ToString(); string[] acc5 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc5.Text = acc5[1].ToString(); string[] date5 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield5 = Regex.Split(date5[1].Substring(0, date5[1].Length), "-"); tbDate5.Text = datefield5[0].ToString() + "/" + datefield5[1].ToString() + "/" + datefield5[2].ToString(); string[] time5 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); string[] timefield5 = Regex.Split(time5[1].Substring(0, time5[1].Length), "-"); tbTime5.Text = timefield5[0].ToString() + ":" + timefield5[1].ToString() + ":" + timefield5[2].ToString(); // lg.InsertDataNode5(temp5[1].ToString(), mois5[1].ToString(), bat5[1].ToString(), acc5[1].ToString(), tbDate5.Text, tbTime5.Text); / ghi file.txt / FileInfo myfile5 = new FileInfo("D:\\Data\\382542510_" + datefield5[0].ToString() + datefield5[1].ToString() + datefield5[2].ToString() + "_" + timefield5[0].ToString() + timefield5[1].ToString() + timefield5[2].ToString() + ".txt"); / StreamWriter tex5 = myfile5.CreateText(); / tex5.Write("382542510;" + temp5[1].ToString() + ";" + mois5[1].ToString() + ";" + bat5[1].ToString() + ";" + acc5[1].ToString() + ";" + tbDate5.Text + ";" + tbTime5.Text + ""); 74 // tex5.Close(); } else if (String.Compare(field[1].ToString(), "382548215", true) == 0) // node no.6 { Logic lg = new Logic(); string[] temp6 = Regex.Split(field[4].Substring(0, field[4].Length), ":"); tbTemp6.Text = temp6[1].ToString(); string[] mois6 = Regex.Split(field[5].Substring(0, field[5].Length), ":"); tbMoist6.Text = mois6[1].ToString(); string[] bat6 = Regex.Split(field[6].Substring(0, field[6].Length), ":"); tbBat6.Text = bat6[1].ToString(); string[] acc6 = Regex.Split(field[7].Substring(0, field[7].Length), ":"); tbAcc6.Text = acc6[1].ToString(); string[] date6 = Regex.Split(field[8].Substring(0, field[8].Length), ":"); string[] datefield6 = Regex.Split(date6[1].Substring(0, date6[1].Length), "-"); tbDate6.Text = datefield6[0].ToString() + "/" + datefield6[1].ToString() + "/" + datefield6[2].ToString(); string[] time6 = Regex.Split(field[9].Substring(0, field[9].Length), ":"); string[] timefield6 = Regex.Split(time6[1].Substring(0, time6[1].Length), "-"); tbTime6.Text = timefield6[0].ToString() + ":" + timefield6[1].ToString() + ":" + timefield6[2].ToString(); / lg.InsertDataNode6(temp6[1].ToString(), mois6[1].ToString(), bat6[1].ToString(), acc6[1].ToString(), tbDate6.Text, tbTime6.Text); / ghi file.txt / FileInfo myfile6 = new FileInfo("D:\\Data\\382548215_" + datefield6[0].ToString() + datefield6[1].ToString() + datefield6[2].ToString() + "_" + timefield6[0].ToString() + timefield6[1].ToString() + timefield6[2].ToString() + ".txt"); //StreamWriter tex6 = myfile6.CreateText(); / tex6.Write("382548215;" + temp6[1].ToString() + ";" + mois6[1].ToString() + ";" + bat6[1].ToString() + ";" + acc6[1].ToString() + ";" + tbDate6.Text + ";" + tbTime6.Text + ""); / tex6.Close(); } } 75 else { } } private void serialPortGSM_DataReceived(object sender, SerialDataReceivedEventArgs e) { } /*private void btnDelete_Click(object sender, EventArgs e) { Logic lg = new Logic(); if (Convert.ToInt32(cbNode.Text) == 1) { MessageBox.Show("Deleted data node 1"); lg.DeleteTable1(); } else if (Convert.ToInt32(cbNode.Text) == 2) { lg.DeleteTable2(); MessageBox.Show("Deleted data node 2"); } else if (Convert.ToInt32(cbNode.Text) == 3) { lg.DeleteTable3(); MessageBox.Show("Deleted data node 3"); } } */ ... HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ -  - NGUYỄN VĂN HÙNG NGHIÊN CỨU VÀ XÂY DỰNG CỤM CẢM BIẾN SỬ DỤNG CHO HỆ THỐNG CẢNH BÁO SẠT LỞ ĐẤT Ngành: Công Nghệ Điện Tử - Viễn Thông Chuyên... phục nguyên nhân đưa cảnh báo sớm tượng sạt lở đất, có nhiều nghiên cứu liên quan hệ thống cảnh báo đưa Trong hiệu hệ thống cảnh báo nhờ vào cảm biến đo độ dịch chuyển, đo độ ẩm đất, đo nhiệt độ... Khối cảm biến: Hệ thống bao gồm cảm biến: cảm biến độ ẩm, cảm biến gia tốc cảm biến nhiệt độ Dữ liệu thu từ cảm biến gửi tới trung tâm để xử lý đưa cảnh báo cần thiết Việc sử dụng cảm biến chế tạo

Ngày đăng: 11/11/2020, 22:10

TỪ KHÓA LIÊN QUAN

w