(Đồ án hcmute) ứng dụng công nghệ iot quản lý căn hộ

131 4 0
(Đồ án hcmute) ứng dụng công nghệ iot quản lý căn hộ

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ỨNG DỤNG CÔNG NGHỆ IOT QUẢN LÝ CĂN HỘ GVHD: TRƯƠNG NGỌC ANH SVTH: NGUYỄN HUY HOÀNG MSSV: 14141457 SKL 0 Tp Hồ Chí Minh, tháng 07/2018 an 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 BÌA ĐỒ ÁN TỐT NGHIỆP ỨNG DỤNG CÔNG NGHỆ IOT QUẢN LÝ CĂN HỘ SVTH : NGUYỄN HUY HỒNG MSSV: 14141457 Khóa : 2014 Ngành : CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - TRUYỀN THÔNG GVHD : ThS TRƯƠNG NGỌC ANH Tp Hồ Chí Minh, tháng năm 2018 an ĐỒ ÁN TỐT NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -Tp Hồ Chí Minh, ngày 17 tháng năm 2018 NHIỆM VỤ ĐỒ ÁN MÔN HỌC Họ tên sinh viên: Ngành: Công nghệ kỹ thuật điện tử - truyền thông Giảng viên hướng dẫn: Th S Trương Ngọc Anh Ngày nhâ ̣n đề tài: 10/3/2018 MSSV: Lớp: 14141CLDT1 ĐT: Ngày nộp đề tài: 18/7/2018 Tên đề tài: Ứng dụng công nghệ IOT quản lý giám sát hộ Các số liệu, tài liệu ban đầu: Kiến thức môn Mạch điện, Điện tử bản, Điện tử thông tin, Vi xử lý, hệ thống nhúng, Nội dung thực hiê ̣n đề tài: • • • • Giới thiệu yêu cầu Thiết kế hệ thống Thi cơng mạch viết chương trình Viết báo cáo Sản phẩm: GIẢNG VIÊN HƯỚNG DẪN i an ĐỒ ÁN TỐT NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên: Nguyễn Huy Hoàng MSSV: 14141457 Ngành: Công nghệ kỹ thuật điện tử - truyền thông Tên đề tài: Ứng dụng công nghệ IOT quản lý giám sát hộ Họ tên Giáo viên hướng dẫn: Trương Ngọc Anh NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: ……………… (Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 2018 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) ii an ĐỒ ÁN TỐT NGHIỆP CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên: Nguyễn Huy Hoàng MSSV: 14141457 Ngành: Công nghệ kỹ thuật điện tử - truyền thông Tên đề tài: Ứng dụng công nghệ IOT quản lý giám sát hộ Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: ……………… (Bằng chữ: ) Tp Hồ Chí Minh, ngày tháng năm 2017 Giáo viên phản biện (Ký & ghi rõ họ tên) iii an ĐỒ ÁN TỐT NGHIỆP LỜI NÓI ĐẦU Thực Đồ án tốt nghiệp nhiệm vụ bắt buộc quan trọng sinh viên kỹ thuật học kì cuối Qua việc làm đồ án giúp kỹ sư tương lai trau dồi thêm nhiều kỹ trước trường Đó việc ứng dụng kiến thức lý thuyết học giảng đường học thực hành phịng thí nghiệm, thơng qua giúp sinh viên khoa học kỹ thuật thể sức sáng tạo vơ bờ mình, đề tài hay chí cịn giúp ích cho xã hội, đất nước Đối với sinh viên ngành Điện tử cơng nghiệp nói riêng, Đồ án tốt nghiệp có ý nghĩa quan trọng đồ án thể rõ nét học sinh viên bốn năm giảng đường đại học Đồ án tốt nghiệp giúp sinh viên rèn luyện khả thiết kế mạch, đọc datasheet linh kiện, kỹ vẽ PCB, kỹ thi công mạch in bên cạnh giúp sinh viên tìm hiểu làm quen với công nghệ IOT Trong thời đại “Internet of Things” này, việc thực đồ án tốt nghiệp q giá giúp sinh viên tự trau dồi, trang bị kiến thức kĩ năng, kiến thức IOT thật đáng quý để sinh viên xin việc làm sau Với đề tài “Ứng dụng công nghệ IOT quản lý giám sát hộ” này, sinh viên hy vọng đóng góp chút ứng dụng sản phẩm đến với sống iv an ĐỒ ÁN TỐT NGHIỆP LỜI CẢM ƠN Chân thành cảm ơn Ban giám hiệu trường ĐH Sư phạm kỹ thuật tạo điều kiện sở vật chất tốt để em học tập trau dồi, em cảm ơn sâu sắc đến đội ngũ thầy cô giảng viên khoa Điện - Điện tử dạy em suốt năm học trường Cảm ơn gia đình bạn bè tạo điều kiện thời gian tài để em hồn thành đồ án Đặc biệt cảm ơn đến thầy Trương Ngọc Anh hướng dẫn, hỗ trợ em tận tình suốt thời gian thực Đồ án Tốt nghiệp, vạch định hướng rõ ràng đồ án tốt nghiệp để em tránh mắc phải sai lầm Cảm ơn bạn Huỳnh Minh Quân giúp nhiều thiết kế web kiến thức bổ ích IOT, cảm ơn bạn Lê Đạt hỗ trợ mảng điện tử phần cứng Cảm ơn bạn Nguyễn Hải Bằng lặn lội với xuống Hóc Mơn để học web Chân thành cảm ơn tất Tp Hồ Chí Minh, ngày … tháng … năm 2018 Sinh viên v an ĐỒ ÁN TỐT NGHIỆP MỤC LỤC BÌA i NHIỆM VỤ ĐỒ ÁN MÔN HỌC i PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii LỜI NÓI ĐẦU iv LỜI CẢM ƠN v MỤC LỤC vi DANH SÁCH HÌNH VÀ BẢNG ix CHƯƠNG 1: TỔNG QUAN 1.1 GIỚI THIỆU 1.1.1 Đặt vấn đề 1.2 MỤC TIÊU CỦA ĐỀ TÀI 1.3 GIỚI HẠN CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .3 2.1 GIỚI THIỆU VỀ CÁC THIẾT BỊ SỬ DỤNG TRONG ĐỀ TÀI: 2.2 GIỚI THIỆU VỀ PHẦN CỨNG: 2.2.1 Vi xử lý trung tâm: 2.2.2 Cảm biến ánh sáng quang trở CDS: 2.2.3 Cảm biến thân chuyển động : 2.2.4 Cảm biến nhận dạng vân tay: 2.2.5 Cảm biến khí ga khói: 11 2.2.6 Bàn phím ma trận 4x4: 12 2.2.7 Module Relay Opto cách ly : .13 2.2.8 LCD 14 2.2.9.MODULE CHUYỂN GIAO TIẾP LCD SANG I2C 15 vi an ĐỒ ÁN TỐT NGHIỆP 2.2.10.MODULE BLUETOOTH HC-05 16 2.3.CÁC CHUẨN TRUYỀN DỮ LIỆU .17 2.4.1 UART 17 2.4.2.I2C 17 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG .19 3.1 SƠ ĐỒ KHỐI HỆ THỐNG 19 3.1.1 Yêu cầu khối 20 3.2 TÍNH TỐN THIẾT KẾ HỆ THỐNG 21 3.2.1 Thiết kế Khối cảm biến 21 3.2.2 Thiết kế khối truyền liệu 23 3.2.3 Thiết kế khối hiển thị 23 3.2.4 Khối mở cửa: 25 3.2.5 Thiết kế khối cảnh báo cháy, trộm: 25 3.2.6 Thiết kế khối công suất: 26 3.2.7 Tính tốn thiết kế cho khối nguồn: 26 CHƯƠNG 4: THI CÔNG HỆ THỐNG 29 4.1 THI CÔNG HỆ THỐNG: 29 4.1.1 Thi công board điều khiển: 29 4.1.2 Thi công mô hình hộ: .30 4.2 LẬP TRÌNH CHO HỆ THỐNG: .32 4.2.1 Lưu đồ điều khiển: 32 4.2.2 Phần mềm lập trình vi điều khiển: 39 4.2.3 Lập trình điều khiển giọng nói qua app android .44 4.2.4 Giới thiệu ngơn lập trình WEBSERVER 50 4.2.5 Giới thiệu phần mềm lập trình Webserver: .54 4.2.6 Lập trình cho ESP8266V1: .63 CHƯƠNG 5: KẾT QUẢ,NHẬN XÉT VÀ ĐÁNH GIÁ .73 5.1 KẾT QUẢ ĐẠT ĐƯỢC: 73 vii an ĐỒ ÁN TỐT NGHIỆP 5.1.1 Biết cách sử dụng arduino Mega 2560 73 5.1.2 Biết cách sử dụng module WIFI ESP8266V1: .73 5.1.3 Biết viết ứng dụng Android sử dụng trợ lý giọng nói google: 73 5.1.4 Biết viết trang web đơn giản: 74 5.1.5 Biết truyền liệu lên webserver: 74 5.1.6 Biết sử dụng module SIM900A: .74 5.2 KẾT QUẢ THỰC NGHIỆM: 75 5.2.1 Mở cửa password nhập keypad 4x4: .75 5.2.2 Nhập vân tay để mở cửa .77 5.2.3 Cảnh báo khói, gas 79 5.2.4 Cảnh báo trộm : 80 5.2.5 Đèn sân tự động bật tắt theo ánh sáng bên ngoài: 81 5.2.6 Điều khiển thiết bị module Bluetooth .82 5.2.7 Giao diện trang web .84 5.2.8 Điều khiển thiết bị qua internet 86 TÀI LIỆU THAM KHẢO 90 PHỤ LỤC 91 viii an ĐỒ ÁN TỐT NGHIỆP uint8_t num = 0; while (num == 0) { while (! Serial.available()); num = Serial.parseInt(); } return num; } void loop(){ checkpass(); myservo.write(0); pir(); quetvantay(); Den_san(); // guesspassvt(); bluetooth(); if(getFingerprintIDez()>=0) { servo(); //DBG("get right finger, open door now!!"); delay(2000); } delay(50); // id= readnumber(); // if (id ==3) // { digitalWrite(densan,HIGH);} } //take care of some special events void pir() { val = digitalRead(inputPin); // đọc giá trị đầu vào if (val == HIGH) // giá trị mức cao.(1) { XIII an ĐỒ ÁN TỐT NGHIỆP //digitalWrite(ledPin, HIGH); // LED On playTone(300, 160); // thời gian chuông kêu delay(150); //sms.SendSMS("+84928073120", "Có trộm"); // if (pirState == LOW) { Serial.println("Motion detected!"); pirState = HIGH; } } else { //digitalWrite(ledPin, LOW); playTone(0, 0); delay(300); if (pirState == HIGH) { Serial.println("Motion ended!"); pirState = LOW; } } } void playTone(long duration, int freq) { duration *= 1000; int period = (1.0 / freq) * 1000000; long elapsed_time = 0; while (elapsed_time < duration) { digitalWrite(pinSpeaker,HIGH); delayMicroseconds(period / 2); digitalWrite(pinSpeaker, LOW); delayMicroseconds(period / 2); elapsed_time += (period); } XIV an ĐỒ ÁN TỐT NGHIỆP } void servo() { myservo.attach(cua); for (pos = 0; pos = 0; pos -= 1) // { // myservo.write(pos); // delay(30); // } // myservo.detach(); } void bluetooth() { 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;} //Thố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 đèn ngủ" ||data == "Bật đèn ngủ"||data == "1") {digitalWrite(denngu, HIGH);} ////////////////////////////////////////////////////// XV an ĐỒ ÁN TỐT NGHIỆP else if(data == "Tắt Đèn Ngủ"||data == "Tắt đèn ngủ"||data=="tắt đèn ngủ"||data == "10") {digitalWrite( denngu, LOW);} if(data == "bật đèn khách" ||data == "Bật đèn khách"||data == "1") {digitalWrite(denkhach, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Đèn Khách"||data == "Tắt đèn khách"||data=="tắt đèn khách"||data == "10") {digitalWrite(denkhach, LOW);} if(data == "bật đèn bếp" ||data == "Bật đèn bếp"||data == "1") {digitalWrite(denbep, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Đèn Bếp"||data == "Tắt đèn bếp"||data=="tắt đèn bếp"||data == "10") {digitalWrite(denbep, LOW);} if(data == "bật đèn" ||data == "Bật đèn"||data == "1") {digitalWrite(densan, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Đèn"||data == "Tắt đèn"||data=="tắt đèn"||data == "10") {digitalWrite(densan, LOW);} if(data == "bật quạt ngủ" ||data == "Bật quạt ngủ "||data == "1") {digitalWrite(quatngu, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Quạt Ngủ"||data == "Tắt quạt ngủ"||data=="tắt quạt ngủ"||data == "10") {digitalWrite(quatngu, LOW);} if(data == "bật quạt khách" ||data == "Bật quạt khách"||data == "1") {digitalWrite(quatkhach, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Quạt Khách"||data == "Tắt quạt khách"||data=="tắt quạt khách"||data == "10") {digitalWrite(quatkhach, LOW);} if(data == "bật quạt bếp" ||data == "Bật quạt bếp"||data == "1") {digitalWrite(quatbep, HIGH);} ////////////////////////////////////////////////////// else if(data == "Tắt Quạt Bếp"||data == "Tắt quạt bếp"||data=="tắt quạt bếp"||data == "10") XVI an ĐỒ ÁN TỐT NGHIỆP {digitalWrite(quatbep, LOW);} data="";}} //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXX void Den_san() { int valas =digitalRead(lighSensor); if (valas == HIGH) digitalWrite(densan,HIGH); else digitalWrite(densan,LOW); } void bat_all() { digitalWrite(denngu, HIGH); digitalWrite(denkhach,HIGH); digitalWrite(denbep, HIGH); //digitalWrite(denngu, HIGH); } void tat_all() { digitalWrite(denngu, LOW); digitalWrite(denkhach, LOW); digitalWrite(denbep, LOW); digitalWrite(quatngu, LOW); digitalWrite(quatkhach, LOW); digitalWrite(quatbep, LOW); } void quetvantay() { getFingerprintIDez(); vantay=finger.fingerID; if (vantay==1) {bat_all(); servo(); finger.fingerID==3; } if (vantay==3) XVII an ĐỒ ÁN TỐT NGHIỆP {tat_all(); myservo.write(180); // đóng cửa } } //XXXXXXXXXXXXXXX FINGERPRINT SETUP XXXXXXXXXX // uint8_t getFingerprintID() { uint8_t p = finger.getImage(); switch (p) { case FINGERPRINT_OK: Serial.println("Image taken"); break; case FINGERPRINT_NOFINGER: Serial.println("No finger detected"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); return p; case FINGERPRINT_IMAGEFAIL: Serial.println("Imaging error"); return p; default: Serial.println("Unknown error"); return p; } // OK success! p = finger.image2Tz(); switch (p) { case FINGERPRINT_OK: Serial.println("Image converted"); break; case FINGERPRINT_IMAGEMESS: Serial.println("Image too messy"); return p; case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Communication error"); XVIII an ĐỒ ÁN TỐT NGHIỆP return p; case FINGERPRINT_FEATUREFAIL: Serial.println("Could not find fingerprint features"); return p; case FINGERPRINT_INVALIDIMAGE: Serial.println("Could not find fingerprint features"); return p; default: Serial.println("Unknown error"); return p; } // OK converted! p = finger.fingerFastSearch(); if (p == FINGERPRINT_OK) { Serial.println("Found a print match!"); } else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Communication error"); return p; } else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Did not find a match"); return p; } else { Serial.println("Unknown error"); return p; } // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); return finger.fingerID; } // returns -1 if failed, otherwise returns ID # int getFingerprintIDez() { uint8_t p = finger.getImage(); XIX an ĐỒ ÁN TỐT NGHIỆP if (p != FINGERPRINT_OK) return -1; p = finger.image2Tz(); if (p != FINGERPRINT_OK) return -1; p = finger.fingerFastSearch(); if (p != FINGERPRINT_OK) return -1; // found a match! Serial.print("Found ID #"); Serial.print(finger.fingerID); Serial.print(" with confidence of "); Serial.println(finger.confidence); return finger.fingerID; } void invalidCode() { clearScreen(); lcd.setCursor(0,0); lcd.print("****************"); lcd.setCursor(0,1); lcd.print(" SAI MAT KHAU!"); delay(5000); displayCodeEntryScreen(); } void checkpass() { int l; char key = keypad.getKey(); if (int(key) != 0) { lcd.setCursor(10,1); lcd.print(" "); XX an ĐỒ ÁN TỐT NGHIỆP lcd.setCursor(10,1); for (l=0; l

Ngày đăng: 02/02/2023, 09:36

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

Tài liệu liên quan