(Đồ án hcmute) tối ưu kích thước bộ điều khiển cho ứng dụng ngôi nhà thông minh

91 3 0
(Đồ án hcmute) tối ưu kích thước bộ điều khiển cho ứng dụng ngôi nhà thông minh

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM 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 TỐI ƯU KÍCH THƯỚC BỘ ĐIỀU KHIỂN CHO ỨNG DỤNG NGÔI NHÀ THÔNG MINH GVHD: TS NGUYỄN MẠNH HÙNG SVTH: VÕ BÙI HỮU TIỀN MSSV: 15341031 SVTH: TRƯƠNG THÀNH PHƯỚC MSSV: 15341024 SKL 0 4 Tp Hồ Chí Minh, tháng 01/2017 an 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: TỐI ƯU KÍCH THƯỚC BỘ ĐIỀU KHIỂN CHO ỨNG DỤNG NGÔI NHÀ THÔNG MINH GVHD: TS Nguyễn Mạnh Hùng SVTH: Võ Bùi Hữu Tiền MSSV: 15341031 SVTH: Trương Thành Phước MSSV: 15341024 TP Hồ Chí Minh - 01/2017 an 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 KỸ THUẬT ĐIỆN TỬ TRUYỀN THÔNG ĐỀ TÀI: TỐI ƯU KÍCH THƯỚC BỘ ĐIỀU KHIỂN CHO ỨNG DỤNG NGÔI NHÀ THÔNG MINH GVHD: TS Nguyễn Mạnh Hùng SVTH: Võ Bùi Hữu Tiền MSSV: 15341031 SVTH: Trương Thành Phước MSSV: 15341024 TP Hồ Chí Minh - 01/2017 an 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 26 tháng 09 năm 2016 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Võ Bùi Hữu Tiền MSSV: 15341031 Trương Thành Phước MSSV: 15341024 Chuyên ngành: Kỹ thuật Điện tử - Truyền thông Mã ngành: D510302 Hệ đào tạo: Đại học quy Mã hệ: 341 Khóa: 2015-2017 Lớp: 15341A I TÊN ĐỀ TÀI: TỐI ƯU KÍCH THƯỚC BỘ ĐIỀU KHIỂN CHO ỨNG DỤNG NGÔI NHÀ THÔNG MINH II NHIỆM VỤ Các số liệu ban đầu: “Hệ thống điều khiển giám sát nhà thông minh”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM Nội dung thực hiện: - Thiết kế giao diện giám sát điều khiển Android Studio - Thiết kế lập trình thi cơng khối mạch giao tiếp module wifi ESP8266 với smartphone thơng qua sóng wifi - Thiết kế thi công khối công suất tối đa 5500W tải trở công suất tối đa 2HP (1490W) tải cảm - Thi công lắp đặt ổ cắm thường chuyển thành ổ cắm thông minh III NGÀY GIAO NHIỆM VỤ: 26/09/2016 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 08/01/2017 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN TS Nguyễn Mạnh Hùng BM ĐIỆN TỬ CÔNG NGHIỆP ii an 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 26 tháng 09 năm 2016 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Võ Bùi Hữu Tiền Lớp: 153410A MSSV: 15341031 Họ tên sinh viên 2: Trương Thành Phước Lớp: 153410A MSSV: 15341024 Tên đề tài: Tối ưu kích thước điều khiển cho ứng dụng ngơi nhà thông minh Nội dung Tuần/ngày Xác nhận GVHD Nhận đề tài, tìm hiểu module wifi Tuần (26-01/10) ESP6266 Cài đặt làm quen với phần mềm lập trình Tuần (03-08/10) ứng dụng Android Studio Nghiên cứu ngơn ngữ lập trình Android Tuần (10-15/10) Tìm hiểu sơ liệu Google Firebase Lập trình code thử nghiệm với module wifi Tuần (17-22/10) ESP8266 Lập trình viết app Android cho ứng dụng Tuần 10 (24-29/10) Vẽ sơ nguyên lý mạch module wifi ESP8266 mạch công suất triac Tiếp tục viết code cho module wifi ESP8266 Tuần 11 (31-05/11) Vẽ mạch in mua linh kiện Thi công mạch kiểm tra mạch Tuần 12 (07-12/11) Tuần 13 (14-19/11) Tiếp tục viết app Android cho ứng dụng Hoàn thiện code cho module wifi ESP8266 Tiếp tục viết app Android cho ứng dụng iii an Tuần 14 (21-26/11) Tiếp tục viết app Android cho ứng dụng Hoàn thiện code app Android cho ứng dụng Tuần 15 (28-03/12) Chạy thử nghiệm thiết bị thực tế Kiểm tra khắc phục sửa lỗi (nếu có) Cân chỉnh lại giao diện ứng dụng Tuần 16 (05-10/12) Kiểm tra ổn định mạch Khắc phục, sửa chữa lỗi (nếu có) Tuần 17 (12-17/12) Tuần 18 (19-24/12) Tuần 19 (25-31/12) Viết báo cáo, làm power point Viết báo cáo, làm power point Viết báo cáo, làm power point GV HƯỚNG DẪN (Ký ghi rõ họ tên) iv an LỜI CẢM ƠN Nhóm em xin gửi lời cảm ơn sâu sắc đến thầy TS Nguyễn Mạnh Hùng _ 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 để nhóm em hồn thành tốt đề tài Nhóm em xin gửi lời chân thành cảm ơn thầy cô Khoa Điện-Điện Tử trang bị cho chúng em kiến thức quý báu để hồn thành tốt đề tài này, tạo điều kiện tốt cho chúng em hồn thành đề tài Nhóm em gửi lời đồng cảm ơn đến bạn lớp 15341 chia sẻ trao đổi kiến thức kinh nghiệm quý báu thời gian thực đề tài Cuối lời cảm ơn sâu sắc chân thành đến cha mẹ, bạn bè động viên giúp đỡ suốt trình thực đề tài Xin chân thành cảm ơn ! Người thực đề tài Võ Bùi Hữu Tiền Trương Thành Phước vi an MỤC LỤC Trang bìa i Nhiệm vụ đồ án ii 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ẽ x Liệt kê bảng vẽ xiii Tóm tắt xiv CHƯƠNG TỔNG QUAN 1.1 Đặt vấn đề 1.3 Mục tiêu 1.4 Giới hạn 1.5 Nội dung nghiên cứu 1.6 Bố cục CHƯƠNG CƠ SỞ LÝ THUYẾT 2.1 Tìm hiểu cở sở liệu Google Firebase 2.2.1 Lưu trữ liệu thời gian thực - Firebase Realtime Database 2.2.2 Xác thực người dùng 2.2.3 Firebase Hosting 2.2 Module wifi ESP8266 V12E 2.2.1 Giới thiệu module wifi ESP8266 V12E 2.2.2 Đặc điểm thông số module wifi ESP8266 2.3 Tìm hiểu hệ điều hành Android 2.3.1 Các ứng dung có sẵn Android (Native Applications) 10 2.3.2 SQLite Database 11 2.3.3 Truy cập phần cứng (Access Hardware) 11 2.3.4 Hệ thống thông báo (Notifications) 11 2.3.5 Tối ưu hóa nhớ quản lý tiến trình 11 vii an 2.3.6 Các thư viện Android 12 CHƯƠNG TÍNH TỐN VÀ THIẾT KẾ 13 3.1 Giới thiệu 13 3.2 Thiết kế sơ đồ khối hệ thống 13 3.3 Khối điều khiển 15 3.4 Khối công suất 16 3.5 Khối nguồn 17 3.6 Sơ đồ nguyên lý toàn mạch 19 CHƯƠNG THI CÔNG HỆ THỐNG 21 4.1 Giới thiệu 21 4.2 Thi công hệ thống 21 4.2.1 Thi công bo mạch 21 4.2.2 Lắp ráp kiểm tra 23 4.3 Thi công lắp đặt 24 4.4 Lập trình phần mềm 26 4.4.1 Giới thiệu 26 4.4.2 Android studio 27 4.4.3 Arduino IDE 29 4.4.4 Cơ sở liệu Google Firebase 32 4.5 Viết tài liệu hướng dẫn sử dụng, thao tác 33 4.5.1 Cài đặt ứng dụng lên điện thoại 33 4.5.2 Tổng quan giao diện app Android 36 4.5.3 Kết nối điện thoại vào wifi thiết bị 37 4.5.4 Thêm thiết bị vào danh sách điều khiển 39 4.5.5 Điều khiển ổ cắm thiết bị 42 4.5.6 Chỉnh sửa xóa thiết bị 43 CHƯƠNG KẾT QUẢ_NHẬN XÉT_ĐÁNH GIÁ 47 5.1 Kết 47 5.1.1 Về phần cứng 47 5.1.2 Về phần mềm 51 5.2 Nhận xét, đánh giá 53 5.2.1 Khối nguồn chuyển đổi 220VAC sang 5VDC 53 viii an 5.2.2 Khối điều khiển module wifi ESP8266 53 5.2.3 Khối công suất 54 5.2.4 App Android smartphone 54 5.3 Kết mô 54 5.4 Kết chạy thực tế 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 63 TÀI LIỆU THAM KHẢO……………………………………………… 64 PHU LỤC…………………………………………………………………….65 ix an 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 KẾT LUẬN 6.1 Sau khoản thời gian tháng làm khóa luận, hướng dẫn nhiệt tình thầy TS Nguyễn Mạnh Hùng nhóm cố gắng hồn thành khóa luận theo yêu cầu thời gian quy định Trong khóa luận, chúng em đạt công việc, kết sau:  Biết cách thức hoạt động Google Firebase, module wifi ESP8266 tự lập trình app Android phục vụ cho ý tưởng đề tài Android Studio  Tinh thần làm việc nhóm, biết san sẽ, chia công việc chịu trách nhiệm hồn thành cơng việc theo lịch trình mà nhóm đặt  Từ đề tài lên ý tưởng nhóm cho tạo sản phẩm có kích thước nhỏ gọn, lắp đặt vào hộp đế âm tường với đầy đủ chức ban đầu đặt Sản phẩm chạy ổn định với độ xác cao, thời gian đáp ứng nằm phạm vi cho phép Bên cạnh kết đạt với kiến thức có hạn nhóm khơng tránh khỏi thiếu sót, chức chưa làm q trình làm khóa luận tốt nghiệp sau:  Giao diện thiết kế app chưa thực đẹp chuyên nghiệp hướng đến sản phẩm thương mại  Quá trình nhận lệnh module wifi ESP8266 với Firebase quét liên tục giây lần lượng tỏa lớn làm nóng ESP8266, đảm bảo module wifi ESP8266 hoạt động tốt  Chỉ điều khiển thiết bị mạng wifi có kết nối internet, chưa điều khiển kết nối internet (trong mạng LAN)  Trong thời gian làm khóa luận nhóm dừng lại việc ON/OFF, chưa trọng đến vấn đề bảo mật liệu người dùng, nghĩa biết trạng thái hoạt động sản phẩm điều khiển thiết bị BỘ MƠN ĐIỆN TỬ CÔNG NGHIỆP an 62 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.2 HƯỚNG PHÁT TRIỂN Để sản phẩm nhóm ngày hồn thiện với mục tiêu hướng đến sản phẩm thương mại, bên cạnh giải hạn chế mà nhóm chưa giải thời gian làm khóa luận nhóm đưa hướng phát triển cho sản phẩm sau:  Phát triển ứng dụng cho hệ điều hành iOS để tiếp cận nhiều khách hàng  Thêm tính hẹn theo thời gian thực lấy từ thời gian internet hẹn theo khoảng thời gian mà người dùng muốn  Điều khiển thiết bi mạng LAN kết nối internet  Tối ưu sản phẩm để tốn lượng hoạt động chờ nhận lệnh, cho module wifi ESP8266 vào chế độ sleep không điều khiển, điều khiển việc đánh thức module wifi ESP8266  Đồng liệu điện thoại thông minh với Chỉ cần điện thoại đăng nhập tài khoản sau trình thêm, chỉnh sửa, xóa thiêt bị có danh sách thiết bị để điều khiển, với app điện thoại khác ta cần đăng nhập vào tài khoản trước cấu hình liệu tự động đồng mà không cần thực lại cơng việc cấu hình cho app nữa, tiện lợi cho khách hàng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 63 TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO Sách tham khảo [1] Internet of things ?, iotvietnam.com, 2016 [2] Trần Dương, “Điều khiển đèn LED qua wifi- sử dụng Arduino ESP8266”, arduino.vn, 2016 [3] Tấn Cường, “Điều khiển thiết bị từ xa qua WIFI ESP8266”, arduino.vn, 2016 [4] “ESP8266 for use Firebase realtime data from Google”, ioxhop.com, 2016 [5] Phạm Đông, “Thêm Sửa Xóa item ListView”, laptrinhandroid.edu.vn, 2016 [6] Khoa Phạm, “Lập trình Firebase Android”, khoapham.vn, 2016 [7] ESP8266 IoT, linhkienbachkhoa.com, 2016 [8] Trương Q Tùng Hồng Mạnh Đạt, “Hệ thống điều khiển giám sát nhà thông minh”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM, 2016 [9] Trương Trọng Chi Lê Văn Thanh, “Điều khiển giám sát mơ hình nhà thông minh dùng kit intel galileo”, Đồ Án Tốt Nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật Tp.HCM, 2016 [10] Nguyễn Văn Hiệp, Giáo Trình: Lập trình Android, xuất ĐH Quốc Gia Tp.HCM, 2015 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 64 PHỤ LỤC PHỤ LỤC DATASHEET [1] Datasheet ESP8266 [2] Datasheet C1815 [4] Datasheet triac BTA24 CHƯƠNG TRÌNH MODULE WIFI ESP8266 #include #include #include #include #define LED_1 16 #define LED_2 14 #define LED_3 12 #define SW 13 // Config Firebase #define FIREBASE_HOST "esp8266v12.firebaseio.com" #define FIREBASE_AUTH "NDTYyfsfQCd0ia20n9YPJnvbOo5zYW7z6K6vPH6M" ESP8266WebServer server(80); const char* ssid = "WiFi_Esp8266"; const char* passphrase = ""; String st; String content; int statusCode; int tt=0,ocam1,ocam2,ocam3; void setup() { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 65 PHỤ LỤC pinMode(LED_1, OUTPUT); pinMode(LED_2, OUTPUT); pinMode(LED_3, OUTPUT); pinMode(SW, INPUT); Serial.begin(115200); EEPROM.begin(512); delay(10); //Serial.println(); //Serial.println(); WiFi.mode(WIFI_OFF); Serial.println("Startup"); // read eeprom for ssid and pass Serial.println("Reading EEPROM ssid"); String esid; for (int i = 0; i < 32; ++i) { esid += char(EEPROM.read(i)); } Serial.print("SSID: "); Serial.println(esid); esid.trim(); Serial.println("Reading EEPROM pass"); String epass = ""; for (int i = 32; i < 96; ++i) { epass += char(EEPROM.read(i)); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 66 PHỤ LỤC } Serial.print("PASS: "); Serial.println(epass); epass.trim(); if ( esid.length() > ) { WiFi.begin(esid.c_str(), epass.c_str()); if (testWifi()) { launchWeb(0); Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); Firebase.setString("MAC",WiFi.macAddress() ); tt=1; EEPROM.end(); return; } else { setupAP(); tt=0; EEPROM.end(); } } } bool testWifi(void) { int c = 0; Serial.println("Waiting for Wifi to connect"); while ( c < 20 ) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 67 PHỤ LỤC if (WiFi.status() == WL_CONNECTED) { return true; } delay(500);//or 1000 Serial.print(WiFi.status()); c++; } Serial.println("."); Serial.println("Connect timed out, opening AP"); return false; } void launchWeb(int webtype) { Serial.println(""); Serial.println("WiFi connected"); Serial.print("Local IP: "); Serial.println(WiFi.localIP()); Serial.print("SoftAP IP: "); Serial.println(WiFi.softAPIP()); createWebServer(webtype); // Start the server server.begin(); Serial.println("Server started"); } void setupAP(void) { WiFi.mode(WIFI_STA); WiFi.disconnect(); delay(100); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 68 PHỤ LỤC int n = WiFi.scanNetworks(); Serial.println("scan done"); if (n == 0) Serial.println("no networks found"); else { Serial.print(n); Serial.println(" networks found"); for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found Serial.print(i + 1); Serial.print(": "); Serial.print(WiFi.SSID(i)); Serial.print(" ("); Serial.print(WiFi.RSSI(i)); Serial.print(")"); Serial.println((WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"); delay(10); } } Serial.println(""); st = "
    "; for (int i = 0; i < n; ++i) { // Print SSID and RSSI for each network found BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 69 PHỤ LỤC st += "
  1. "; st += WiFi.SSID(i); st += " ("; st += WiFi.RSSI(i); st += ")"; st += (WiFi.encryptionType(i) == ENC_TYPE_NONE)?" ":"*"; st += "
  2. "; } st += "
"; delay(100); Serial.println(ssid); Serial.println(passphrase); WiFi.softAP(ssid, passphrase, 6); Serial.println("softap"); launchWeb(1); Serial.println("over"); } void createWebServer(int webtype) { if ( webtype == ) { server.on("/", []() { IPAddress ip = WiFi.softAPIP(); String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]); content = "\r\nDO AN TOT NGHIEP DEMO"; length=32>"; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 70 PHỤ LỤC content += ""; content += "Wifi"; content += ""; content += "Mat Khau"; content += ""; content += ""; content += "

"; content += st; content += "

"; //content += ""; content += ""; server.send(200, "text/html", content); }); server.on("/setting", []() { String qsid = server.arg("ssid"); String qpass = server.arg("pass"); if (qsid.length() > && qpass.length() > 0) { EEPROM.begin(512); Serial.println("clearing eeprom"); for (int i = 0; i < 96; ++i) { EEPROM.write(i, 0); } EEPROM.commit(); Serial.println(qsid); Serial.println(""); Serial.println(qpass); Serial.println(""); Serial.println("writing eeprom ssid:"); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 71 PHỤ LỤC for (int i = 0; i < qsid.length(); ++i) { EEPROM.write(i, qsid[i]); Serial.print("Wrote: "); Serial.println(qsid[i]); } Serial.println("writing eeprom pass:"); for (int i = 0; i < qpass.length(); ++i) { EEPROM.write(32+i, qpass[i]); Serial.print("Wrote: "); Serial.println(qpass[i]); } EEPROM.commit(); EEPROM.end(); content = "{\"Success\":\"saved to eeprom reset to boot into new wifi\"}"; statusCode = 200; ESP.restart(); //tu reset esp } else { content = "{\"Error\":\"404 not found\"}"; statusCode = 404; Serial.println("Sending 404"); } server.send(statusCode, "application/json", content); }); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 72 PHỤ LỤC } else if (webtype == 0) { server.on("/", []() { IPAddress ip = WiFi.localIP(); String ipStr = String(ip[0]) + '.' + String(ip[1]) + '.' + String(ip[2]) + '.' + String(ip[3]); server.send(200, "application/json", "{\"IP\":\"" + ipStr + "\"}"); }); server.on("/cleareeprom", []() { content = "\r\n"; content += "

Clearing the EEPROM

"; server.send(200, "text/html", content); Serial.println("clearing eeprom"); for (int i = 0; i < 96; ++i) { EEPROM.write(i, 0); } EEPROM.commit(); }); } } void loop() { server.handleClient(); if(tt==1) { ocam1 = Firebase.getInt(WiFi.macAddress()+"/Light1"); ocam2 = Firebase.getInt(WiFi.macAddress()+"/Light2"); ocam3 = Firebase.getInt(WiFi.macAddress()+"/Light3"); if(ocam1==1) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 73 PHỤ LỤC digitalWrite(LED_1,HIGH); Serial.println("Light1: 0"); } else { digitalWrite(LED_1, LOW); Serial.println("Light1: 1"); } if(ocam2==1) { digitalWrite(LED_2,HIGH); Serial.println("Light2: 0"); } else { digitalWrite(LED_2, LOW); Serial.println("Light2: 1"); } if(ocam3==1) { digitalWrite(LED_3,HIGH); Serial.println("Light3: 0"); } else { digitalWrite(LED_3, LOW); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 74 PHỤ LỤC Serial.println("Light3: 1"); } } } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP an 75 S an K L 0

Ngày đăng: 27/12/2023, 03:43

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

  • Đang cập nhật ...

Tài liệu liên quan