Giám sát và điều khiển mô hình nhà thông minh

70 5 0
Giám sát và điều khiển mô hình nhà thông minh

Đ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

LỜI TĨM TẮT Trong xã hội với trình độ khoa học kỹ thuật ngày tăng cao kèm với áp dụng ứng dụng khoa học vào đời sống thực tiễn nhu cầu thiết yếu người việc ăn uống, lại, nhà ở, y tế, giáo dục,…Một số vấn đề nhà ở, nhằm đáp ứng nhu cầu sử dụng cơng nghệ vào sống nhóm định chọn cho đề tài “Giám sát điều khiển mơ hình nhà thơng minh” Để thực đề tài “Giám sát điều khiển mơ hình nhà thơng minh” nhóm thực Board Arduino UNO hệ thứ với linh kiện thiết bị điện, điện tử nhằm mô cách tổng quát hệ thống, thiết bị ngồi thực tiễn Sau q trình tìm hiểu tính tương tác tính khả thi đề tài với hỗ trợ tận tình giáo viên hướng dẫn thầy Nguyễn Ngơ Lâm nhóm hồn thành mơ điều khiển thiết bị với chức áp dụng vào thực tiễn sống như: - Bảo mật hệ thống khóa số thơng qua nhận diện khuôn mặt qua thẻ từ RFID - Điều khiển thiết bị giọng nói ( app ) - Cảnh báo rị rỉ khí gas thơng qua giao diện máy tính khả thơng báo thời tiết v MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Error! Bookmark not defined PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Error! Bookmark not defined PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Error! Bookmark not defined LỜI CẢM ƠN Error! Bookmark not defined LỜI TÓM TẮT Error! Bookmark not defined MỤC LỤC… vi DANH MỤC CHỮ VIẾT TẮT iError! Bookmark not defined DANH MỤC CÁC BẢNG, BIỂU ĐỒ Error! Bookmark not defined DANH MỤC CÁC HÌNH ẢNH xError! Bookmark not defined Chương TỔNG QUAN Error! Bookmark not defined 1.1 Giới thiệu tình hình nghiên cứu Error! Bookmark not defined 1.2 Tính cấp thiết đề tài Error! Bookmark not defined 1.3 Mục tiêu nghiên cứu Error! Bookmark not defined 1.4 Nhiệm vụ nghiên cứu Error! Bookmark not defined 1.5 Đối tượng phạm vi nghiên cứu Error! Bookmark not defined 1.6 Phương pháp nghiên cứu Error! Bookmark not defined 1.7 Bố cục đồ án Error! Bookmark not defined Chương CƠ SỞ LÝ THUYẾT Error! Bookmark not defined 2.1 Giới thiệu Board Arduino UNO Error! Bookmark not defined 2.2 Giới thiệu webcam Huynhdai 2.3 Cảm biến mưa 2.4 Cảm biến gas 10 2.5 Solenoid Clock 11 2.6 Module RFID 12 2.7 Quạt 13 2.8 Thiết bị công suất 13 2.9 Module HC05 15 vi 2.10 Phương pháp nhận diện mặt người 16 2.11 Thư viện EmguCV 17 Chương THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 19 3.1 Sơ đồ khối hệ thống 19 3.1.1 Yêu cầu hệ thống 19 3.1.2 Hoạt động hệ thống 20 3.2 Thiết kế tính tốn hệ thống 20 3.2.1 Khối nguồn 20 3.2.2 Khối cảm biến 22 3.2.3 Khối xử lý trung tâm 22 3.3 Công cụ phần mềm 24 3.4 Ứng dụng phân tích giọng nói 28 3.4.1 MIT App Inventor 29 3.4.2 Giao diện MIT app Inventor 29 3.5 Chương trình phân tích giọng nói Điện thoại 32 Chương KẾT QUẢ THỰC HIỆN 35 4.1 Kết phần cứng 35 4.2 Kết phần mềm 35 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 41 5.1 Kết luận 5.2 Hướng phát triển TÀI LIỆU THAM KHẢO 43 PHỤ LỤC 44 vii DANH MỤC CHỮ VIẾT TẮT IoT PWM Internet of Things Pulse Width Modulation Internet với vạn vật Điều chế độ rộng xung SPI Serial Peripheral Bus UART Universal Asynchronous Receiver – Transmitter Giao diện Ngoại vi Nối tiếp Truyền liệu nối tiếp bất đồng IDE USB SD Integrated Development Environment Universal Serial Bus Secure Digital Chuẩn kết nối Thẻ nhớ ADC Analog-to-Digital Converter Chuyển đổi tín hiệu tương tự sang tín hiệu số GPIO General Purpose Input Output Các cổng vào/ra LED CPU Light Emitting Diode Central Processing Unit Điốt phát quang Bộ xử lý trung tâm IDLE Integrated DeveLopment Environment PIC Programmable Intelligent Computer CNTT SMM OS I/O System Management Mode Operating System Input/Output Mơi trường phát triển tích hợp Thiết bị thơng minh lập trình Cơng Nghệ Thơng Tin Quản lý hệ thống Hệ điều hành Ngõ vào/ngõ viii DANH MỤC CÁC BẢNG, BIỂU ĐỒ Bảng 2.1 Thông số kỹ thuật Board Arduino R3 Bảng 3.1 Dòng điện điện áp hoạt động thiết bị 20 Bảng 4.1 Số lần thành cơng việc nhận dạng giọng nói 40 ix DANH MỤC CÁC HÌNH ẢNH Hình 2.1 Arduino Uno R3 Hình 2.2 Webcam Hyundai Hình 2.3 Cảm biến mưa Hình 2.4 Sơ đồ mạch cảm biến mưa Hình 2.5 Cảm biến Gas MQ2 11 Hình 2.6 Khóa Solenoid lock 12 Hình 2.7 Module RFID 13 Hình 2.8 Quạt 13 Hình 2.9 Module Relay kênh 14 Hình 2.10 Module Bluetooth HC05 15 Hình 2.11 Mơ tả phương pháp đặc trưng Haar like 16 Hình 2.12 Ví dụ phương pháp đặc trưng Haar like 17 Hình 2.13 OpenCV 18 Hình 3.1 Sơ đồ khối hệ thống 19 Hình 3.2 Sơ đồ mạch nguồn 21 Hình 3.3 Sơ đồ khối kết nối cảm biến Gas Arduino 22 Hình 3.4 Khối xử lý trung tâm 23 Hình 3.5 Lưu đồ giải thuật Board Arduino 24 Hình 3.6 Lưu đồ giải thuật C# 25 Hình 3.7 Biểu tượng phần mềm lập trình Arduino IDE 26 Hình 3.8 Cấu trúc project IDE 27 Hình 3.9 Ví dụ chương trình IDE 27 Hình 3.10 Phần mềm lập trình C# 28 Hình 3.11 Giao diện giám sát điều khiển mơ hình nhà thơng minh 28 Hình 3.12 Sau đăng nhập vào MIT App Inventor 29 Hình 3.13 Tạo project 30 Hình 3.14 Thiết kế giao diện cho App 31 Hình 3.15 Thiết kế chức cho khối 31 Hình 3.16 Lưu đồ chương trình Arduino 32 Hình 3.17 Giao diện hình 33 Hình 3.18 Phần chương trình ứng dụng 33 Hình 3.19 Phần chương trình ứng dụng(tiếp theo) 34 Hình 4.1 Mơ hình nhà thơng minh 35 Hình 4.2 Mơ hình nhà thơng minh sau hoàn thành 36 x Hình 4.3 Màn hình giao diện C# 36 Hình 4.4 Màn hình ứng dụng ta nói “Mở hệ thống” 37 Hình 4.5 Hệ thống sáng đèn bật quạt 37 Hình 4.6 Màn hình ứng dụng ta nói “Tắt hệ thống” 38 Hình 4.7 Hệ thống tắt đèn quạt 38 Hình 4.8a Khi ta nói bật đèn 39 Hình 4.8b Hệ thống sáng đèn 39 Hình 4.9a Khi ta nói bật quạt 39 Hình 4.9b Hệ thống bật quạt 39 xi Đồ Án Tốt Nghiệp Chương TỔNG QUAN 1.1 Giới thiệu tình hình nghiên cứu Trong khoảng vài năm trở lại đây, hẳn khơng lần nghe thống qua khái niệm Internet of Things, hay bắt gặp tin tức sản phẩm quảng cáo phục vụ cho nhu cầu “Smart Home” (Nhà thông minh) Vậy Internet of Things hay Smart Home gì, có hoạt động sao? Nói Internet of Things không nhiều xu hướng công nghệ trước đây, chưa có định nghĩa chấp nhận rộng rãi cho khái niệm Internet of Things.Vậy Internet of things (IoT) hiểu đồ vật, người cung cấp định danh riêng mình, tất có khả truyền tải, trao đổi thông tin, liệu qua mạng mà không cần đến tương tác trực tiếp người với người hay người với máy tính Như tạm hiểu, Internet of Things tất thứ kết nối với qua mạng Internet, người dùng (chủ) kiểm sốt đồ vật qua mạng với thiết bị thơng minh, chẳng hạn smartphone, PC, laptop, Tablet hay thiết bị điện tử cầm tay Vậy Internet of things (IoT ) hiểu đồ vật, người cung cấp định danh riêng mình, tất có khả truyền tải, trao đổi thông tin, liệu qua mạng mà không cần đến tương tác trực tiếp người với người hay người với máy tính Internet of things (IoT) phát triển từ hội tụ công nghệ không dây công nghệ vi điện tử Internet Internet of Things cịn có khái niệm khác vạn vật với Internet Smart Home dạng thu nhỏ Internet of Things, nơi mà đồ dùng nhà từ phòng ngủ, phòng khách đến toilet gắn điều khiển điện tử kết nối với Internet điện thoại di động, cho phép chủ nhân điều khiển vật dụng từ xa lập trình cho thiết bị nhà hoạt động theo “kịch bản” thiết lập sẵn Như Nhà thông minh (Smart Home) kiểu nhà lắp đặt thiết bị điện, điện tử, cảm biến có tác dụng tự động hố hồn tồn bán tự động, thay người thực thao tác quản lý, điều khiển Vậy, điều làm nên khác biệt cho Smart Home nói riêng Internet of Things nói chung Chỉ từ thơi, cảm biến Mọi thiết bị hệ thống Internet of Things tích hợp cảm biến để phát thay đổi nhiệt độ, độ ẩm, ánh sáng, âm thanh, chuyển động vị trí địa lí Các điều khiển máy tính thiết bị điều khiển chuyên biệt, thiết bị chấp hành công tắc, động cơ, van có điều khiển Chúng mắt đôi bàn tay điện tử người sử dụng, với Đồ Án Tốt Nghiệp khả phát ghi lại thay đổi giới xung quanh Mỗi cảm biến sau kết hợp với mạch tích hợp (các bảng mạch dạng cho phép lập trình viên thay đổi vài thông số, thiết kế chuyên biệt cho mục đích cụ thể) Cộng thêm vi xử lí, module giao tiếp, ta có cấu phần điều khiển hoàn chỉnh, sẵn sàng để kết nối vật dụng với hệ thống Internet of Things Các chức thường sử dụng nhà thơng minh: Điều khiển chiếu sáng Điều khiển mành, rèm, cửa cổng Hệ thống an ninh, bảo mật, báo động, báo cháy Điều khiển điều hòa, máy lạnh Hệ thống Âm Camera, chuông Hệ Thống Bảo vệ nguồn điện Các tiện ích ứng dụng khác 1.2 Tính cấp thiết đề tài Nhà thông minh, xu hướng nhà đại Vài năm trở lại đây, giới dần tiến vào kỷ nguyên Internet of Things (IoT), kết nối vật qua Internet, nhà thông minh trở thành xu hướng công nghệ tất yếu, tiêu chuẩn nhà đại Tại triển lãm lớn giới công nghệ điện tử tiêu dùng diễn đầu tháng 1/2015 Las Vegas (Mỹ), nhà thông minh chủ đề "nóng" Cịn theo hãng tư vấn công nghệ hàng đầu Gartner, công nghệ IoT bùng nổ kể từ năm 2015 với tham gia hầu hết hãng công nghệ tên tuổi Việt Nam khơng nằm ngồi xu hướng Trong năm 2014, chủ đầu tư hàng loạt khu đô thị lớn Phú Mỹ Hưng, Royal City, Times City, Ecopark, Vinhomes Central Park… đưa nhà thông minh tới hộ, mang lại tiện nghi đẳng cấp cho nhà Và chủ đề năm học 2016 Trường Đại Học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh “ứng dụng CNTT cơng nghệ cao kỷ nguyên IoT để xây dựng trường thành Đại học thông minh” cho thấy tầm quan trọng IoT Nhóm chọn đề tài Smart Home thấy để tài quan tâm nhiều nay, mang tính thực tế nhiều, áp dụng vào thực tế Đồ Án Tốt Nghiệp 1.3 Mục tiêu nghiên cứu Mục tiêu đề tài hiểu nguyên lý hoạt động loại linh kiện, thiết bị điện- điện tử sử dụng đề tài từ thiết kế hệ thống quản lý thiết bị điện tử nhà qua mạng Internet với giao diện web qua điện thoại SmartPhone hệ thống điều khiển thiết bị điện, đọc liệu từ cảm biến, mở cửa nhận diện khuôn mặt RFID Điều khiển thiết bị điện từ xa với thiết bị có kết nối Bluetooth 1.4 Nhiệm vụ nghiên cứu - Tìm hiểu công nghệ sử dụng cho đề tài - Nguyên lý, thông số kỹ thuật linh kiện điện, điện tử, khí - Xây dựng hệ thống phơi đồ thông minh dùng cảm biến mưa phát mưa - Hệ thống mở cửa nhận diện khn mặt khóa Solenoid Lock - Hệ thống mở cửa thẻ từ RIFD - Điều khiển thiết bị điện với thiết bị qua mạng LAN kết hợp theo dõi kiểm soát trạng thái nhà giao diện C# - Điều khiển thiết bị giọng nói 1.5 Đối tượng phạm vi nghiên cứu  Dữ liệu cho trước: - Các tài liệu tham khảo, tài liệu chuyên môn - Board Arduino - Cảm biến mưa, cảm biến gas - Module Bluetooth - Module RFID - Camera - Khóa Solenoid Lock  Nội dung cần hồn thành - Phần lí thuyết - Tính cấp thiết đề tài - Giới thiệu Board arduino thiết bị điện- điện tử - Thiết kế giao diện C# giám sát hệ thống - Lập lưu đồ thuật tốn viết chương trình điều khiển  Sản phẩm: - Hệ thống hoạt động xác ổn định đạt yêu cầu kĩ thuật có tính ứng dụng vào thực tế Đồ Án Tốt Nghiệp //Action for each element detected Parallel.For(0, facesDetected.Length, i => { try { facesDetected[i].X += (int)(facesDetected[i].Height * 0.15); facesDetected[i].Y += (int)(facesDetected[i].Width * 0.22); facesDetected[i].Height -= (int)(facesDetected[i].Height * 0.3); facesDetected[i].Width -= (int)(facesDetected[i].Width * 0.35); result = currentFrame.Copy(facesDetected[i]).Convert().Resize(100, 100, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC); result._EqualizeHist(); //draw the face detected in the 0th (gray) channel with blue color currentFrame.Draw(facesDetected[i], new Bgr(Color.Red), 2); if (Eigen_Recog.IsTrained)//neu detect duoc mat { string name = Eigen_Recog.Recognise(result); int match_value = (int)Eigen_Recog.Get_Eigen_Distance; //Draw the label for each face detected and recognized //doan hien ten ve hinh vuong currentFrame.Draw(name +" ", ref font, new Point(facesDetected[i].X - 2, facesDetected[i].Y - 2), new Bgr(Color.LightGreen)); ADD_Face_Found(result, name, match_value); //neu nhan mo cua //xu ly 50 lan if (opendoor == true) { lbdata0.Text = dataname[0]; lbdata1.Text = dataname[1]; lbdata2.Text = dataname[2]; lbdata3.Text = dataname[3]; lbdata4.Text = dataname[4]; lbid0.Text = dataid[0].ToString(); lbid1.Text = dataid[1].ToString(); lbid2.Text = dataid[2].ToString(); lbid3.Text = dataid[3].ToString(); lbid4.Text = dataid[4].ToString(); //reset sau dem 50 lan lay mau if (count > countmax) { //reset gia tri dem count = 0; 49 Đồ Án Tốt Nghiệp //khi nhan open door opendoor se true opendoor = false; idmax = dataid[0]; for (int ax = 1; ax < 11; ax++)//lay max thang nao xuat hien nhieu nhat ket luan la nguoi dung hay unknow { if (idmax < dataid[ax]) { idmax = dataid[ax]; idopen = ax; } } if(idopen>0)//neu khac unknow(id==0) { // cho e tao label noi roi cho hien thi //lbdata0 a dung vong lap co n k hien thi //y em la anh thay khung nhan dien khuon mat khong? no phải quet có ten nguoi dung chya 50 lan moi co gia trị chu lbdata0.Text = dataname[idopen];//label de debug lb_user.Text = dataname[idopen]; if (SerialPort.IsOpen) { SerialPort.Write("D"); } } //reset so lan dem for (int ax = 0; ax < 11;ax++) { dataid[ax] = 0; } //dung de debug lbGVHD.Text = "XONG 50"; } // doi 50 lan else { //dung de debug lbGVHD.Text = "lan " + count.ToString(); for (int zc = 0; zc < 11; zc++) { //so sanh chuoi if (String.Compare(dataname[zc], name,true)==0) { lbCOM.Text = "OK"; // 50 Đồ Án Tốt Nghiệp dataid[zc]++;//neu dung ten cong so lan xuat hien ten len unknow cong unknow vo } } } count++; } } } catch { //do nothing as parrellel loop buggy //No action as the error is useless, it is simply an error in //no data being there to process and this occurss sporadically } }); //Show the faces procesed and recognized image_PICBX.Image = currentFrame.ToBitmap(); } } //ADD Picture box and label to a panel for each face int faces_count = 0; int faces_panel_Y = 0; int faces_panel_X = 0; void Clear_Faces_Found() { this.Faces_Found_Panel.Controls.Clear(); faces_count = 0; faces_panel_Y = 0; faces_panel_X = 0; } void ADD_Face_Found(Image img_found, string name_person, int match_value) { PictureBox PI = new PictureBox(); PI.Location = new Point(faces_panel_X, faces_panel_Y); PI.Height = 80; PI.Width = 80; PI.SizeMode = PictureBoxSizeMode.StretchImage; PI.Image = img_found.ToBitmap(); Label LB = new Label(); LB.Text = name_person + " " + match_value.ToString(); 51 Đồ Án Tốt Nghiệp LB.Location = new Point(faces_panel_X, faces_panel_Y + 80); //LB.Width = 80; LB.Height = 15; this.Faces_Found_Panel.Controls.Add(PI); this.Faces_Found_Panel.Controls.Add(LB); faces_count++; if (faces_count == 2) { faces_panel_X = 0; faces_panel_Y += 100; faces_count = 0; } else faces_panel_X += 85; if (Faces_Found_Panel.Controls.Count > 10) { Clear_Faces_Found(); } } //Menu Opeartions private void exitToolStripMenuItem_Click(object sender, EventArgs e) { this.Dispose(); } private void singleToolStripMenuItem_Click(object sender, EventArgs e) { parrellelToolStripMenuItem.Checked = false; singleToolStripMenuItem.Checked = true; Application.Idle -= new EventHandler(FrameGrabber_Parrellel); Application.Idle += new EventHandler(FrameGrabber_Standard); } private void parrellelToolStripMenuItem_Click(object sender, EventArgs e) { parrellelToolStripMenuItem.Checked = true; singleToolStripMenuItem.Checked = false; Application.Idle -= new EventHandler(FrameGrabber_Standard); Application.Idle += new EventHandler(FrameGrabber_Parrellel); } private void saveToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog SF = new SaveFileDialog(); 52 Đồ Án Tốt Nghiệp //As there is no identification in files to recogniser type we will set the extension ofthe file to tell us switch (Eigen_Recog.Recognizer_Type) { case ("EMGU.CV.LBPHFaceRecognizer"): SF.Filter = "LBPHFaceRecognizer File (*.LBPH)|*.LBPH"; break; case ("EMGU.CV.FisherFaceRecognizer"): SF.Filter = "FisherFaceRecognizer File (*.FFR)|*.FFR"; break; case ("EMGU.CV.EigenFaceRecognizer"): SF.Filter = "EigenFaceRecognizer File (*.EFR)|*.EFR"; break; } if (SF.ShowDialog() == DialogResult.OK) { Eigen_Recog.Save_Eigen_Recogniser(SF.FileName); } } private void loadToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog OF = new OpenFileDialog(); OF.Filter = "EigenFaceRecognizer File (*.EFR)|*.EFR|LBPHFaceRecognizer File (*.LBPH)|*.LBPH|FisherFaceRecognizer File (*.FFR)|*.FFR"; if (OF.ShowDialog() == DialogResult.OK) { Eigen_Recog.Load_Eigen_Recogniser(OF.FileName); } } //Unknow Eigen face calibration private void Eigne_threshold_txtbxChanged(object sender, EventArgs e) { try { Eigen_Recog.Set_Eigen_Threshold = Math.Abs(Convert.ToInt32(Eigne_threshold_txtbx.Text)); message_bar.Text = "Eigen Threshold Set"; } catch { message_bar.Text = "Error in Threshold input please use int"; } } private void eigenToolStripMenuItem_Click(object sender, EventArgs e) 53 Đồ Án Tốt Nghiệp { //Uncheck other menu items /*fisherToolStripMenuItem.Checked = false; lBPHToolStripMenuItem.Checked = false; Eigen_Recog.Recognizer_Type = "EMGU.CV.EigenFaceRecognizer"; Eigen_Recog.Retrain();*/ fisherToolStripMenuItem.Checked = false; eigenToolStripMenuItem.Checked = false; Eigen_Recog.Recognizer_Type = "EMGU.CV.LBPHFaceRecognizer"; Eigen_Recog.Retrain(); } private void fisherToolStripMenuItem_Click(object sender, EventArgs e) { //Uncheck other menu items /*lBPHToolStripMenuItem.Checked = false; eigenToolStripMenuItem.Checked = false; Eigen_Recog.Recognizer_Type = "EMGU.CV.FisherFaceRecognizer"; Eigen_Recog.Retrain();*/ fisherToolStripMenuItem.Checked = false; eigenToolStripMenuItem.Checked = false; Eigen_Recog.Recognizer_Type = "EMGU.CV.LBPHFaceRecognizer"; Eigen_Recog.Retrain(); } private void btAddUser_Click(object sender, EventArgs e) { //Stop Camera stop_capture(); //OpenForm Training_Form TF = new Training_Form(this); TF.Show(); } /* Nhấn nút kết nối cổng COM */ private void btConnect_Click(object sender, EventArgs e) { try { SerialPort.PortName = Convert.ToString(cbSeclectCom.Text); 54 Đồ Án Tốt Nghiệp SerialPort.Open(); //TimerPort.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message, "Lỗi kết nối", MessageBoxButtons.OK, MessageBoxIcon.Error); } } //truyen nhan bat dong bo nen khong the lam truc tiep tren form Action serialPortReceiverAction; private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { serialPortReceiverAction = serialPortReceiver; try { this.BeginInvoke(serialPortReceiverAction, SerialPort.ReadExisting()); } catch { } } //ham xu ly du lieu nhan ve private void serialPortReceiver(string input) { byte az; txt_debug.Text += input; try { az = Convert.ToByte(input); lb_user.Text = dataname[az];//hien thi ten } catch(Exception ex) { } } int SumPort = 0; private void TimerPort_Tick(object sender, EventArgs e) 55 Đồ Án Tốt Nghiệp { string[] ports = SerialPort.GetPortNames(); if (SumPort != ports.Length) { SumPort = ports.Length; cbSeclectCom.Items.Clear(); for (int i = 0; i < SumPort; i++) { cbSeclectCom.Items.Add(ports[i]); cbSeclectCom.Text = cbSeclectCom.Items[i].ToString(); } } if(SerialPort.IsOpen) { if (comport == true) { comport = false; SerialPort.WriteLine("A"); } } } private void EmguCV_Face_FormClosing(object sender, FormClosingEventArgs e) { SerialPort.Close(); } private void btOpenDoor_Click(object sender, EventArgs e) { opendoor = true; } private void btRFID_Click(object sender, EventArgs e) { if(SerialPort.IsOpen) { SerialPort.WriteLine("O"); } } private void lBPHToolStripMenuItem_Click(object sender, EventArgs e) { //Uncheck other menu items fisherToolStripMenuItem.Checked = false; eigenToolStripMenuItem.Checked = false; 56 Đồ Án Tốt Nghiệp Eigen_Recog.Recognizer_Type = "EMGU.CV.LBPHFaceRecognizer"; Eigen_Recog.Retrain(); } } } CODE ARDUINO ĐIỀU KHIỂN CÁC THIẾT BỊ QUA BLUETOOTH String data; int den = 7; int quat = 8; void setup() { Serial.begin(9600); pinMode(den, OUTPUT); pinMode(quat, OUTPUT); digitalWrite(den, HIGH); digitalWrite(quat, LOW); //den= LOW; //digitalWrite(den, HIGH); } void loop() { while (Serial.available()){ //Kiểm tra byte để đọc delay(30); //Delay để ổn định char c = Serial.read(); // tiến hành đọc if (c == '#') {break;} //Thoát khỏi vòng lặp phát từ # data += c; // data = data + c } if (data.length() > 0) { Serial.println(data); if(data == "bật hệ thống" ||data == "1") {digitalWrite(den, LOW); //delay(200); digitalWrite(quat, HIGH);} //delay(200);} ////////////////////////////////////////////////////// else if(data == "tắt hệ thống"||data == "10") {digitalWrite(den, HIGH); 57 Đồ Án Tốt Nghiệp //delay(200); digitalWrite(quat, LOW);} //delay(200);} else if(data == "bật quạt"||data == "10") {digitalWrite(quat, HIGH);} else if(data == "tắt quạt"||data == "10") {digitalWrite(quat, LOW);} else if(data == "bật đèn" ||data == "1") {digitalWrite(den, LOW); } ////////////////////////////////////////////////////// else if(data == "tắt đèn"||data == "Tắt Đèn"||data == "10") {digitalWrite(den, HIGH);} data="";}} //Thiết lập lại biến 58 Đồ Án Tốt Nghiệp CODE ARDUINO SỬ DỤNG THẺ TỪ RFID ĐỌC CẢM BIẾN GAS VÀ MƯA #include #include // thu vien "RFID" #define SS_PIN 10 #define RST_PIN #define LOCK_PIN char buffer_data; unsigned long user_data[5]; byte dem_user=0; byte flag_read=0; byte flag_add_user=0; MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; // hien thi so UID dang thap phan byte bCounter, readBit; unsigned long ticketNumber; const int gas_pin =6; const int rain_pin =7; uint8_t flag_g=0,flag_r=0; uint8_t flag_kg=0,flag_kr=0; void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode(LOCK_PIN, OUTPUT); digitalWrite(LOCK_PIN,HIGH); ////////////////////////////////////////// pinMode(gas_pin,INPUT); pinMode(rain_pin,INPUT); } 59 Đồ Án Tốt Nghiệp void loop() { while (Serial.available()) { buffer_data = (char)Serial.read(); if(buffer_data=='O') { flag_read=1; // Serial.print('O'); } if(buffer_data=='A') { flag_add_user=1; // Serial.print('A'); } if(buffer_data=='D') { if(digitalRead(LOCK_PIN)==0) digitalWrite(LOCK_PIN,HIGH); else digitalWrite(LOCK_PIN,LOW); } } if(flag_read==1)//mo cua hoac dong dung rfid { // Tim the moi if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } // Doc the if ( ! mfrc522.PICC_ReadCardSerial()) { return; } uidDec = 0; for (byte i = 0; i < mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec*256+uidDecTemp; 60 Đồ Án Tốt Nghiệp } // Halt PICC ngung doc(ngu dong) mfrc522.PICC_HaltA(); for(byte i=0;i

Ngày đăng: 31/10/2022, 16:44

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

Tài liệu liên quan