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

THIẾT KẾ VÀ THI CÔNG MÔ HÌNH ĐIỀU KHIỂN ĐÈN CHIẾU SÁNG VÀ THIẾT BỊ BẰNG GIỌNG NÓI TRÊN HỆ ĐIỀU HÀNH ANDROID

118 0 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 118
Dung lượng 18,95 MB

Nội dung

Em xin gởi lời cảm ơn sâu sắc đến Thầy Trương Ngọc Anh Giảng viên bộ môn Điện Tử Công Nghiệp, đã trực tiếp hướng dẫn và tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài. Em xin gởi lời chân thành cảm ơn các thầy cô trong Khoa ĐiệnĐiện Tử đã tạo những điều kiện tốt nhất cho em hoàn thành đề tài. Em cũng gửi lời đồng cảm ơn đến các bạn lớp 153410A đã chia sẻ trao đổi kiến thức cũng như những kinh nghiệm quý báu trong thời gian thực hiện đề tài. Xin chân thành cảm ơn

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 - ĐỒ Á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 MƠ HÌNH ĐIỀU KHIỂN ĐÈN CHIẾU SÁNG VÀ THIẾT BỊ BẰNG GIỌNG NÓI TRÊN HỆ ĐIỀU HÀNH ANDROID GVHD: ThS Trương Ngọc Anh SVTH 1: Nguyễn Văn Phú MSSV: 15341023 SVTH 2: Nguyễn Hiếu Thành MSSV: 15341037 Tp Hồ Chí Minh - 01/2017 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 - ĐỒ Á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 MƠ HÌNH ĐIỀU KHIỂN ĐÈN CHIẾU SÁNG VÀ THIẾT BỊ BẰNG GIỌNG NÓI TRÊN HỆ ĐIỀU HÀNH ANDROID GVHD: Th.S Trương Ngọc Anh SVTH: Nguyễn Văn Phú MSSV: 15341023 SVTH: Nguyễn Hiếu Thành MSSV: 15341027 Tp Hồ Chí Minh – 01/2017 TRƯỜNG ĐH 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 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 10 tháng năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Nguyễn Văn Phú MSSV: 15341023 Nguyễn Hiếu Thành MSSV: 15341027 Chuyên ngành: Kỹ thuật Điện - Điện tử Mã ngành: 341 Hệ đào tạo: Đại học quy (CT) Mã hệ: Khóa: 2015 Lớp: 153410A Họ tên sinh viên: I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MƠ HÌNH ĐIỀU KHIỂN ĐÈN CHIẾU SÁNG VÀ THIẾT BỊ BẰNG GIỌNG NÓI TRÊN HỆ ĐIỀU HÀNH ANDROID II NHIỆM VỤ Các số liệu ban đầu: - Th.S Nguyễn Vũ Quỳnh, Điều Khiển Thiết Bị Bằng Giọng Nói Truyền Từ Xa, Báo cáo nghiên cứu khoa học, trường ĐH Lạc Hồng, Đồng Nai, 2009 - Trang web học cách sử dụng App Inventor để lập trình ứng dụng cho hệ điều hành android, địa web: http://nguoithanhmien.blogspot.com Nội dung thực hiện: - NỘI DUNG 1: Thiết kế, thi công mạch nguồn 5V DC – 2A - NỘI DUNG 2: Thiết kế, thi công mạch ổ cắm - NỘI DUNG 3: Thiết kế, thi công đèn led RGB - NỘI DUNG 4: Thiết kế giao diện điều khiển điện thoại Android OS chương trình App Inventor - NỘI DUNG 5: Lập trình giao tiếp module ESP 8266 với điện thoại android qua sóng WIFI - NỘI DUNG 6: Viết chương trình cho module ESP 8266 điều khiển đèn ổ cắm - NỘI DUNG 7: Lắp ráp khối điều khiển vào thiết bị - NỘI DUNG 8: Chạy thử nghiệm toàn hệ thống - NỘI DUNG 9: Cân chỉnh hệ thống i - NỘI DUNG 10: Đánh giá kết thực - NỘI DUNG 11: Viết sách luận văn Báo cáo đề tài tốt nghiệp III NGÀY GIAO NHIỆM VỤ: 15/09/2016 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 15/01/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN ThS Trương Ngọc Anh BM ĐIỆN TỬ CÔNG NGHIỆP ii TRƯỜNG ĐH 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 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC Tp HCM, ngày 18 tháng năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: NGUYỄN VĂN PHÚ Lớp: 153410A MSSV:15341023 Họ tên sinh viên 2: NGUYỄN HIẾU THÀNH Lớp: 153410A MSSV:15341027 Tên đề tài: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH ĐIỀU KHIỂN ĐÈN CHIẾU SÁNG VÀ THIẾT BỊ TRONG CĂN HỘ BẰNG GIỌNG NÓI TRÊN HỆ ĐIỀU HÀNH ANDROID Tuần/ Xác nhận Nội dung ngày GVHD  Tìm hiếu, lựa chọn loại ESP8266  Tìm hiểu cấu tạo, cách điều khiển led RGB  Dùng ESP8266 Note MCU điều khiển trực tiếp led RGB  Viết ứng dụng nhận dạng giọng nói Android  Cài đặt ESP8266 chế độ phát Wifi (Access Point), Nhận liệu từ điện thoại điều khiển led  Viết ứng dụng kết nối điện thoại với ESP (AP), sau gửi tín hiệu điều khiển  Cài đặt ESP8266 chế độ truy cập Internet (Station), với tên mật cài đặt trước  Cài đặt ESP8266 chế độ truy cập Internet (Station), với tên mật bất kỳ, nhận từ điện thoại  Viết ứng dụng kết nối điện thoại với ESP8266 (STA), sau gửi tên mật  Tách chuỗi tên mật từ modem  Ghi/đọc giá trị tên mật vào vùng nhớ EEPROM ESP  Xây dựng HTML đơn giản, nơi gửi tín hiệu phản hồi từ ESP8266 cho điện thoại  Viết ứng dụng nhận liệu từ HTML, hiển thị điện thoại iii 10 11  Kết hợp chế độ AP STA hoạt động theo trường hợp  Kiểm tra, chạy thử nhiều lần  Thiết kế phần cứng, gồm đèn led RGB, ổ cắm điều khiển Wifi 12  Hoàn thiện phần cứng, phần mềm 13  Kiểm tra, chạy thử toàn hệ thống 14 15 16  Viết báo cáo (word, power point)  Hoàn chỉnh báo cáo, kiểm tra lần cuối Nộp GVHD nhận xét, in GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv LỜI CAM ĐOAN Đề tài nhóm em tự thực 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 Người thực đề tài Nguyễn Văn Phú Nguyễn Hiếu Thành v LỜI CẢM ƠN Em xin gởi lời cảm ơn sâu sắc đến Thầy Trương Ngọc Anh - Giảng viên môn Điện Tử Công Nghiệp, trực tiếp hướng dẫn tận tình giúp đỡ tạo điều kiện để hoàn thành tốt đề tài Em xin gởi lời chân thành cảm ơn thầy cô Khoa Điện-Điện Tử tạo điều kiện tốt cho em hoàn thành đề tài Em gửi lời đồng cảm ơn đến bạn lớp 153410A chia sẻ trao đổi kiến thức kinh nghiệm quý báu thời gian thực đề tài Xin chân thành cảm ơn! Người thực đề tài Nguyễn Văn Phú Nguyễn Hiếu Thành vi MỤC LỤC Nhiệm vụ đồ án i Lịch trình iii Cam đoan v Lời cảm ơn vi Mục lục vii Liệt kê hình vẽ ix Liệt kê bảng vẽ xii Tóm tắt xiii CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung nghiên cứu 1.4 Giới hạn 1.5 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Ảnh hưởng màu sắc đến tâm lý người 2.2 Cơng nghệ nhận dạng giọng nói 2.3 Giới thiệu phần cứng 2.3.1 Đèn led RGB 2.3.2 ESP8266 D1 mini 11 2.3.3 Bộ nhớ chương trình 19 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 21 3.1 Giới thiệu 21 3.2 Tính tốn thiết kế hệ thống 21 3.2.1 Sơ đồ khối hệ thống 21 3.2.2 Tính tốn thiết kế mạch 24 3.3 Sơ đồ nguyên lý toàn mạch 26 CHƯƠNG THI CÔNG HỆ THỐNG 27 4.1 Giới thiệu 27 4.2 Thi công hệ thống 27 4.2.1 Thi công mạch in 27 4.2.2 Lắp ráp kiểm tra 30 vii 4.3 Đóng gói thi cơng mơ hình 31 4.3.1 Đóng gói điều khiển 31 4.3.2 Thi công mô hình 34 4.4 Lập trình hệ thống 35 4.4.1 Lưu đồ giải thuật 35 4.4.2 Phần mềm lập trình cho vi điều khiển 40 4.4.3 Phần mềm lập trình cho điện thoại android 54 4.5 Tài liệu hướng dẫn sử dụng, thao tác 62 4.5.1 Viết tài liệu hướng dẫn sử dụng 62 4.5.2 Quy trình thao tác 66 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 68 5.1 Kết nhận xét 79 5.2 Đánh giá 81 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 94 6.1 Kết luận 94 6.2 Hướng phát triển 94 TÀI LIỆU THAM KHẢO 95 PHU LỤC 96 viii CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.11: Giao diện phần mềm sau nói lệnh “bật thiết bị số 2” Hình 5.12 : Đèn số sáng tương ứng với lệnh “bật thiết bị số 2” BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 89 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.13: Giao diện phần mềm sau nói lệnh “bật thiết bị số 3” Hình 5.14: Đèn số sáng tương ứng với lệnh “bật thiết bị số 3” BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 90 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.15: Giao diện phần mềm sau nói lệnh “bật thiết bị số 4” Hình 5.16: Đèn USB số sáng tương ứng với lệnh “bật thiết bị số 4” BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 91 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Hình 5.17: Giao diện phần mềm sau nói lệnh “bật thiết bị số 5” Hình 5.18: Đèn USB số sáng tương ứng với lệnh “bật thiết bị số 5” BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 92 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ Như sau người dùng nói lệnh cài đặt phần mềm đèn kết nối với điều khiển điều khiển tương ứng hình điều khiển thực tế Tóm lại, sau hồn thành đồ án, phần mềm điện thoại đáp ứng yêu cầu sau: Có chế độ điều khiển “giọng nói” “tay” Có thể thêm bớt thiết bị (đèn: tối đa đèn, ổ cắm: tối đa ổ cắm, điều khiển 10 thiết bị) Khi thay đổi số lượng cơng tắc, hay giá trị lưu thay đổi tương ứng Có thể hiển thị nội dung “khẩu lệnh ”, “khẩu lệnh ” thay đổi tùy ý theo mong muốn người dùng Ở hình ảnh chụp lúc điều khiển thiết bị chế độ, để có nhìn trực quan hoạt động thiết bị, vui lòng xem tham khảo theo đường dẫn: https://goo.gl/33Ykgd BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 93 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 KẾT LUẬN Sau tháng thực đề tài nhóm thu nhiều kết khả quan, hệ thống hoạt động mục tiêu đề Như vậy, người điều khiển điều khiển thiết bị nhà từ xa mà không cần dùng đến micro hay IC HM2007 đắt tiền đồ án trước mà cần “remote” điện thoại để điều khiển Hơn hệ thống hoạt động chế độ điều khiển giọng nói tay (phòng trường hợp internet quốc tế) Lắp đặt nhiều thiết bị mà khơng cần nhiều dây nối đèn tích hợp sẵn board ESP8266 khơng cần dây phức tạp có tính linh động cao (hoạt động riêng biệt, thêm bớt dễ dàng) 6.2 HƯỚNG PHÁT TRIỂN Thêm chế độ hẹn giờ, bật/tắt thiết bị cho người dùng Điều chỉnh cường độ ánh sáng mạnh/yếu người dùng điều chỉnh BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 94 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Tiếng Việt [1] Admin, Lựa chọn ánh sáng đèn chùm trang trí phịng khách, dengiahung.com, 2016 [2] Nguyễn Đình Phú, Nguyễn Trường Duy, Giáo Trình: Kỹ Thuật Số, Xuất ĐH Quốc Gia, Tp.HCM, 2013 [3] Tôi yêu arduino, Làm để điều khiển LED RGB - Led màu, 2015 [4] Nguyễn Văn Bình, Thiết kế nhà thông minh dùng Vi Điều Khiển Pic 16F887, Đồ án tốt nghiệp, trường ĐHSPKT, Tp.HCM, 2014 [5] Duy Ln, Cơng nghệ nhận dạng xử lý giọng nói, tương lai việc nhập liệu thiết bị di động, 2014 [6] Th.S Nguyễn Vũ Quỳnh, Điều Khiển Thiết Bị Bằng Giọng Nói Truyền Từ Xa, Báo cáo nghiên cứu khoa học, trường ĐH Lạc Hồng, Đồng Nai, 2009 [7] Trương Trọng Thân, Bật tắt đèn giọng nói với Arduino, arduino.vn, 2016 [8] Cửa hàng điện tử Hshop (http://hshop.vn) [9] Cửa hàng điện tử IotMaker (http://iotmaker.vn) [10] Cửa hàng điện tử Thiên Minh (http://tme.vn) [11] Cửa hàng điện tử Gap4Tech (http://gap4tech.com) [12] Nguyễn Hoàng Việt (http://kythuatvatlieu.org) Tiếng Anh [13] Wikipedia App Inventor [14] Datasheet WS2812B [15] Datasheet Espressif FAQ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 95 PHỤ LỤC PHỤ LỤC  Chương trình lưu giá trị tên mật modem vào EEPROM void write_eeprom(String wanw,String passw){ for (int i = 0; i < 50; ++i) { EEPROM.write(i, 0); } Serial.print("DELETED ! "); Serial.println("writing eeprom ssid:"); for (int i = 0; i < wanw.length(); ++i) { EEPROM.write(i, wanw[i]); Serial.print("Wrote: "); Serial.println(wanw[i]); } Serial.println("writing eeprom pass:"); for (int i = 0; i < passw.length(); ++i) { EEPROM.write(20+i, passw[i]); Serial.print("Wrote: "); Serial.println(passw[i]); } EEPROM.commit();}}  Hàm trả giá trị tên modem WIFI String read_wan_eeprom(){ String wan=""; Serial.println("Reading EEPROM ssid"); For (int i = 0; i < 20; ++i) { wan += char(EEPROM.read(i)); } Serial.print("SSID:"); Serial.println(wan); return wan; }  Hàm trả giá trị mật modem WIFI String read_pass_eeprom(){ Serial.println("Reading EEPROM pass"); pass = ""; for (int i = 20; i < 40; ++i) { pass += char(EEPROM.read(i)); } Serial.print("PASS:"); Serial.println(pass); return pass; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 96 PHỤ LỤC  Chương trình tách liệu lọc lấy tên mật WIFI gửi từ điện thoại void tach_chuoi(String datat){ unsigned char iv = 0; int flag=0; for(iv = 5; iv < datat.length()-11; iv++) { if(datat.substring(iv, iv + 1) == "%") { wan+=" "; iv+=3; } if((datat.substring(iv, iv + 1) == "$")||(flag==1)) { pass+=datat.substring(iv+1, iv +2); flag=1; } if((datat.substring(iv, iv + 1) != "%") && (datat.substring(iv, iv + 1) != "$")&& (flag==0)) { wan+=datat.substring(iv, iv + 1); }}}  Chương trình nhận liệu từ điện thoại void nhan_data() { WiFiClient client = server.available(); if (!client) { return; } Serial.println("\n[Client connected]"); while(!client.available()){ delay(1); } req = client.readStringUntil('\r'); Serial.println(req); control_rgb(); Serial.println(s); Serial.println("MODE and ttmode:"); Serial.println(MODE); Serial.println(ttmode); Serial.println(req.length()); if((req.length() > 21)) { MODE=1; ttmode=1; } client.println(prepareHtmlPage()); delay(10); Serial.println("Client disonnected"); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 97 PHỤ LỤC  Chương trình điều khiển đèn RGB theo chế độ khác void control_rgb(){ if (req.indexOf("/cong/0") != -1) { s="OFF"; t=0; } else if (req.indexOf("/cong/1") != -1){ s="XEM PHIM"; t=1; } else if (req.indexOf("/cong/2") != -1) { s="TIEP KHACH"; t=2; } else if (req.indexOf("/cong/3") != -1) { s="TIEC"; t=3; } else { Serial.println("NO RESPONSE"); }}  Hàm trả phản hồi gửi lên cho điện thoại String prepareHtmlPage() { String htmlPage = String("HTTP/1.1 200 OK\r\n") + "Content-Type: text/html\r\n" + "Connection: close\r\n" + // the connection will be closed after completion of the response "Refresh: 5\r\n" + // refresh the page automatically every sec "\r\n" + "" + "" + "IP:" + String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]) + " " + "DEVICE:" + String(DEVICENAME) + " " + "STT:"+ s + "" + "\r\n"; return htmlPage; } BỘ MÔN ĐIỆN TỬ CƠNG NGHIỆP 98 PHỤ LỤC  Chương trình điều khiển led RGB void led_rgb(unsigned char r, unsigned char g, unsigned char b) { for(int i=0;i 21) { tach_chuoi(req); Serial.println("TACH CHUOI XONG"); Serial.print("SSID:"); Serial.println(wan); Serial.print("PASS:"); Serial.println(pass); wanchar = wan.c_str(); passchar = pass.c_str(); Serial.println("CHUYEN DOI CHAR"); Serial.print("SSID CHUYEN :"); Serial.println(wanchar); Serial.print("PASS CHUYEN :"); Serial.println(passchar); if((wan != "cong") && (pass.length()>=8) && (wan.length()>3)){ connect_modem(); }}}}} BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 100 PHỤ LỤC  Chương trình điều khiển ngõ hộp ổ cắm void control_power(){ if (req.indexOf("/POWER1/1") != -1) { digitalWrite(PIN1, ON); // sets the PIN1 on STATUS1=11; tttb1="O CAM ON"; } else if (req.indexOf("/POWER1/0") != -1) { digitalWrite(PIN1, OFF); // sets the PIN1 off STATUS1=10; tttb1="O CAM OFF"; } //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX else if (req.indexOf("/POWER2/1") != -1) { digitalWrite(PIN2, ON); // sets the PIN2 on STATUS1=21; tttb2="O CAM ON"; } else if (req.indexOf("/POWER2/0") != -1) { digitalWrite(PIN2 , OFF); // sets the PIN2 off STATUS1=20; tttb2="O CAM OFF"; } //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX if (req.indexOf("/POWER3/1") != -1){ digitalWrite(PIN3, ON); // sets the PIN3 on STATUS1=31; tttb3="O CAM ON"; } else if (req.indexOf("/POWER3/0") != -1){ digitalWrite(PIN3, OFF); // sets the PIN3 off STATUS1=30; tttb3="O CAM OFF"; } //XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX else if (req.indexOf("/POWER4/1") != -1) { digitalWrite(PIN4, ON); // sets the PIN4 on STATUS1=41; tttb4="USB ON"; } else if (req.indexOf("/POWER4/0") != -1) { digitalWrite(PIN4, OFF); // sets the PIN4 off STATUS1=40; tttb4="USB OFF"; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 101 PHỤ LỤC else if (req.indexOf("/POWER5/1") != -1) { digitalWrite(PIN5, ON); // sets the PIN4 on STATUS1=51; tttb5="USB ON"; } else if (req.indexOf("/POWER5/0") != -1){ digitalWrite(PIN5, OFF); // sets the PIN4 off STATUS1=50; tttb5="USB OFF"; } //XXXXXXXXXXXXXXXXXXXXXXXXXXXXX else { Serial.println("NO RESPONSE"); } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 102

Ngày đăng: 12/06/2023, 14:21

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

TÀI LIỆU LIÊN QUAN

w