1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Thiết kế và thi công mô hình quản lý nhà yến từ xa ứng dụng công nghệ nb iot

111 10 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

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHĨA LUẬN TỐT NGHIỆP NGÀNH CNKT ĐIỆN TỬ VIỄN THÔNG THIẾT KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ NHÀ YẾN TỪ XA ỨNG DỤNG CÔNG NGHỆ NB-IOT GVHD: THS GVC TRƯƠNG NGỌC ANH SVTH: TẠ TUẤN ANH LẠI THẾ VIỆT SKL010881 Tp Hồ Chí Minh, tháng 7/2023 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Ử 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Ử VIỄN THÔNG ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG MÔ HÌNH QUẢN LÝ NHÀ YẾN TỪ XA ỨNG DỤNG CƠNG NGHỆ NB-IOT GVHD: ThS GVC TRƯƠNG NGỌC ANH Sinh viên thực hiện: Tạ Tuấn Anh - 19161206 Lại Thế Việt - 19161322 Tp Hồ Chí Minh, ngày 20 tháng năm 2023 2023 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 20 tháng 06 năm 2023 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Tạ Tuấn Anh MSSV: 19161206 Lại Thế Việt MSSV: 19161322 Chuyên ngành: Điện tử Công Nghiệp – Y Sinh Mã ngành: 161 Hệ đào tạo: Đại học quy Mã hệ: Khoá: 2019 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ NHÀ YẾN TỪ XA ỨNG DỤNG CÔNG NGHỆ NB-IoT II NHIỆM VỤ: Các số liệu ban đầu: - Sử dụng Sim 7000C, Arduino Uno thiết bị ngoại vi liên quan đến đề tài - Có thể giám sát điều khiển thiết bị qua mạng NB-IoT Nội dung thực hiện: NỘI DUNG 1: Tìm hiểu mơi trường sống tập tính chim yến thực tế NỘI DUNG 2: Tìm hiểu thiết bị ứng dụng nhà yến có thị trường NỘI DUNG 3: Viết đề cương tóm tắt đề tài NỘI DUNG 4: Vẽ sơ đồ khối, giải thích lựa chọn linh kiện cho khối NỘI DUNG 5: Vẽ sơ đồ nguyên lý cho toàn mạch giải thích nguyên lý hoạt động NỘI DUNG 6: Vẽ PCB thi cơng mạch NỘI DUNG 7: Viết chương trình giao tiếp điều khiển thiết bị ngoại vi ii NỘI DUNG 8: Thiết kế Website hiển thị thông tin trạng thái điều khiển thiết bị NỘI DUNG 9: Thi cơng mơ hình nhà yến điều khiển thiết bị qua Website NỘI DUNG 10: Chạy thử nghiệm mơ hình NỘI DUNG 11: Hồn thiện tối ưu chương trình NỘI DUNG 12: Viết luận văn NỘI DUNG 13: Bảo vệ đề tài III NGÀY GIAO NHIỆM VỤ: 20/02/2023 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/06/2023 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN ThS GVC Trương Ngọc Anh BM ĐIỆN TỬ CÔNG NGHIỆP – Y SINH iii TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ ĐỘC LẬP - TỰ DO - HẠNH PHÚC BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH o0o -Tp HCM, ngày 20 tháng năm 2023 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Tạ Tuấn Anh Lớp: 19161ĐTCNA MSSV: 19161206 Họ tên sinh viên: Lại Thế Việt Lớp: 19161ĐTCNA MSSV: 19161322 Tên đề tài: THIẾT KẾ VÀ THI CƠNG MƠ HÌNH QUẢN LÝ NHÀ YẾN TỪ XA ỨNG DỤNG CÔNG NGHỆ NB-IoT Tuần/ngày Tuần (20/2 - 26/2) Tuần Nội dung - Gặp GVHD để nghe hướng dẫn tiến hành lựa chọn đề tài - GVHD xét duyệt đề tài (27/2 - 5/3) - Viết đề cương KLTN nộp cho môn Tuần - Thiết kế sơ đồ khối, giải thích chức khối (6/3 - 12/3) Tuần (13/3 - 19/3) Tuần (20/3 - 26/3) Xác nhận GVHD - Lựa chọn linh kiện - Thiết kế sơ đồ nguyên lý giải thích hoạt động mạch - Kiểm tra linh kiện - Vẽ mạch PCB iv Tuần (27/3 - 2/4) Tuần + - Thi công mạch kiểm tra mạch (3/4 - 16/4) - Viết chương trình giao tiếp Arduino, mô-đun sim Firebase Tuần + 10 - Thiết kế Website, sở liệu Firebase (17/4 - 30/4) - Giao tiếp Website Firebase Tuần 11 + 12 - Tổng hợp chương trình điều khiển thiết bị ngoại vi từ Website (1/5 - 14/5) Tuần 13 (15/5 - 21/5) Tuần 14 (22/5 - 28/5) Tuần 15 (29/5 - 4/6) Tuần 16 (5/6 - 11/6) Tuần 17 (12/6 - 18/6) - Thiết kế mơ hình nhà yến chạy thử nghiệm hệ thống - Chỉnh sửa chương trình nhằm tối ưu hệ thống - Viết báo cáo - Hoàn thiện báo cáo gửi GVHD xem xét góp ý Hồn thiện báo cáo trước in nộp báo cáo cho GVHD xác nhận ký tên - Nộp báo cáo cho Bộ môn - Làm Power Point để bảo vệ đồ án tốt nghiệp v LỜI CAM ĐOAN Chúng xin cam đoan đề tài đồ án tốt nghiệp thực chúng tơi hướng dẫn ThS GVC Trương Ngọc Anh Chúng tham khảo số tài liệu liên quan, không chép từ tài liệu hay cơng trình trước Nội dung kết đề tài đồ án tốt nghiệp trung thực Chúng tơi cam đoan khơng có hành vi gian lận đề tài Nếu phát có gian lận nào, chúng tơi xin chịu trách nhiệm hồn tồn nội dung đề tài Người thực đề tài Tạ Tuấn Anh - Lại Thế Việt vi LỜI CẢM ƠN Lời đầu tiên, chúng em muốn gửi lời cảm ơn chân thành tất Thầy/Cô trường Đại học Sư Phạm Kỹ Thuật TPHCM nói chung Thầy/Cơ khoa Điện – Điện tử nói riêng dạy dỗ bảo tận tình tụi em năm qua kiến thức chuyên môn, kỹ khác giúp đỡ cho thân cho định hướng tương lai Từ kiến thức quý báu giúp chúng em nhiều từ để hồn thành đồ án tốt nghiệp Lời tiếp theo, chúng em muốn cảm ơn sâu sắc biết ơn tới Thầy Trường Ngọc Anh Thầy hướng dẫn nhiều q trình hồn thiện đề tài này, từ bước đầu chọn đề tài hướng phát triển đề tài Thầy hỗ trợ tạo điều kiện nhiều cho nhóm chúng em suốt q trình hồn thành Đồ Án Tốt Nghiệp Lời cuối, chúng em muốn cảm ơn gia đình bạn bè, thực nguồn động viên lớn chúng em suốt năm học Những người bạn ln đồng hành với suốt trình học tập, giúp đỡ nhau phát triển Và đặc biệt hết gia đình, tất thành viên gia đình ln ủng hộ, động viên hỗ trợ trình học tập trưởng thành Nhờ ủng hộ giúp tụi em hoàn thiện Đồ Án Tốt Nghiệp Mặc dù chúng em cố gắng hoàn thành mục tiêu đề ra, kiến thức hạn chế, chúng em khơng tránh khỏi sai sót q trình thực đồ án Nhóm em mong nhận đóng góp chỉnh sửa từ Thầy/Cơ để hồn thiện đồ án tốt Nhóm chúng em xin chân thành cảm ơn! Người thực đề tài Tạ Tuấn Anh - Lại Thế Việt vii MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP iv LỜI CAM ĐOAN vi LỜI CẢM ƠN vii MỤC LỤC viii LIỆT KÊ HÌNH ẢNH xi LIỆT KÊ BẢNG xiv TÓM TẮT xv CHƯƠNG 1: TỔNG QUAN 1.1 Đặt vấn đề 1.2 Mục tiêu 1.3 Nội dung thực .2 1.4 Giới hạn 1.5 Bố cục CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Kỹ thuật nuôi chim yến 2.2 Tổng quan công nghệ NB-IoT .6 2.3 Giao thức Modbus RTU .9 2.4 Tổng quan Website 10 2.4.1 Giới thiệu internet 10 2.4.2 Giới thiệu website 12 2.4.3 Flutter ngôn ngữ lập trình Dart 13 2.4.4 Firebase .15 2.5 Giới thiệu phần cứng 18 2.5.1 Cảm biến nhiệt độ, độ ẩm SHT20 RS485 18 2.5.2 Mô-đun MAX485 chuyển đổi TTL sang RS485 19 2.5.3 Mô-đun thời gian thực DS1307 20 viii 2.5.4 Sim 7000C 21 2.5.5 Arduino Uno R3 22 2.5.6 Relay SRD5VDC 24 2.5.7 LCD 20x4 25 2.5.8 Mạch chuyển đổi I2C cho LCD 27 2.5.9 Mạch phát nhạc mp3 27 2.5.10 Động tạo nước 24V 28 2.5.11 Hệ thống sưởi – máy sấy mini 29 2.5.12 Hệ thống làm mát - Quạt tản nhiệt 5V 30 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ 31 3.1 Giới thiệu 31 3.2 Sơ đồ khối hệ thống 31 3.3 Tính tốn thiết kế hệ thống 32 3.3.1 Khối cảm biến .32 3.3.2 Khối thời gian thực .33 3.3.3 Khối xử lý kết nối Internet .35 3.3.4 Khối hiển thị .36 3.3.5 Khối điều khiển thiết bị ngoại vi 37 3.3.6 Khối nguồn 39 3.4 Sơ đồ nguyên lý toàn mạch 41 CHƯƠNG 4: THI CÔNG HỆ THỐNG 43 4.1 Giới thiệu 43 4.2 Thi công hệ thống .43 4.2.1 Mạch in PCB .43 4.2.2 Thi công bo mạch 44 4.2.3 Lắp ráp kiểm tra .45 4.3 Thi cơng mơ hình hệ thống 46 4.4 Lập trình hệ thống 49 4.4.1 Lưu đồ giải thuật 49 4.4.2 Phần mềm lập trình cho Arduino UNO 53 ix TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO • Sách tham khảo [1] Trần Đức Trọng, Phạm Văn Thuận, “Thiết kế thi cơng mơ hình quản lý nhà yến sử dụng cơng nghệ IOT”, Đồ án tốt nghiệp, trường ĐHSPKT, TpHCM, 2020 [2] Phan Như Sang, Huỳnh Lê Công Tú, “Thiết kế thi cơng mơ hình nhà ni chim yến điều khiển, giám sát từ xa”, Đồ án tốt nghiệp, trường ĐHSPKT, TpHCM, 2018 [3] 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 [4] TS Phan Văn Ca – Ths Trương Quang Phúc, “Giáo trình Cơ sở ứng dụng Internet Of Things”, Đại Học Quốc Gia TP Hồ Chí Minh, Tp.HCM, 2017 • Tài liệu online [5] “Đặc điểm sinh học chim yến nhà nuôi yến”, tên Web pronest.asia, năm 2019 [6] “Kỹ thuật nuôi yến nhà”, tên Web yensaobaoquyen.com, năm 2020 [7] “Nuôi yến nhà: yếu tố giúp bạn thành công”, tên Web Farmvina.com, 2015 [8] “Narrowband IoT (NB-IoT) gì?”, tên Web giaiphapviettel.vn, 2019 [9] “SIM7000C Arduino NB-IoT / LTE / GNSS / GPRS / GPS Expansion Shield”, tên Web www.dfrobot.com, năm 2018 [10] “GSM & Arduino Communication with Firebase or Thingspeak”, tên Web how2electronics.com, năm 2022 [11] “Sim 7600 AT Commands Manual”, tên Web simcom.ee, năm 2018 [12] “ModBus RTU Temperature & Humidity (SHT20) Sensor”, tên Web github.com, năm 2019 [13] “Arduino UNO R3”, tên Web Arduinokit.vn BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 81 TÀI LIỆU THAM KHẢO [14] “Flutter Là Gì? Vì Sao Bạn Nên Học Ngơn Ngữ Flutter?”, tên Web Viblo.vn, năm 2018 [15] “Tự học Dart”, tên Web cafedev.vn, năm 2021 [16] “Tổng quan HTML”, tên Web hocwebchuan.com, năm 2016 [17] “Tạo website với Firebase Hosting”, tên Web topdev.vn năm 2021 BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 82 PHỤ LỤC PHỤ LỤC Chương trình đọc nhiệt độ, độ ẩm: void read_sensor_handler() { setup_modbus(1); uint8_t result_sensor_1 = modbus_device.readInputRegisters(1, 2); if (result_sensor_1 == modbus_device.ku8MBSuccess) { temp1 = modbus_device.getResponseBuffer(0) / 10.0; hum1 = modbus_device.getResponseBuffer(1) / 10.0; } debug_print(F("temp1: ")); debug_println(temp1); debug_print(F("hum1: ")); debug_println(hum1) setup_modbus(2); result_sensor_1 = modbus_device.readInputRegisters(1, 2); if (result_sensor_1 == modbus_device.ku8MBSuccess) { temp2 = modbus_device.getResponseBuffer(0) / 10.0; hum2 = modbus_device.getResponseBuffer(1) / 10.0; } debug_print(F("temp2: ")); debug_println(temp2); debug_print(F("hum2: ")); debug_println(hum2); } Chương trình lấy liệu từ Firebase BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 83 PHỤ LỤC void get_data_from_firebase_handler() { int max_api = 2; api_request++; if (api_request > max_api) { api_request = 1; } if (api_request == 1) { set_link_control_firebase(); } else if (api_request == 2) { set_link_settings_firebase(); } get_from_firebase(); } Chương trình đọc liệu lấy xuống từ firebase: void parse_data_from_firebase() { if (firebase_response.length() > 0) { StaticJsonDocument doc; DeserializationError error = deserializeJson(doc, firebase_response); if (error) { debug_println(F("error decode json")); return; } if (doc.containsKey(key_temp1)) { temp1 = doc[key_temp1].as(); } if (doc.containsKey(key_temp2)) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 84 PHỤ LỤC temp2 = doc[key_temp2].as(); } if (doc.containsKey(key_hum1)) { hum1 = doc[key_hum1].as(); } if (doc.containsKey(key_temp2)) { temp2 = doc[key_temp2].as(); } if (doc.containsKey(key_hum1)) { hum1 = doc[key_hum1].as(); } if (doc.containsKey(key_hum2)) { hum2 = doc[key_hum2].as(); } if (doc.containsKey(key_min_temp)) { min_temp = doc[key_min_temp].as(); } if (doc.containsKey(key_max_temp)) { max_temp = doc[key_max_temp].as(); } if (doc.containsKey(key_min_hum)) { min_hum = doc[key_min_hum].as(); if (doc.containsKey(key_max_hum)) { max_hum = doc[key_max_hum].as(); } if (doc.containsKey(key_mist)) { mist = doc[key_mist].as(); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 85 PHỤ LỤC if (doc.containsKey(key_heater)) { heater = doc[key_heater].as(); } if (doc.containsKey(key_fan)) { fan = doc[key_fan].as(); } if (doc.containsKey(key_speaker)) { speaker = doc[key_speaker].as(); } if (doc.containsKey(key_mode)) { mode = doc[key_mode].as(); } if (doc.containsKey(key_max_time)) { max_time = doc[key_max_time].as(); } if (doc.containsKey(key_min_time)) { min_time = doc[key_min_time].as(); } firebase_response = ""; } } Chương trình gửi liệu lên firebase: void post_data_to_firebase_handler() { sendATCommand("AT+HTTPPARA=\"CID\",1", str(CMD_RESPONSE_OK).c_str(), 1000); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 86 PHỤ LỤC set_link_control_firebase(); StaticJsonDocument doc; doc[key_mist] = digitalRead(mist_pin) ? 1:0; //random(22, 33); doc[key_heater] = digitalRead(dryer) ? 1:0; //random(22, 33); doc[key_fan] = digitalRead(fan_pin) ? 1:0; //random(68, 88); doc[key_speaker] = digitalRead(speaker_pin) ? 1:0; //random(68, 88); String json; serializeJson(doc, json); debug_print(F("post data: ")); debug_println(json); post_data(json); sendATCommand("AT+HTTPPARA=\"CID\",1", str(CMD_RESPONSE_OK).c_str(), 1000); set_link_control_firebase(); StaticJsonDocument doc; doc[key_mist] = digitalRead(mist_pin) ? 1:0; //random(22, 33); doc[key_heater] = digitalRead(dryer) ? 1:0; //random(22, 33); doc[key_fan] = digitalRead(fan_pin) ? 1:0; //random(68, 88); doc[key_speaker] = digitalRead(speaker_pin) ? 1:0; //random(68, 88); String json; serializeJson(doc, json); debug_print(F("post data: ")); debug_println(json); post_data(json); } Chương trình điều khiển thiết bị: BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 87 PHỤ LỤC void control_handler() { if (mode==0) { // chế độ thủ công if (heater == 1) { digitalWrite(dryer, HIGH); } else { digitalWrite(dryer, LOW); } if (speaker == 1) { digitalWrite(speaker_pin, HIGH); } else { digitalWrite(speaker_pin, LOW); } if (mist == 1) { digitalWrite(mist_pin, HIGH); } else { digitalWrite(mist_pin, LOW); } if (fan == 1) { digitalWrite(fan_pin, HIGH); } else { digitalWrite(fan_pin, LOW); } } else // chế độ tự động { if (max_time>min_time) { if(now.hour()>=min_time && now.hour()< max_time ) BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 88 PHỤ LỤC { digitalWrite(speaker_pin, LOW); } else{ digitalWrite(speaker_pin, HIGH); } } else { if(now.hour()>=max_time && now.hour() < min_time ) { digitalWrite(speaker_pin, HIGH); } else{ digitalWrite(speaker_pin, LOW); } } if(hum1 < max_hum && hum1 > min_hum) { digitalWrite(fan_pin, LOW); digitalWrite(mist_pin, LOW); digitalWrite(dryer, LOW); if(temp1 < max_temp & temp1 > min_temp) { digitalWrite(fan_pin, LOW); digitalWrite(mist_pin, LOW); digitalWrite(dryer, LOW); } else if(temp1 >= max_temp) { digitalWrite(fan_pin, HIGH); digitalWrite(mist_pin, LOW); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 89 PHỤ LỤC digitalWrite(dryer, LOW); } else { digitalWrite(fan_pin, LOW); digitalWrite(mist_pin, LOW); digitalWrite(dryer, HIGH); } } else if( hum1 >= max_hum ) { digitalWrite(fan_pin, HIGH); digitalWrite(mist_pin, LOW); digitalWrite(dryer, LOW); } else { digitalWrite(fan_pin, LOW); digitalWrite(mist_pin, HIGH); digitalWrite(dryer, LOW); } Chương trình flutter liên kết với sở liệu firebase: static const FirebaseOptions web = FirebaseOptions( apiKey: 'AIzaSyDF_bn6T2M9OGjxH5Z-ePRqp-LKkjYsy-w', appId: '1:1001702944170:web:0606eb0176c02031c54fd3', messagingSenderId: '1001702944170', projectId: 'quanlynhayen-da658', BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 90 PHỤ LỤC authDomain: 'quanlynhayen-da658.firebaseapp.com', databaseURL: 'https://quanlynhayen-da658-default-rtdb.firebaseio.com', storageBucket: 'quanlynhayen-da658.appspot.com', measurementId: 'G-7XLLS3DT9Z' ); Chương trình flutter lấy liệu trạng thái cảm biến thiết bị: FirebaseDatabase database = FirebaseDatabase.instance; DatabaseReference databaseReference = FirebaseDatabase.instance.ref('control'); final FirebaseAuth _auth = FirebaseAuth.instance; StreamSubscription? _listenValue; final StreamController _streamValue = StreamController.broadcast(); Stream get streamValue => _streamValue.stream; DashBoardRepository() { _listenValue = databaseReference.onValue.listen((event) { List listVolumeValue = []; // listen change of value on firebase and push to stream Map.from(event.snapshot.value as dynamic) forEach((key, value) => listVolumeValue.add(value)); _streamValue.add(listVolumeValue); }); List listControl = []; List listSetting = []; List listTempHumi = []; if (state is DashBoardGetValueSuccess) { listControl = state.listControl; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 91 PHỤ LỤC led = listControl[0]; nebulizer = listControl[1]; speaker = listControl[2]; heater = listControl[3]; } if (state is DashBoardGetTempHumiValueSuccess) { listTempHumi = state.listTempHumi; humi1 = listTempHumi[0]; humi2 = listTempHumi[1]; temp1 = listTempHumi[2]; temp2 = listTempHumi[3]; } if (state is DashBoardGetSettingValueSuccess) { listSetting = state.listSetting; bottomHumi = listSetting[0]; bottomNebulizer = listSetting[1]; bottomTemp = listSetting[2]; isManual = listSetting[3]; topHumi = listSetting[4]; topNebulizer = listSetting[5]; topTemp = listSetting[6]; } Chương trình flutter gửi liệu điều khiển firebase: class DashBoardUpdateLedValue extends DashBoardEvent { final int ledValue; const DashBoardUpdateLedValue({required this.ledValue}); @override List get props => [ledValue]; } class DashBoardUpdateSpeakerValue extends DashBoardEvent { final int speakerValue; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 92 PHỤ LỤC const DashBoardUpdateSpeakerValue({required this.speakerValue}); @override List get props => [speakerValue]; } class DashBoardUpdateHeaterValue extends DashBoardEvent { final int heaterValue; const DashBoardUpdateHeaterValue({required this.heaterValue}); @override List get props => [heaterValue]; } class DashBoardSignOutEvent extends DashBoardEvent{} class DashBoardUpdateNebulizerValue extends DashBoardEvent { final int nebulizerValue; const DashBoardUpdateNebulizerValue({required this.nebulizerValue}); @override List get props => [nebulizerValue]; } class DashBoardUpdateIsManual extends DashBoardEvent { final int isManual; const DashBoardUpdateIsManual({required this.isManual}); @override List get props => [isManual]; } class DashBoardUpdateTopBottomValue extends DashBoardEvent { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 93 PHỤ LỤC final int topTemp; final int bottomTemp; final int topHumi; final int bottomHumi; final int topNebu; final int bottomNebu; const DashBoardUpdateTopBottomValue( {required this.topTemp, required this.bottomTemp, required this.topHumi, required this.bottomHumi, required this.topNebu, required this.bottomNebu}) @override List get props => [ topTemp, bottomTemp, topHumi, bottomHumi, topNebu, bottomNebu, ]; } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH 94 S K L 0

Ngày đăng: 08/12/2023, 15:28

TỪ KHÓA LIÊN QUAN

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

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

TÀI LIỆU LIÊN QUAN

w