Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 94 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
94
Dung lượng
2,18 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM ĐỒ ÁN TỐT NGHIỆP HỆ THỐNG QUẢN LÝ RA VÀO NGÀNH: KỸ THUẬT ĐIỆN TỬ, TRUYỀN THÔNG GIẢNG VIÊN HƯỚNG DẪN: Th.S PHẠM HÙNG KIM KHÁNH Sinh viên thực hiện: Cao Phương Bắc MSSV: Lớp: 1711010052 17DDTA1 TP Hồ Chí Minh, 09/2021 LỜI CẢM ƠN Trong suốt q trình học tập, hồn thành đồ án tốt nghiệp Hệ thống quản lý vào, em nhận nhiều hướng dẫn tận tình quý báu quý thầy cô, anh chị bạn Với lòng biết ơn sâu sắc em xin bày tỏ lời cảm ơn đến: Ban giám hiệu nhà trường Đại học Cơng Nghệ Thành Phố Hồ Chí Minh (HUTECH) Viện kỹ thuật HUTECH tạo điều kiện tốt để em hoàn thành tốt đồ án tốt nghiệp Em xin cảm ơn người thầy Th.S Phạm Hùng Kim Khánh hướng dẫn hết lòng giúp đỡ, bảo ban, động viên tạo điều kiện thuận lợi để em hoàn thành tốt đồ án tốt nghiệp Xin chân thành cảm ơn thầy cô hội động chấm thi có góp ý để em hồn thiện đồ án cách tốt kinh nghiệm cho chuyên ngành sau Cảm ơn anh chị khóa bạn giúp đỡ em nhiều trình tìm tài liệu nghiên cứu để hồn thành đồ án tốt nghiệp Xin cảm ơn công ty Panasonic AVC Networks nơi em thực tập giúp em có kiến thức thực tế vơ bổ ích giúp đồ án trở nên hoàn thiện Xin cảm ơn gia đình ln bên động viên giúp đỡ việc học tập để ngày hôm hoàn thành đồ án quan trọng đời sinh viên ii MỤC LỤC PHIẾU ĐĂNG KÝ TÊN ĐỀ TÀI ĐATN PHIẾU GIAO NHIỆM VỤ LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC CÁC TỪ VIẾT TẮT vi DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, HÌNH ẢNH vii LỜI MỞ ĐẦU 1 Tính cấp thiết đề tài Tình hình nghiên cứu Mục đích nghiên cứu Nhiệm vụ nghiên cứu Phương pháp nghiên cứu Kết đạt Kết cấu đồ án Chương GIỚI THIỆU 1.1 Internet of Things lịch sử hình thành (IOT) 1.1.1 Các thành phần hệ thống IOT 1.1.2 Các công nghệ sủ dụng phổ biến IoT 1.1.3 Các đặc tính riêng yêu cầu hệ thống IOT 1.1.4 Một số ứng dụng IOT thực tế 1.2 Công nghệ mạng WI-FI 1.2.1 Cách hoạt động phổ biến WI-FI 1.2.2 Chuẩn kết nối WI-FI phổ biến 1.2.3 Bảo mật WI-FI Chương 10 TỔNG QUAN GIẢI PHÁP 10 iii 2.1 Các giải pháp 10 2.1.1 Quản lý thẻ RFID 10 2.1.2 Quản lý vân tay 10 2.1.3 Quản lý nhận diện khuôn mặt 11 2.2 Kết luận giải pháp 12 Chương 13 PHƯƠNG PHÁP GIẢI QUYẾT 13 3.1 Khắc phục khuyết điểm 13 3.1.1 Hệ thống cấp quyền trực tiếp 13 3.1.2 Hệ thống sử dụng kết nối nguồn 13 3.1.3 Hệ thống cảnh báo có người xâm nhập trái phép ngồi 13 3.2 Tổng kết phương pháp giải 13 Chương 14 QUY TRÌNH THIẾT KẾ 14 4.1 Sơ đồ khối toàn hệ thống 14 4.2 Phần cứng 18 4.2.1 ESP32-CAM 18 4.2.2 Module ESP8266 Nodemcu Lua CP2102 19 4.2.3 Module cảm biến chuyển động PIR HC-SR501 20 4.2.4 Khóa chốt điện từ LY-03 22 4.3 Phần mềm 23 4.3.1 Ứng dụng Blynk 23 4.3.2 Web Sever 25 4.3.3 Giao thức HTTP 27 4.3.4 Giao thức TCP/IP 28 4.3.5 Ngơn ngữ lập trình Arduino 29 Chương 31 THI CƠNG 31 5.1 Tính tốn thiết kế 31 iv 5.1.1 Sơ đồ nguyên lý toàn hệ thống 31 5.1.2 Nguyên lý hoạt động 31 5.2 Thi công sản phẩm 32 5.2.1 Thi công phần cứng sản phẩm 32 5.2.2 Thi công phần mềm sản phẩm 34 5.3 Chạy thử sản phẩm 39 5.3.1 Phần cứng 39 5.3.2 Phần mềm 40 Chương 41 ĐÁNH GIÁ KẾT QUẢ VÀ KẾT LUẬN 41 6.1 Kết đạt 41 6.2 Hướng phát triển 41 TÀI LIỆU THAM KHẢO 42 PHỤ LỤC MÃ CHƯƠNG TRÌNH 43 v DANH MỤC CÁC TỪ VIẾT TẮT STT Ký hiệu Nguyên nghĩa IoT Internet of Things HTML HyperText Markup Language RFID Radio Frequency Identification WI-FI Wireless Fidelity M2M Machine to Machine vi DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, HÌNH ẢNH HÌNH TRANG Hình 1.1 Tổng quan đa dạng IoT Hình 1.2 Hình ảnh minh hoạ Smart Home sử dụng hệ thông IoT Hình 1.3 Ảnh minh họa Smart car Hình 1.4 Ảnh minh họa quản lý từ xa IoT Hình 1.5 Các thiết bị thơng minh kết nối WI-FI Hình 1.6 Mơ hình kết nối WI-FI Hình 2.1 Quản lý vào RFID 10 Hình 2.2 Quản lý vào vân tay 11 Hình 2.3 Quản lý vào nhận diện khn mặt 11 Hình 4.1 Sơ đồ khối tồn hệ thống 14 Hình 4.2 Sơ đồ khối nguồn 15 Hình 4.3 Sơ đồ khối ESP8266 Node MCU 15 Hình 4.4 Sơ đồ khối xử lý ESP32-CAM (1) 16 Hình 4.5 Sơ đồ khối xử lý ESP32-CAM (2) 16 Hình 4.6 Sơ đồ khối thiết bị 17 Hình 4.7 Tín hiệu phát chẩn OUT phát người qua 17 Hình 4.8 Hình ảnh ESP32-CAM 18 Hình 4.9 Sơ đồ chân ESP32-CAM 18 Hình 4.10 Hình ảnh ESP8266 Nodemcu Lua CP2102 19 Hình 4.11 Sơ đồ chân ESP8266 Nodemcu Lua CP2102 20 Hình 4.12 Module cảm biến chuyển động PIR HC-SR501 21 Hình 4.13 Sơ đồ chân Module cảm biến chuyển động PIR HC-SR501 21 Hình 4.14 Khóa chốt điện từ LY-03 22 Hình 4.15 Ứng dụng Blynk 23 Hình 4.16 Mơ hình đơn giản ứng dụng Blynk 24 vii Hình 4.17 Ảnh minh họa Web Server 25 Hình 4.18 Mơ hình Web Sever 26 Hình 4.19 Phương thức hoạt động giao thức HTTP 27 Hình 4.20 Mơ hình giao thức TCP/IP 28 Hình 4.21 Arduino UNO 30 Hình 4.22 Arduino NANO 30 Hình 4.23 Phần mềm lập trình Arduino IDE 30 Hình 5.1 Sơ đồ ngun lý tồn hệ thống 31 Hình 5.2 PCB1 nguồn, ESP8266 khóa 33 Hình 5.3 PCB2 ESP32-CAM(1) 33 Hình 5.4 PCB3 ESP32-CAM(2) 33 Hình 5.5 Lưu đồ giải thuật tồn hệ thống 34 Hình 5.6 Lưu đồ giải thuật khối ESP32-CAM (2) 35 Hình 5.7 Lưu đồ giải thuật khối ESP32-CAM (1) 36 Hình 5.8 Lưu đồ giải thuật khối ESP8266 NODE MCU 37 Hình 5.9 Giao diện Web Sever 38 Hình 5.10 Giao diện ứng dụng Blynk 39 Hình 5.11 Mạch ESP8266 nguồn 39 Hình 5.12 Mạch ESP32-CAM (1) 39 Hình 5.13 Mạch ESP32-CAM (2) 40 Hình 5.14 Khi có người đột nhập 40 Hình 5.15 Khi có người bấm chng 40 viii LỜI MỞ ĐẦU Tính cấp thiết đề tài Trong thời kì ngày nay, nhu cầu riêng tư an tồn ln nhu cầu thiết yếu Ví dụ: Các doanh nghiệp muốn kho lưu trữ an tồn, cần kiểm sốt người vào, có xâm nhập mà khơng cho phép thông báo đến người quản lý để giải nhanh tránh rủi ro Gia đình hay làm, để trẻ em nhà mà có người lạ vào bất an Phịng riêng cá nhân không muốn người khác vào Vấn đề trộm cắp vấn đề nhức nhối xã hội, Vì lĩnh vực đời sống cần riêng tư an toàn nên phải có giải pháp quản lý người vào thơng báo có người xâm nhập khơng có cho phép Từ lý nên em định chọn đề tài “Hệ thống quản lý vào” Tình hình nghiên cứu Hiện thị trường có camera giám sát vào thẻ cá nhân biện pháp có kẻ hở dẫn đến rủi ro tệ cắp, trộm thẻ để vào, camera phổ biến quay cảnh xảy không thông báo đến người quản lý khu vực Ngồi khơng tích hợp đóng mở cửa từ xa, điện kết nối internet khơng thể hoạt động Nếu chi phí lắp đặt cao Để giải vấn đề nên em thực đồ án Mục đích nghiên cứu Mục đích nghiên cứu đồ án để tạo hệ thống an toàn cho nơi mà muốn riêng tư an toàn quản lý người vào đồng thời thơng báo đến người quản lý có người xâm nhập không phép Nhiệm vụ nghiên cứu Hệ thống thực nhiệm vụ sau: Đóng mở cửa từ xa Internet Khi người muốn vào phịng bấm chng, hệ thống chụp ảnh người bấm đưa điện thoại người quản lý người ủy nhiệm mở cửa khơng mở người lạ Khi có người lạ xâm nhập trái phép, hệ thống gửi chụp hình ảnh thơng báo đến điện thoại người quản lý đồng thời lưu lại ảnh người xâm nhập vào thẻ nhớ muốn truy xuất sau Khi điện hệ thống chuyển qua dùng điện dự phịng để đóng mở cửa Phương pháp nghiên cứu Đồ án thực ứng dụng Internet of Things (IOT), sử dụng internet để kết nối chia sẻ thông tin từ hệ thống điện thoại thơng minh Ngồi ra, đồ án cịn ứng dụng phần Web sever Nghiên cứu phần cứng ESP32-CAM, ESP8266 Node MCU Để lập trình xử lý thơng qua phần mềm Arduino Cùng với linh kiện điện tử khác hệ thống Kết đạt Hệ thống hoạt động với thiết kế ý tưởng, nhiều thiếu sót nên hệ thống hoạt động chưa mượt mà số lỗi nhỏ trình sử dụng Kết cấu đồ án Đồ án gồm chương: - Chương 1: Giới thiệu - Chương 2: Tổng quan giải pháp - Chương 3: Phương pháp giải - Chương 4: Quy trình thiết kế - Chương 5: Thi công - Chương 6: Đánh giá kết kết luận Serial.println("Writed to EEPROM!"); Serial.print("SSID: "); Serial.println(ssid); Serial.print("PASS: "); Serial.println(pass); String s = "Wifi configuration saved!"; webServer.send(200, "text/html", s);} void restart_ESP(){ ESP.restart();} void clear_EEPROM(){ Serial.println("Clear EEPROM!"); for (int i = 0; i < 512; ++i) { EEPROM.write(i, 0); delay(10); } EEPROM.commit(); String s = "Device has been reset!"; webServer.send(200,"text/html", s);} 72 Mã mạch ESP32-CAM (1) #include "esp_camera.h" #include #include #include #define CAMERA_MODEL_AI_THINKER // Has PSRAM #include "camera_pins.h" #define PIR 13 #define LED #define MODE 16 #define OFF 12 const char* ssid = "Hoang Uu Tu"; const char* password = "094769025"; char auth[] = "jpssSnsV2guEqsJhh2im2z7gZ2d5DjrD"; //sent by Blynk String local_IP; void startCameraServer(); #include "Arduino.h" #include "FS.h" 73 #include "soc/soc.h" #include "soc/rtc_cntl_reg.h" #include "driver/rtc_io.h" #include #define EEPROM_SIZE // Pin definition for CAMERA_MODEL_AI_THINKER #define PWDN_GPIO_NUM 32 #define RESET_GPIO_NUM -1 #define XCLK_GPIO_NUM #define SIOD_GPIO_NUM 26 #define SIOC_GPIO_NUM 27 #define Y9_GPIO_NUM 35 #define Y8_GPIO_NUM 34 #define Y7_GPIO_NUM 39 #define Y6_GPIO_NUM 36 #define Y5_GPIO_NUM 21 #define Y4_GPIO_NUM 19 #define Y3_GPIO_NUM 18 74 #define Y2_GPIO_NUM #define VSYNC_GPIO_NUM 25 #define HREF_GPIO_NUM 23 #define PCLK_GPIO_NUM 22 int pictureNumber = 0; void takePhoto() { digitalWrite(LED, HIGH); delay(200); uint32_t randomNum = random(50000); Serial.println("http://"+local_IP+"/capture?_cb="+ (String)randomNum); Blynk.setProperty(V1, "urls", "http://"+local_IP+"/capture?_cb="+(String)randomNum); digitalWrite(LED, LOW); delay(1000); } void luuSD(){ if(!SD_MMC.begin()){ Serial.println("SD Card Mount Failed"); 75 return; } uint8_t cardType = SD_MMC.cardType(); if(cardType == CARD_NONE){ Serial.println("No SD Card attached"); return; } camera_fb_t * fb = NULL; fb = esp_camera_fb_get(); if(!fb) { Serial.println("Camera capture failed"); return; } EEPROM.begin(EEPROM_SIZE); pictureNumber = EEPROM.read(0) + 1; String path = "/Hinh " + String(pictureNumber) +".jpg"; fs::FS &fs = SD_MMC; Serial.printf("Picture file name: %s\n", path.c_str()); File file = fs.open(path.c_str(), FILE_WRITE); if(!file){ 76 Serial.println("Failed to open file in writing mode"); } else { file.write(fb->buf, fb->len); // payload (image), payload length Serial.printf("Saved file to path: %s\n", path.c_str()); EEPROM.write(0, pictureNumber); EEPROM.commit(); } file.close(); esp_camera_fb_return(fb); delay (1000); return; } void setup() { Serial.begin(115200); pinMode(LED,OUTPUT); Serial.setDebugOutput(true); Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; 77 config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; 78 if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return;} sensor_t * s = esp_camera_sensor_get(); if (s->id.PID == OV3660_PID) { s->set_vflip(s, 1); // flip it back s->set_brightness(s, 1); // up the brightness just a bit s->set_saturation(s, -2); // lower the saturation } s->set_framesize(s, FRAMESIZE_QVGA); 79 WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print(".");} Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); local_IP = WiFi.localIP().toString(); Serial.println("' to connect"); Blynk.begin(auth, ssid, password);} void loop() { Blynk.run(); if(digitalRead(OFF) == HIGH){ if(digitalRead(MODE) == HIGH){ if(digitalRead(PIR) == HIGH){ Serial.println("Send Notification"); 80 Blynk.notify("AI ĐĨ ĐÃ VÀO PHỊNG CỦA BẠN "); takePhoto(); delay (1000); luuSD(); delay(1000); }}}} Mã mạch ESP32-CAM (2) #include "esp_camera.h" #include #include #include #define CAMERA_MODEL_AI_THINKER // Has PSRAM #include "camera_pins.h" #define BUTTON 13 #define PHOTO 14 #define LOCK 12 #define LED const char* ssid = "Hoang Uu Tu"; 81 const char* password = "094769025"; char auth[] = "xdhqc-ZvAWyh_9WsTaJ8QOPrvj_9mkeW"; //sent by Blynk String local_IP; void startCameraServer(); void takePhoto(){ digitalWrite(LED, HIGH); delay(200); uint32_t randomNum = random(50000); Serial.println("http://"+local_IP+"/capture?_cb="+ (String)randomNum); Blynk.setProperty(V1, "urls", "http://"+local_IP+"/capture?_cb="+(String)randomNum); digitalWrite(LED, LOW); delay(1000);} void setup() { Serial.begin(115200); pinMode(LOCK,OUTPUT); pinMode(LED,OUTPUT); Serial.setDebugOutput(true); 82 Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; 83 config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } sensor_t * s = esp_camera_sensor_get(); if (s->id.PID == OV3660_PID) { 84 s->set_vflip(s, 1); // flip it back s->set_brightness(s, 1); // up the brightness just a bit s->set_saturation(s, -2); // lower the saturation } s->set_framesize(s, FRAMESIZE_QVGA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); local_IP = WiFi.localIP().toString(); Serial.println("' to connect"); Blynk.begin(auth, ssid, password);} void loop() { Blynk.run(); 85 if(digitalRead(BUTTON) == HIGH){ Serial.println("Send Notification"); Blynk.notify("Ai bấm chng ngồi cửa "); } if(digitalRead(PHOTO) == HIGH){ Serial.println("Capture Photo"); takePhoto(); delay(1000); } if(digitalRead(LOCK) == HIGH){ Serial.println("Unlock Door"); } } 86 ... Hình 2.2 Quản lý vào vân tay 2.1.3 Quản lý nhận diện khuôn mặt Cách quản lý sử dụng nhận diện khuôn mặt để quản lý, tương tự vân tay hay RFID cách quản lý có độ bảo mật cao Hình 2.3 Quản lý vào nhận... chuông, hệ thống chụp ảnh camera hệ thống gửi cho người quản lý thông qua smart phone Nếu người phép vào người quản lý mở cửa từ xa cho người sử dụng 3.1.2 Hệ thống sử dụng kết nối nguồn Hệ thống. .. giải pháp quản lý người vào thông báo có người xâm nhập khơng có cho phép Từ lý nên em định chọn đề tài ? ?Hệ thống quản lý vào? ?? Tình hình nghiên cứu Hiện thị trường có camera giám sát vào thẻ cá