1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn mô hình giám sát và điều khiển từ xa sử dụng blynk

78 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

Nội dung

LUẬN VĂN TỐT NGHIỆP KHOA ĐIỆN – ĐIỆN TỬ Tên đề tài : MƠ HÌNH GIÁM SÁT VÀ ĐIỀU KHIỂN TỪ XA SỬ DỤNG BLYNK GVHD:ThS.ĐINH ĐỖ QUANG SVTH:NGUYỄN QUỐC BẢO ( LT31600015) LƢU NHẬT MINH ( LT31600020) XÁC NHẬN CỦA GIÁO VIÊN HƢỚNG DẪN Tp Hồ Chí Minh, ngày 24 tháng 07 năm 2018 CHỮ KÝ CỦA GVHD XÁC NHẬN CỦA GIÁO VIÊN PHẢN BIỆN Tp Hồ Chí Minh, ngày … tháng … năm 2018 CHỮ KÝ CỦA GVPB LỜI CẢM ƠN Em xin gởi lời cảm ơn sâu sắc đến thầy ĐINH ĐỖ QUANG nhiệt tình hƣớng dẫn ln tạo điều kiện để sinh viên nhƣ em có nhìn tổng thể luận văn tốt nghiệp giải đáp thắc mắc mà em chƣa hiểu Nhƣng nói luận văn tốt nghiệp chúng em cần có kiến thức bản, để có kiến thức kết thực tế nhƣ hôm nay, trƣớc hết em xin chân thành cảm ơn quý thầy, cô giáo khoa “Điện-Điện Tử” trƣờng “ĐẠI HỌC CƠNG NGHỆ SÀI GỊN (STU)” giảng dạy trang bị cho em kiến thức bổ ích thực tiễn Qua thời gian làm luận văn tốt nghiệp em tiếp thu đƣợc nhiều kiến thức kinh nghiệm quý báu Những kinh nhiệm giúp em nhiều công việc làm sản phẩm tốt nghiệp theo yêu cầu thầy hƣớng dẫn công việc chuyên môn em sau Tuy có nhiều cố gắng q trình làm luận văn tốt nghiệp nhƣng kiến thức em hạn chế nên em khơng thể tránh khỏi thiếu sót, mong q Thầy, Cơ đóng góp ý kiến em hoàn thành luận văn tốt TĨM TẮT ĐỀ TÀI Tóm tắt đề tài bao gồm :  Thiết lập mơ hình mạng điều khiển, giám sát từ internet/4G đến board điều khiển trung tâm   Board điều khiển trung tâm điều khiển thiết bị thông qua Blynk Hỗ trợ nhu cầu tiện ích nhà  Giúp ngƣời sử dụng chủ động quản lý vận hành thiết bị điện cách hợp lý  Thông qua việc kết nối mạng, để thao tác điều khiển hệ thống cách thông minh, bao gồm: hệ thống đèn ,quạt ,hiển thị thông số từ cảm biến CHƢƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề 1.2 Mục tiêu đề tài 1.3 Nội dung đề tài 1.4 Phạm vi nghiên cứu CHƢƠNG 2: TỔNG QUAN, KIẾN THỨC 2.1 Tổng quan kit ESP8266 NodeMCU 2.1.1 ESP8266 tích hợp mạch nạp CP2102 2.1.2 Sơ đồ chân 2.1.3 Led 2.1.4 Cổng USB 2.1.5 Port nguồn 2.1.6 Port analog in A0 2.2 App Blynk 11 2.2.1 Khái niệm Blynk 11 2.2.2 Nguyên tắc hoạt động 11 2.2.3 Tại nên sử dụng Blynk 11 2.2.4 Giao diện Blynk widget 13 2.2.5 Kết luận Blynk 14 2.3 Phần mềm Arduino IDE 14 2.3.1 Arduino IDE gi? 14 2.3.2 Cài đặt phần mềm Arduino IDE 15 2.3.3 Chức phím phần mềm Arduino IDE 15 CHƢƠNG 3: TÍNH TỐN THIẾT KẾ 16 3.1 Mơ hình sơ đồ khối 16 3.1.1 Sơ đồ bố trí thiết bị 16 3.1.2 Mơ hình nhà 17 3.1.3 Giới thiệu sơ đồ khối hệ thống 18 3.1.4 Chức khối 19 3.2 Tính tốn thiết kế 19 3.2.1 Khối nguồn 19 3.2.2 Khối nút nhấn 20 3.2.3 Khối cảm biến 20 3.2.4 Khối relay 21 3.2.5 Khối ESP 8266 23 3.2.6 Khối tải 23 3.3 Sơ đồ kết nối 25 3.4 Chƣơng trình điều khiển Blynk 25 3.4.1 Đồng kết nối Blynk 25 3.4.2 Thiết kế chƣơng trình Blynk app 26 3.5 Nguyên lý hoạt động 27 CHƢƠNG 4: KẾT QUẢ 31 4.1 Mơ hình nhà hồn thiện 31 4.2 Mạch hoàn thiện 32 4.3 Lƣu đồ giải thuật hệ thống 33 4.4 Kết đề tài nghiên cứu 34 CHƢƠNG 5: KẾT LUẬN 35 5.1 Kết luận 35 5.2 Hƣớng phát triển đề tài 35 PHỤ LỤC 36 Phụ lục 1:CODE chƣơng trình ESP8266 36 Phụ lục 2:Cài đặt chƣơng trình Arduino với ESP8266 63 Cài đặt phần mềm Arduino IDE 63 Chức phím phần mềm Arduino IDE 66 TÀI LIỆU THAM KHẢO 71 CHƢƠNG 1: GIỚI THIỆU ĐỀ TÀI 1.1 Đặt vấn đề - Nhà thông minh nhà đƣợc trang bị hệ thống tự động thơng minh với cách bố trí hợp lý, hệ thống có khả tự điều phối hoạt động ngơi nhà theo thói quen sinh hoạt nhu cầu cá nhân gia chủ Chúng ta hiểu ngơi nhà thơng minh hệ thống chỉnh thể mà đó, tất thiết bị điện tử gia dụng đƣợc liên kết với thiết bị điều khiển trung tâm phối hợp với để thực chức Các thiết bị tự đƣa cách xử lý tình đƣợc lập trình trƣớc, đƣợc điều khiển giám sát từ xa - Giải pháp nhà thông minh biến đồ điện tử bình thƣờng ngơi nhà trở nên thông minh gần gũi với ngƣời dùng hơn, chúng đƣợc kiểm sốt thơng qua thiết bị truyền thông nhƣ điều khiển từ xa, điện thoại di động… ngơi nhà thơng minh đơn giản đƣợc hình dung bao gồm mạng điều khiển liên kết số lƣợng cố định thiết bị điện, điện tử gia dụng nhà chúng đƣợc điều khiển thông qua điều khiển từ xa Chỉ với kết nối đơn giản nhƣ đủ để hài lòng số lƣợng lớn cá nhân có nhu cầu nhà thơng minh mức trung bình - Chúng ta biết phần lớn hộ từ trung bình đến cao cấp sử dụng loại điều khiển từ xa để điều khiển máy lạnh, ti vi…còn lại phần lớn thiết bị khác nhƣ hệ thống đèn, bình nƣớc nóng lạnh…phải điều khiển tay Những việc nhƣ đôi lúc đem lại bất tiện, mà mong muốn có tiện nghi thoải mái hơn, vừa tận hƣởng nằm giƣờng coi ti vi vừa kiểm soát đƣợc hệ thống thiết bị nhà với smartphone hay máy tính bảng - Từ ý tƣởng đề tài nghiên cứu chế tạo sản phẩm thiết bị điều khiển thông minh nhà thông qua mạng internet 3G/4G Tuy khơng với sản phẩm ngồi thị trƣờng nhƣng mơ hình mà nhóm đề xuất đáp ứng đƣợc nhu cầu điều khiển thiết bị nhà nhƣ đèn, quạt, máy bơm nƣớc, máy nóng lạnh… - Để xây dựng mơ hình điều khiển thiết bị từ xa thơng qua internet 3G /4Gcó nhiều phƣơng pháp cơng nghệ đề xây dựng nên mơ hình điều khiển Qua thời gian tìm hiểu nhóm đề tài chọn chƣơng trình Blynk chƣơng trình để điều khiển thiết bị từ xa - Blynk tảng có ứng dụng iOS, Android cho phép điều khiển Arduino, Raspberry Pi, ESP8266 Có thể xây dựng ứng dụng điều khiển cách kéo, thả Widget Cách hoạt động: - Blynk đƣợc thiết kế cho IoT, điều khiển phần cứng từ xa, hiển thị liệu cảm biến, lƣu trữ liệu làm vài điều khác thú vị Blynk gồm phần: Hình 1.1: Sơ đồ Blynk    Blynk App: cho phép tạo giao diện từ Widget có sẵn Blynk Server: truyền tải thông tin Smarthome thiết bị Blynk Server đám mây Blynk cài đặt máy cá nhân Có thể cài đặt Raspberry Pi Blynk Libraries: thƣ viện cung cấp kết nối phần cứng đến server, xử lý lệnh đến - Qua điều cho thấy Blynk chƣơng trình phù hợp để điều khiển từ xa Blynk hoạt động điện thoại tiện lợi trình điều khiển mà không cần PC hay Laptop Blynk app luôn cập nhật nâng cấp hệ thống họ nên hệ thống hoạt động linh hoạt tiện lợi cho ngƣời sừ dụng - Chƣơng trình Blynk thành cơng chƣơng trình họ vào việc xây dựng hệ thống kết nối điều khiển giám sát đƣợc nhiều lập trình viên giới sử dụng Tuy nhiên Việt Nam chƣơng trình lập trình viên sử dụng Do mà nhóm nghiên cứu hệ thống điều khiển giám sát sử dụng Blynk làm đề tài nghiên cứu cho khóa luận kì 1.2 Mục tiêu đề tài Mục tiêu đề tài bao gồm :  Xây dựng mơ hình hệ thống giám sát điều khiển từ xa sử dụng Blynk  Hỗ trợ nhu cầu tiện ích nhà  Giúp ngƣời sử dụng chủ động quản lý vận hành thiết bị điện cách hợp lý  Phục vụ cho việc học tập nghiên cứu phát triển 1.3 Nội dung đề tài Nội dung đề tài mà nhóm thực hiện:  Thiết lập mơ hình mạng điều khiển , giám sát từ internet/4G đến board điều khiển trung tâm      Board điều khiển trung tâm điều khiển thiết bị Xây dựng chƣơng trình điều khiển cho phép điều khiển thông qua Blynk Đọc giá trị cảm biến nhiệt độ độ ẩm Thiết lập chế độ bật tắt theo thời gian định sẵn Tạo thuận tiện trình điều khiển 1.4 Phạm vi nghiên cứu Phạm vi nghiên cứu mà nhóm thực :      Giám sát thông số : nhiệt độ, độ ẩm môi trƣờng , chế độ bật, tắt thiết bị gia đình Thiết bị điều khiển: đèn, quạt, máy lạnh, khóa cửa Số lƣợng thiết bị : thiết bị điều khiển Các loại cảm biến: cảm biến nhiệt độ, độ ẩm Dạng kết nối điều khiển cho thiết bị: internet wifi 4G 57 terminal.println(); terminal.flush(); mondaysunday3=1; Blynk.virtualWrite(V10, 0); //Turn OFF Button Widget Device digitalWrite(ledPin3, LOW); WidgetLED led3(V12);led3.off(); } } void reconnectBlynk() { if (!Blynk.connected()) { if(Blynk.connect()) { BLYNK_LOG("Reconnected"); } else { BLYNK_LOG("Not reconnected"); } } } //************************************************************************** void checkPhysicalButton() { if (digitalRead(btnPin1) == LOW) { // btnState is used to avoid sequential toggles if (btnState1 != LOW) { // Toggle LED state ledState1 = !ledState1; // digitalWrite(ledPin1, ledState1); // Update Button Widget // Blynk.virtualWrite(V2, ledState1); if(ledState1 == HIGH){ Blynk.virtualWrite(V2, 1); 58 Blynk.virtualWrite(V3, 1); mondaysunday=0; digitalWrite(ledPin1, HIGH); WidgetLED led1(V4);led1.on(); terminal.println(); terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); terminal.println("Device is ON"); terminal.println(); terminal.println(); terminal.flush(); } if(ledState1 == LOW){ Blynk.virtualWrite(V2, 0); Blynk.virtualWrite(V3, 1); mondaysunday=0; digitalWrite(ledPin1, LOW); WidgetLED led1(V4);led1.off(); terminal.println(); terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); terminal.println("Device is OFF"); terminal.println(); terminal.println(); terminal.flush(); } } btnState1 = LOW; } else { 59 btnState1 = HIGH; } //************************************************************************** ***/ if (digitalRead(btnPin2) == LOW) { // btnState is used to avoid sequential toggles if (btnState2 != LOW) { // Toggle LED state ledState2 = !ledState2; if(ledState2 == HIGH){ Blynk.virtualWrite(V6, 1); Blynk.virtualWrite(V7, 1); mondaysunday2=0; digitalWrite(ledPin2, HIGH); WidgetLED led2(V8);led2.on(); terminal.println(); terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); terminal.println("Device is ON"); terminal.println(); terminal.println(); terminal.flush(); } if(ledState2 == LOW){ Blynk.virtualWrite(V6, 0); Blynk.virtualWrite(V7, 1); mondaysunday2=0; digitalWrite(ledPin2, LOW); WidgetLED led2(V8);led2.off(); terminal.println(); 60 terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); terminal.println("Device is OFF"); terminal.println(); terminal.println(); terminal.flush(); } } btnState2 = LOW; } else { btnState2 = HIGH; } //************************************************************************** ***/ if (digitalRead(btnPin3) == LOW) { // btnState is used to avoid sequential toggles if (btnState3 != LOW) { // Toggle LED state ledState3 = !ledState3; if(ledState3 == HIGH){ Blynk.virtualWrite(V10, 1); Blynk.virtualWrite(V11, 1); mondaysunday3=0; digitalWrite(ledPin3, HIGH); WidgetLED led3(V12);led3.on(); terminal.println(); terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); 61 terminal.println("Device is ON"); terminal.println(); terminal.println(); terminal.flush(); } if(ledState3 == LOW){ Blynk.virtualWrite(V10, 0); Blynk.virtualWrite(V11, 1); mondaysunday3=0; digitalWrite(ledPin3, LOW); WidgetLED led3(V12);led3.off(); terminal.println(); terminal.println(); terminal.println(); terminal.println("Manual MODE PHYSICAL is ON"); terminal.println("Press ON/OFF button if required"); terminal.println("Device is OFF"); terminal.println(); terminal.println(); terminal.flush(); } } btnState3 = LOW; } else { btnState3 = HIGH; } } //************************************************************************** ***/ void sendSensor() { float h = dht.readHumidity(); 62 float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit if (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); return; } // You can send any value at any time // Please don't send more that 10 values per second Blynk.virtualWrite(V20, h); Blynk.virtualWrite(V21, t); Blynk.virtualWrite(V22, h); Blynk.virtualWrite(V23, t); } void loop() { if (Blynk.connected()) { Blynk.run(); } timer.run(); } 63 Phụ lục 2:Cài đặt chƣơng trình Arduino với ESP8266 Cài đặt phần mềm Arduino IDE - Ta truy cập vào trang web http://arduino.cc/en/Main/Software tải chƣơng trình Arduino IDE phù hợp với hệ điều hành máy bao gồm Windown, Mac OShay Linux Đối với Windown có cài đặt (.exe) Zip, Zip cần giải nén chạy chƣơng trình khơng cần cài đặt - Sau cài đặt xong giao diện chƣơng trình nhƣ sau: Hình 5.1 : Giao diện phần mềm Arduino IDE - Để tiến hành cài đặt thƣ viện chức nạp code cho IDE bạn làm nhƣ sau: Vào File→ Preferences, vào textbox Additional Board Manager URLs thêm đƣờng link sau vào http://arduino.esp8266.com/stable/package_esp8266com_index.json - Click OK để chấp nhận 64 Hình 5.2: Tiến hành cài đặt Arduino - Tiếp theo vào Tool→Board→Boards Manager Hình 5.3 : Chọn Boards Manager cho ESP 8266 - Đợi lát để chƣơng trình tìm kiếm Ta kéo xuống click vào ESP8266 by ESP8266 Community, click vào Install Chờ phần mềm tự động download cài đặt 65 Hình 5.4 : Cài đặt Board Manager Hình 5.5: Quá trình tải liệu Boards Manager - Chọn Board để lập trình cho ESP8266: 66 - Kết nối mudule USB - UART vào máy tính Vào Tool→Board→NodeMCU 1.0(ESP 12E Module), chọn cổng COM tƣơng ứng với module USB-to-UART tƣơng ứng Hình 5.6: chọn cổng nạp cho ESP 8266 Chức phím phần mềm Arduino IDE - Arduino Toolbar: có số button chức chúng nhƣ sau: Hình 5.7: Arduino Toollbar Verify : kiểm tra code có lỗi hay không Upload: nạp code soạn thảo vào Arduino New, Open, Save:Tạo mới, mở Save sketch Serial Momitor : Dây hình hiển thị liệu từ Arduino gửi lên máy tính - Arduino IDE Menu: Hình 5.8: IDE menu 67 File menu Hình 5.9: File menu - Trong file menu quan tâm tới mục Examples nơi chứa code mẫu ví dụ nhƣ: cách sử dụng chân digital, analog, sensor Hình 5.10 : Click example - Edit menu 68 Hình 5.11: Edit menu - Sketch menu: Hình 5.12 : Sketch menu Trong Sketch menu : - Verify/ Compile : chức kiểm tra lỗi code - Show Sketch Folder : hiển thị nơi code đƣợc lƣu - Add File : thêm vào Tap code - Import Library : thêm thƣ viện cho IDE - Tool menu 69 Hình 5.13: Tool menu - Trong Tool menu ta quan tâm mục Board Serial Port - Mục Board : bạn cần phải lựa chọn board mạch cho phù hợp với loại board mà bạn sử dụng Arduino ESP 8266 phải chọn nhƣ hình: Hình 5.14: Chọn Board 70 - Nếu sử dụng loại board khác phải chọn loại board mà có sai code Upload vào chip bị lỗi - Serial Port: nơi lựa chọn cổng Com Arduino Khi cài đặt driver máy tính thông báo tên cổng Com Arduino bao nhiêu, ta việc vào Serial Port chọn cổng Com để nạp code, chọn sai khơng thể nạp code đƣợc 71 TÀI LIỆU THAM KHẢO Các nguồn tham khảo internet      https://community.blynk.cc https://www.blynk.cc/getting-started http://docs.blynk.cc/ https://github.com/blynkkk/blynklibrary/releases/download/v0.5.3/Blynk_Release_v0.5.3.zip https://github.com/blynkkk/blynk-server/releases/download/v0.38.6/server-0.38.6.jar https://www.blynk.cc twitter.com/blynk_app www.facebook.com/blynkapp http://arduino.vn  esp8266.vn  hshop.vn  

Ngày đăng: 03/07/2023, 13:36

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w