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

(Đồ án HCMUTE) thiết kế và thi công hệ thống giám sát học sinh trên xe đưa rước

129 1 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

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 CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT HỌC SINH TRÊN XE ĐƯA RƯỚC GVHD: NGUYỄN VĂN HIỆP SVTH : CAO HOÀNG KHANG LÊ MINH TUẤN SKL 09273 Tp Hồ Chí Minh, tháng 7/2022 i TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT HỌC SINH TRÊN XE ĐƯA RƯỚC SVTH1 MSSV SVTH2 MSSV Khóa Ngành GVHD : Cao Hoàng Khang : 18161084 : Lê Minh Tuấn : 18161174 : 2018 : CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG : ThS Nguyễn Văn Hiệp Tp Hồ Chí Minh, tháng năm 2022 i TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT HỌC SINH TRÊN XE ĐƯA RƯỚC SVTH1 MSSV SVTH2 MSSV Khóa Ngành GVHD : Cao Hồng Khang : 18161084 : Lê Minh Tuấn : 18161174 : 2018 : CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG : ThS Nguyễn Văn Hiệp Tp Hồ Chí Minh, tháng năm 2022 i BẢN NHẬN XÉT KHÓA LUẬN TỐT NGHIỆP (Dành cho giảng viên hướng dẫn) Đề tài: Hệ thống giám sát học sinh xe đưa rước Sinh viên thực hiện: Cao Hoàng Khang – MSSV: 18161084 Lê Minh Tuấn – MSSV: 18161174 Giảng viên hướng dẫn: ThS Nguyễn Văn Hiệp Nhận xét bao gồm nội dung sau đây: Tính hợp lý cách đặt vấn đề giải vấn đề; ý nghĩa khoa học thực tiễn: Đặt vấn đề rõ ràng, mục tiêu cụ thể; đề tài có tính mới, cấp thiết; đề tài có khả ứng dụng, tính sáng tạo Phương pháp thực hiện/phân tích/thiết kế: Phương pháp hợp lý tin cậy dựa sở lý thuyết; có phân tích đánh giá phù hợp; có tính tính sáng tạo Kết thực hiện/phân tích đánh giá kết quả/kiểm định thiết kế: Phù hợp với mục tiêu đề tài; phân tích đánh giá/kiểm thử thiết kế hợp lý; có tính sáng tạo/kiểm định chặt chẽ đảm bảo độ tin cậy Kết luận đề xuất: Kết luận phù hợp với cách đặt vấn đề, đề xuất mang tính cải tiến thực tiễn; kết luận có đóng góp mẻ, đề xuất sáng tạo thuyết phục Hình thức trình bày bố cục báo cáo: Văn phong quán, bố cục hợp lý, cấu trúc rõ ràng, định dạng mẫu; có tính hấp dẫn, thể lực tốt, văn trau chuốt Kỹ chuyên nghiệp tính sáng tạo: Thể kỹ giao tiếp, kỹ làm việc nhóm, kỹ chuyên nghiệp khác việc thực đề tài Tài liệu trích dẫn Tính trung thực việc trích dẫn tài liệu tham khảo; tính phù hợp tài liệu trích dẫn; trích dẫn theo dẫn APA Đánh giá trùng lặp đề tài Cần khẳng định đề tài có trùng lặp hay khơng? Nếu có, đề nghị ghi rõ mức độ, tên đề tài, nơi công bố, năm công bố đề tài công bố Những nhược điểm thiếu sót, điểm cần bổ sung chỉnh sửa i i 10 Nhận xét tinh thần, thái độ học tập, nghiên cứu sinh viên Đề nghị giảng viên hướng dẫn Ghi rõ: “Báo cáo đạt/khơng đạt u cầu khóa luận tốt nghiệp kỹ sư, phép/khơng phép bảo vệ khóa văn tốt nghiệp” Tp HCM, ngày … tháng … năm 2022 Người nhận xét (Ký ghi rõ họ tên) ii i CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc *** -Tp Hồ Chí Minh, ngày … tháng … năm 2022 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Cao Hồng Khang Ngành: Cơng Nghệ Kỹ Thuật Điện Tử - Viễn Thông Họ tên sinh viên 2: Lê Minh Tuấn Ngành: Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông Giảng viên hướng dẫn: ThS Nguyễn Văn Hiệp Ngày nhận đề tài: 26/3 MSSV: 18161084 Lớp: 18161CLDT1B MSSV: 18161174 Lớp: 18161CLDT1A ĐT: 090 996 0000 Ngày nộp đề tài: 19/7/2022 Tên đề tài: Hệ thống giám sát học sinh xe đưa rước Các số liệu, tài liệu ban đầu: - Kiến thức môn Mạch Điện, Điện Tử Cơ Bản, Vi Xử Lý, TT Vi Xử Lý Nguồn tài liệu ĐATN, ĐATN khóa trước Nội dung thực đề tài: - Thiết kế hệ thống Xây dựng mạch Proteus Chỉnh sửa thi công mạch Viết báo cáo Sản phẩm: Hệ thống giám sát học sinh xe đưa rước TRƯỞNG NGÀNH GIẢNG VIÊN HƯỚNG DẪN iii i CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên 1: Cao Hoàng Khang MSSV: 18161084 Họ tên Sinh viên 2: Lê Minh Tuấn MSSV: 18161174 Ngành: Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông Tên đề tài: Xây dựng hệ thống giám sát học sinh xe đưa rước Họ tên Giáo viên hướng dẫn: ThS Nguyễn Văn Hiệp NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: (Bằng chữ: ) Tp Hồ Chí Minh, ngày … tháng … năm 20… Giáo viên hướng dẫn (Ký & ghi rõ họ tên) iv i CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh Phúc ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên 1: Cao Hoàng Khang MSSV: 18161084 Họ tên Sinh viên 2: Lê Minh Tuấn MSSV: 18161174 Ngành: Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông Tên đề tài: Xây dựng hệ thống giám sát học sinh xe đưa rước Họ tên Giáo viên phản biện: NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm: Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: (Bằng chữ: ) Tp Hồ Chí Minh, ngày … tháng … năm 20… Giáo viên phản biện (Ký & ghi rõ họ tên) v i TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐÀO TẠO CHẤT LƯỢNG CAO 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ự - Hạnh phúc Tp HCM, ngày 27 tháng năm 2022 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP (Bản lịch trình đóng vào đồ án) Họ tên sinh viên: CAO HOÀNG KHANG Lớp: 18161CLDT1B MSSV: 18161084 Họ tên sinh viên: LÊ MINH TUẤN Lớp: 18161CTDT1A MSSV: 18161174 Tên đề tài: Thiết kế thi công hệ thống giám sát học sinh xe đưa rước Tuần/ngày Nội dung cần thực Tuần - Gặp GVHD để nghe phổ biến yêu cầu làm Xác nhận GVHD đồ án, tiến hành chọn đồ án Tuần - GVHD tiến hành xét duyệt đề tài - Viết tóm tắt yêu cầu đề tài chọn: đề tài Tuần làm gì, nội dung thiết kế, thông số giới hạn đề tài Tuần Tuần - Tiến hành thiết kế sơ đồ khối, giải thích chức khối - Khảo sát, lựa chọn linh kiện vi i - Thiết kế sơ đồ mạch, giải thích nguyên lý hoạt động mạch Tuần - Vẽ mạch mô - Tiến hành thử mạch testboard Tuần - Tiến hành thi công mạch Tuần - Kiểm tra sửa lỗi mạch thi công Tuần Tuần 10 - Kiểm tra sửa lỗi mạch thi công - Viết báo cáo nội dung làm - Hoàn thiện báo cáo gởi cho GVHD để xem xét góp ý lần cuối trước in báo cáo Tuần 11 - Nộp báo cáo báo cáo đề tài Tuần 12 - Báo cáo với GVHD GV HƯỚNG DẪN (Ký ghi rõ họ tên) vii i CHƯƠNG 4: KẾT QUẢ THI CƠNG Hình 4.23: Giao diện trường thiết kế firebase Hình 4.24: Các liệu trường “Data” firebase Hình 4.25: Các liệu trường “list” firebase Hình 4.26: Các liệu trường “location” firebase 92 i CHƯƠNG 4: KẾT QUẢ THI CƠNG 4.2 Kết đo Để hệ thống bắt đầu hoạt động cách ổn định, ta phải chờ khoảng thời gian cho linh kiện bắt tín hiệu để mạch chạy tốt ổn định đầy đủ chức cần đáp ứng yêu cầu kết nối Wifi, nhận tín hiệu GPS sóng điện thoại: Tín hiệu GPS Đầu tiên GPS, để mạch định vị vị trí xe bt GPS phải cần có thời gian để bắt tín hiệu Thời gian bắt tín hiệu phụ thuộc vào vị trí ăng ten, nơi thống linh kiện dễ bắt tín hiệu Nhóm tác giả đo thời gian bắt tín hiệu linh kiện lập thành bảng sau: Bảng 4.1: Số lần đo thời gian bắt tín hiệu GPS Số lần Thời gian (giây) Lần 283 Lần 571 Lần 1100 Lần 784 Lần 386 Trung bình 624 Có thể thấy thời gian bắt tín hiệu GPS thất thường, thời gian trung bình bắt tín hiệu thường khoảng từ 10 phút Module Sim bắt sóng Tiếp theo phần gửi tin nhắn, cụ thể Module Sim, để tính thời gian bắt tín hiệu nhóm tác giả có nhiều lần đo thực tế: Bảng 4.2: Số lần đo thời gian bắt tín hiệu Module SIM Số lần Thời gian (giây) Lần 15 Lần 10 Lần 12 Lần 13 Lần Trung bình 11.8 Từ bảng thấy thời gian bắt tín hiệu Module SIM nhanh, tầm 10 giây bắt tín hiệu Kết nối Wifi 93 i CHƯƠNG 4: KẾT QUẢ THI CƠNG Phần thứ ba Wifi, phần giúp cho hệ thống gửi thơng tin lên firebase Thời gian bắt Wifi nhóm tác giả đo nhiều lần sau: Bảng 4.3: Số lần đo thời gian bắt tín hiệu Wifi Số lần Thời gian (giây) Lần Lần Lần Lần 4 Lần Trung bình 4.4 Từ ta thấy thời gian bắt tín hiệu Wifi nhanh (khoảng giây) Ở phần định vị GPS vị trí xe bt, nhóm tác giả có nhiều lần đo sai lệch vị trí dựa google map có bảng sau: Bảng 4.4: Số lần đo tọa độ vị trí dạng thập phân module GPS điện thoại Vị trí thiết bị đo Vị trí tham chiếu Số lần (Neo-6M) (Trên điện thoại) Lần 10.885442, 106.768269 10.885439, 106.768263 Lần 10.885442, 106.768269 10.885445, 106.768449 Lần 10.885441, 106.768268 10.885487, 106.768396 Lần 10.885441, 106.768270 10.885512, 106.768327 Lần 10.885443, 106.768269 10.885575, 106.768391 Trung bình 10.885442, 106.768269 10.8854916, 106.7683652 Dựa bảng này, nhóm tác giả có tính tốn sai số dựa vị trí google map là: X ± 0.001%, Y ± 0.0001% Từ cho thấy, độ lệch vị trí GPS nhỏ, sai số mức ± 0.001% 94 i CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CHƯƠNG : KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Sau thời gian nghiên cứu, học hỏi dựa mục tiêu đề tài mà nhóm đặt từ đầu, cuối hồn thành thi cơng mạch thực tế hệ thống đạt tiêu chí dựa yêu cầu ban đầu sau: + Có thể quét thẻ check in/check out lưu liệu lên Firebase + LCD hiển thị trạng thái hệ thống, thông tin thẻ quét + Led sáng cho thấy bắt tín hiệu GPS, buzzer hoạt động ổn định quét thẻ + Nút nhấn khẩn cấp hoạt động tốt có gửi tin nhắn, gọi điện nhấn + Ứng dụng điện thoại hoạt động ổn định, giúp người dùng xem thông tin yêu cầu ban đầu xem vị trí tọa độ xe, xem thông tin chuyến xe, xem danh sách học sinh xe Nhìn chung tiêu chí dựa u cầu đề ban đầu hệ thống mà nhóm tác giả thiết kế đáp ứng đầy đủ Tuy nhiên hệ thống có nhược điểm sau: + Định vị GPS tốn nhiều thời gian để bắt tín hiệu khơng gian kín + Ứng dụng sử dụng hệ điều hành Android cịn hệ điều hành khác khơng + Thiết kế sản phẩm cịn cồng kềnh tính thẩm mĩ chưa cao + Sản phẩm dừng lại mức độ nghiên cứu 5.2 Hướng phát triển Thông qua phần kết luận, nhóm tác giả nhận thấy hệ thống đáp ứng tiêu chí yêu cầu đề tài đưa ra, hệ thống điều chưa tối ưu, từ nhóm tác giả nhận thấy hệ thống cịn cải tiến thêm như: + Ứng dụng hỗ trợ cho hệ điều hành Android nên cải thiện ứng dụng hỗ trợ thêm nhiều hệ điều hành khác + Việc bắt tín hiệu GPS vấn đề tín hiệu khơng thể bắt tốt khơng gian kín, thay linh kiện khác có khả bắt tín hiệu tốt + Bổ sung thêm chức để có đáp ứng nhu cầu khác người sử dụng + Cải thiện thiết kế bên để tăng trải nghiệm người dùng + Giảm giá thành xây dựng hệ thống 95 i TÀI LIỆU THAM KHẢO TÀI LIỆU THAM KHẢO [1] Nguyễn Đình Phú, Phan Vân Hồn, Trương Ngọc Anh , Giáo trình thực tập vi xử lý, Đại Học Sư phạm Kỹ Thuật TP.HCM, 2017 [2] Nguyễn Hữu Phước (2021), Hướng dẫn lập trình ESP8266 NodeMCU dùng Arduino IDE, truy cập 21/5/2022, từ [3] Điện Tử ChipKool (2020), Bài 5: Tìm hiểu Module sim800A cách test lệnh AT kít wifi ESP8266 - Project ứng dụng IOT, truy cập 21/5/2022, từ [4] Đoàn Huỳnh Bảo Duy (2021), GPS gì? Ứng dụng GPS thiết bị di động, truy cập 25/5/2022, từ [5] microcontrollerslab.com, NEO-6M GPS Module with ESP8266 NodeMCU and Track Location on Google Maps, truy cập 25/5/2022, từ [6] Xukyo (2021), Using an RFID module with an ESP8266, truy cập 27/5/2022, từ 96 i PHỤ LỤC PHỤ LỤC Code cho ESP: #include #include #include #include #include #define WIFI_SSID "kxsm" #define WIFI_PASSWORD "khang2000" #define FIREBASE_HOST "https://datn-app-e1540-defaultrtdb.firebaseio.com/" #define FIREBASE_AUTH "nWlU7zB3RBqZMxZQdo5lVUh5mOxcrxkYglr5qjwE" FirebaseData fbdt; #define SS_PIN D8 #define RST_PIN D0 MFRC522 mfrc522(SS_PIN, RST_PIN); unsigned long uidDec, uidDecTemp; LiquidCrystal_I2C lcd(0x27,16,2 #define led_gps #define buzzer 10 #include #include static const int RXPin = D4, TXPin = D3; static const uint32_t GPSBaud = 9600; TinyGPSPlus gps; SoftwareSerial ss(RXPin, TXPin); float longitude, latitude; void setup() { pinMode(led_gps,OUTPUT); pinMode(buzzer,OUTPUT); digitalWrite(led_gps,LOW); digitalWrite(buzzer,LOW); Serial.begin(9600); ss.begin(GPSBaud); SPI.begin(); mfrc522.PCD_Init(); lcd.init(); lcd.backlight(); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print("WIFI CONNECTING "); } Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); 97 i PHỤ LỤC } lcd.setCursor(0,0); lcd.print(" lcd.setCursor(0,1); lcd.print(" lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); "); "); void get_location(); void xoa_lcd(); void displayInfo(); void check_out_tx(); void check_uid(); void check_in_out_1(); void check_in_out_2(); void check_in_out_3(); void check_in_out_4(); void check_in_out_5(); void check_in_out_tx(); boolean check1 = false , check2 = false, check3 = false; boolean check4 = false, check5 = false, checktx = false; void loop() { get_location(); if ( ! mfrc522.PICC_IsNewCardPresent()) return; if ( ! mfrc522.PICC_ReadCardSerial()) return; uidDec = 0; for (byte i = 0; i < mfrc522.uid.size; i++) { uidDecTemp = mfrc522.uid.uidByte[i]; uidDec = uidDec*256+uidDecTemp; } check_uid(); delay(200); } void check_uid(){ if (uidDec == 2586780447) { check_in_out_1(); xoa_lcd(); if(check1 == true){ lcd.setCursor(0,1); lcd.print(" Tuan check in "); } else if(check1 == false){ lcd.setCursor(0,1); lcd.print(" Tuan check out "); } lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); lcd.print(uidDec); Firebase.setString(fbdt,"list/name1","Le_Minh_Tuan"); delay(500); digitalWrite(buzzer,HIGH); 98 i PHỤ LỤC delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else if (uidDec == 2047432637) { check_in_out_2(); xoa_lcd(); if(check2 == true){ lcd.setCursor(0,1); lcd.print(" C check in "); } else if(check2 == false){ lcd.setCursor(0,1); lcd.print(" C check out "); } lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); lcd.print(uidDec); Firebase.setString(fbdt,"list/name3","Nguyen_Van_C"); delay(500); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else if (uidDec == 1127522061) { check_in_out_3(); xoa_lcd(); if(check3 == true){ lcd.setCursor(0,1); lcd.print(" Khang check in "); } else if(check3 == false){ lcd.setCursor(0,1); lcd.print("Khang check out "); } lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); lcd.print(uidDec); Firebase.setString(fbdt,"list/name2","Cao_Hoang_Khang"); delay(500); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else if (uidDec == 229365291) { 99 i PHỤ LỤC check_in_out_4(); xoa_lcd(); if(check4 == true){ lcd.setCursor(0,1); lcd.print(" D check in "); } else if(check4 == false){ lcd.setCursor(0,1); lcd.print(" D check out "); } lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); lcd.print(uidDec); Firebase.setString(fbdt,"list/name4","Nguyen_Thi_D"); delay(500); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else if (uidDec == 3715028779) { check_in_out_5(); xoa_lcd(); if(check5 == true){ lcd.setCursor(0,1); lcd.print(" E check in "); } else if(check5 == false){ lcd.setCursor(0,1); lcd.print(" E check out "); } lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); lcd.print(uidDec); Firebase.setString(fbdt,"list/name5","Nguyen_Thi_E"); delay(500); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else if (uidDec == 2210678803) { check_in_out_tx(); xoa_lcd(); if(checktx == true){ lcd.setCursor(0,1); lcd.print("Tai xe check in "); lcd.setCursor(0,0); lcd.print("ID: "); lcd.setCursor(4,0); 100 i PHỤ LỤC lcd.print(uidDec); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); } else if(checktx == false){ check_out_tx(); } Firebase.setString(fbdt,"Data/name","Nguyen_Van_A"); delay(500); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } else{ lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" Warning "); lcd.setCursor(0,1); lcd.print("The khong hop le"); delay(500); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY "); } } void check_in_out_1(){ if (check1 == false){ check1=true; } else if (check1 == true){ check1=false; } } void check_in_out_2(){ if (check2 == false){ check2=true; } else if (check2 == true){ check2=false; } } void check_in_out_3(){ if (check3 == false){ check3=true; } else if (check3 == true){ check3=false; } 101 i PHỤ LỤC } void check_in_out_4(){ if (check4 == false){ check4=true; } else if (check4 == true){ check4=false; } } void check_in_out_5(){ if (check5 == false){ check5=true; } else if (check5 == true){ check5=false; } } void check_in_out_tx(){ if (checktx == false){ checktx=true; } else if (checktx == true){ checktx=false; } } void check_out_tx(){ if (check1 || check2 || check3 || check4 || check5) { checktx=true; xoa_lcd(); lcd.setCursor(0,0); lcd.print(" WARNING "); lcd.setCursor(0,1); lcd.print("CHECK AGAIN PLS "); digitalWrite(buzzer,HIGH); delay(1000); digitalWrite(buzzer,LOW); delay(1000); digitalWrite(buzzer,HIGH); delay(1000); digitalWrite(buzzer,LOW); } else { lcd.setCursor(0,0); lcd.print(" "); lcd.setCursor(0,1); lcd.print(" "); lcd.setCursor(0,0); lcd.print(" OK GOODBYE "); delay(200); digitalWrite(buzzer,HIGH); delay(300); digitalWrite(buzzer,LOW); 102 i PHỤ LỤC xoa_lcd(); lcd.setCursor(0,0); lcd.print(" SYSTEM READY Serial.write('9'); "); } } void xoa_lcd(){ lcd.setCursor(0,0); lcd.print(" lcd.setCursor(0,1); lcd.print(" } "); "); void get_location(){ while (ss.available() > 0) if (gps.encode(ss.read())) { displayInfo(); } if (millis() > 5000 && gps.charsProcessed() < 10) { digitalWrite(led_gps,LOW); lcd.setCursor(0,1); lcd.print("check wiring gps"); } } void displayInfo() { if (gps.location.isValid()) { latitude = gps.location.lat(); longitude = gps.location.lng(); Firebase.setString(fbdt,"location/latitude",latitude); Firebase.setString(fbdt,"location/longitude",longitude); lcd.setCursor(0,1); lcd.print("Update Location"); digitalWrite(led_gps,HIGH); } else { digitalWrite(led_gps,LOW); lcd.setCursor(0,1); lcd.print("Location invalid"); } } Code cho Arduino: #include SoftwareSerial SIM(6,5); String number1 = "+84326090840"; String number2 = "+84973177420"; String SMS_Warning = "Warning, check again"; String SMS_finish = "The car has arrived"; 103 i PHỤ LỤC const int buttonPin = 8; const int ledPin = 13; void setup() { Serial.begin(9600); SIM.begin(9600); pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT); digitalWrite(ledPin,LOW); delay(100); } void loop() { btn(); if(Serial.available()>0){ switch(Serial.read()) { case '1': GUI(number1,SMS_finish); digitalWrite(ledPin,HIGH); delay(300); digitalWrite(ledPin,LOW); break; case '2': GUI(number2,SMS_Warning); break; case '9': GOI(number1); break; } } } void btn(){ if (digitalRead(buttonPin)==LOW){ delay(2000); if(digitalRead(buttonPin)==LOW){ delay(100); for(int i=0; i

Ngày đăng: 08/05/2023, 17:44

Xem thêm:

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

TÀI LIỆU LIÊN QUAN