Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 63 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
63
Dung lượng
8,11 MB
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 GẬY ĐIỆN TỬ HỖ TRỢ NGƯỜI KHIẾM THỊ GVHD: TH.S NGUYỄN PHÚC SVTH: NGUYỄN HỮU NGHĨA SKL010824 Tp Hồ Chí Minh, tháng 7/2023 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 GẬY ĐIỆN TỬ HỖ TRỢ NGƯỜI KHIẾM THỊ GVHD : SVTH : MSSV : Ngành : Th.S Nguyễn Văn Phúc Nguyễn Hữu Nghĩa 18161119 CNKT Điện tử - Viễn thơng Tp Hồ Chí Minh, tháng 07 năm 2023 CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM Độc lập – Tự – Hạnh phúc TP Hồ Chí Minh, ngày tháng năm 2023 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Nguyễn Hữu Nghĩa MSSV: 18161119 Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông Giáo viên hướng dẫn: Th.S Nguyễn Văn Phúc Ngày nhận đề tài: 15/03/2023 Ngày nộp đề tài: 7/7/2023 Tên đề tài: Thiết kế thi công gậy điện tử hỗ trợ người khiếm thị Các số liệu ban đầu: Nguyễn Quang Duy, Nguyễn Ảnh Gia Phú, “ Gậy thông minh hỗ trợ người khiếm thị”, Đồ án tốt nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TPHCM 2022 Vi điều khiển: Adruino Uno R3, MPU 6050 Các loại module: Mosfet 520, Module SIM A9G, GPS NEO 6M Cảm biến: Cảm biến ánh sáng, cảm biến hồng ngoại, cảm biến siêu âm, cảm biến chất lỏng Thiết bị: LED 5V USB, Buzzer, Nội dung thực đề tài: - Thiết kế thi cơng mơ hình phần cứng hệ thống, bao gồm phần cứng khí mạch điện - Xây dựng thuật toán điều khiển - Chạy thử, kiểm tra, đánh giá điều chỉnh thiết bị - Viết báo cáo thực - Bảo vệ luận văn Sản phẩm: Mơ hình gậy điện tử hỗ trợ người khiếm thị Quyển báo cáo đề tài TRƯỞNG NGÀNH GIÁO VIÊN HƯỚNG DẪN i CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM Độc lập – Tự – Hạnh phúc PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Họ tên sinh viên: Nguyễn Hữu Nghĩa MSSV: 18161119 Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông Tên đề tài: Thiết kế thi công gậy điện tử hỗ trợ người khiếm thị Họ tên Giáo viên hướng dẫn: Th.S Nguyễn Văn Phúc 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 2023 Giáo viên hướng dẫn ii CỘNG HÒA XÃ HỘI CHỦ NGĨA VIỆT NAM Độc lập – Tự – Hạnh phúc PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN Họ tên sinh viên: Nguyễn Hữu Nghĩa MSSV: 18161119 Ngành: Công nghệ kỹ thuật Điện tử - Viễn thông Tên đề tài: Thiết kế thi công gậy điện tử hỗ trợ người khiếm thị 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: Nhược đ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 2023 Giáo viên phản biện iii LỜI CẢM ƠN Lời đầu tiên, người thực đề tài xin bày tỏ kính trọng, lòng biết ơn chân thành sâu sắc đến Thầy Nguyễn Văn Phúc, thầy người trực tiếp hướng dẫn tận tình góp ý vấn đề chun mơn, giải đáp thắc mắc mà người thực gặp phải thực đề tài Ngoài ra, thầy cịn nhiệt tình chia sẻ kiến thức kinh nghiệm hữu ích để người thực đề tài hoàn thiện bảo vệ đề tài luận văn tốt nghiệp lần cách tốt Xin cảm ơn thầy! Để hồn thành khóa luận việc tích lũy kiến thức q trình học tập trường vơ quan trọng, người thực đề tài xin chân thành cảm ơn tồn thể q Thầy Cơ Khoa Đào tạo Chất lượng cao nhà trường tạo điều kiện, môi trường học tập tốt Người thực đề tài xin kính chúc q thầy cơ, q nhà trường thật nhiều sức khỏe để vững bước chặng đường trồng người Xin chân thành cảm ơn! Cuối cùng, người thực xin cảm ơn gia đình, người thân bạn bè động viên, hỗ trợ mặt vật chất lẫn tinh thần để người thực hoàn thành, hoàn thiện đồ án tốt nghiệp điều kiện tốt suốt trình thực Ở đồ án tốt nghiệp này, người thực đề tài cố gắng nỗ lực để hồn thành hạn mục tiêu ban đầu đề Tuy nhiên, lý kiến thức thời gian cịn hạn chế nên khơng thể tránh khỏi sai sót, kính mong q Thầy/cơ bạn thơng cảm góp ý để người thực rút kinh nghiệm phát triển, cải tiến đề tài luận văn tương lai Một lần nữa, Xin chân thành cảm ơn! Người thực đề tài Nguyễn Hữu Nghĩa iv LỜI CAM ĐOAN Người thực đề tài xin cam đoan đề tài “ Thiết kế thi công gậy điện tử hỗ trợ người khiếm thị” nghiên cứu độc lập người thực đề tài thiết kế thi công hướng dẫn thầy Th.S Nguyễn Văn Phúc Các số liệu kết nghiên cứu đề tài trung thực không chép đề tài nghiên cứu tương tự trước Em hồn tồn chịu trách nhiệm tính trung thực cách nội dung đề tài Người thực đề tài Nguyễn Hữu Nghĩa v TĨM TẮT Theo số liệu thống kê Việt Nam có khoảng triệu người mù thị lực Trong 1/3 người nghèo, khó khăn việc tìm lại ánh sáng cho đơi mắt Trong năm gần nhờ vào phát triển vượt bậc khoa học công nghệ người cố gắng, tìm tịi nghiên cứu tạo thiết bị hữu ích cho xã hội có nhiều thiết bị hỗ trợ người cho người khiếm thị hòa nhập với cộng đồng xung quanh Trên giới, số lượng thiết bị hỗ trợ cho người khiếm thị đa dạng ví dụ The MiniGuide[1] GDP Research với giá thành 400USD/cái Ultra cane [2] Sound Foresight Technology Ltd sản xuất với giá 1055USD/cái Để phù hợp với điều kiện, hoàn cảnh sống sinh hoạt người khiếm thị Việt Nam cịn nhiều hạn chế, đặc biệt giá thành.Vì ý tưởng sản phẩm tương tự với giá thành thấp đưa nghiên cứu Vấn đề cốt lõi cần giải giúp người khiếm thị di chuyển, hoạt động cách dễ dàng sinh hoạt đời sống ngày Ứng dụng tính chất sống siêu âm, tia hồng ngoại qua phát cảnh báo cho người sử dụng Ngồi GPS giúp ta dễ dàng tìm thấy, theo dõi người khiếm thị để vấn đề đảm bảo an tồn nâng cao Bên cạnh tín hiệu phát ánh sáng vào vùng tối tìm vị trí gậy quan trọng để hỗ trợ trực tiếp cho người khiếm thị vi MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN ii PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN iii LỜI CẢM ƠN iv LỜI CAM ĐOAN v TÓM TẮT vi MỤC LỤC vii DANH MỤC CÁC TỪ VIẾT TẮT x DANH MỤC BẢNG xi DANH MỤC HÌNH ẢNH xii Chương TỔNG QUAN 1.1 Giới thiệu 1.2 Mục tiêu đề tài 1.3 Giới hạn đề tài 1.4 Đối tượng phạm vi nghiên cứu 1.5 Phương ph́ áp nghiên cứu 1.6 Nội dung nghiên cứu 1.7 Bố cục Chương CƠ SỞ LÝ THUYẾT 2.1 Các nghiên cứu thực 2.1.1 Cây gậy thông minh WeWALK 2.1.2 Gậy thông minh UltraCan 2.2 Tổng quan hệ thống định vị GPS 2.2.1 Giới thiệu 2.2.2 Thành phần 2.2.3 Nguyên lý hoạt động GPS 2.3 Tổng quan chuẩn truyền liệu vii 2.3.1 Chuẩn truyền liệu UART 2.3.2 Chuẩn giao tiếp I2C 2.4 Tổng quan phần mềm lập trình cho Adruino 2.4.1 Giới thiệu phần mềm Adruino IDE 2.4.2 Các tác vụ phần mềm Adruino IDE Chương THIẾT KẾ VÀ XÂY DỰNG HỆ THỐNG 10 3.1 Thiết kế phần cứng khí 10 3.2 Yêu cầu hệ thống 10 3.3 Sơ đồ khối chức khối hệ thống 11 3.4 Tính tốn thiết kế mạch 12 3.4.1 Khối xử lý trung tâm 12 3.4.2 Khối nguồn 14 3.4.3 Khối cảm biến 16 3.4.3.1 Cảm biến siêu âm chống thấm nước JSN- SR04T 16 3.4.3.2 Cảm biến khoảng cách hồng ngoại E18-D80NK 18 3.4.3.3 Cảm biến chất lỏng không tiếp xúc XKC-Y26-PNP 19 3.4.3.4 Cảm biến gia tốc góc GY – 521 MPU6050 21 3.4.3.5 Cảm biến ánh sáng LDR 23 3.4.4 Khối định vị GPS 23 3.4.5 Khối RF 24 3.4.6 Khối phát tín hiệu cảnh báo 26 3.4.6.1 Module Sim A9G 26 3.4.6.2 Buzzer 28 3.4.6.3 LED USB 5V 29 3.4.6.4 Mosfet IRF 520 29 3.5 Lập trình hệ thống 30 3.5.1 Lưu đồ giải thuật 30 3.5.2 Giải thích lưu đồ 31 Chương KẾT QUẢ THỰC HIỆN 33 viii Hình Vị trí cảm biến siêu âm hồng ngoại chống thấm nước Cảm biến siêu âm hồng ngoại chống thấm nước lắp gậy, phát vật cản khoảng tử 0-80cm Khi có vật cản tín hiệu cảnh báo vật cản thấp phát buzzer Hình 4 Vị trí cảm biến chất lỏng khơng tiếp xúc Cảm biến chất lỏng không tiếp xúc gắn chân gậy Khi người khiếm thị vào vùng có chất lỏng hệ thống phát tín hiệu cảnh báo từ Buzzer 34 Hình Vị trí cảm biến siêu âm LED cảnh báo Cảm biến siêu âm chống thấm nước gắn phía trước tay cầm đèn LED cảnh báo gắn cảm biến siêu âm Khi người khiếm thị vào vùng thiếu ánh sáng hệ thống LED phát sáng Khi có vật cản cao khoảng từ 20300cm hệ thống buzzer phát tín hiệu cảnh báo vật cản cao Hình Mơ hình gậy điện tử hỗ trợ người khiếm thị 4.2 Hoạt động ứng dụng - Hệ thống kiểm tra trạng thái gậy qua trạng thái MPU6050 Buzzer phát cảnh báo với nội “ tọa độ GPS+ té ngã” gọi kéo dài 13s đến người thân giá trị MPU6050 bị thay đổi 35 Hình Hệ thống gửi cảnh báo khẩn cấp qua tin nhắn - Hệ thống kiểm tra nút nhấn khẩn cấp Buzzer phát cảnh báo, gửi tin nhắn với nội dung “ tọa độ GPS +khẩn cấp !” gọi kéo dài 13s đến người thân nút nhấn khẩn cấp nhấn Hình Tọa độ GPS người khiếm thị khẩn cấp 36 Chương KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN Kết luận Sau thời gian nghiên cứu phát triển để tài, người thực đề tài hoàn thành nhiệm vụ thiết kế thi công hệ thống “Gậy điện tử hỗ trợ người khiếm thị” với mục tiêu đề Tuy cịn nhiều sai sót hạn chế chưa khắc phục kịp thời có chức hỗ trợ cho người khiếm thị sử dụng hệ thống, giúp họ an toàn thuận tiện sinh hoạt ngày Các chức hệ thống mà người thực nghiên cứu thực thành công trực tiếp mơ hình “Gậy điện tử hỗ trợ người khiếm thị” bao gồm: - Phát vật cản phát cảnh báo - Gậy có khả chống nước tương đối tốt, di chuyển trời mưa nhỏ - Có tín hiệu cảnh báo cho người người khiếm thị vào vùng tối - Sử dụng nguồn Pin sạc có hiển thị mức Pin LED - Xác định vị trí người khiếm thị vào báo cho người thân họ gặp nguy hiểm - Khi thực nghiệm định vị GPS xác định tương đối xác so với vị trí người khiếm thị - Khi thực nghiệm, độ ổn định hiệu mơ hình tương đối cao, không xảy lỗi không mong muốn tự reset Tuy nhiên, định vị GPS hệ thống hoạt động mơi trường kín, cụ thể phòng tầng nhà nhiều tầng nhiều thời gian để khởi động tính tốn định vị người sử dụng hệ thống, sóng yếu xuyên qua nhiều lớp tường, bê tơng Cịn lại, chức hoạt động sạc hệ thống chạy ổn định hệ thống không bị chịu tác động khác từ bên 5.2 Hạn chế - Cần thời gian để Module GPS Neo 6M thể kết nối với vệ tinh - Mạch sạc đặt bên hộp nên khó quan sát dung lượng pin cịn lại - Hệ thống cảm biến nhận biết vật cản từ hướng - Khi cần thay đổi SIM hệ thống phải tháo mở hộp mica - Chỉ có buzzer phát cảnh báo, dễ gây tượng nhầm lẫn âm cảm biến cho người sử dụng - Thời gian sử dụng ngắn, khoảng 4.5 5.3 Hướng phát triển Hướng phát triển hệ thống dựa chức khắc phục điểm hạn chế bao gồm: 5.1 37 - Nghiên cứu cải tiến hệ thống định vị GPS ổn định, xác khơng nhiều thời gian để khởi động - Nghiên cứu sử dụng lượng mặt trời để sạc pin để tiết kiệm giảm thiểu ô nhiểm môi trường - Cải tiến sử dụng phương pháp đo dung lượng pin xác, rõ ràng Ví dụ có tín hiệu cảnh báo, hình oled hiển thị hết pin - Cải tiến thêm nhiều cảm biến khoảng cách để nhận biết vật cản từ nhiều hướng - Cải tiến phương pháp sạc pin nhanh dung lượng pin cao - Cải tiến thiết kế mạch nhỏ gọn, giảm trọng lượng gậy chống thấm cho hệ thống - Hiệu chỉnh mức độ ưu tiên cảm biến dung lượng pin hết 38 TÀI LIỆU THAM KHẢO [1] Thiết bị The MiniGuide trích dẫn từ trang web: https://lssproducts.com/miniguide-mobility-aid/ truy cập ngày 24/6/2023 [2] Thiết bị Ultracane , trích dẫn từ trang web: https://www.ultracane.com/about_the_ultracane truy cập ngày 24/6/2023 [3] Nguyễn Quang Duy, Nguyễn Ảnh Gia Phú, “ Gậy thông minh hỗ trợ người khiếm thị”, Đồ án tốt nghiệp ĐH, Trường ĐH Sư Phạm Kỹ Thuật TPHCM 2022 [4] Nguyễn Đình Phù- Nguyễn Trường Duy, Giáo trình kỹ thuật số, Trường ĐH Sư Phạm Kỹ Thuật TPHCM [5] Nguyễn Việt Hùng- Nguyễn Ngô Lâm, Giáo trình kỹ thuật truyền số liệu, Trường ĐH Sư Phạm Kỹ Thuật TPHCM [6] Báo niên https://thanhnien.vn/nguoi-khiem-thi-phat-minh-gay-thong-minh-chu-du-khap-thegioi-1851257749.html truy cập ngày 24/6/2023 [7] Tham khảo lựa chọn linh kiện: https://www.thegioiic.com/ truy cập ngày 24/6/2023 https://icdayroi.com/ https://dientutuyetnga.com/ truy cập ngày 24/6/2023 [8] Abdul Sfiiyan Manaf- Ebin Joseph- Shibil PM- Akmal Ahmed, “Effective Fast Response Smart Stick for Blind People”, Electrical And Electronics Engineering Yenepoya Institute of technology, Moodbidri, India https://www.ijert.org/effective-fast-response-smart-stick-for-blind-people truy cập ngày 24/6/2023 Datasheet: [9] Adruino Uno R3, https://docs.arduino.cc/resources/datasheets/A000066-datasheet.pdf truy cập ngày 24/6/2023 [10] Module MPU6050, https://www.alldatasheet.com/datasheet-pdf/pdf/1132807/TDK/MPU-6050.html truy cập ngày 24/6/2023 [11] Module Sim A9G, https://www.mouser.com/pdfDocs/Product_Overview_DFRobot_A9G_GSM_GSPRS _Modules.pdf truy cập ngày 24/6/2023 39 PHỤ LỤC Sơ đồ nguyên lý hệ thống 40 Chương trình hệ thống #include #include #include #include SoftwareSerial mySerial(6, 7); // RX, TX #define trigPin #define echoPin #define buzzer #define light #define ir_sensor 10 #define water_sensor 11 #define LED 12 #define MAX_DISTANCE 400 // NewPing setup of pins and maximum distance NewPing sonar = NewPing(trigPin, echoPin, MAX_DISTANCE); // Define variables: long duration; int distance; MPU6050 mpu; bool tim_gay = 0; bool khan_cap = 0; char buff[24]; int khoang_cach = 0; String locationString; float Xaccel_old = 0; float Xaccel_new = 0; int counter = 0; void setup() { Serial.begin(115200); pinMode(buzzer, OUTPUT); pinMode(light, INPUT_PULLUP); pinMode(ir_sensor, INPUT_PULLUP); pinMode(water_sensor, INPUT_PULLUP); pinMode(3, INPUT_PULLUP); pinMode(LED, OUTPUT); while (!Serial){} while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) { Serial.println("Could not find a valid MPU6050 sensor, check wiring!"); delay(500); } 41 // If you want, you can set accelerometer offsets // mpu.setAccelOffsetX(); // mpu.setAccelOffsetY(); // mpu.setAccelOffsetZ(); checkSettings(); mySerial.begin(9600); a9g_init(); // AT+GPS=1 // AT+LOCATION=2 mySerial.println("AT"); delay(100); attachInterrupt(0, ngatRF, RISING); attachInterrupt(1, nut_khan_cap, FALLING); delay(100); khan_cap = 0; } void ngatRF(){ tim_gay = 1; } void nut_khan_cap(){ // if (digitalRead(3) == 0){ // delay(1); if (digitalRead(3) == 0){ delay(1); if (digitalRead(3) == 0){ khan_cap =1 ; } } } void checkSettings() { Serial.println(); Serial.print(" * Sleep Mode: "); Serial.println(mpu.getSleepEnabled() ? "Enabled" : "Disabled"); Serial.print(" * Clock Source: "); switch(mpu.getClockSource()) { case MPU6050_CLOCK_KEEP_RESET: Serial.println("Stops the clock and keeps the timing generator in reset"); break; case MPU6050_CLOCK_EXTERNAL_19MHZ: Serial.println("PLL with external 19.2MHz reference"); break; case MPU6050_CLOCK_EXTERNAL_32KHZ: Serial.println("PLL with external 32.768kHz reference"); break; case MPU6050_CLOCK_PLL_ZGYRO: Serial.println("PLL with Z axis gyroscope reference"); break; case MPU6050_CLOCK_PLL_YGYRO: Serial.println("PLL with Y axis gyroscope reference"); break; case MPU6050_CLOCK_PLL_XGYRO: Serial.println("PLL with X axis gyroscope reference"); break; 42 case MPU6050_CLOCK_INTERNAL_8MHZ: Serial.println("Internal 8MHz oscillator"); break; } Serial.print(" * Accelerometer: "); switch(mpu.getRange()) { case MPU6050_RANGE_16G: Serial.println("+/- 16 g"); break; case MPU6050_RANGE_8G: Serial.println("+/- g"); break; case MPU6050_RANGE_4G: Serial.println("+/- g"); break; case MPU6050_RANGE_2G: Serial.println("+/- g"); break; } Serial.print(" * Accelerometer offsets: "); Serial.print(mpu.getAccelOffsetX()); Serial.print(" / "); Serial.print(mpu.getAccelOffsetY()); Serial.print(" / "); Serial.println(mpu.getAccelOffsetZ()); Serial.println(); } void loop() { if (khan_cap == 1){ if (digitalRead(3) == 0){ Serial.println("Khan cap !"); am_thanh_khan_cap(); a9g_nhan_tin("961451786", "Khan cap !!!"); a9g_goi_dien_thoai("961451786"); } delay(1000); khan_cap = 0; } if (tim_gay == 1){ am_thanh_tim_gay(); tim_gay = 0; } bool co_vat_cao = 1; for (int i = 0; i < 4; i++){ readSonar(); if (khoang_cach == || khoang_cach > 90) co_vat_cao = 0; } if (co_vat_cao == 1) { Serial.println("Co vat can cao"); am_thanh_vat_can_cao(); delay(500); } if (digitalRead(light)){ Serial.println("Thieu anh sang"); digitalWrite(LED, HIGH); 43 } else digitalWrite(LED, LOW); if (!digitalRead(ir_sensor)){ Serial.println("Co vat can thap"); am_thanh_vat_can_thap(); delay(500); } if (!digitalRead(water_sensor)){ Serial.println("Co nuoc"); am_thanh_co_nuoc(); delay(500); } readMPU6050(); delay(200); } void am_thanh_khan_cap(){ for (int i = 0; i < 4; i++){ digitalWrite(buzzer, HIGH); delay(80); digitalWrite(buzzer, LOW); delay(80); } } void am_thanh_tim_gay(){ for (int i = 0; i < 3; i++){ digitalWrite(buzzer, HIGH); delay(400); digitalWrite(buzzer, LOW); delay(400); } } void am_thanh_vat_can_thap(){ for (int i = 0; i < 3; i++){ digitalWrite(buzzer, HIGH); delay(150); digitalWrite(buzzer, LOW); delay(150); } } void am_thanh_vat_can_cao(){ for (int i = 0; i < 3; i++){ digitalWrite(buzzer, HIGH); delay(250); digitalWrite(buzzer, LOW); delay(250); } } 44 void am_thanh_co_nuoc(){ for (int i = 0; i < 3; i++){ digitalWrite(buzzer, HIGH); delay(500); digitalWrite(buzzer, LOW); delay(500); } } void a9g_init(){ mySerial.println("AT+RST=1"); delay(4000); mySerial.println("AT+CMGD=1,4"); // delete all messages delay(3000); mySerial.println("AT+CMGF=1"); // send message in text delay(1000); mySerial.println("AT+GPS=1"); delay(1000); //mySerial.println("AT+LOCATION=2"); //delay(500); } void a9g_goi_dien_thoai(String so_dien_thoai){ Serial.println("ATD+84" + so_dien_thoai); mySerial.println("ATD+84" + so_dien_thoai); delay(13000); mySerial.println("ATH"); delay(1000); } void a9g_get_gps(){ mySerial.println("AT+LOCATION=2"); delay(4000); if (mySerial.available()){ locationString = mySerial.readString(); Serial.println(locationString); } delay(500); } void a9g_nhan_tin(String so_dien_thoai, String noi_dung){ a9g_get_gps(); delay(2000); mySerial.println("AT+CMGF=1"); delay(1000); mySerial.println("AT+CMGS=\"+84" + so_dien_thoai + "\""); delay(3000); mySerial.println("Toa : " + locationString + " , Noi dung : " + noi_dung); mySerial.println("Toa : "); delay(2000); mySerial.write("\x1a"); 45 delay(1000); } void readMPU6050(){ Vector rawAccel = mpu.readRawAccel(); Vector normAccel = mpu.readNormalizeAccel(); Serial.print(" Xraw = "); Serial.print(rawAccel.XAxis); Serial.print(" Yraw = "); Serial.print(rawAccel.YAxis); Serial.print(" Zraw = "); Serial.println(rawAccel.ZAxis); Serial.print(" Xnorm = "); Serial.print(normAccel.XAxis); Serial.print(" Ynorm = "); Serial.print(normAccel.YAxis); Serial.print(" Znorm = "); Serial.println(normAccel.ZAxis); Xaccel_new = normAccel.XAxis; if (Xaccel_new > 5){ if (counter >= 10){ Xaccel_old = Xaccel_new; } else{ counter++; } } else if (Xaccel_new < 2){ if (Xaccel_old > 5){ counter = 0; Serial.print("Te nga"); a9g_nhan_tin("961451786", "Te nga !!!"); } } } void readSonar(){ Serial.print("Distance = "); // Send ping, get distance in cm and print result (0 = outside set distance range): khoang_cach = sonar.ping_cm(); sprintf(buff, "%d", khoang_cach); Serial.print(khoang_cach); Serial.println(" cm"); } 46 Kiểm tra đạo văn 47 S K L 0