Báo cáo THIẾT KẾ BỘ ĐIỀU KHIỂN, GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM VÀ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG QUA MẠNG WIFI

59 375 1
Báo cáo THIẾT KẾ BỘ ĐIỀU KHIỂN, GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM VÀ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG QUA MẠNG WIFI

Đ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

Đề tài trình bày, nghiên cứu, thiết kế hệ thống giám sát nhiệt độ, độ ẩm và điều khiển thiết bị điện thông qua mạng Wifi sử dụng module Esp8266, cảm biến nhiệt độ độ ẩm DHT11, hiển thị giao diện trên điện thoại thông minh, kết hợp hiển thị trên màn hình OLED 0.96 inches. Mạch tích hợp nút nhấn đồng bộ với giao diện trên điện thoại, cho phép bật /tắtbằng cả điện thoại lẫn nút nhấn. Giao diện trên điện thoại hiển thị Nhiệt độ, độ ẩm, biểu đồ nhiệt độ, độ ẩm, trạng thái sensor DHT11, Có có nút nhấn ảo giúp thuận tiện việc bật/ tắt các thiết bị điện. Ngoài ra giao diện còn tích hợp Bộ hẹn giờ Timer giúp người dùng Có thể cài đặt thời gian các thiết Bị điện sáng theo thời gian mong muốn.

BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI NGUYỄN VĂN QUANG ĐỒ ÁN TỐT NGHIỆP NGHÀNH CNKT ĐIỆN TỬ VIỄN THÔNG THIẾT KẾ BỘ ĐIỀU KHIỂN, GIÁM SÁT NHIỆT ĐỘ, ĐỘ ẨM VÀ ĐIỀU KHIỂN THIẾT BỊ ĐIỆN THÔNG QUA MẠNG WIFI CBHD: TS NGUYỄN TIẾN KIỆM Sinh viên: NGUYỄN VĂN QUANG NGÀNH CNKT ĐIỆN TỬ VIỄN Mã số sinh viên: 1141050457 Hà Nội – Năm 2020 LỜI CẢM ƠN Sau thời gian học tập Trường Đại Học Cơng Nghiệp Hà Nội, quản lí quản lí nhà trường, giảng dạy, dìu dắt tận tình tất Thầy Cô, đặc biệt đến từ giảng viên Khoa Điện Tử Em trưởng thành không kiến thức chuyên nghành mà kĩ sống, kĩ giao tiếp… Vận dụng kiến thức học từ thầy cô, bạn tự nghiên cứu, em hoàn thành đồ án tốt nghiệp thời hạn Em xin chân thành cảm ơn quý thầy, Khoa Điện Tử dành tình cảm sâu sắc tới sinh viên, truyền tải kiến thức đến chúng em định hướng nghề nghiệp, kĩ cần thiết để đáp ứng nhu cầu xã hội trước trường Một lần em xin gửi lời cảm ơn sâu sắc đến tất thầy cô khoa Điện Tử, đặc biệt thầy Nguyễn Tiến Kiệm - giáo viên hướng dẫn đồ án tốt nghiệp em, thầy tạo điều kiện thuận lợi để em hoàn thiện đồ án tốt nghiệp Em xin chân thành cảm ơn quý thầy, tồn thể bạn! Sinh viên thực Nguyễn Văn Quang MỤC LỤC DANH MỤC BẢNG BIỂU LỜI NÓI ĐẦU Trong xu phát triển ngành cơng nghệ thơng tin, điện tử, tự động hóa, … bùng nổ mạnh mẽ làm sống người ngày trở nên dễ dàng hoàn thiện Ngơi nhà thơng minh giám sát điều khiển từ xa nhu cầu tất yếu Do em có lựa chọn đề tài “Thiết kế điều khiển, giám sát nhiệt độ, độ ẩm điều khiển thiết bị điện thông qua mạng Wifi” Mục tiêu đề tài điều khiển thiết bị điện smartphone, giám sát thông tin liệu, thông số nhiệt độ, độ ẩm môi trường theo thời gian thơng qua smart phone Q trình thực đề tài theo bước, nghiên cứu tổng quan Arduino, ESP8266, Blynk sử dụng nhà thông minh Sau xây dựng hệ thống mạch điều khiển Trong nghiên cứu em có tham khảo tài liệu cơng nghệ ngồi nước để lựa chọn công nghệ tối ưu phù hợp Nhưng với kiến thức hiểu biết có hạn nên em khơng tránh khỏi sai sót mong thầy đóng góp ý kiến để đề tài em hồn thiện MỞ ĐẦU 1.1 Đặt vấn đề Kỹ thuật Vi điều khiển ngày phát triển với tốc độ chóng mặt, khơng cơng nghệ mà ứng dụng đa dạng khía cạnh sống Nhu cầu sử dụng đầy đủ thiết bị thông minh để phục vụ cho sinh hoạt công việc người ngày lớn Chính vậy, việc ứng dụng kĩ thuật vi điều khiển vào sống ngày giúp thiết bị, máy móc mà người sử dụng ngày trở nên thuận tiện, dễ sử dụng, hiệu công việc ngày nâng cao Đối với chúng ta, nhà nơi gần gũi, thân thiết, việc ứng dụng công nghệ tự động hóa rộng rãi, tất đồ dùng nhà từ phòng ngủ, phòng khách đến nhà vệ sinh gắn điều khiển điện tử kết nối với Internet điện thoại di động, cho phép chủ nhân điều khiển vật dụng từ xa lập trình cho thiết bị nhà hoạt động theo lịch thời gian mong muốn Hình 1 Ngơi nhà thơng minh Nhu cầu quản lí, giám sát nhiệt độ, độ ẩm kết hợp với điều khiển thiết bị điện gia đình việc ứng dụng IOT tốn cho nhà lập trình, phát triển Hơn việc quản lí ngơi nhà smart phone điều khiển thơng qua mạng Wifi lại trở nên cần thiết Nghiên cứu, ứng dụng công nghệ, kĩ thuật lĩnh vực vi điều khiển nói lối mà nhiều người theo đuổi Là sinh viên chuyên nghành Điện tử Trường Đại Học Công Nghiệp Hà Nội (một khoa mũi nhọn trường, với giảng viên giàu tri thức, tâm huyết với nghề, …) em vận dụng kiến thức, kĩ học, rèn luyện dìu dắt thầy cô để ngày hôm nay, em làm đồ án lĩnh vực Đồ án mang tên: “Thiết kế điều khiển, giám sát nhiệt độ, độ ẩm điều khiển thiết bị điện thông qua mạng Wifi “ Sau trình học tập trường, thực tập trải nghiệm cơng ty bên ngồi, em đến định thực phát triển đề tài tính hiệu mà mang lại Cùng với kiến thức học từ phía giáo viên, trải nghiệm, em tự tích lũy kiến thức từ nhiều nguồn để vận dụng tối đa hiểu biết vào đồ án Sản phẩm, kết đạt ngày hôm em khơng lớn lao thành trình tự học tập, trau dồi, vận dụng kiến thức thân vào thực hành Mặc dù em cố gắng để hoàn thành đồ án tốt nghiệp này, tránh khỏi thiếu sót, mong q thầy thơng cảm, góp ý để em hồn thiện thân 1.2 Phương pháp nghiên cứu - Nghiên cứu qua tài liệu hướng dẫn lĩnh vực IOT tác giả nước Hình Ứng dụng IOT sống - Áp dụng kiến thức lập trình học, tự tìm hiểu, để ứng dụng lập trình giao tiếp qua mạng Wifi Hình Mạng Wifi gia đình - Tìm hiểu ngun lí, cấu tạo, tận dụng triệt để chức module, linh kiện để thiết kế mạch điện cách tối ưu nhất, giảm chi phí giá thành gia cơng Hình Sách hướng dẫn tự học Arduino 1.3 Mục tiêu, nhiệm vụ - Tìm hiểu ngơn ngữ, cách sử dụng thư viện, hàm chức năng, … ứng dụng lập trình Arduino - Tìm hiểu cách lập trình module NodeMCU Wifi, giao tiếp qua mạng Wifi - Xây dựng, thiết kế bảng mạch thiết kế phần mềm giám sát smart phone - Mạch cần phải giao tiếp với mạng Wifi thực chức đo nhiệt độ, độ ẩm Hình Máy đo nhiệt độ, độ ẩm hãng EMIN - Phần mềm smart phone giám sát nhiệt độ, độ ẩm, kết hợp điều khiển thiết bị điện với thời gian thực Hình Giám sát nhiệt độ điện thoại - Kiểm tra, đánh giá tính ứng dụng đề tài Hình Tính ứng dụng đề tài CHƯƠNG TỔNG QUAN VỀ CÁC THIẾT BỊ PHẦN CỨNG 2.1 Tổng quan arduino 1.1.1 Giới thiệu chung Arduino [ ] tảng điện tử nguồn mở dựa phần cứng phần mềm dễ sử dụng Các bo mạch Arduino đọc giá trị từ cảm biến, nút nhấn tin nhắn Twitter - biến thành đầu - kích hoạt động cơ, bật đèn led,… Để làm vậy, sử dụng ngơn ngữ lập trình Arduino, phần mềm Arduino (IDE) Arduino sinh ra Học viện Ivrea công cụ nhằm vào sinh viên khơng có tảng điện tử lập trình Tất bo mạch Arduino hoàn toàn nguồn mở, người dùng tự xây dựng cách độc lập ứng dụng chúng với nhu cầu cụ thể Hiện có nhiều loại vi điều khiển, đa số lập trình ngơn ngữ C/C++ Assembly, điều gây khơng khó khăn cho người có kiến thức lập trình điện tử Arduino phát triển nhằm đơn giản hóa việc thiết kế, lắp ráp linh kiện, … để người dùng dễ dàng sử dụng 1.1.1.1 Những ưu điểm Arduino so với tảng khác: - Đa tảng - phần mềm Arduino (IDE) chạy hệ điều hành Windows, Mac OS Linux kể điện thoại Android - Mơi trường lập trình đơn giản, rõ ràng Đối với giáo viên, thuận tiện dựa mơi trường lập trình xử lý, sinh viên học lập trình mơi trường quen với cách thức hoạt động Arduino IDE 1.1.21 Giao diện phần mềm  Giao diện điều khiển giám sát điện thoại: Hình 8: Giao diện điều khiển giám sát App  Giao diện biểu đồ nhiệt độ độ ẩm: Hình 9: Giao diện biểu đồ nhiệt độ độ ẩm  Giao diện điều khiển bật / tắt hẹn cho thiết bị điện điện thoại: Hình 10: Giao diện điều khiển bật / tắt hẹn cho thiết bị điện điện thoại CHƯƠNG KẾT LUẬN 4.1 Ưu điểm mạch: - Mạch đo nhiệt độ, độ ẩm, gửi liệu lên sever Blynk, Esp8266 - Màn hình Oled hiển thị liệu đo cách chân thực (nhiệt độ, độ ẩm) - Phần mềm điện thoại hiển thị giao diện biểu đồ nhiệt độ, nút nhấn ảo giúp điều khiển nhận biết trạng thái on/ off thiết bị điện, có chức hẹn cho thiết bị điện - Các nút nhấn mạch dễ dàng bật tắt thiết bị điện 4.2 Hướng phát triển đề tài - Mạch điều khiển ba thiết bị điện, cần nghiên cứu mở rộng điều khiển nhiều thiết bị - Các nút nhấn để điều khiển bật/ tắt nhỏ, cần thay nút nhấn lớn hơn, thuận tiện cho việc sử dụng - Hiện mạch đo nhiệt độ từ 0-50ºC đo độ ẩm từ 20%-95%, cần tìm hiểu chọn lựa cảm biến có vùng hoạt động lớn TÀI LIỆU THAM KHẢO Tiếng Việt: [ ] Arduino https://vi.wikipedia.org/wiki/Arduino [ ] Esp8266 https://dientu360.com/nodemcu-lua-wifi-esp8266 [ ] DHT11 https://arduinokit.vn/doc-cam-bien-nhiet-do-do-am-dht11-arduino [ ] Màn hình Oled 0.96 inhches http://arduino.vn/bai-viet/1503-gioi-thieu-man-hinh-oled-096-inch-i2c [ ] Module relay https://hshop.vn/products/module-4-relay-voi-opto-coch-ly-5vdc PHỤ LỤC Phần viết chương trình: // -khai báo thư viện sử dụng -#include #include #define BLYNK_PRINT Serial #include #include #include #include #include #include #define RELAY_PIN_1 D6 // chân điều khiển relay #define RELAY_PIN_2 D7 // chân điều khiển relay #define RELAY_PIN_3 D8 // chân điều khiển relay //#define RELAY_PIN_4 10 #define PUSH_BUTTON_1 D2 // chân ESP nhận tín hiệu từ nút bấm #define PUSH_BUTTON_2 D1 // chân ESP nhận tín hiệu từ nút bấm #define PUSH_BUTTON_3 D3 // chân ESP nhận tín hiệu từ nút bấm //#define PUSH_BUTTON_4 #define VPIN_BUTTON_1 V1 // chân ảo cho giao diện Blynk ứng với button #define VPIN_BUTTON_2 V2 // chân ảo cho giao diện Blynk ứng với button #define VPIN_BUTTON_3 với button V3 // chân ảo cho giao diện Blynk ứng //#define VPIN_BUTTON_4 // V4 void checkPhysicalButton(); int relay1State = LOW; int pushButton1State = HIGH; int relay2State = LOW; int pushButton2State = HIGH; int relay3State = LOW; int pushButton3State = HIGH; //int relay4State = LOW; //int pushButton4State = HIGH; // cấu hình kết nối Wifi,Blynk char auth[] = "Hmfq-dTTPblr9JxO9FroqN8TIB6ecZVF"; // mã Auth Blynk char ssid[] = "TP-LINK_26AA"; // Tên Wifi char pass[] = "17013598"; // mật Ưifi //char ssid[] = "MEIZU M6 Note"; //char pass[] = "123456789"; // -Thiết lập ban đầu cho cảm biến, Oled const int DHTPIN = 1; // what pin we're connected to const int DHTTYPE = DHT11; // DHT 11 // Khởi tạo hình thư viện Wire SSD1306 display(0x3C,D4,D5); hình DHT dht(DHTPIN, DHTTYPE); BlynkTimer timer; // WidgetLED led8(V0); // -Hàm setup -void setup(){ Serial.begin(9600); display.init(); display.flipScreenVertically(); display.setFont(ArialMT_Plain_16); display.setTextAlignment(TEXT_ALIGN_LEFT); dht.begin(); // bật cảm biến dht Blynk.begin(auth, ssid, pass); timer.setInterval(1000L, sendSensor); // pinMode(RELAY_PIN_1, OUTPUT); pinMode(PUSH_BUTTON_1, INPUT_PULLUP); digitalWrite(RELAY_PIN_1, relay1State); pinMode(RELAY_PIN_2, OUTPUT); pinMode(PUSH_BUTTON_2, INPUT_PULLUP); digitalWrite(RELAY_PIN_2, relay2State); pinMode(RELAY_PIN_3, OUTPUT); pinMode(PUSH_BUTTON_3, INPUT_PULLUP); digitalWrite(RELAY_PIN_3, relay3State); /* pinMode(RELAY_PIN_4, OUTPUT); pinMode(PUSH_BUTTON_4, INPUT_PULLUP); digitalWrite(RELAY_PIN_4, relay4State); */ // // Setup a function to be called every 100 ms timer.setInterval(300L, checkPhysicalButton); } // void displayWeather(){ //Tạo chức đọc hiển thị nhiệt độ độ ẩm hình OLED float h = dht.readHumidity(); // Đọc độ C float t = dht.readTemperature(); // Đọc độ F float f = dht.readTemperature(true); // kiểm tra xem đọc giá trị có bị lỗi hay không, lỗi return if (isnan(h) || isnan(t) || isnan(f)){ display.clear(); // xóa hình display.drawString(10,0, "Xin hay kiem"); display.drawString(0,20, "tra lai cam bien "); display.drawString(30,40, "bien DHT11"); return; } display.clear(); display.drawString(30, 0, "Weather"); display.drawString(0, 20, "Temp: " + String(t) + "°C"); display.drawString(0, 40, "Humidity: " + String(h) + "%\t"); //display.drawString(0, 40, "Temp: " + String(f) + "°F"); } // void loop(){ Blynk.run(); // chạy blynk code /*display.clear(); display.drawString(30, 0, "DHCNHN"); display.drawString(20, 20, "Khoa Dien Tu"); display.drawString(10, 40, "Quang Nguyen"); display.display(); delay(2000); */displayWeather(); //gọi hàm display Weather display.display(); timer.run(); Blynk.setProperty(V0, "label", " Sensor:OK"); // khởi tạo label giao diện Blynk Blynk.setProperty(V0, "color", "#23C48E"); // bảng mã màu sắc cho LED //GREEN //BLUE "#23C48E" "#04C0F8" //YELLOW "#ED9D00" // RED "#D3435C" //DARK_BLUE "#5F7CD8" led8.on(); // bật LED Blynk } // void sendSensor() { float h = dht.readHumidity(); //Đọc độ ẩm float t = dht.readTemperature(); // sử dụng dht.readTemperature(true) để lấy độ F while (isnan(h) || isnan(t)) { Serial.println("Failed to read from DHT sensor!"); Blynk.setProperty(V0, "label", " Sensor:Fail"); Blynk.setProperty(V0, "color", "#D3435C"); delay(1000); return; } Blynk.virtualWrite(V5, h); //cấu hình chân ảo V5 blynk để đọc độ ẩm Blynk.virtualWrite(V6, t); //cấu hình chân ảo V6 blynk để đọc độ nhiệt độ } // BLYNK_CONNECTED() { // Yêu cầu trạng thái gần nút bấm Blynk.syncVirtual(VPIN_BUTTON_1); Blynk.syncVirtual(VPIN_BUTTON_2); Blynk.syncVirtual(VPIN_BUTTON_3); //Blynk.syncVirtual(VPIN_BUTTON_4); // dùng sau: //Blynk.virtualWrite(VPIN_BUTTON_1, relay1State); //Blynk.virtualWrite(VPIN_BUTTON_2, relay2State); //Blynk.virtualWrite(VPIN_BUTTON_3, relay3State); //Blynk.virtualWrite(VPIN_BUTTON_4, relay4State); } // BLYNK_WRITE(VPIN_BUTTON_1) { relay1State = param.asInt(); digitalWrite(RELAY_PIN_1, relay1State); } BLYNK_WRITE(VPIN_BUTTON_2) { relay2State = param.asInt(); digitalWrite(RELAY_PIN_2, relay2State); } BLYNK_WRITE(VPIN_BUTTON_3) { relay3State = param.asInt(); digitalWrite(RELAY_PIN_3, relay3State); } /* BLYNK_WRITE(VPIN_BUTTON_4) { relay4State = param.asInt(); digitalWrite(RELAY_PIN_4, relay4State); } */ // void checkPhysicalButton() { if (digitalRead(PUSH_BUTTON_1) == LOW) { if (pushButton1State != LOW) { // Toggle Relay state relay1State = !relay1State; digitalWrite(RELAY_PIN_1, relay1State); // Update Button Widget Blynk.virtualWrite(VPIN_BUTTON_1, relay1State); } pushButton1State = LOW; } else { pushButton1State = HIGH; } if (digitalRead(PUSH_BUTTON_2) == LOW) { if (pushButton2State != LOW) { // Toggle Relay state relay2State = !relay2State; digitalWrite(RELAY_PIN_2, relay2State); // Update Button Widget Blynk.virtualWrite(VPIN_BUTTON_2, relay2State); } pushButton2State = LOW; } else { pushButton2State = HIGH; } if (digitalRead(PUSH_BUTTON_3) == LOW) { if (pushButton3State != LOW) { // Toggle Relay state relay3State = !relay3State; digitalWrite(RELAY_PIN_3, relay3State); // Update Button Widget Blynk.virtualWrite(VPIN_BUTTON_3, relay3State); } pushButton3State = LOW; } else { pushButton3State = HIGH; } /* if (digitalRead(PUSH_BUTTON_4) == LOW) { if (pushButton4State != LOW) { // Toggle Relay state relay4State = !relay4State; digitalWrite(RELAY_PIN_4, relay4State); // Update Button Widget Blynk.virtualWrite(VPIN_BUTTON_4, relay4State); } pushButton4State = LOW; } else { pushButton4State = HIGH; } */ } // - ... minh giám sát điều khiển từ xa nhu cầu tất yếu Do em có lựa chọn đề tài Thiết kế điều khiển, giám sát nhiệt độ, độ ẩm điều khiển thiết bị điện thông qua mạng Wifi Mục tiêu đề tài điều khiển thiết. .. ngày hôm nay, em làm đồ án lĩnh vực Đồ án mang tên: Thiết kế điều khiển, giám sát nhiệt độ, độ ẩm điều khiển thiết bị điện thông qua mạng Wifi “ Sau trình học tập trường, thực tập trải nghiệm... NodeMCU Wifi, giao tiếp qua mạng Wifi - Xây dựng, thiết kế bảng mạch thiết kế phần mềm giám sát smart phone - Mạch cần phải giao tiếp với mạng Wifi thực chức đo nhiệt độ, độ ẩm Hình Máy đo nhiệt độ,

Ngày đăng: 03/06/2020, 15:47

Từ khóa liên quan

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

Tài liệu liên quan