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

ĐATN_ Thiết kế hệ thống điều khiển cho nhà thông minh IoT (Full code và đấu nối)

64 152 2

Đ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

ĐATN này là tâm huyết của mình trong 4 năm đại học, nó đã giúp mình đạt điểm 9. File này mình đã ghi chi tiết đầy đủ cách đấu nối, lắp ráp và code. các bạn tải về và làm theo thôi nhé. Chúc các bạn thành công.

LỜI CAM ĐOAN Những nội dung trình bày đồ án kiến thức riêng cá nhân tích lũy q trình học tập, nghiên cứu, khơng chép lại cơng trình nghiên cứu hay đồ án tác giả khác Trong nội dung nội dung đồ án, phần nghiên cứu, trích dẫn nêu phần tài liệu tham khảo, có nguồn gốc, xuất xứ, tên tuổi tác giả, nhà xuất rõ ràng Những điều tơi cam kết hồn tồn thật, sai, tơi xin chịu hình thức xử lý kỷ luật theo quy định Hà Nội, ngày tháng Sinh viên i năm 20… LỜI CẢM ƠN Lời em xin gửi lời cảm ơn đến thầy TS Nguyễn Trọng Thắng, thầy hướng dẫn giúp đỡ tận tình em nghiên cứu hồn thành đồ án tốt nghiệp Những lời nhận xét, góp ý hướng dẫn thầy giúp em có định hướng đắn trình thực đề tài, giúp em nhìn ưu khuyết điểm đề tài bước khắc phục để có kết tốt Em xin cảm ơn thầy cô khoa Điện - Điện tự động hóa truyền đạt cho em kiến thức chuyên ngành, công nghệ cách làm việc để hoàn thành tốt đồ án mơn học Và cuối cùng, xin gửi lời cảm ơn sâu sắc đến tất người bạn giúp đỡ, sát cánh suốt năm đại học ii MỤC LỤC DANH MỤC CÁC HÌNH ẢNH v LỜI MỞ ĐẦU CHƯƠNG TỔNG QUAN TỔNG QUAN NHÀ THÔNG MINH 1.1 ĐỊNH NGHĨA NHÀ THÔNG MINH 1.2 MỤC TIÊU 1.3 CÁC THÀNH PHẦN CƠ BẢN HỆ THỐNG NHÀ THÔNG MINH 1.4 NỘI DUNG NGHIÊN CỨU CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Một số khái niệm 2.1.1 Không gian mạng Server 2.1.2 IoT – Internet of Things 2.2 Giới thiệu Firebase 2.2.1 Khái niệm Firebase 2.2.2 Đặc điểm tính 2.3 Giới thiệu MIT App Inventor 10 2.3.1 Khái niệm MIT App Inventor 11 2.3.2 Những tính có MIT App Inventor 11 2.4 Một số module thiết bị sử dụng mơ hình 12 2.4.1 Vi điều khiển 12 2.4.2 Board vi điều khiển Arduino Uno R3 13 2.4.3 Module Wifi ESP8266 NodeMCU Lua CP2102 16 2.4.4 Module Cảm biến ánh sáng, servo sg90 17 2.4.5 Relay kênh 5V 19 2.4.6 Cảm biến nhiệu độ, độ ẩm khơng khí DHT11 21 2.4.7 Cảm biến khí gas MQ2 22 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 23 3.1 Sơ đồ khối hệ thống 23 3.2 Tính toán thiết kế 24 iii 3.2.1 Thiết kế mơ hình 24 3.2.2 Thiết kế App điện thoại 27 3.2.3 Phần mềm viết code, nạp code cho Adruino UNO ESP8266 31 3.3 Phần code nạp chương trình 32 CHƯƠNG NHẬN XÉT, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57 4.1 Nhận xét 57 4.2 Kết luận 57 4.3 Hướng phát triển 57 TÀI LIỆU THAM KHẢO 57 iv DANH MỤC CÁC HÌNH ẢNH Hình 1.1 Mơ hình nhà thơng minh Hình 2.1 Firebase Hình 2.2 Giao thức bảo mật SSL Hình 2.3 MIT App Inventor 10 Hình 2.4 Hệ thống vi điều khiển 12 Hình 2.5 Sơ đồ chức chân Arduino Uno R3 13 Hình 2.6 Giao tiếp hệ thống dùng chuẩn UART 15 Hình 2.7 Nguyên lý hoạt động chuẩn UART 16 Hình 2.8 Datasheet Esp8266 NodeMCU Lua CP2102 16 Hình 2.9 Cảm biến ánh sáng 17 Hình 2.10 Servo SG90 18 Hình 2.11 Relay kênh 5V 19 Hình 2.12 Cảm biến DH11 21 Hình 2.13 Cảm biến khí gas MQ2 22 Hình 3.1 Sơ đồ khối hệ thống 23 Hình 3.2 Sơ đồ đấu nối thiết bi 24 Hình 3.3 Sơ đồ đấu nối thiết bị thực tế 24 Hình 3.4 Sơ đồ đấu nối thiết bị 25 Hình 3.5 Sơ đồ đấu nối thiết bị thực tế 26 Hình 3.6 Bản vẽ nhà mơ hình 26 Hình 3.7 Mơ hình hồn thiện 27 Hình 3.8 Màn hình điều khiển thiết bị 28 Hình 3.9 Giao diện thiết kế App điều khiển 28 Hình 3.10 Mã QR tải ứng dụng điều khiển 29 Hình 3.11 Code app inventor 30 Hình 3.12 Code app inventor 31 Hình 3.13 Ứng dụng Adruino IDE 31 Hình 3.14 Các phím sử dụng Adruino IDE 32 v LỜI MỞ ĐẦU Trong năm gần đây, nhà thông minh (smart home) xuất ứng dụng rộng rãi sống từ khách sạn hay resort sang nhà đại lắp đặt hệ thống điều khiển thông minh Theo xu hướng phát triển đó, em định lựa chọn thực nghiên cứu đề tài: “Nghiên cứu, thiết kế hệ thống điều khiển cho nhà thơng minh.” Ngồi việc hồn thành đồ án tốt nghiệp với cơng việc cịn có ý nghĩa sâu sắc sinh viên thực Một lần sinh viên thực hành kiến thức học từ ghế nhà trương giúp hình thành sản phẩm cơng nghiệp, sử dụng, cầm tay lắp cảm biến mà từ trước nằm trang giấy Trong trình tiến hành khơng thể khơng gặp khó khăn vấp phải, kích thích sinh viên tư để tìm phương án tối ưu trao đổi thảo luận với thầy cô, bạn bè Tuy nhiên hạn chế kinh nghiệm thực tế thời gian thực nên việc giải đề tài tránh khỏi thiếu sót Do mong bảo thêm q thầy đóng góp bạn sinh viên Em xin chân thành cảm ơn! CHƯƠNG TỔNG QUAN TỔNG QUAN NHÀ THÔNG MINH 1.1 ĐỊNH NGHĨA NHÀ THƠNG MINH Nhà thơng minh (tiếng anh "Smart Home") hệ thống nhà thông minh nhà hộ trang bị hệ thống tự động thông minh với bố trí hợp lý, hệ thống có khả tự điều phối hoạt động nhà 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 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ị đưa cách xử lý tình lập trình trước, điều khiển giám sát từ xa nhằm mục đính cho sống ngày tiện nghi, an tồn góp phần sử dụng hợp lý nguồn tài ngun Hình 1.1 Mơ hình nhà thơng minh Các thành phần hệ thống nhà thông minh bao gồm cảm biến (như cảm biến nhiệt độ, cảm biến ánh sáng), điều khiển máy chủ thiết bị chấp hành khác Nhờ hệ thống cảm biến, điều khiển máy chủ theo dõi trạng thái bên ngồi nhà để đưa định điều khiển thiết bị chấp hành cách phù hợp nhằm đảm bảo mơi trường sống tốt cho người Ngồi ra, với phát triển thiết bị điện tử cá nhân máy tính bảng điện thoại thông minh hạ tầng thông tin ngày tiên tiến internet mạng thông tin di động wifi, 3G, 4G, ngày hệ thống nhà thơng minh cịn cung cấp khả tương tác với người sử dụng thông qua giao diện cảm ứng smart phone cho phép người giám sát điều khiển nhà từ đâu Qua q trình tìm hiểu, nhận thấy Arduino thích hợp việc thực đề tài này, em khai thác sử dụng Arduino đồ án Đề tài ứng dụng để điều khiển nhà thông minh Điện thoại di động sử dụng rộng rãi, nên việc tận dụng thiết bị việc điều khiển thiết bị góp phần vào việc khai thác thêm giá trị sử dụng điện thoại di động đời sống hàng ngày 1.2 MỤC TIÊU Mục tiêu đề tài thiết kế mô hình giám sát nhiệt độ, độ ẩm, khí gas, điều khiển thiết bị đèn, quạt, hoạt động cách điều khiển thơng qua Smartphone Mơ hình ứng dụng việc điều khiển, giám sát nhà đại 1.3 CÁC THÀNH PHẦN CƠ BẢN HỆ THỐNG NHÀ THÔNG MINH Các thành phần hệ thống nhà thông minh bao gồm hệ thống cảm biến cảm biến nhiệt độ, cảm biến ánh sáng, cảm biến khí gas điều khiển máy chủ thiết bị chấp hành khác Nhờ hệ thống cảm biến, điều khiển máy chủ theo dõi trạng thái bên nhà để đưa định điều khiển thiết bị chấp hành cách phù hợp 1.4 NỘI DUNG NGHIÊN CỨU Tìm hiểu, lựa chọn nguồn, module Wifi vi điều khiển Viết ứng dụng Android để SmartPhone nhận tín hiệu xử lý đưa tín hiệu đến vi điều khiển Thiết kế thi công module khối điều khiển: Module Arduino Uno R3, Module Wifi ESP 8266 Node MCU Kết nối module lại với Chạy thử, kiểm tra cân chỉnh mơ hình Viết sách luận văn tốt nghiệp Báo cáo đồ án tốt nghiệp CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Một số khái niệm 2.1.1 Không gian mạng Server Mô hình clien-server mơ hình phổ biến, ứng dụng mạng máy tính áp dụng mơ hình Web Mơ hình hoạt động dựa ý tưởng máy client (các máy con) gửi yêu cầu đến máy chủ (đóng vài trị server), máy chủ tiếp nhận, xử lý yêu cầu phản hồi kết máy client tương ứng Client hiểu cách đơn giản trạm máy độc lâp, có nhu cầu thơng tin dịch vụ, gửi yêu cầu đến Server (máy chủ) để máy chủ đáp ứng yêu đầu đưa Một Client gửi yêu cầu đến hay nhiều server khác để đáp ứng đòi hỏi đề Ngược lại, server hiểu “người cung ứng” đòi hỏi, yêu cầu Client, yêu cầu hợp lệ Server tương ứng tiếp nhân, xử lý thực dịch vụ yêu cầu đó, Server có thê liên kết với nhau, nhằm đáp ứng dịch vụ cách tốt Một trạm máy vừa đóng vai trị vừa Client, vừa Server tùy thuộc vào đối tượng mà yêu câu hay yêu cầu Giữa Client Server giao tiếp với giao thức truyền thông, giao thức ngôn ngữ quy đinh, quy chuẩn Các đối tượng truyền thông với quy định trước chuẩn để truyền thông, “giao tiếp với nhau”, chuẩn giao thức phổ biến như: TCP/IP, SNA, OSU, X25, LAN to LAN,… 2.1.2 IoT – Internet of Things IoT – Internet of Things, hiểu mơ hình thiết bị kết nối mạng lại với kết nối Internet Mỗi thiết bị cấp ID, định danh, riêng để giao tiếp với truyền liệu – thông tin thiết bị với nhau, thiết bị với người người với mơ hình mạng Hay đơn giản IoT tập hợp tất thiết bị có khả kết nối với // Print the IP address Serial.println(WiFi.localIP()); Firebase.begin(HOST,AUTH); } void loop() { // put your main code here, to run repeatedly: uart(); } 44 Code ESP8266(2) #include #include #include #include #include #include #include #define HOST "testesp-83942.firebaseio.com" #define AUTH "uc3xkMuPTTNpP3fWurU580YENgucaYG0wO2obni3" const char* ssid = "HELLO"; const char* password = "nhuvaynhe"; String giatri1=""; String giatri2=""; String giatri3=""; String giatri4=""; String giatri5=""; String giatri6=""; int button1=16; //D0 int stateLED1 = 0; int stateButton1; int previous1 = LOW; int button2=5; //D1 int stateLED2 = 0; 45 int stateButton2; int previous2 = LOW; int button3=12; //D6 int stateLED3 = 0; int stateButton3; int previous3= LOW; int button4=15; //D8 int stateLED4 = 0; int stateButton4; int previous4 = LOW; int relay1=4; //D2 Đèn int relay2= 13; //D7 quạt int relay3= 14; //D5 Đèn ngủ int relay4= 2; //D4 Quạt Ngủ int relay5 = 0; //D3 Đèn bếp void setup() { // put your setup code here, to run once: WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); 46 // Print the IP address Serial.println(WiFi.localIP()); Firebase.begin(HOST,AUTH); pinMode(button1,INPUT); pinMode(button2,INPUT); pinMode(button3,INPUT); pinMode(button4,INPUT); pinMode(relay1,OUTPUT); pinMode(relay2,OUTPUT); pinMode(relay3,OUTPUT); pinMode(relay4,OUTPUT); pinMode(relay5,OUTPUT); digitalWrite(relay1,HIGH); digitalWrite(relay2,HIGH); digitalWrite(relay3,HIGH); digitalWrite(relay4,HIGH); digitalWrite(relay5,HIGH); } void button11() { stateButton1 = digitalRead(button1); if(stateButton1 == HIGH && previous1 == LOW ) { if(stateLED1 == 0){ } else { stateLED1 = 0; } 47 delay(100); } previous1=stateButton1; if(stateLED1==1) { Serial.println("1on"); Firebase.setFloat("number1", 43.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number1", 43.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; }} if(stateLED1==0) { Serial.println("1off"); Firebase.setFloat("number1", 42.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; 48 } Firebase.setFloat("number1", 42.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } } void button22() { stateButton2 = digitalRead(button2); if(stateButton2 == HIGH && previous2 == LOW ) { if(stateLED2 == 0){ stateLED2 = 1; } else { stateLED2 = 0; } delay(100); } previous2=stateButton2; if(stateLED2==1) { Serial.println("1on"); Firebase.setFloat("number2", 45.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); 49 Serial.println(Firebase.error()); return; } Firebase.setFloat("number2", 45.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } if(stateLED2==0) { Serial.println("1off"); Firebase.setFloat("number2", 44.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number2", 44.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } } void button33() 50 { stateButton3 = digitalRead(button3); if(stateButton3 == HIGH && previous3 == LOW ) { if(stateLED3 == 0){ stateLED3 = 1; } else { stateLED3 = 0; } delay(100); } previous3=stateButton3; if(stateLED3==1) { Serial.println("1on"); Firebase.setFloat("number3", 53.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number3", 53.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } 51 if(stateLED3==0) { Serial.println("1off"); Firebase.setFloat("number3", 52.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number3", 52.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } } void button44() { stateButton4 = digitalRead(button4); if(stateButton4 == HIGH && previous4== LOW ) { if(stateLED4 == 0){ stateLED4 = 1; } else { 52 stateLED4 = 0; } delay(100); } previous4=stateButton4; if(stateLED4==1) { Serial.println("1on"); Firebase.setFloat("number4", 55.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number4", 55.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } if(stateLED4==0) { Serial.println("1off"); Firebase.setFloat("number4", 54.0); 53 if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } Firebase.setFloat("number4", 54.0); if (Firebase.failed()) { Serial.print("setting /number failed:"); Serial.println(Firebase.error()); return; } } } void loop() { // put your main code here, to run repeatedly: button11(); button22(); button33(); button44(); giatri1=Firebase.getString("LED1"); giatri2=Firebase.getString("FAN1"); giatri3=Firebase.getString("LED2"); giatri4=Firebase.getString("FAN2"); giatri5=Firebase.getString("LED3"); if(giatri1.toInt()==1) { digitalWrite(relay1,LOW); 54 } else { digitalWrite(relay1,HIGH); } if(giatri2.toInt()==1) { digitalWrite(relay2,LOW); } else { digitalWrite(relay2,HIGH); } if(giatri3.toInt()==1) { digitalWrite(relay3,LOW); } else { digitalWrite(relay3,HIGH); } if(giatri4.toInt()==1) { digitalWrite(relay4,LOW); } else { digitalWrite(relay4,HIGH); 55 } if(giatri5 == "1"){ digitalWrite(relay5,LOW); } if(giatri5 == "0"){ digitalWrite(relay5,HIGH); } } 56 CHƯƠNG NHẬN XÉT, KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1 Nhận xét Sau hoàn thành cho chạy mơ hình nhiều lần, tơi thực rút số vấn đề sau: Về phần cứng: Chạy thử nghiệm ổn định thời gian dài Đôi lúc bị ảnh hưởng sợ ổn định internet Về phần mềm: Đôi lúc đồng trạng thái thiết bị điều khiển chưa thực ổn định Sau nhiều thời gian nguyên cứu, thi công đồ án hồn thành kịp tiến độ Hệ thống hoạt động ổn định thời gian dài, việc truyền nhận liệu đôi lúc bị nhiễu 4.2 Kết luận Biết sử dụng MIT App Inventor để lập trình ứng dụng Android điện thoại Biết thêm ứng dụng thiết thực Firebase ESP8266 để áp dụng vào thực tế Xây dựng thành công mơ hình để nhận lệnh từ điện thoại, gọn gàng thẩm mỹ Viết ứng dụng Android điện thoại truyền nhận liệu từ sử lý trung tâm Giao diện ứng dụng thân thiện dễ dàng cho người sử dụng 4.3 Hướng phát triển Có thể nghiên cứu để chế tạo rộng rãi nhà thông minh tương lai, giao tiếp với người để phục vụ sống đại TÀI LIỆU THAM KHẢO 57 Sách trang web tham khảo Code tạo App điều khiển thiết bị với firebase, esp8266 app inventor (App Control) {Youtube.com} Code tạo App hiển thị nhiệt độ, độ ẩm với firebase, esp8266, dht11 inventor{Youtube.com} “Giới thiệu servo SG90 cách điều khiển biến trở” Adruino.vn Google.com Đồ án “ Hệ thống điều khiển giám sát thiết bị nhà” “SV: Phạm Văn Huy” 58 ... TỔNG QUAN NHÀ THÔNG MINH 1.1 ĐỊNH NGHĨA NHÀ THÔNG MINH Nhà thông minh (tiếng anh "Smart Home") hệ thống nhà thông minh nhà hộ trang bị hệ thống tự động thông minh với bố trí hợp lý, hệ thống có... THÀNH PHẦN CƠ BẢN HỆ THỐNG NHÀ THÔNG MINH Các thành phần hệ thống nhà thông minh bao gồm hệ thống cảm biến cảm biến nhiệt độ, cảm biến ánh sáng, cảm biến khí gas điều khiển máy chủ thiết bị chấp... tự điều phối hoạt động ngơi nhà Chúng ta hiểu nhà thông minh hệ thống chỉnh thể mà đó, tất thiết bị điện tử gia dụng 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

Ngày đăng: 17/05/2021, 15:32

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w