Thiết Kế Và Thi Công Thiết Bị Giám Sát, Điều Khiển Kho Mát Từ Xa.pdf

98 1 0
Thiết Kế Và Thi Công Thiết Bị Giám Sát, Điều Khiển Kho Mát Từ Xa.pdf

Đ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

Untitled ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG GVHD ThS NGUYỄN TRƯỜNG DUY SVTH NGUYỄN ĐÌNH KHANG MSSV 16141177 SVTH TRẦN LỮ THỨ MSSV 16141299 SKL 0 0 7 8 4 1 BỘ GIÁO DỤC & ĐÀO[.]

BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG THIẾT KẾ VÀ THI CÔNG THIẾT BỊGIÁM SÁT, ĐIỀU KHIỂN KHO MÁT7Ӯ;$ GVHD: ThS NGUYỄN TRƯỜNG DUY SVTH: NGUYỄN ĐÌNH KHANG MSSV: 16141177 SVTH: TRẦN LỮ THỨ MSSV: 16141299 SKL 0 7S+ӗ&Kt0LQKWKiQJ 02/2021 BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH - ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG THIẾT BỊ GIÁM SÁT, ĐIỀU KHIỂN KHO MÁT TỪ XA GVHD : Th.S Nguyễn Trường Duy SVTH 1: Nguyễn Đình Khang MSSV: 16141177 SVTH 2: Trần Lữ Thứ MSSV: 16141299 Tp Hồ Chí Minh - 2/2021 TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày 15 tháng năm 2021 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Chuyên ngành: Hệ đào tạo: Khóa: Nguyễn Đình Khang MSSV: 16141177 Trần Lữ Thứ MSSV: 16141299 Công nghệ kỹ thuật điện từ truyền thông Mã ngành: 41 Đại học quy Mã hệ: 2016 Lớp: 16141DT2B I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT ĐIỀU KHIỂN KHO MÁT TỪ XA II NHIỆM VỤ Nội dung thực hiện: • Nội dung 1: Tìm hiểu module ESP32, led thu hồng ngoại, hình TFT 2.4 in ILI9341 • Nội dung 2: Tìm hiểu tia hồng ngoại dùng điều khiển từ xa • Nội dung 3: Thu tín hiệu hồng ngoại điều khiển • Nội dung 4: Thiết kế lập trình web ứng dụng android • Nội dung 5: Thiết kế thi công mạch điều khiển • Nội dung 6: Thiết kế mơ hình sản phẩm • Nội dung 7: Đánh giá kết thực III NGÀY GIAO NHIỆM VỤ: 05/10/2020 IV NGÀY HOÀN THÀNH NHIỆM VỤ: V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: Th.S Nguyễn Trường Duy CÁN BỘ HƯỚNG DẪN BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH i TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MƠN ĐIỆN TỬ CƠNG NGHIỆP – Y SINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o -Tp HCM, ngày tháng năm 2021 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Nguyễn Đình Khang Lớp:16141DT2A MSSV:16141177 Họ tên sinh viên 2: Trần Lữ Thứ Lớp:16141DT1A MSSV: 16141299 Tên đề tài: Thiết kế thi công hệ thống giám sát điều khiển kho mát từ xa Tuần/ngày Tuần (28/9-3/10/2020) Tuần (5-10/10/2020) Tuần (12-17/10/2020) Tuần (19-24/10/2020) Tuần 5,6 (26-7/11/2020) Tuần 7,8,9,10,11 (9/11-12/12) Tuần 12,13 (14-26/12/2020) Tuần 14,15 (28/129/1/2021) Xác nhận GVHD Nội dung Nhận đồ án, tìm hiểu lựa chọn đề tài Tìm hiểu chọn đề tài Tìm hiểu tài liệu hướng thực đề tài Tìm hiểu tia hồng ngoại dùng điều khiển Thu, phát tín hiệu hồng ngoại điều khiển thiết bị Tìm hiểu thiết bị cần cho hệ thống thiết kế phần cứng thiết bị Tiến hành lập trình cho phần cứng thiết kế phần mềm điều khiển điện thoại Thiết kế mơ hình sản phẩm Kiểm tra chỉnh sửa phần cứng Viết báo cáo Chạy thử thiết bị hoàn chỉnh, kiểm tra tinh chỉnh thiết bị Xác nhận GVHD ii LỜI CAM ĐOAN Đề tài chúng em thực hướng dẫn Th.S Nguyễn Trường Duy dựa vào số tài liệu trước khơng chép từ tài liệu hay cơng trình có trước Sinh viên thực đồ án Nguyễn Đình Khang Trần Lữ Thứ iii LỜI CẢM ƠN Để hoàn thành tốt Đồ án tốt nghiệp, chúng em xin gửi lời cảm ơn chân thành đến quý Thầy cô Khoa Điện - Điện Tử nói chung thầy mơn Điện Tử Cơng Nghiệp - Y Sinh nói riêng truyền đạt cho chúng em kiến thức, kinh nghiệm quý báu suốt trình học tập Đặc biệt chúng em xin gửi lời cảm ơn đến Thầy Nguyễn Trường Duy - Giảng viên Bộ môn Điện Tử Công Nghiệp-Y Sinh trực tiếp hướng dẫn giúp đỡ, tạo điều kiện để chúng em hoàn thành tốt đề tài Cuối chúng em xin cảm ơn gia đình, bạn bè động viên, đóng góp ý kiến, giúp đỡ suốt trình học tập, nghiên cứu để hoàn thành đề tài tốt nghiệp Chúng em xin chân thành cảm ơn! Sinh viên thực đồ án Nguyễn Đình Khang Trần Lữ Thứ iv MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii LỜI CAM ĐOAN iii LỜI CẢM ƠN iv MỤC LỤC v LIỆT KÊ HÌNH VẼ vii LIỆT KÊ BẢNG x TÓM TẮT xii Chương TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU .2 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HẠN 1.5 BỐ CỤC .3 Chương CƠ SỞ LÝ THUYẾT 2.1 HỆ THỐNG ĐIỀU KHIỂN VÀ GIÁM SÁT KHO LẠNH 2.2 ĐIỀU KHIỂN THIẾT BỊ BẰNG HỒNG NGOẠI 2.2.1 Đặc điểm tính chất tia hồng ngoại .5 2.2.2 Phân loại: 2.2.3 Ứng dụng tia hồng ngoại 2.2.4 Tín hiệu hồng ngoại sử dụng điều khiển từ xa 2.3 GIỚI THIỆU PHẦN CỨNG .9 2.3.1 Led thu phát hồng ngoại 2.3.2 Vi Điều Khiển 12 2.3.3 Cảm biến nhiệt .17 2.3.4 Relay 20 2.3.5 Module LM2596 21 2.3.6 Màn hình TFT 22 2.3.7 Sị nóng lạnh TEC12715 .23 2.3.8 Động quạt tản nhiệt 24 v MỤC LỤC 2.4 CHUẨN GIAO TIẾP SPI 25 2.4.1 Khái niệm 25 2.4.2 Nguyên lý hoạt động 26 2.5 GIỚI THIỆU ỨNG DỤNG TRÊN ĐIỆN THOẠI 26 2.5.1 Tổng quan hệ điều hành android 27 2.5.2 Điều khiển giám sát mơ hình kho mát điện thoại 28 Chương TÍNH TỐN VÀ THIẾT KẾ 29 3.1 GIỚI THIỆU .29 3.2 TÍNH TỐN VÀ THIẾT KẾ THIẾT BỊ 29 3.2.1 Thiết kế sơ đồ khối thiết bị 29 3.2.2 Tính tốn thiết kế mạch 30 3.2.3 Sơ đồ nguyên lý toàn mạch 36 Chương THI CÔNG HỆ THỐNG 39 4.1 GIỚI THIỆU 39 4.2 THI CÔNG HỆ THỐNG 39 4.2.1 Thi công bo mạch 41 4.2.2 Lắp ráp, kiểm tra thi công mơ hình 43 4.3 LẬP TRÌNH HỆ THỐNG .44 4.3.1 Lưu đồ giải thuật 44 4.3.2 Phần mềm lập trình cho vi điều khiển 50 4.3.3 Phần mềm lập trình Android Studio 52 4.3.4 Phần mềm lập trình website .54 4.4 VIẾT TÀI LIỆU HƯỚNG DẪN SỬ DỤNG, THAO TÁC 54 Chương KẾT QUẢ-NHẬN XÉT-ĐÁNH GIÁ .57 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .62 6.1 KẾT LUẬN .62 6.2 HƯỚNG PHÁT TRIỂN 62 TÀI LIỆU THAM KHẢO 63 PHỤ LỤC 65 vi LIỆT KÊ HÌNH VẼ Hình Trang Hình 2.1 Hệ thống giám sát nhiệt độ cho kho lạnh PLCPis Hình 2.2 Thiết bị điều khiển nhiệt độ kho lạnh ECA-GPIs4.4EZ Hình 2.3 Đặc điểm tia hồng ngoại [8] Hình 2.4 Dạng sóng tín hiệu điều khiển từ remote hồng ngoại Hình 2.5 Hình ảnh remote thực tế Hình 2.6 Minh họa gói tin NEC Hình 2.7 Minh họa hình dạng khung truyền theo chuẩn NEC, cho địa 00h (00000000b) lệnh ADh (10101101b) Hình 2.8 Mã HEX IR Máy điều hịa khơng khí sử dụng mã hóa NEC Hình 2.9 Hình ảnh thực tế sơ đồ chân TL 1838 10 Hình 2.10 Sơ đồ góc khoảng cách nhận sóng 10 Hình 2.11 Nguyên lý thu hồng ngoại 11 Hình 2.12 LED phát hồng ngoại IR333-A 11 Hình 2.13 Sơ đồ nguyên lý phát hồng ngoại 12 Hình 2.14 Module ESP8266 NodeMCU 13 Hình 2.15 Sơ đồ chân Node MCU 13 Hình 2.16 Hình ảnh thực tế sơ đồ chân ESP8266-12E 14 Hình 2.17 Mặt trước sau module ESP32 NodeMCU 15 Hình 2.18 ESP32-WROOM-32 16 Hình 2.19 Sơ đồ chức chân ESP32 NodeMCU 17 Hình 2.20 Hình ảnh cảm biến DHT22 thực tế 18 Hình 2.21 Quy trình tổng thể 19 Hình 2.22 Chỉ số liệu “0” 19 Hình 2.23 Chỉ số liệu “1” 20 Hình 2.24 Hình ảnh thực tế Relay 20 Hình 2.25 Hình ảnh thực tế module ổn áp LM2596 21 Hình 2.26 Hướng dịng điện module LM2596 22 Hình 2.27 Màn hình TFT 2.4 inch ILI9341 23 Hình 2.28 Sị nóng lạnh TEC 12715 24 vii Hình 2.29 Quạt tản nhiệt 24 Hình 2.30 Kết nối SPI hai thiết bị 25 Hình 2.31 Kết nối SPI nhiều thiết bị 26 Hình 2.32 Các chế độ làm việc SPI 26 Hình 2.33 Truyền liệu theo chuẩn SPI 27 Hình 3.1 Sơ đồ khối thiết bị 29 Hình 3.2 Sơ đồ khối vi điều khiển 31 Hình 3.3 Sơ đồ kết nối vi điều khiển với TFT thông qua ESP32 32 Hình 3.4 Sơ đồ kết nối vi điều khiển cảm biến DHT22 33 Hình 3.5 Sơ đồ kết nối khối công suất 34 Hình 3.6 Sơ đồ nguyên lý nguồn 35 Hình 3.7 Sơ đồ nguyên lý toàn mạch 38 Hình 4.1 Mạch PCB top 39 Hình 4.2 Mạch PCB bottom 40 Hình 4.3 Sơ đồ bố trí linh kiện mạch (Mặt - Mặt dưới) 41 Hình 4.4 Mặt mạch sau hàn linh kiện 43 Hình 4.5 Mạch thiết bị thực tế 43 Hình 4.6 Lưu đồ giải thuật hệ thống 45 Hình 4.7 Lưu đồ giải thuật chế độ Auto 46 Hình 4.8 Lưu đồ giải thuật chế độ Manual 47 Hình 4.9 Lưu đồ giải thuật Webserver 48 viii } void ConnectToWifi() { Serial.print ("Connecting to "); Serial.print (wifi_name); WiFi.begin (wifi_name, wifi_pass); // Connecting to the wifi network while (WiFi.status() != WL_CONNECTED) // Waiting for the response of wifi network { delay (500); Serial.print ("."); dem++; if(dem >= 20) { dem = 0; break; } } if(WiFi.status() == WL_CONNECTED) { Serial.println("Connection WIFI Void LOOP!!!"); } else { Serial.println("Not Connect WIFI Void LOOP!!!"); } } *CHƯƠNG TRÌNH NÚT NHẤN ĐIỀU KHIỂN SỊ, MODE void ButtonControlSo() { if (digitalRead(NutSo1) == LOW) { delay(200); while (1) { delay(300); if (digitalRead(NutSo1) == HIGH) { Serial.println("Dieu khiển Sò 1"); ControlSo1(); break; } } } if (digitalRead(NutSo2) == LOW) { delay(200); while (1) { delay(300); if (digitalRead(NutSo2) == HIGH) { Serial.println("Dieu khiển Sò 2"); ControlSo2(); break; } } } } void ButtonMode() { if (digitalRead(NutMode) == LOW) { delay(200); while (1) { delay(300); if (digitalRead(NutMode) == HIGH) { Serial.println("Chuyen mode Button"); if (Smode == 1) { Smode = 2; UpdateMode(String(Smode)); } else if (Smode == 2) { Smode = 1; UpdateMode(String(Smode)); } break; } } } } void RemoteIR() { if (irrecv.decode(&results)) { Serial.println(results.value); giaitri = results.value; Serial.print("giaitri: "); /* 16753245 = mode 16736925 = ON OFF so 16769565 = ON OFF sò 16720605 = tăng nhiệt độ cài đăt 16712445 = giảm nhiệt độ cài đặt */ if (giaitri == 16753245) Serial.println(giaitri); { Serial.println("Chuyển mode"); if (Smode == 1) { Smode = 2; UpdateMode(String(Smode)); } else if (Smode == 2) { Smode = 1; UpdateMode(String(Smode)); } } else { if (Smode == 2) { if (giaitri == 16736925) { Serial.println("ON OFF so 1"); ControlSo1(); } if (giaitri == 16769565) { Serial.println("ON OFF so 2"); ControlSo2(); } if (giaitri == 16720605) { Serial.println("Tang nhiet độ cài đặt"); Tangnhietdo(); } if (giaitri == 16712445) { Serial.println("Giảm nhiet độ cài đặt"); Giamnhietdo() } } } irrecv.resume(); } } delay(1000); *CHƯƠNG TRÌNH ĐIỀU KHIỂN TĂNG GIẢM NHIỆT ĐỘ CÀI void Tangnhietdo() { nhietdocaidat++; if (nhietdocaidat >= 30) { nhietdocaidat = 30; } UpdateNhietdo(String(nhietdocaidat)); } void Giamnhietdo() { nhietdocaidat ; if (nhietdocaidat = nhietdocaidat) { trangthaiso1 = 1; trangthaiso2 = 1; digitalWrite(Relay1, LOW); digitalWrite(Relay2, LOW);// relay td muc thap nen ON } } *CHƯƠNG TRÌNH APP ĐIỀU KHIỂN void Mode() { publish(1); } void Up() { String chedo = ""; chedo = mode.toString(); print(chedo); if(chedo == "AUTO") { print("Không điều khiển"); ShowToask("BẠN ĐANG CHẾ ĐỘ AUTO KHÔNG THỂ ĐIỀU KHIỂN"); return; } else if(chedo == "MAN") { print("Được điều khiển"); publish(4); } } void Down() { String chedo = ""; chedo = mode.toString(); print(chedo); if(chedo == "AUTO") { print("Không điều khiển"); ShowToask("BẠN ĐANG CHẾ ĐỘ AUTO KHÔNG THỂ ĐIỀU KHIỂN"); return; } else if(chedo == "MAN") { print("Được điều khiển"); publish(5); } } void So1() { String chedo = ""; chedo = mode.toString(); print(chedo); if(chedo == "AUTO") { print("Không điều khiển"); ShowToask("BẠN ĐANG CHẾ ĐỘ AUTO KHÔNG THỂ ĐIỀU KHIỂN"); return; } else if(chedo == "MAN") { print("Được điều khiển"); publish(2); } } void So2() { String chedo = ""; chedo = mode.toString(); print(chedo); if(chedo == "AUTO") { print("Không điều khiển"); ShowToask("BẠN ĐANG CHẾ ĐỘ AUTO KHÔNG THỂ ĐIỀU KHIỂN"); return; } else if(chedo == "MAN") { print("Được điều khiển"); publish(3); } } Future getDataPHP() async { var host = 'http://192.168.0.104:82//DatabasePHP4/read-data-web.php'; http.Response response = await http.get(host); var Dataphp = response.body; var DataJsonObject = json.decode(Dataphp); print('$DataJsonObject'); print('nhietdo :${DataJsonObject['nhietdo']}'); print('doam :${DataJsonObject['doam']}'); setState(() { if(DataJsonObject['nhietdo'] != null) { nhietdo = DataJsonObject['nhietdo']; } if(DataJsonObject['doam'] != null) { doam = DataJsonObject['doam']; } if(DataJsonObject['nhietdocaidat'] != null) { nhietdocai = DataJsonObject['nhietdocaidat']; } if(DataJsonObject['mode'] != null) { if(DataJsonObject['mode'] == "1") { mode = "AUTO"; } else if(DataJsonObject['mode'] == "2") { mode = "MAN"; } } if(DataJsonObject['trangthaiso1'] != null) { if(DataJsonObject['trangthaiso1'] == "1") { TTSo1 = "ON"; BtnSo1 = "OFF"; } else if(DataJsonObject['trangthaiso1'] == "0") { TTSo1 = "OFF"; BtnSo1 = "ON"; } } if(DataJsonObject['trangthaiso2'] != null) { if(DataJsonObject['trangthaiso2'] == "1") { TTSo2 = "ON"; BtnSo2 = "OFF"; } else if(DataJsonObject['trangthaiso2'] == "0") { TTSo2 = "OFF"; BtnSo2 = "ON"; } } }); } void initState() { ShowToask("WELCOME APP IOT"); Timer timer = Timer.periodic(new Duration(seconds: 1), (timer) { getDataPHP(); }); super.initState(); } void publish(int index) async { /* insdexx = Mode index = on so index = so index = up nd index = down nd */ if(index == 1) { // mode String chedo = ""; chedo = mode.toString(); String tx_mode = ""; if(chedo == "AUTO") { tx_mode = "2"; } else if(chedo == "MAN") { tx_mode = "1"; } final response = await http.post('http://192.168.0.104:82//DatabasePHP4/UpdateMode.php', body: { "Smode":tx_mode.trim(), }); print(response.body); ShowToask("Đã Send!!!"); } else if(index == 2) { // so String tx_so1 = ""; String ttso1 = ""; ttso1 = TTSo1.toString(); if(ttso1 == "ON") { tx_so1 = "0"; } else if(ttso1 == "OFF") { tx_so1 = "1";} final response = await http.post('http://192.168.0.104:82//DatabasePHP4/UpdateSo1.php', body: { "trangthaiso1":tx_so1.trim(), }); print(response.body); ShowToask("Đã Send!!!"); } else if(index == 3) { // so String tx_so2 = ""; String ttso2 = ""; ttso2 = TTSo2.toString(); if(ttso2 == "ON") { tx_so2 = "0"; } else if(ttso2 == "OFF") { tx_so2 = "1";} final response = await http.post('http://192.168.0.104:82//DatabasePHP4/UpdateSo2.php', body: { "trangthaiso2":tx_so2.trim(), }); print(response.body); ShowToask("Đã Send!!!"); } else if(index == 4) { // UP // so int tx_giatri2 = 0; String giatri = ""; giatri = nhietdocai.toString(); tx_giatri2 = int.parse(giatri); tx_giatri2++; if(tx_giatri2 >= 30) { tx_giatri2 = 30; } final response = await http.post('http://192.168.0.104:82//DatabasePHP4/UpdateNhietdo.php', body: { "nhietdocaidat":tx_giatri2.toString().trim(), }); print(response.body); ShowToask("Đã Send!!!"); } if(index == 5) { int tx_giatri2 = 0; String giatri = ""; giatri = nhietdocai.toString(); // down tx_giatri2 = int.parse(giatri); tx_giatri2 ; if(tx_giatri2

Ngày đăng: 24/06/2023, 19:15