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

THIẾT kế hệ THỐNG điều KHIỂN và GIÁM sát THIẾT bị sử DỤNG nền TẢNG BLYNK CHO SMARTHOME

131 10 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 131
Dung lượng 4,4 MB

Nội dung

Họ tên sinh viên: Đinh Thành Nghĩa, Lê Mạnh Pháp Tên đề tài: Thiết kế hệ thống điều khiển thiết bị tự động sử dụng tảng Blynk cho Smarthome ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ SỬ DỤNG NỀN TẢNG BLYNK CHO SMARTHOME Người hướng dẫn: Sinh viên thực hiện: Mã sinh viên: Lớp: ThS Phạm Văn Phát Đinh Thành Nghĩa Lê Mạnh Pháp 1811505120132 1811505120138 18D3 Đà Nẵng, 06/2022 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT KHOA ĐIỆN - ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ CHUYÊN NGÀNH: KỸ THUẬT ĐIỆN TỬ ĐỀ TÀI: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT THIẾT BỊ SỬ DỤNG NỀN TẢNG BLYNK CHO SMARTHOME Người hướng dẫn: Sinh viên thực hiện: Mã sinh viên: Lớp: ThS Phạm Văn Phát Đinh Thành Nghĩa Lê Mạnh Pháp 1811505120132 1811505120138 18D3 Đà Nẵng, 06/2022 TÓM TẮT Tên đề tài: THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN GIÁM SÁT THIẾT BỊ SỬ DỤNG NỀN TẢNG BLYNK CHO SMARTHOME Sinh viên thực hiện: Đinh Thành Nghĩa Lê Mạnh Pháp Mã SV: 1811505120132 Lớp: 18D3 Mã SV: 1811505120138 Lớp: 18D3 Đề tài “THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN CÁC THIẾT BỊ SỬ DỤNG NỀN TẢNG BLYNK CHO SMARTHOME” đề tài phù hợp với xu hướng công nghệ sử dụng internet để điều khiển, giám sát thiết bị điện tính bảo mật cho nhà bạn thông qua tảng Blynk App điện thoại Hệ thống sử dụng công nghệ RFID để mở cửa, sử dụng cảm biến nhiệt độ, độ ẩm, cảm biến hồng ngoại để giám sát Kết đạt hệ thống giúp thiết kế hệ thống với mục đích giám sát điều khiển cách thông minh, giúp điều khiển giám sát nhanh chóng dễ dàng, phát cảnh báo cố nhanh, giảm bớt thời gian thực Nội dung mà nhóm thực gồm: Nghiên cứu cách tổng quan module liên quan sở lý thuyết, cách thức hoạt động, thiết kế xây dựng phần mềm, phần cứng Sau kiểm tra kết nối phần cứng phần mềm chạy thử nghiệm, từ hồn thiện kết nối tất thành hệ thống điều khiển từ phần mềm sang phần cứng ngược lại Hệ thống bao gồm chức sau: - Điều khiển thiết bị trực tiếp nút nhấn - Điều khiển thông qua web ứng dụng điện thoại di động (smartphone) - Giám sát thiết bị thông qua web app Blynk Mục đích mà nhóm mong muốn đạt sau hoàn thành đề tài là: - Biết thành thạo lập trình ESP giao tiếp wifi với phần mềm Arduino IDE, giao thức truyền liệu, biết phương pháp điều khiển, giám sát thiết bị cách dễ dàng thuận tiện - Thiết kế giao diện Web phù hợp với đề tài - Giúp nhóm phát triển thêm kỹ nghiên cứu, kỹ làm việc nhóm, tìm tài liệu, tự tin thuyết trình TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HỊA XÃ HƠI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN – ĐIỆN TỬ Độc lập - Tự - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Giảng viên hướng dẫn: ThS Phạm Văn Phát Sinh viên thực : Lê Mạnh Pháp Đinh Thành Nghĩa Mã SV: 1811505120138 Mã SV: 1811505120132 Tên đề tài: Thiết kế hệ thống điều khiển giám sát thiết bị sử dụng tảng Blynk cho Smarthome Các số liệu, tài liệu ban đầu: Số liệu: - Thiết kế hệ thống điều khiển giám sát thiết bị sử dụng tảng Blynk cho - Smarthome Sử dụng ESP8266 kết hợp Còi để cảnh báo có người đột nhập gửi cảnh báo đến người dùng thông qua Module Sim 800L - Sử dụng MFRC522 để đọc thẻ từ RFID việc đóng mở cửa điều khiển từ xa nhờ ESP-01 Điều khiển bật tắt bóng đèn đọc liệu cảm biến thông qua ESP32 Tài liệu: - Tìm hiểu thơng qua trang mạng, tài liệu khảo sát thực tiễn hệ thống Smarthome Tài liệu vi điều khiển Arduino Tài liệu vi điều khiển ESP8266, ESP01 ESP32 Tài liệu loại cảm biến thông dụng, cảm biến hồng ngoại, cảm biến DHT11 Tài liệu tảng Blynk Tài liệu phần mềm IDE ss_epprom(); //So sánh thẻ đưa vào với Eeprom if (demco == && demchua == && demmas == 0) //Nếu thẻ có { // Serial.print(" THE DA CO TRONG EEPROM "); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demco: "); Serial.println(demco); o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; lcd.setCursor(0, 1); lcd.print(" THE DA CO! "); delay(1000); lcd.clear(); chon_menu(); //in(); } else if (demchua > && demco == && demmas == 0) //Nếu thẻ chưa có THÌ LƯU THẺ ĐĨ VÀO EEPROM { tim_zero(); //Tìm vị trí // Serial.print(" THE CHUA CO "); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demchua: "); Serial.print(demchua); // Serial.print(" ID mới: ");Serial.print(id_moi[0]);Serial.print(":");Serial.print(id_moi[1]);Serial.print(":"); // Serial.print(id_moi[2]);Serial.print(":");Serial.println(id_moi[3]); if (diachi_zero == a) //Nếu đoạn từ đến số ô sử dụng ô có GT // a ô cuối lưu thẻ { for (int i = 0; i < 4; i++) { Phụ lục EEPROM.write(diachi_zero, id_moi[i]); diachi_zero = diachi_zero + 1; a = diachi_zero; } EEPROM.write(0, a); //Sau lưu thẻ vào cập nhật số nhớ sử dụng vào ô0 } else if (diachi_zero == n) ////Nếu đoạn từ đến số ô sử dụng CĨ = 0, gán vào n { for (int i = 0; i < 4; i++) //Lưu thẻ vào { EEPROM.write(diachi_zero, id_moi[i]); diachi_zero = diachi_zero + 1; //a = diachi_zero; } diachi_zero = a; } tim_zero(); o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; yes(); lcd.setCursor(0, 1); lcd.print("=> DANG LUU "); delay(1000); analogWrite(dendung, 0); lcd.clear(); chon_menu(); //in(); } Phụ lục if (demmas == && demco == && demchua == 0) //THẺ MASTER quay menu { // Serial.print(" THE NAY LA THE MASTER "); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demchua: "); Serial.print(demchua); // Serial.print(" ID mới: ");Serial.print(id_moi[0]);Serial.print(":");Serial.print(id_moi[1]);Serial.print(":"); // Serial.print(id_moi[2]);Serial.print(":");Serial.println(id_moi[3]); o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; lcd.clear(); menu_tong(); dem_menu = 0; //in(); } } } else if (dem_menu == && dem_tong == && dem == 1) //Nếu chọn XÓA THẺ BẤT KỲ { a = EEPROM.read(0); //đọc ô nhớ xem sử dụng ô nhớ //Serial.print("a: "); Serial.println(a); if (a == 0) //Nếu chưa có thẻ PHỤ { lcd.setCursor(0, 1); lcd.print(" CHUA CO THE "); delay(1000); lcd.clear(); menu_tong(); Phụ lục dem_menu = 0; } else //Nếu có nhiều thẻ PHỤ { if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } for (byte i = 0; i < 4; i++) //Quét thẻ { UID[i] = mfrc522.uid.uidByte[i]; id_moi[i] = UID[i]; } mfrc522.PICC_HaltA(); mfrc522.PCD_StopCrypto1(); ss_epprom(); if (demco == && demchua == && demmas == 0) //thẻ có EEPROM { tim_zero(); //Serial.print(" THE DA CO TRONG EEPROM "); m = m - 4; // Serial.print(" m: "); Serial.print(m); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demco: "); Serial.println(demco); for (int i = 0; i < 4; i++) Phụ lục { EEPROM.write(m, 0); //Serial.print(" m: "); Serial.print(m); m = m + 1; //Serial.print(" m: "); Serial.print(m); } o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; n = 4; lcd.setCursor(0, 1); lcd.print(" DA XOA THE "); delay(1000); lcd.clear(); chon_menu(); tim_zero(); //in(); } else if (demchua > && demco == && demmas == 0) //Thẻ chưa có EEPROM { // Serial.print(" THẺ CHƯA CÓ TRONG EEPROM "); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demco: "); Serial.println(demco); o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; lcd.setCursor(0, 1); lcd.print(" THE CHUA CO "); delay(1000); lcd.clear(); chon_menu(); //in(); } if (demmas == && demco == && demchua == 0) //Là thẻ MASTER Phụ lục { // Serial.print(" THE NAY LA THE MASTER "); // Serial.print(" Zero: "); Serial.print(diachi_zero); // Serial.print(" Demchua: "); Serial.print(demchua); // Serial.print(" ID mới: ");Serial.print(id_moi[0]);Serial.print(":");Serial.print(id_moi[1]);Serial.print(":"); // Serial.print(id_moi[2]);Serial.print(":");Serial.println(id_moi[3]); o = 0; m = 5; moi = 0; demco = 0; demchua = 0; demmas = 0; lcd.clear(); menu_tong(); dem_menu = 0; //in(); } } } else if (dem_menu == && dem_tong == && dem == 1) //Chọn XÓA TẤT thẻ { a = EEPROM.read(0); //đọc ô nhớ xem sử dụng ô nhớ //Serial.print("a: "); Serial.println(a); if (a == 0) //Nếu chưa có thẻ PHỤ { lcd.setCursor(0, 1); lcd.print(" CHUA CO THE "); dem_menu = 0; delay(2000); lcd.clear(); menu_tong(); } Phụ lục else if (a > 0) //Nếu có nhiều thẻ PHỤ { lcd.setCursor(0, 1); lcd.print(" DANG XOA "); for (int diachi = 5; diachi < a; diachi++) //Bắt đầu từ ô đến ô sử dụng { EEPROM.write(diachi, 0); } EEPROM.write(0, 0); //Sau cập nhật vào xóa hết thẻ delay(3000); lcd.clear(); menu_tong(); dem_menu = 0; } diachi_zero = 0; n = 4; a = 0; tim_zero(); //in(); } if (gtlen != macdinh) //Nút lên { if (gtlen == 0) { if (dem == 1) //Lên menu { if (dem_tong = 3) dem_tong = 0; else dem_tong ++; menu_tong(); } delay(100); } macdinh = gtxuong; } if (gtmenu != macdinh) //Nút menu { if (gtmenu == 0) { if (dem == && dem_tong != 0) //Chọn menu Phụ lục { chon_menu(); dem_menu = 1; } else if (dem == && dem_tong == 0) //Nhấn nút BACK để hình { lcd.clear(); manhinh(); dem = 0; } delay(100); } macdinh = gtmenu; } // Serial.print("Tổng: "); Serial.print(tong); // Serial.print(" Đếm menu: "); Serial.print(dem_menu); // Serial.print(" Đếm tổng: "); Serial.print(dem_tong); // Serial.print(" Đếm: "); Serial.print(dem); // Serial.print(" ban dau: "); Serial.println(bandau); } void Json(String khoa) { if (millis() - last >= 500) { // Serial.print("uno gửi:"); DataSend = ""; DataSend = String(trangthailed); Serial.println(DataSend); Phụ lục uno.println(DataSend); last = millis(); } } void ngat() { // digitalWrite(led, digitalRead(led)^1); if (uno.available() > 0) { char val = uno.read(); Serial.print("ESP:"); Serial.println(val); if (val == '1') { trangthailed = 1; digitalWrite(relay, HIGH); analogWrite(dendung,255); Serial.println("LED on"); last = millis(); } else if (val == '0') { trangthailed = 0; digitalWrite(relay, LOW); analogWrite(dendung,0); Serial.println("LED off"); } } Json(String(trangthailed)); Phụ lục } void button (void) { digitalRead(nut); if (digitalRead(nut) == LOW) { delay(20); while (1) { if (digitalRead(nut) == HIGH) { control_led(); delay(300); break; } } } } void control_led(void) { if (trangthailed == 0) { digitalWrite(relay, HIGH); analogWrite(dendung,255); trangthailed = 1; } else if (trangthailed == 1) { Phụ lục digitalWrite(relay, LOW); analogWrite(dendung,0); trangthailed = 0; } } void yes(void) { analogWrite(dendung, 255); analogWrite(coi, 255); delay(200); analogWrite(coi, 0); delay(200); analogWrite(coi, 255); delay(200); analogWrite(coi, 0); } void no(void) { analogWrite(densai, 255); analogWrite(coi, 255); delay(2000); analogWrite(coi, 0); delay(2000); analogWrite(densai, 0); } Code chương trình UART ESP hệ thống 3: //#include //const byte Rx = 14; //d5 Phụ lục //const byte Tx = 12;//d6 //SoftwareSerial esp = SoftwareSerial(Rx, Tx); #define BLYNK_TEMPLATE_ID "TMPLF4gnMNAn" #define BLYNK_DEVICE_NAME "DO AN TOT NGHIEP" #define BLYNK_AUTH_TOKEN "QLgQ51GstzURPI6obdaj0KeeYOxDqVKp" #define BLYNK_FIRMWARE_VERSION #define BLYNK_PRINT Serial #include #include #define KHOA V12 char auth[] = BLYNK_AUTH_TOKEN; char ssid[] = "Redmi Nghia"; char pass[] = "nghia1111"; long last = 0; boolean bt1_state = HIGH; //int p; int trangthailed; void Read_Uno(void); WidgetLED led(V11); BlynkTimer timer; void blinkLedWidget() { if (led.getValue()) { led.off(); } else { Phụ lục "0.1.0" led.on(); } } void setup() { Serial.begin(9600); // esp.begin(9600); Blynk.begin(auth, ssid, pass); timer.setInterval(1000L, blinkLedWidget); last = millis(); } void loop() { Blynk.run(); timer.run(); Read_Uno(); } void Read_Uno(void) { if (Serial.available() > 0) { char In = Serial.read(); // Serial.print("espnhan:"); // Serial.println(In); if (In == '1') { trangthailed = 1; Phụ lục // Serial.println("LED on"); Blynk.virtualWrite(V12, trangthailed); } else if (In == '0') { trangthailed = 0; // Serial.println("LED off"); Blynk.virtualWrite(V12, trangthailed); } } } BLYNK_WRITE(V12) { int p = param.asInt(); Serial.println(String(p)); } Phụ lục ... tài: Thiết kế hệ thống điều khiển giám sát thiết bị sử dụng tảng Blynk cho Smarthome Các số liệu, tài liệu ban đầu: Số liệu: - Thiết kế hệ thống điều khiển giám sát thiết bị sử dụng tảng Blynk cho. .. Phát 12 Thiết kế hệ thống điều khiển giám sát thiết bị sử dụng tảng Blynk cho SmartHome 1.3 Giới thiệu tảng Blynk [3] 1.3.1 Blynk gì? Blynk tảng với ứng dụng hệ điều hành IOS Android để điều khiển. .. tài “THIẾT KẾ HỆ THỐNG ĐIỀU KHIỂN CÁC THIẾT BỊ SỬ DỤNG NỀN TẢNG BLYNK CHO SMARTHOME? ?? đề tài phù hợp với xu hướng công nghệ sử dụng internet để điều khiển, giám sát thiết bị điện tính bảo mật cho

Ngày đăng: 12/08/2022, 10:36

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

TÀI LIỆU LIÊN QUAN

w