Đồ án của nhóm em là tạo ra một hệ thống có thể thực hiện việc mở khóa và quản lý cửa thông qua Internet. Hệ thống bao gồm : Phần mềm là android APP cho phép người dung thực hiện việc đóng mở cửa từ xa bằng cách nhập mã số hoặc quét mã QR. Phần cứng gồm các thiết bị: LCD (Hiển thị QR code), SERVO (Kéo khóa cửa), Loa (Báo động). Kết quả đạt được: Thiết bị đã có thể kết nối và điều khiển được qua ứng dụng Android, giúp cho việc thao tác trở nên dễ dàng và tiện lợi hơn. Đáp ứng được một phần yêu cần đặt ra ban đầu cho hệ thống. I. Giới thiệu đề tài 1. Mô tả. Hệ thống này cho phép người dùng có thể mở khóa cửa nhà mình thông qua Android App và quản lý được lịch sử mở khóa. 2. Mục tiêu chính. Tạo ra một ứng dụng trên Android cho phép người dùng đăng nhập vào đó, sau đó kết nối với hệ thống khóa cửa nhà mình để có thể điều khiển và giám sát chúng. Làm cho các thiết bị có trong hệ thống của có thể nhận được các yêu cầu từ người dùng và sau đó thực thi các yêu cầu này
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN *** BÁO CÁO ĐỒ ÁN LẬP TRÌNH HỆ THỐNG VÀ VI ĐIỀU KHIỂN ĐỀ TÀI: Mở Khóa Cửa Bằng QR Code Thơng Qua Android App Giáo viên hướng dẫn : TS Ninh Khánh Duy Sinh viên thực : Đặng Xuân Thắng - 16.11A(16T3) Nguyễn Đức Hiển - 16.11A(15T1) Nguyễn Viết Sơn - 16.11A(16T3) Đà Nẵng, 4-2019 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn MỤC LỤC LỜI MỞ ĐẦU DANH MỤC HÌNH VẼ Error! Bookmark not defined TÓM TẮT ĐỒ ÁN I Giới thiệu đề tài Mô tả Mục tiêu 3 Giải pháp II Phân tích đề tài Phần A – Bộ kết nối wifi .8 Quản lý việc kết nối đến wifi gia đình Kết nối với Firebase .12 Phần B: Bộ điều khiển thiết bị 13 Hiển thị QR Code LCD Nokia 5110 14 Điều khiển Servo để đóng/mở cửa 14 Điều Khiển Loa, LED 15 III Giải pháp triển khai 15 IV Kết đạt 18 Đánh giá kết luận 19 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn LỜI MỞ ĐẦU Ngày nay, ngành khoa học kĩ thuật ngày phát triển, với nhu cầu địi hỏi người ngày nâng cao nhiều lĩnh vực đời sống xã hội Trong có nhu cầu sống tiện nghi, thông minh Hiện tại, Công nghệ thông tin người ta quan tâm nhắc đến nhiều hết phần thiếu sống văn minh, tri thức Máy vi tính, thiết bị di động với phần mềm công cụ đắc lực giúp ta quản lý, tổ chức, xếp, điều khiển xử lý cơng việc cách nhanh chóng xác Là sinh viên ngành Cơng nghệ thơng tin, chúng em có hội nghiên cứu sâu vào bước tạo sản phẩm thơng qua Đồ án Lập trình hệ thống Vi điều khiển Thời gian vừa qua, số khu dân cư dãy trọ địa bàn TP Đà Nẵng liên tục xảy vụ trộm Điều đáng nói kẻ gian dùng chùm chìa khố "vạn năng" để mở cửa đột nhập vào nhà dân trộm cắp Sự an toàn sử dụng ổ khóa thơng thường đặt dấu hỏi lớn? Để giải vấn đề nhóm đồ án chúng em đưa ý tưởng xây dựng thống khóa cửa thơng minh cho phép người dùng mở khóa thơng qua SmartPhone, quản lí lịch sử đóng mở khóa cửa, báo động có kẻ gian đột nhập Chúng em xin chân thành cảm ơn thầy TS Ninh Khánh Duy, giảng viên trường Đại Học Bách Khoa – Đại Học Đà Nẵng bảo tận tình q trình làm đồ án Tuy có nhiều cố gắng q trình thực hiện, khơng tránh khỏi thiếu sót Chúng em mong nhận đóng góp ý kiến thầy Chúng em xin cam đoan nội dung báo cáo nhóm thực hiện, khơng có chép, nội dung chép trích dẫn cụ thể Nhóm sinh viên thực Đặng Xuân Thắng Nguyễn Đức Hiển Nguyên Viết Sơn Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn TÓM TẮT ĐỒ ÁN Đồ án nhóm em tạo hệ thống thực việc mở khóa quản lý cửa thông qua Internet Hệ thống bao gồm : Phần mềm android APP cho phép người dung thực việc đóng mở cửa từ xa cách nhập mã số quét mã QR Phần cứng gồm thiết bị: LCD (Hiển thị QR code), SERVO (Kéo khóa cửa), Loa (Báo động) Kết đạt được: Thiết bị kết nối điều khiển qua ứng dụng Android, giúp cho việc thao tác trở nên dễ dàng tiện lợi Đáp ứng phần yêu cần đặt ban đầu cho hệ thống I Giới thiệu đề tài Mô tả Hệ thống cho phép người dùng mở khóa cửa nhà thơng qua Android App quản lý lịch sử mở khóa Mục tiêu Tạo ứng dụng Android cho phép người dùng đăng nhập vào đó, sau kết nối với hệ thống khóa cửa nhà để điều khiển giám sát chúng Làm cho thiết bị có hệ thống nhận yêu cầu từ người dùng sau thực thi yêu cầu Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Giải pháp Sơ đồ khối giải thuật : Hình 1.3.1 Sơ đồ khối giải thuật Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Về phần cứng Tên linh kiện Hình ảnh minh họa Mơ tả tham số kĩ thuật -WeMos D1 board mạch phát triển dựa Module Esp8266-12E thiết kế theo tiêu chuẩn board mạch Arduino UNO, tương thích với Arduino IDE NodeMCU -WeMos D1 tích hợp Wifi, dễ dàng thực ứng dụng thu thập liệu điều khiển thiết bị thông qua Wifi WeMos D1 R1 -WeMos D1 R1 có 11 chân I/O có Interrupt/PWM/I2C/Onewire, trừ chân D0 -Động có tốc độ phản ứng nhanh, tích hợp sẵn Driver điều khiển động cơ, dễ dàng điều khiển góc quay phương pháp điều độ rộng xung PWM - Servo sg90 có trọng lượng 9g ,hoạt động mức điện áp 4,26V Servo sg90 - Servo sg90 có tốc độ quay 60độ/ 0.3s -LCD Nokia 5110 sử dụng vi điều khiển PCD8544, thiết kế vơi chế độ hiển thị hình graphic 84 cột 48 hàng LCD Nokia 5110 - PCD8544 giao tiếp với vi điều khiển qua loạt chân bus cung cấp sẵn -Loa SFM-27 có đường kính 30mm, dày 15mm - hoạt động điện áp 3-24V.có điện áp định mức 12V Loa SFM-27 - Mức âm thanh: ≥ 85dB Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Giải thích chức phần cứng Chúng em lựa chọn sử dụng board mạch WeMOS D1 R1 để kết nối với mạng Wifi gia đình từ điều khiển hệ thống thơng qua Internet đồng thời điều khiển thiết bị Servo, LCD, Loa, LED, Tiếp đến phần kéo cửa, bọn em sử dụng Servo SG90, để thực chức đóng mở khóa cửa Phần giao tiếp với người sử dụng, bọn em sử dụng LCD Nokia 5510 để hiển thị QR Code để người dùng qt thơng qua Android App Để báo hiệu cho người dùng biết trạng thái cửa bọn em sử dụng đèn LED đỏ, xanh để hiển thị trạng thái cửa Cuối cùng, để cảnh báo người dùng lạ cố tình quét QR Code để mở cửa bọn em sử dụng Loa để báo hiệu nhằm giúp người hàng xóm phát trộm làm chúng hoang mang Sơ đồ nối mạch : Servor SG90 Hình 1.3.2 - Sơ đồ nối mạch hệ thống mở/khóa cửa Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Ở mạch trên, Servo SG90 có chức đóng mở khóa, có dây gồm dây nguồn 5v, dây GND dây tín hiệu kết nối với chân D8 WeMos D1 R1 LCD Nokia 5510 có chức hiển thị QR Code để người dùng tương tác, có chân bao gồm chân nguồn 5V, chân đèn nối với chân GND, chân GND chân tín hiệu ( RST, CE, DC, DIN,CLK) nối với chân D2, D1, D6, D7, D5 WeMos D1 R1 Loa dùng để báo hiệu quét sai mã lần, có chân gồm chân 5v nối với chân D9 WeMos D1 R1 để điều khiển chân GND Hai LED dùng để báo hiệu trạng thái cửa, LED có chân gồm chân 5v nối với D3 D4 WeMos chân GND Về Phần mềm: Bọn em xây dựng Android App sử dụng firebase để realtime tốt nhằm thực thi mở / khóa cửa tức có u cầu từ người dùng Kết nối WeMOS D1 R1 đến firebase để nhận lệnh tức từ người dùng Một số hình ảnh Android App: Hình – Giao diện App danh sách thành viên gia đình lịch sử quét họ Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn II Phân tích đề tài Như sơ đồ nối mạch đề cập hệ thống bọn em bao gồm phần : Bộ kết nối wifi (WeMos D1 R1) Bộ điều khiển thiết bị ( WeMos D1 R1, Servo SG90, LCD Nokia 5110, Load, LED) Chi tiết phần bọn em trình bày rõ phía Phần A – Bộ kết nối wifi Để vấn hành hệ thống WeDos D1 R1 phải giải số vấn đề sau: Phải Kết nối đến mạng wifi gia đình cho phép kết nối mạng wifi khác người dùng đổi mật khẩu/SSID wifi kết nối Phải kết nối với firebase để nhận yêu cầu từ người dùng Để giải vấn đề đặt bọn em làm sau Quản lý việc kết nối đến wifi gia đình Ý tưởng thực Đầu tiên người dùng muốn kết nối mạng wifi với WeMos D1 R1 người dùng phải kết nối đến wifi WeMos D1 R1 phát sau đó, truy cập vào địa ip Wedos D1 R1 kết nối đến wifi mà muốn kết nối, điều nhằm giúp quản lý tốt phần kết nối wifi cho WeDos D1 R1 mạng wifi gia đình có thay đổi Cách thực Để thực ý tưởng bọn em làm sau: Thiết lập cho WeMos D1 R1 chế độ Access Point ( Điểm truy cập), lúc người dùng thấy điểm truy cập wifi có tên teamVDK hình Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Hình 2.1.1 – Hiển thị Access Point để người dùng kết nối vào Lúc người dùng kết nối với mạng wifi với mật mà bọn em cấp cụ thể “12345678” Sau đăng nhập xong người dùng truy cập vào địa IP “192.168.4.1” (đây địa IP mặc định WeDos D1 R1 mạng LAN) trình duyệt thấy giao diện Hình 2.1.2 – Trang chủ quản lý kết nối wifi WeMos D1 R1 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Sau đó, người dùng lựa chọn Configure WiFi chọn mạng wifi muốn kết nối, sau nhập vào mật cục wifi hình Hình 2.1.3 – Màn hình chọn điểm truy cập nhập vào thông tin cần thiết Sau nhập vào SSID mật trang web chuyển đến hình kết nối bên Hình 2.1.4 – Màn hình sau kết nối với mạng wifi 10 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Nếu mà SSID mật xác người dùng vào phần quản lý wifi máy khơng cịn thấy Access Point teamVDK Cịn khơng người dùng thấy Access Point teamVDK lúc người dùng kết nối lại với teamVDk thực lại Hình 2.1.5 – Danh sách wifi thiết bị người dùng Bên trái kết nối thành công, bên phải thất bại Ở cách thức để người dùng kết nối mạng wifi với WeMos D1 R1 Tiếp theo em trình bày chi tiết mã nguồn để thực chức Phần header: #include #include #include #include "WiFiManager.h" 11 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn //SSID Password cua Access Point #define SSID_NAME "teamVDK" #define PASSWORD "12345678" Trong phần em khai báo thư viện cần thiết có thư viện WiFiManager ( thư viện tốt dễ sử dụng dùng để kết nối wifi cho WeMos D1 R1) phần SSID Password Access Point mà WeMos D1 R1 phát Để kiểm tra liệu thiết bị đăng nhập vào mạng gia đình chưa , em dùng đoạn mã if (!wifiManager.autoConnect(SSID_NAME, PASSWORD)) { Serial.println("failed to connect and hit timeout"); ESP.reset(); delay(1000); } Trong trường hợp thiết bị chưa đăng nhập vào mạng wifi chuyển sang Mode Access Point với tên thiết bị teamVDK có mật 12345678 Kết nối với Firebase Ý tưởng thực Bọn em lập trình để WeMos D1 R1 nhận liệu từ firebase gửi liệu lên firebase Sau thực u cầu có firebase Ví dụ em muốn thực khóa cửa em phải lấy giá trị key “current-check” giá trị “true” e kéo mở cửa ra, cịn khơng kéo đóng lại Cách thức thực Để làm chức bọn em làm sau: Phần Header: #include #define FIREBASE_HOST "smartdoor-5a13c.firebaseio.com" #define 12 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn FIREBASE_AUTH "nNJDxaoyuRKmqI1J94AeEabXS0fZoMEsALVLKXDC" String id = "aRziBsWTF3d5mSExaYpcEwDvXFM2"; Ở phần header bọn em khai báo thư viện firebase cần sử dụng sau thơng số cần thiết như: FIREBASE_HOST: Địa project firebase FIREBASE_AUTH: Khóa xác thực cho project Id: id chủ nhà đặt hệ thống khóa Để lấy liệu từ firebase bọn em đến vị trí cần lấy liệu sau sử dụng phương thức get để lấy dử liệu mang làm việc String path = "Houses/" + id; FirebaseObject housesObj = Firebase.get(path); if (Firebase.failed()) { Serial.print("Khong the lay du lieu!"); Serial.println(Firebase.error()); return; } String current = housesObj.getString("current_check"); Serial.print(current); Tương tự phần lấy liệu, phần đưa liệu lên firebase bọn em đến vị trí cần đưa liệu lên sau sử dụng phương thức set Firebase.setString(path + "/is_speaker","false"); Phần B: Bộ điều khiển thiết bị Sau nhận liệu từ Firebase em trình bày trên, em xin trình bày đến phần mã lệnh để điều khiển thiết bị Servo, LCD, Loa, LED WeMos D1 R1 xử lý số công việc đây: Hiển thị QR Code hình LCD Nokia 5110 Điều khiển Servo để đóng mở cửa Điều khiển Loa, LED có yêu cầu 13 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Tiếp theo em cụ thể vào phần Hiển thị QR Code LCD Nokia 5110 Để hiển thị thông tin lên LCD Nokia 5110 với WeMoS D1 R1 cần có thư viện hổ trợ Ở e sử dụng thư viện Adafruit Ý tưởng đem ảnh có QR Code đem chuyển đổi mảng byte sau hiển trị lên LCD Nokia 5110 Phần Header: #include #include #include "qrcode.c" //LCD Nokia 5110 const int8_t RST_PIN = D2; const int8_t CE_PIN = D1; const int8_t DC_PIN = D6; Adafruit_PCD8544 display = Adafruit_PCD8544(DC_PIN, CE_PIN, RST_PIN); Ở phần header em khai báo thư viện cần thiết chân LCD Nokia 5110 nối với WeMos D1 R1 Để hiển thị QR Code sau dịch thành mảng byte em dụng phương thức drawBitmap thư viện Phần hiển thị QR Code LCD: void lcd5110(){ display.begin(); display.setContrast(60); delay(1000); display.clearDisplay(); display.drawBitmap(20, 0, qrcode, 48, 48, 1); display.display(); } Điều khiển Servo để đóng/mở cửa Để điều khiển Servo ta sử dụng thư viện Arduino Servo.h 14 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Ý tưởng mà giá trị key “current_check” true mở cửa cịn false đóng lại Phần Code: #include //SERVO Servo gServo; gServo.attach(D8); gServo.write(0); String current = housesObj.getString("current_check"); Serial.print(current); if( current == "true"){ gServo.write(0); digitalWrite(D3,LOW); digitalWrite(D4,HIGH); }else{ gServo.write(90); digitalWrite(D3,HIGH); digitalWrite(D4,LOW); } Ở em khai báo thư viện chân kết nối WeMos D1 R1, sau kiểm tra biến check thực đóng/mở cửa cách quay góc 90 độ Điều Khiển Loa, LED Tương tự phần điều khiển Servo em kiểm tra biến check sau thực việc hiển thị lên III Giải pháp triển khai Ở phần em trình bày chi tiết cách mà bọn em thiết lập, kết nối lập trình cho mạch hoạt động Tiếp theo, em trình bày việc triển khai dự án, phần em giới thiệu App SmartDoor mà em viết dành riêng cho đồ án App Android em code ngôn ngữ Java sử dụng server Firebase tính realtime độ bảo mật Điểm khác biệt đồ án bọn em so với 15 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn dự án thực tế tương tự phần tiện dụng, người dùng quản lý hoạt động mở khóa nhà từ xa phát người cố tình vào nhà cửa Đây điểm nhấn đồ án bọn em mong muốn tạo sản phẩm ứng dụng vào thực tế Về App Android thực số tính sau: Đăng kí quản lí tài khoản người dung Quản lý lịch sử mở khóa Thực chức mở khóa cách nhập mã số Thực chức mở khóa cách quét mã QR Đăng kí, đăng nhập, qn mật Hình 3.1 – Giao diện App Đăng kí, đăng nhập, quên mật Tính mở khóa cửa nhanh mở khóa cách quét mã QR code 16 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Hình 3.2 – Giao diện mở khóa cửa nhanh quét QR code Quản lý quyền cho admin(thêm, sửa, xóa nhà), quản lý thành viên gia đình: 17 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Hình 1.4.6 – Giao diện App Quản lý quyền cho admin(thêm, sửa, xóa nhà), quản lý thành viên gia đình IV Kết đạt Qua thời gian nghiên cứu tìm hiểu bọn em làm kết đây: 18 Đồ án LTHT & VĐK Xuân Thắng – Đức Hiển – Viết Sơn Xây dựng Android App phép người dùng quản lý thiết bị người dùng Có thể mở, khóa cửa thơng qua Android App Lập trình Wedos D1 R1 kết nối với mạng wifi gia đình kết nối vào mạng wifi Lập trình Wedos D1 R1 điều khiển Servo LCD Nokia 5110, Loa LED Vẫn gặp số vấn đề khóa hệ thống mạng bị lỗi điện, đề xuất sử dụng ổ khóa gắn vào cửa dùng chìa khóa để mở thủ cơng hệ thống gặp cố Đánh giá kết luận Qua thời gian nghiên cứu tìm hiểu thực hiện, thiết bị kết nối điều khiển qua ứng dụng Android, giúp cho việc thao tác trở nên dễ dàng tiện lợi hơn, dựa vào đáp ứng phần yêu cần đặt ban đầu cho thiết bị Trong trình làm đồ án thời gian vất vả quãng thời gian bọn em học nhiều kiến thức bổ ích thực tế Trong thời gian bọn em cố gắng hoàn thiện để thiết bị hoạt động ổn định Nhóm đồ án xin chân thành cảm ơn! 19 ... sử mở khóa Thực chức mở khóa cách nhập mã số Thực chức mở khóa cách quét mã QR Đăng kí, đăng nhập, quên mật Hình 3.1 – Giao diện App Đăng kí, đăng nhập, qn mật Tính mở khóa cửa nhanh mở. .. phép người dùng mở khóa cửa nhà thơng qua Android App quản lý lịch sử mở khóa Mục tiêu Tạo ứng dụng Android cho phép người dùng đăng nhập vào đó, sau kết nối với hệ thống khóa cửa nhà để điều... hệ thống thực việc mở khóa quản lý cửa thơng qua Internet Hệ thống bao gồm : Phần mềm android APP cho phép người dung thực việc đóng mở cửa từ xa cách nhập mã số quét mã QR Phần cứng gồm