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

Xây dựng mạng cảm biến tích cực không dây hỗ trợ công tác phát hiện và bảo vệ khi xảy ra cháy

100 6 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 100
Dung lượng 2,38 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - BÙI ANH TUẤN XÂY DỰNG MẠNG CẢM BIẾN TÍCH CỰC KHƠNG DÂY HỖ TRỢ CƠNG TÁC PHÁT HIỆN VÀ BẢO VỆ KHI XẢY RA CHÁY LUẬN VĂN THẠC SĨ KỸ THUẬT KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG Hà Nội – 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - BÙI ANH TUẤN XÂY DỰNG MẠNG CẢM BIẾN TÍCH CỰC KHƠNG DÂY HỖ TRỢ CÔNG TÁC PHÁT HIỆN VÀ BẢO VỆ KHI XẢY RA CHÁY Chuyên ngành: KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THÔNG LUẬN VĂN THẠC SĨ KỸ THUẬT KỸ THUẬT MÁY TÍNH VÀ TRUYỀN THƠNG NGƯỜI HƯỚNG DẪN : TS NGUYỄN THANH TÙNG TS NGUYỄN TUẤN DŨNG Hà Nội – 2014 MỤC LỤC MỤC LỤC DANH MỤC HÌNH VẼ LỜI CAM ĐOAN LỜI NÓI ĐẦU CHƯƠNG I TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU TRONG VÀ NGỒI NƯỚC…… 1.1 Tình hình nghiên cứu nước 1.2 Tình hình nghiên cứu nước ngồi 10 CHƯƠNG II NGHIÊN CỨU, THIẾT KẾ PHẦN CỨNG CHO CÁC CẢM BIẾN KHÔNG DÂY VÀ XÂY DỰNG HỆ ĐIỀU HÀNH CHẠY ĐƯỢC TRÊN CÁC CẢM BIẾN KHÔNG DÂY 12 2.1 Thiết kế chương trình 12 2.2 Vi điều khiển PIC18F26K22 14 2.3 Cảm biến nhiệt độ LM35 18 2.4 Modul Zigbee MRF24J40MA 21 CHƯƠNG III NGHIÊN CỨU XÂY DỰNG CÁC MODUL VƠ TUYẾN ĐƯỢC TÍCH HỢP VÀO CÁC NÚT CẢM BIẾN KHÔNG DÂY ,CƠ CẤU CHẤP HÀNH VÀ CÁC MẪU ACTOR/ACTUTOR CÓ THỂ ĐIỀU KHIỂN ĐƯỢC THEO CHƯƠNG TRÌNH CÀI ĐẶT SẴN 24 3.1 Tích hợp vi điều khiển với modul khơng dây, hệ thống phun tưới 24 3.2 Thiết kế sơ đồ nguyên lý mạch điều khiển 29 3.3 Thiết kế mạch in 31 3.4 Mạch hoàn thiện 33 CHƯƠNG IV NHÚNG ĐIỀU KHIỂN CỔNG KÈM THEO PHẦN MỀM XỬ LÝ DỮ LIỆU,TRUYỀN THÔNG VÀ XÂY DỰNG MẠNG CẢM BIẾN TÍCH CỰC KHƠNG DÂY……… 35 4.1 Phần mềm trung tâm máy tính cổng 36 4.2 Phần mềm trung tâm máy chủ 37 CHƯƠNG V VẬN HÀNH THỬ NGHIỆM VÀ HIỆU CHỈNH THÔNG SỐ CÔNG NGHỆ…… 40 CHƯƠNG VI HƯỚNG PHÁT TRIỂN ĐỀ TÀI, KẾT LUẬN VÀ KIẾN NGHỊ 44 6.1 Hướng phát triển đề tài 44 6.2 Kết luận kiến nghị 47 TÀI LIỆU THAM KHẢO 48 PHỤ LỤC… 49 Phụ lục 1: Code vi điều khiển cho cảm biến nhiệt độ phát tín hiệu Zigbee (SLAVE) 49 Phụ lục 2: Code vi điều khiển cho thu phát tín hiệu Zigbee kết nối với máy tính nhúng cổng ( Master ) 54 Phụ lục 3: Code vi điều khiển cho thu tín hiệu Zigbee điều khiển máy bơm quạt 64 Phụ lục 4: Phần mềm Client máy tính nhúng điều khiển có kết nối Internet 69 Phụ lục 5: Phần mềm Server máy tính đặt từ xa có kết nối Internet 90 DANH MỤC HÌNH VẼ Hình 1.1 Cơng ty SAKATA VSIP chìm biển lửa Hình 2.1 Sơ đồ chân PIC 18F26K22 155 Hình 2.2 Sơ đồ kết nối vi điểu khiển PIC 18F26 188 Hình 2.3 Cảm biến nhiệt độ LM35 188 Hình 2.4 Sơ đồ chân LM35 20 Hình 2.5 Sơ đồ nguyên lý hoạt động cảm biến nhiệt độ LM35 20 Hình 2.6 Sơ đồ kết nối LM35 21 Hình 2.7 Zigbee MRF24J40MA 22 Hình 2.8 Sơ đồ chân Zigbee MRF24J40MA 23 Hình 3.1 Sơ đồ kết nối vi điều khiển PIC18F26 24 Hình 3.2 Sơ đồ kết nối module Zigbee MRF24J40 25 Hình 3.3 Sơ đồ kết nối Rơle điều khiển máy bơm 25 Hình 3.4 Sơ đồ kết nối Rơle điều khiển quạt gió 26 Hình 3.5 Truyền thơng khơng dây hệ thống 26 Hình 3.6 Truyền thông không dây từ cảm biến nhiệt đến cổng trung tâm 27 Hình 3.7 Truyền thông không dây từ trung tâm đến cấu điều khiển 28 Hình 3.8 Sơ đồ nguyên lý mạch điều khiển 29 Hình 3.9 Mạch in lớp 31 Hình 3.10 Mạch in lớp 32 Hình 3.11 Mạch hồn thiện mặt 33 Hình 3.12 Mạch hồn thiện mặt 34 Hình 4.1 Sơ đồ kết nối tổng thể hệ thống 36 Hình 4.2 Sơ đồ vận hành tổng thể hệ thống 38 Hình 4.3 Truyền tin chiều từ cổng điều khiển đến máy chủ trung tâm 38 Hình 4.4 Giao diện phần mềm cổng điều khiển máy chủ 39 Hình 5.1 Sản phẩm hệ thống phun tưới quạt gió 40 Hình 5.2 Sản phẩm hệ thống cảm biến nhiệt mạch điều khiển trung tâm 41 Hình 5.3 Mạch điều khiển trung tâm 41 Hình 6.1 Mạng cảm biến không dây nhiều nút truyền nối tiếp 44 Hình 6.2 Mạng cảm biến không dây nhiều nút truyền song song 45 Hình 6.3 Mạng cảm biến khơng dây nhiều nút truyền kết hợp 46 LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm nghiên cứu, tìm hiểu cá nhân tơi giáo viên hướng dẫn Trong toàn nội dung luận văn, điều trình bày luận văn giáo viên hướng dẫn, tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tơi xin hồn tồn chịu trách nhiệm chịu hình thức kỷ luật theo quy định cho lời cam đoan Hà Nội, ngày 25 tháng 11 năm 2014 Người cam đoan Bùi Anh Tuấn LỜI NĨI ĐẦU Hỏa hoạn ln nguy tiềm ẩn nhiều rủi ro sản xuất sinh hoạt hàng ngày Mặc dù có nhiều biện pháp hệ thống đưa để phát cảnh báo cháy nhiều thảm họa cháy xảy gây nhiều thiệt hại người Trong năm gần đây, nhiều mạng cảm biến không dây phát triển triển khai cho nhiều ứng dụng khác như: theo dõi thay đổi môi trường, biển, sông, hồ, giám sát điều khiển cơng trình dân dụng, chăm sóc bảo vệ rừng, vườn cây, giám sát mặt trận quân sự, phát thám việc công hạt nhân, sinh học hố học, chuẩn đốn hỏng hóc máy móc, thiết bị, theo dấu giám sát bác sỹ, bệnh nhân quản lý thuốc bệnh viện, theo dõi điều khiển giao thông, phương tiện xe cộ…Hiện công ty, doanh nghiệp, trung tâm thương mại, chợ đầu mối ln có kho bãi chứa hàng hóa, vật liệu Một nguyên nhân sơ xuất dẫn đến cháy nổ kho bãi gây thiệt hại nghiêm trọng người Rất nhiều trường hợp nguyên nhân nằm yếu tố người Nếu trang bị hệ thống thông tin đại, giúp cảnh báo sớm định kiểm soát kịp thời, hậu giảm thiểu Hình 1.1 Cơng ty SAKATA VSIP chìm biển lửa Từ thực tế mức độ nguy hiểm cháy nổ hậu to lớn nó, với mong muốn giảm thiểu nguy cháy hậu để lại, em tập trung nghiên cứu xây dựng nên mơt hệ thống có khả giám sát liên tục cảnh báo sớm nguy cháy, đưa định xử lý kịp thời xảy cháy Để hoàn thành để tài này, em xin chân thành cảm ơn TS Nguyễn Thanh Tùng, Khoa Quốc Tế, Đại học Quốc gia Hà Nội TS.Nguyễn Tuấn Dũng, Viện công nghệ thông tin truyền thông, Đại học Bách khoa Hà Nội tận tình hướng dẫn tạo điều kiện tốt nơi làm việc thiết bị trình em thực đề tài Hà Nội, tháng 11 năm 2014 Học Viên Bùi Anh Tuấn TÓM TẮT NHIỆM VỤ ĐỀ TÀI Phương pháp thực nhiệm vụ: Phương án thực với nội dung sau: - Thiết kế phần cứng cho cảm biến không dây - Hệ điều hành chạy cảm biến không dây - Module vơ tuyến tích hợp vào nút cảm biến không dây cấu chấp hành - Các mẫu actor/actuator (phun tưới) điều khiển theo chương trình cài đặt sẵn - Máy tính nhúng điều khiển cổng kèm phần mềm xử lý liệu truyền thông - Ra định điều khiển: gửi lệnh điều khiển đến mẫu cấu điều khiển tương ứng - Chuyển tiếp số liệu trung tâm giám sát điều khiển (có giao tiếp Internet, giao tiếp với 3G) Kết đạt được: Hệ thống cảnh báo cháy (cự ly truyền tín hiệu 50m khơng bị che chắn; có kết nối Internet qua Wi-Fi 3G; vận hành 0- Bộ 01 mơ hình hồn chỉnh 70oC) Hệ thống phun chống cháy (phát cháy kích hoạt vịi phun dập lửa dạng mơ hình vịng 30 giây) Bộ 01 mơ hình hoàn chỉnh } catch (Exception ex) { MessageBox.Show("Nhiệt độ cài đặt phải số nguyên lớn nhỏ 100 Cảm ơn !", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } } else // Trường hợp nhận liệu text thông thường { if (TBOXin.InvokeRequired) { TBOXin.Invoke(new MethodInvoker(delegate { TBOXin.AppendText("\n" + Data); })); } //TBOXin.AppendText( "\n"+ Data ); tin_hieu = Data.ToString(); } } private void C1_Connected() { //string name = ""; if (TboxStatus.InvokeRequired) { TboxStatus.Invoke(new MethodInvoker(delegate { TboxStatus.Text = "Connected to server"; })); } //name = "Connected to server"; } private void C1_Disconnected() { //string name = ""; if (TboxStatus.InvokeRequired) { 84 TboxStatus.Invoke(new MethodInvoker(delegate { TboxStatus.Text = "Connected to server"; })); } //name = "Connected to server"; } private void C1_ConnectionTimeOut() { MessageBox.Show( "Connection time out", "Connection error"); } private void C1_ComTestEnded() { //string name = ""; if (TBOXtest.InvokeRequired) { TBOXtest.Invoke(new MethodInvoker(delegate C1.ComTestStatus.ToString(); })); } } { TBOXtest.Text private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { \\ Thay đổi cổng kết nối Serial if (serialPort1.IsOpen) { serialPort1.Close(); } Ketnoi.Enabled = true; ngatketnoi.Enabled = false; serialPort1.PortName = comboBox1.SelectedItem.ToString(); } private void Ketnoi_Click(object sender, EventArgs e) { try { // Kết nối đến cổng Serial 85 = serialPort1.Open(); ngatketnoi.Enabled = true; Ketnoi.Enabled = false; cainhietdo.Enabled = true; } catch { MessageBox.Show("Không thể sử dụng cổng COM !", "Retry", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void ngatketnoi_Click(object sender, EventArgs e) { // Ngắt kết nối với cổng Serial serialPort1.Close(); ngatketnoi.Enabled = false; Ketnoi.Enabled = true; cainhietdo.Enabled = false; } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { try { // Mỗi có liệu đến cổng COM int bytesNum = serialPort1.BytesToRead; byte[] Buffer = new byte[bytesNum]; serialPort1.Read(Buffer, 0, bytesNum); if (Buffer[0] == '@' && Buffer[3] == '$') { //Console.WriteLine("Frame OK"); decimal Temperature = Buffer[1] = 2) { decimal Temp = QueueRecived.Dequeue() 100 || TempHighControl < || TempHighControl > 100) { MessageBox.Show("Nhiệt độ cài đặt phải số nguyên lớn nhỏ 100 Cảm ơn !", "Chú ý", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else if (TempLowControl > TempHighControl - 1) { 88 MessageBox.Show("Ngưỡng phải nhỏ ngưỡng Cảm ơn !", "Chú ý", MessageBoxButtons.OK, MessageBoxIcon.Warning); } else { //MessageBox.Show("Thiết bị chạy nhiệt độ lớn {0} dừng nhiệt độ nhỏ {1}","Cài đặt",TempLowControl.ToString(),TempHighControl.ToString()); if (serialPort1.IsOpen) { byte[] BufferH = new byte[] { Convert.ToByte(TempHighControl) }; byte[] BufferL = new byte[] { Convert.ToByte(TempLowControl) }; serialPort1.Write("@"); serialPort1.Write("D"); serialPort1.Write("S"); serialPort1.Write(BufferH, 0, 1); serialPort1.Write(BufferL, 0, 1); serialPort1.Write("$"); } } } catch (Exception ex) { //MessageBox.Show(ex.ToString()); //MessageBox.Show("Vui lòng nhập vào số nguyên Cảm ơn !", "Chú ý", MessageBoxButtons.OK, MessageBoxIcon.Warning); MessageBox.Show("Nhiệt độ cài đặt phải số nguyên lớn nhỏ 100 Cảm ơn !", "Lỗi", MessageBoxButtons.OK, MessageBoxIcon.Error); } } private void exit_Click(object sender, EventArgs e) { this.Close(); } } 89 } Phụ lục 5: Phần mềm Server máy tính đặt từ xa có kết nối Internet using System; using System.ComponentModel; using System.Windows.Forms; using JadBenAutho.EasySocket; using System.Net; namespace WindowsApplication1 { /// /// Summary description for Form1 /// public class Form1 : Form { private Button button1; public EasyServer S1 = new EasyServer(2300, "TestServer", true); public ClientInfo Cinf = new ClientInfo("", true); private Button button2; private TextBox textBox1; private Button button5; private Button button6; private TextBox TBOXout; private TextBox TBOXin; private System.Windows.Forms.Button button8; private TextBox txtport; private Label lb1; private Label label1; private Label label2; private TextBox txtNguongTren; private TextBox txtNguongDuoi; private Button btnCaiNhietDoTuXa; /// /// Required designer variable /// private Container components = null; 90 public Form1() { InitializeComponent(); } /// /// Clean up any resources being used /// protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); }else S1.Dispose();//Disposing the server no metter what } base.Dispose( disposing ); } #region Windows Form Designer generated code /// /// Required method for Designer support - not modify /// the contents of this method with the code editor /// private void InitializeComponent() { this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); this.textBox1 = new System.Windows.Forms.TextBox(); this.TBOXout = new System.Windows.Forms.TextBox(); this.button5 = new System.Windows.Forms.Button(); this.button6 = new System.Windows.Forms.Button(); this.TBOXin = new System.Windows.Forms.TextBox(); this.button8 = new System.Windows.Forms.Button(); this.txtport = new System.Windows.Forms.TextBox(); this.lb1 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); 91 this.txtNguongTren = new System.Windows.Forms.TextBox(); this.txtNguongDuoi = new System.Windows.Forms.TextBox(); this.btnCaiNhietDoTuXa = new System.Windows.Forms.Button(); this.SuspendLayout(); // // button1 // this.button1.Location = new System.Drawing.Point(103, 8); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(86, 23); this.button1.TabIndex = 0; this.button1.Text = "Listen to client"; this.button1.Click += new System.EventHandler(this.button1_Click); // // button2 // this.button2.Location = new System.Drawing.Point(72, 40); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(136, 23); this.button2.TabIndex = 1; this.button2.Text = "Update Clients number"; this.button2.Click += new System.EventHandler(this.button2_Click); // // textBox1 // this.textBox1.Location = new System.Drawing.Point(64, 64); this.textBox1.Name = "textBox1"; this.textBox1.Size = new System.Drawing.Size(152, 20); this.textBox1.TabIndex = 2; this.textBox1.Text = "Number of connected Clients"; this.textBox1.TextAlign System.Windows.Forms.HorizontalAlignment.Center; // // TBOXout // this.TBOXout.Location = new System.Drawing.Point(0, 96); this.TBOXout.Multiline = true; this.TBOXout.Name = "TBOXout"; this.TBOXout.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.TBOXout.Size = new System.Drawing.Size(296, 64); 92 = this.TBOXout.TabIndex = 5; // // button5 // this.button5.Location = new System.Drawing.Point(232, 160); this.button5.Name = "button5"; this.button5.Size = new System.Drawing.Size(48, 23); this.button5.TabIndex = 6; this.button5.Text = "Clear"; this.button5.Click += new System.EventHandler(this.button5_Click); // // button6 // this.button6.Location = new System.Drawing.Point(80, 256); this.button6.Name = "button6"; this.button6.Size = new System.Drawing.Size(112, 23); this.button6.TabIndex = 9; this.button6.Text = "Clear"; this.button6.Click += new System.EventHandler(this.button6_Click); // // TBOXin // this.TBOXin.Location = new System.Drawing.Point(-2, 192); this.TBOXin.Multiline = true; this.TBOXin.Name = "TBOXin"; this.TBOXin.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.TBOXin.Size = new System.Drawing.Size(296, 64); this.TBOXin.TabIndex = 8; // // button8 // this.button8.Location = new System.Drawing.Point(8, 160); this.button8.Name = "button8"; this.button8.Size = new System.Drawing.Size(96, 23); this.button8.TabIndex = 11; this.button8.Text = "Send data"; this.button8.Click += new System.EventHandler(this.button8_Click); // // txtport // 93 this.txtport.Location = new System.Drawing.Point(44, 10); this.txtport.Name = "txtport"; this.txtport.Size = new System.Drawing.Size(53, 20); this.txtport.TabIndex = 12; this.txtport.Text = "23"; // // lb1 // this.lb1.AutoSize = true; this.lb1.Location = new System.Drawing.Point(12, 13); this.lb1.Name = "lb1"; this.lb1.Size = new System.Drawing.Size(26, 13); this.lb1.TabIndex = 13; this.lb1.Text = "Port"; // // label1 // this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(330, 90); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(66, 13); this.label1.TabIndex = 14; this.label1.Text = "Ngưỡng trên"; this.label1.Click += new System.EventHandler(this.label1_Click); // // label2 // this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(330, 124); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(68, 13); this.label2.TabIndex = 15; this.label2.Text = "Ngưỡng dưới"; // // txtNguongTren // this.txtNguongTren.Location = new System.Drawing.Point(423, 87); this.txtNguongTren.Name = "txtNguongTren"; this.txtNguongTren.Size = new System.Drawing.Size(103, 20); this.txtNguongTren.TabIndex = 16; 94 this.txtNguongTren.Text = "25"; // // txtNguongDuoi // this.txtNguongDuoi.Location = new System.Drawing.Point(425, 121); this.txtNguongDuoi.Name = "txtNguongDuoi"; this.txtNguongDuoi.Size = new System.Drawing.Size(100, 20); this.txtNguongDuoi.TabIndex = 17; this.txtNguongDuoi.Text = "20"; // // btnCaiNhietDoTuXa // this.btnCaiNhietDoTuXa.Location = new System.Drawing.Point(333, 169); this.btnCaiNhietDoTuXa.Name = "btnCaiNhietDoTuXa"; this.btnCaiNhietDoTuXa.Size = new System.Drawing.Size(192, 32); this.btnCaiNhietDoTuXa.TabIndex = 18; this.btnCaiNhietDoTuXa.Text = "Cài nhiệt độ từ xa"; this.btnCaiNhietDoTuXa.UseVisualStyleBackColor = true; this.btnCaiNhietDoTuXa.Click += new System.EventHandler(this.btnCaiNhietDoTuXa_Click); // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.ClientSize = new System.Drawing.Size(556, 399); this.Controls.Add(this.btnCaiNhietDoTuXa); this.Controls.Add(this.txtNguongDuoi); this.Controls.Add(this.txtNguongTren); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.lb1); this.Controls.Add(this.txtport); this.Controls.Add(this.button8); this.Controls.Add(this.button6); this.Controls.Add(this.TBOXin); this.Controls.Add(this.TBOXout); this.Controls.Add(this.textBox1); this.Controls.Add(this.button5); this.Controls.Add(this.button2); this.Controls.Add(this.button1); 95 this.Name = "Form1"; this.Text = "Server"; this.Load += new System.EventHandler(this.Form1_Load); this.Closing += System.ComponentModel.CancelEventHandler(this.Form1_Closing); this.ResumeLayout(false); this.PerformLayout(); new } #endregion /// /// The main entry point for the application /// [STAThread] static void Main() { Application.Run(new Form1()); } private void Form1_Load(object sender, EventArgs e){ S1.DataArrived+=new DataArrived2Server_EventHandler(S1_DataArrived); } private void button1_Click(object sender, EventArgs e){ S1.StartListen(); } private void button2_Click(object sender, EventArgs e){ textBox1.Text = S1.CountClients.ToString()+" connected"; } private void button3_Click(object sender, EventArgs e){ S1.StopListen(); } private void Form1_Closing(object sender, CancelEventArgs e){ S1.Dispose(); } 96 Clients private void button4_Click(object sender, EventArgs e){ S1.SendData(TBOXout.Text, Cinf); } private void button6_Click(object sender, EventArgs e){ TBOXin.Text = ""; } private void button5_Click(object sender, EventArgs e){ TBOXout.Text = ""; } private void S1_DataArrived(object Data, SocketStream DataSender){ //string name = ""; if (TBOXin.InvokeRequired) { TBOXin.Invoke(new MethodInvoker(delegate { TBOXin.AppendText("\n" + Data); })); } } private void button8_Click(object sender, System.EventArgs e){ S1.SendDataAsync( TBOXout.Text, ); } private void btnCaiNhietDoTuXa_Click(object sender, EventArgs e) { try { Convert.ToInt32(txtNguongTren.Text.Trim()); Convert.ToInt32(txtNguongDuoi.Text.Trim()); string[] nhietdo = { txtNguongTren.Text.Trim(), txtNguongDuoi.Text.Trim() }; //S1.SendDataAsync(nhietdo, 0); // sent cho client S1.SendDataToAllClientsAsync(nhietdo); // sent hết cho tất client } catch { MessageBox.Show("Nhiệt độ ngưỡng phải số!"); 97 } } } } 98 ...BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI - BÙI ANH TUẤN XÂY DỰNG MẠNG CẢM BIẾN TÍCH CỰC KHƠNG DÂY HỖ TRỢ CƠNG TÁC PHÁT HIỆN VÀ BẢO VỆ KHI XẢY RA CHÁY Chuyên ngành:... tạo mạng cảm biến tích cực không dây nhằm hỗ trợ công tác bảo vệ phát cháy hệ thống kho, em nắm bắt công nghệ chế tạo thiết bị điện tử phục vụ cho việc triển khai ứng dụng mạng cảm biến khơng dây. .. Tiến, Xây dựng mạng cảm biến tích cực khơng dây nhằm hỗ trợ công tác bảo vệ tài nguyên rừng, Nghị định thư với Hàn Quốc 2011-2013 [4] Tiêu chuẩn Việt Nam TCVN 5738 – 2001 hệ thống báo cháy tự

Ngày đăng: 19/02/2022, 17:18