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

(Đồ án tốt nghiệp) thiết kế và thi công mô hình ngôi nhà thông minh

124 1 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 124
Dung lượng 4,06 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA ĐÀO TẠO CHẤT LƯỢNG CAO KHĨA LUẬN TỐT NGHIỆP NGÀNH CƠNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA THIẾT KẾ VÀ THI CƠNG MƠ HÌNH NGƠI NHÀ THƠNG MINH GVHD: ThS NGUYỄN TRƯỜNG DUY SVTH: BÙI THẾ SƠN MSSV: 11151205 SKL003900 Tp Hồ Chí Minh, tháng 7/2015 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CƠNG MƠ HÌNH NGƠI NHÀ THƠNG MINH SVTH : BÙI THẾ SƠN MSSV : 11151205 Khóa : 2011 – 2015 Ngành : CN KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA LỚP : 11151CL1 GVHD : ThS NGUYỄN TRƯỜNG DUY TP Hồ Chí Minh, tháng 07/2015 PHẦN A Bộ Giáo Dục Và Đào Tạo CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Trường Đại Học Sư Phạm Kỹ Thuật Độc lập - Tự - Hạnh phúc Thành Phố Hồ Chí Minh KHOA ĐIỆN - ĐIỆN TỬ NGÀNH CƠNG NGHỆ KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên: BÙI THẾ SƠN MSSV:11151205 11151CL1 Lớp: CN KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HĨA Ngành: ĐẠI HỌC CHÍNH QUY Hệ: 2011-2015 Niên khóa: 1.Tên đề bài: “ THIẾT KẾ & THI CƠNG NGÔI NHÀ THÔNG MINH ” Các số liệu ban đầu: Nội dung phần thuyết minh: Các vẽ đồ thị: Giáo viên hướng dẫn: Th.S Nguyễn Trường Duy Ngày giao nhiệm vụ: Ngày hoàn thành nhiệm vụ: Thông qua môn Ngày … tháng … năm 2015 Chủ nhiệm môn TS LÊ MỸ HÀ LỜI MỞ ĐẦU Trong năm gần đây, nhà thông minh (smart home) xuất ứng dụng rộng rãi sống từ khách sạn hay resort sang nhà đại đươc lắp đặt hệ thống điều khiển thông minh Theo xu hướng phát triển đó, em định lựa chọn thực nghiên cứu đề tài: “THIẾT KẾ & THI CƠNG NGƠI NHÀ THƠNG MINH” Ngồi việc hồn thành đồ án tốt nghiệp với công việc cịn có ý nghĩa sâu sắc sinh viên thực Một lần sinh viên thực hành kiến thức học từ ghế nhà trường giúp hình thành sản phẩm cơng nghiệp, sử dụng, cầm tay lắp cảm biến mà từ trước nằm trang giấy Trong trình tiến hành khơng thể khơng gặp khó khăn vấp phải, kích thích sinh viên tư để tìm phương án tối ưu trao đổi thảo luận với thầy cô, bạn bè Tuy nhiên hạn chế kinh nghiệm thực tế thời gian thực nên việc giải đề tài tránh khỏi thiếu sót Do mong bảo thêm q thầy đóng góp bạn sinh viên Xin chân thành cảm ơn! Người thực đề tài BÙI THẾ SƠN LỜI CẢM ƠN Sau thời gian học tập nghiên cứu nhóm thực đề tài hồn thành đồ án tốt nghiệp giao Em xin chân thành gửi lời cám ơn đến: Ban Giám Hiệu, Các cán công nhân viên nhà trường giúp đỡ em suốt thời gian học tập trường Ban Chủ Nhiệm Khoa Thầy Cô Khoa Điện – Điện Tử dạy em kiến thức chuyên ngành Các bạn đồng hành với em suốt trình học tập nghiên cứu Đặc biệt xin gửi lời tri ân đến Thầy Nguyễn Trường Duy, người trực tiếp hướng dẫn đề tài tốt nghiệp hỗ trợ cho em nhiều kiến thức, tài liệu sở vật chất để em hoàn thành tốt đề tài Người thực đề tài BÙI THẾ SƠN LỜI MỞ ĐẦU Trong năm gần đây, nhà thông minh (Smarthome) xuất ứng dụng rộng rãi sống từ khách sạn hay resort sang nhà đại đươc lắp đặt hệ thống điều khiển thơng minh Theo xu hướng phát triển đó, em định lựa chọn thực nghiên cứu đề tài: “THIẾT KẾ & THI CƠNG MƠ HÌNH NGƠI NHÀ THƠNG MINH” Ngoài việc hoàn thành đồ án tốt nghiệp với cơng việc cịn có ý nghĩa sâu sắc sinh viên thực Một lần sinh viên thực hành kiến thức học từ ghế nhà trường giúp hình thành sản phẩm công nghiệp, sử dụng, cầm tay lắp cảm biến mà từ trước nằm trang giấy Trong q trình tiến hành khơng thể khơng gặp khó khăn vấp phải, kích thích sinh viên tư để tìm phương án tối ưu trao đổi thảo luận với thầy cô, bạn bè Tuy nhiên thực đề tài nên nhiều hạn chế khả thực hiện, kinh nghiệm thực tế thời gian thực nên việc giải đề tài tránh khỏi thiếu sót Do mong bảo thêm q thầy đóng góp bạn sinh viên Xin chân thành cảm ơn! Người thực đề tài BÙI THẾ SƠN iv LỜI CẢM ƠN Sau thời gian học tập nghiên cứu nhóm thực đề tài hồn thành đề tài tốt nghiệp giao Em xin chân thành gửi lời cám ơn đến: Ban Giám Hiệu, cán công nhân viên nhà trường giúp đỡ em suốt thời gian học tập trường Ban Chủ Nhiệm Khoa Thầy Cô Khoa Điện – Điện Tử dạy em kiến thức từ đến chuyên ngành, bạn lớp đồng hành với em suốt trình học tập anh chị khóa trước bảo truyền đạt kiến thức môn học khác giúp cho em có sở kiến thức để thực đề tài Đặc biệt em xin gửi lời tri ân đến Thầy Nguyễn Trường Duy, người trực tiếp hướng dẫn đề tài tốt nghiệp em hỗ trợ cho em nhiều kiến thức, tài liệu để em hồn thành tốt đề tài Em xin chân thành cảm ơn ! Người thực đề tài BÙI THẾ SƠN v TÓM TẮT Trong đề tài này, nhóm thực thiết kế thi cơng Mơ Hình Ngơi Nhà Thơng Minh dựa ngơi nhà thông minh thực tế Bkav SmartHome Đề tài nghiên cứu nhà thông minh bao gồm cảm biến chuyển động, cảm biến siêu âm, cảm biến nhiệt độ, cảm biến mưa, cảm biến khí gas, hệ thống đăng nhập thông qua password giao tiếp với điện thoại thông qua module sim900 tin nhắn SMS, ứng dụng Android điều khiển thiết bị qua Internet Toàn hoạt động mơ hình điều khiển vi điều khiển Arduino Mega 2560 Mơ hình thiết kế cho chủ nhà điều khiển thiết bị qua điện thoại Smartphone truy cập vào trang web để xem nhiệt độ phịng nồng độ khí gas nhà tắt mở thiết bị nhà Điểm đề tài có hệ thống xử lý trời mưa, điều khiển thiết bị qua điện thoại Smartphone điều khiển thiết bị thông qua Internet vi MỤC LỤC Trang phụ bìa Trang Nhiệm vụ đồ án tốt nghiệp i Phiếu nhận xét giáo viên hướng dẫn ii Phiếu nhận xét giáo viên phản biện iii Lời mở đầu iv Lời cảm ơn v Tóm tắt vi Mục lục vii Danh mục từ viết tắt .xii Danh mục bảng biểu xiii Danh mục hình ảnh biểu đồ xiv CHƯƠNG 1: DẪN NHẬP 1.1 Lý chọn đề tài 1.2 Hướng giải vấn đề .2 1.3 Giới hạn đề tài 1.4 Nội dung đề tài 1.5 Ý nghĩa thực tiễn 1.6 Đối tượng nghiên cứu 1.7 Dàn ý, phương tiện phương án thực hiện: 1.7.1 Dàn ý 1.7.2 Phương tiện phương án thực 1.8 Tình hình nghiên cứu ngồi nước CHƯƠNG 2: TỔNG QUÁT VỀ NGÔI NHÀ THÔNG MINH 2.1 Khái niệm hệ thống nhà thông minh 2.2 Các tiêu kỹ thuật nhà thông minh vii 2.CHƯƠNG TRÌNH CODE CỦA ARDUINO #include #include #include #include #include Servo myservo1; Servo myservo2; Servo myservo3; int pos = 0; int pos1 = 0; int pos2 = 0; int bien; int sensorValue = 0; int sensorValue1 = 0; int sensorValue2 = 0; int quangtro = A0; int cbmua = A1; int cbgas= A4; #define TRIGGER_PIN A2 #define ECHO_PIN A3 #define MAX_DISTANCE 200 #define PWRpin NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); String textSMS; String phoneNumber="0984142420"; 85 LiquidCrystal lcd(7, 6, 5, 4, 3, 2); Password password = Password( "4321" ); const byte ROWS = 4; // Four rows const byte COLS = 4; // Three columns // Define the Keymap char keys[ROWS][COLS] = { {'1','2','3','C',}, {'4','5','6','B',}, {'7','8','9','A',}, {'*','0',' ','D',} }; // Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins byte rowPins[ROWS] = {25, 24, 23, 22}; //connect to the row pinouts of the keypad byte colPins[COLS] = {28, 27, 26, 29}; //connect to the column pinouts of the keypad const int buttonPin = 50; int buttonState = 0; // Create the Keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ myservo1.attach(9); myservo2.attach(10); myservo3.attach(11); pinMode(buttonPin, INPUT); 86 pinMode(52, OUTPUT); pinMode(53, OUTPUT); lcd.begin(16, 2); pinMode(PWRpin,OUTPUT); SIM900power(); Serial.begin(9600); keypad.addEventListener(keypadEvent); //add an event listener for this keypad keypad.setDebounceTime(250) MonitorSerial.print("Connection test : "); GetResponse("AT",1000); MonitorSerial.print("Set static mode: "); GetResponse("AT+CWMODE=1",1000); MonitorSerial.println("Connect to router: "); connectWiFi("THESON", "38969447"); MonitorSerial.println("Set the multiple connection: "); GetResponse("AT+CIPMUX=1",2000); MonitorSerial.print("set the server of port 8888: "); GetResponse("AT+CIPSERVER=1,8888",2000); MonitorSerial.print("Get IP address : "); GetResponse("AT+CIFSR", 1500); } void loop(){ keypad.getKey(); buttonState = digitalRead(buttonPin); //pin 50 if (buttonState == HIGH) { lcd.clear(); 87 } phongngu(); nhabep(); ngoaitroi(); chongtrom(); khigas(); webserver1(); } void phongngu() { int uS = sonar.ping(); bien=uS / US_ROUNDTRIP_CM; if ((bien > 0) && (bien 900 ) { CallSomeone("0984142420"); delay(2000); } } void CallSomeone(String phonenumber) { Serial.print("ATD"); Serial.print(phonenumber); Serial.print(";"); Serial.print("\r\n"); delay(30000); Serial.print("ATH\r\n"); // hang up } void SIM900power(){ digitalWrite(PWRpin, LOW); delay(1000); digitalWrite(PWRpin, HIGH); delay(2000); digitalWrite(PWRpin, LOW); 89 delay(9000); // waiting for Finding network } void ngoaitroi() { delay(10); sensorValue1 = analogRead(cbmua); //PIN A1 if (sensorValue1 < 500) { for(pos2 = 90; pos2 < 180; pos2 += 1) { myservo1.write(pos2); delay(15); } } else { for(pos2; pos2 > 90; pos2 -= 1) { myservo1.write(pos2); delay(15); } } } void khigas() //pin A4 { delay(10); sensorValue2 = analogRead(cbgas); //PIN A4 if (sensorValue2 < 500) 90 { } } void keypadEvent(KeypadEvent eKey){ switch (keypad.getState()){ case PRESSED: lcd.print(eKey); switch (eKey){ case ' ': guessPassword(); break; case '*': password.reset(); lcd.clear(); default: password.append(eKey); } }} void guessPassword(){ if (password.evaluate()){ digitalWrite(52, HIGH); lcd.print("VALID PASSWORD "); password.reset(); //resets password after correct entry delay(600); lcd.print("Welcome"); delay(2000); lcd.clear(); for(pos = 90; pos < 180; pos += 1) // goes from degrees to 180 degrees { myservo1.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position 91 } delay(5000); for(pos; pos>90; pos-=1) // goes from 180 degrees to degrees { myservo1.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } } else{ digitalWrite(52,LOW); lcd.print("INVALID PASSWORD "); password.reset(); //resets password after INCORRECT entry delay(600); lcd.clear(); } }//KHOI TAO WEBSERVER void webserver1() { int ledState = LOW; int ch_id, packet_len; char *pb; if (ledState == 0) {tt = "DEN DANG TAT";} else {tt = "DEN DANG MO";} EspSerial.readBytesUntil('\n', buffer, BUFFER_SIZE); if(strncmp(buffer, "+IPD,", 5)==0) { // request: +IPD,ch,len:data 92 MonitorSerial.println(buffer); sscanf(buffer+5, "%d,%d", &ch_id, &packet_len); if (packet_len > 0) { / read serial until packet_len character received pb = buffer+5; while(*pb!=':') pb++; pb++; if (strncmp(pb, "GET /on ", 8) == 0) { MonitorSerial.print(millis()); MonitorSerial.print(" : "); MonitorSerial.println(buffer); MonitorSerial.print( "get led from ch :" ); MonitorSerial.println(ch_id); delay(100); clearSerialBuffer(); ledState = HIGH; digitalWrite(ledPin, ledState); homepage(ch_id); } else if (strncmp(pb, "GET /off ", 9) == 0) { MonitorSerial.print(millis()); MonitorSerial.print(" : "); MonitorSerial.println(buffer); MonitorSerial.print( "get led from ch :" ); MonitorSerial.println(ch_id); delay(100); 93 clearSerialBuffer(); ledState = LOW; digitalWrite(ledPin, ledState); homepage(ch_id); } else if (strncmp(pb, "GET / ", 6) == 0) { MonitorSerial.print(millis()); MonitorSerial.print(" : "); MonitorSerial.println(buffer); MonitorSerial.print( "get Status from ch:" ); MonitorSerial.println(ch_id); delay(100); clearSerialBuffer(); homepage(ch_id); } } } clearBuffer(); } void homepage(int ch_id) { String Header; Header = "HTTP/1.1 200 OK\r\n"; Header += "Content-Type: text/html\r\n"; 94 Header += "Connection: close\r\n"; //Header += "Refresh: 5\r\n"; String Content; Content = "WEB DIEU KHIEN THIET"; Content += "MO DEN"; Content += "TAT DEN"; Content += "TRANG THAI HD : "; Content += String(ledState); Content += ""; Header += "Content-Length: "; Header += (int)(Content.length()); Header += "\r\n\r\n"; EspSerial.print("AT+CIPSEND="); EspSerial.print(ch_id); EspSerial.print(","); EspSerial.println(Header.length()+Content.length()); delay(10); if (EspSerial.find(">")) { EspSerial.print(Header); EspSerial.print(Content); delay(10); } } // Get the data from the WiFi module 95 // and send it to the debug serial port String GetResponse(String AT_Command, unsigned long wait) { String tmpData; unsigned long nowtime; nowtime = millis (); EspSerial.println(AT_Command); while ( millis () - nowtime < wait) { if (EspSerial.available() >0 ) { inchar = EspSerial.read(); MonitorSerial.print(inchar); tmpData += inchar; } } if ( tmpData.indexOf(AT_Command) > -1 ) tmpData = ""; else tmpData.trim(); // xóa khoảng trắng bên return tmpData; } boolean hardReset() { String tmpData; digitalWrite(ESP8266_CHPD,LOW); delay(100); 96 digitalWrite(ESP8266_CHPD,HIGH); delay(1000); while ( EspSerial.available() > ) { char c = EspSerial.read(); tmpData +=c; EspSerial.write(c); if ( tmpData.indexOf("Ready") > -1 ) { //Serial.println("Ready"); clearBuffer(); return 1; } } } void clearSerialBuffer(void) { while ( EspSerial.available() > ) { EspSerial.read(); } } void clearBuffer(void) { for (int i =0;i

Ngày đăng: 22/12/2021, 06:07

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w