iv ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự Do – Hạnh phúc TT Nội dung góp ý của Hội đồng Kết quả chỉnh sửa, bổ
Trang 1BỘ 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
MÔ HÌNH QUẢN LÝ HỆ THỐNG CHO THUÊ XE ĐẠP TRONG THÀNH PHỐ
ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÌNH
GVHD: ThS HUỲNH THỊ THU HIỀN SVTH: NGUYỄN THỊ NHẬT BĂNG TÔ HOÀNG VŨ
SKL 0 1 2 2 6 7
Tp Hồ Chí Minh, tháng 12 năm 2023
Trang 2ii
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TPHCM KHOA ĐIỆN – ĐIỆN TỬ
NGÀNH CÔNG NGHỆ KỸ THUẬT MÁY TÍNH
ĐỒ ÁN TỐT NGHIỆP
MÔ HÌNH QUẢN LÝ HỆ THỐNG CHO THUÊ XE ĐẠP TRONG THÀNH PHỐ
SVTH: NGUYỄN THỊ NHẬT BĂNG MSSV: 19119013
TÔ HOÀNG VŨ MSSV: 19119150
GVHD: ThS HUỲNH THỊ THU HIỀN
Tp Hồ Chí Minh, tháng 12 năm 2023
Trang 3iii
Trang 4iv
ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐIỆN – ĐIỆN TỬ
CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự Do – Hạnh phúc
TT Nội dung góp ý của Hội
đồng Kết quả chỉnh sửa, bổ sung Ghi chú
1
Mô tả chi tiết hơn về phương pháp đánh giá đo độ chính xác của phần cứng và phần mềm
- Đã thêm mô tả chi tiết hơn về phương pháp đánh giá đo độ chính xác của phần cứng trang 36 và phần mềm trang 38
2 Dựa vào đâu để đảm bảo tính
khả thi của đề tài - Đã thêm trang 1
3
Nên lược bỏ bớt logo, giao diện( phần mô tả) và thêm source code vào phụ lục
- Đã lượt bỏ logo chỉnh sửa giao diện hình 3.20, 3.21 trang 39,
Trang 5v hình 4.14 trang 48 và hình 4.15
- Đã chỉnh sửa lưu đồ giải thuật hình 3.18 trang 37
- Đã thêm mã nguồn, cơ sở dữ liệu trang 61
Xác nhận của trưởng ngành
Trang 6vi
LỜI CẢM ƠN
Để đồ án có được kết quả như hiện tại, nhóm em đã được các Thầy Cô tại Trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh giảng dạy hết sức tận tình, chu đáo, truyền đạt cho nhóm em những kiến thức bổ ích để ngày hôm nay nhóm em có nguồn kiến thức để hoàn thành được tập đồ án này Thực tế thì không có sự thành công nào mà không có sự giúp đỡ, hỗ trợ dù ít hay nhiều, dù là trực tiếp hay là gián tiếp Em xin chân thành cảm ơn ban giám hiệu nhà trường cùng với quý Thầy Cô khoa đào tạo chất lượng cao đã đồng hành cùng nhóm chúng em trong những năm học vừa qua
Đặc biệt, nhóm em xin chân thành cảm ơn Cô Huỳnh Thị Thu Hiền – Giảng viên hướng dẫn đã tận tình hỗ trợ, giúp đỡ, dành thời gian đưa ra những định hướng trong nghiên cứu cũng như hướng giải quyết một số vấn đề để nhóm có thể thực hiện xong đồ án tốt nghiệp
Trong quá trình nghiên cứu và làm báo cáo, do nhóm em vẫn chưa nắm vững hết kiến thức chuyên ngành cũng như kinh nghiệm thực tế nên bài báo cáo không thể tránh khỏi những thiếu sót rất mong nhận được những ý kiến đóng góp từ Thầy, Cô để nhóm có thể học được nhiều kinh nghiệm hơn
Nhóm em xin kính chúc các thầy cô luôn luôn khỏe mạnh và ngày một thành công hơn trên con đường giảng dạy của mình
Xin chân thành cảm ơn!
Người thực hiện đề tài
Nguyễn Thị Nhật Băng Tô HoàngVũ
Trang 7vii
LỜI CAM ĐOAN
Nhóm thực hiện đồ án tốt nghiệp cam đoan về đề tài dựa vào một số tài liệu trước đó và không sao chép kết quả của đồ án khác Các nội dung tham khảo đã được trích dẫn đầy đủ
Đại hiện nhóm thực hiện đồ án tốt nghiệp (Ký và ghi rõ họ tên)
Nguyễn Thị Nhật Băng Tô Hoàng Vũ
Trang 8viii
TÓM TẮT
Hiện nay, cùng với sự phát triển mạnh mẽ của xã hội, đời sống ngày càng được nâng cao, việc áp dụng công nghệ khoa học kỹ thuật vào đời sống hằng ngày trở nên rất cần thiết Song song với sự phát triển kỹ thuật của các ngành khoa học kỹ thuật, công nghệ kỹ thuật điện tử, các công nghệ này được áp dụng vào trong các phương tiện giao thông
Nhóm thực hiện đề tài đã lên ý tưởng áp dụng công nghệ khoa học kỹ thuật để giúp người dân giảm chi phí đi lại, giảm thiểu ô nhiễm môi trường qua khí đốt từ các phương tiện sử dụng xăng dầu; cùng với đó là đóng góp một phần cho ngành du lịch thu hút các du khách nước ngoài thuê bởi sự tiện nghi
Mô hình thuê xe đạp công cộng ở thành phố của nhóm thực hiện nghiên cứu sử dụng công nghệ IoT Mô hình sử dụng công nghệ GPS để theo dõi vị trí xe đạp, là hệ thống thời gian thực; cập nhật số xe trống, số chỗ đỗ trống; sử dụng cảm biến MPU6050 thông báo té ngã xe; đóng mở khóa tự động, nếu đang đóng khóa mà vị trí hiện tại so với vị trí ở thời điểm đóng khóa vượt quá ngưỡng sẽ báo còi Các thông tin sẽ được đẩy lên Firebase để lưu các dữ liệu, từ đó phần cứng và phần mềm có thể lấy thông tin từ nhau Thông qua App cho phép người dùng dễ dàng sử dụng với các thao tác đơn giản, quét mã QR mở khóa đặt xe dễ dàng để trải nghiệm chuyến đi, hình thức thanh toán nạp tiền nhanh chóng Web quản lý sử dụng để hiển thị các thông tin để người quản lý hệ thống giám sát từ xa Mục tiêu của mô hình này là tạo ra một dịch vụ cho thuê xe đạp một cách linh hoạt, hiệu quả và an toàn Hứa hẹn mô hình này sẽ giúp cho giao thông thành phố được cải thiện và trải nghiệm mới mẽ cho người dùng
Trang 9CHƯƠNG 1: GIỚI THIỆU CHUNG 1
1.1 Giới thiệu tình hình nghiên cứu hiện nay 1
1.2 Mục tiêu đề tài 1
1.3 Giới hạn đề tài 2
1.4 Đối tượng và phạm vi nghiên cứu 2
1.5 Bố cục của đề tài 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 Giới thiệu về IoT Internet of Things 4
2.1.1 Giới thiệu về IoT 4
2.1.2 Cấu trúc của hệ thống IoT 4
2.1.3 Cấu trúc của hệ thống IoT 5
2.2 Tổng quan về phần mềm để lập trình vi điều khiển 6
2.2.1 Giới thiệu về phần mềm Arduino IDE 6
2.2.2 Các thao tác cơ bản trên phần mềm lập trình Arduino IDE 8
2.3 Tổng quan về phần mềm lập trình Visual Studio Code 9
2.3.1 Giới thiệu về phần mềm lập trình 9
2.3.2 Những ưu điểm nổi bật của Visual Studio Code 10
2.3.3 Giới thiệu về HTML, CSS, Javascript [1] 10
2.3.4 Các thao tác sử dụng cơ bản trên phần mềm Visual Studio Code 11
2.4 Tổng quan về Firebase 13
2.4.1 Giới thiệu về cơ sở dữ liệu Firebase 13
2.4.2 Cách thức hoạt động của Firebase 13
2.5 Các chuẩn truyền dữ liệu 14
Trang 10x
2.5.1 Chuẩn giao tiếp UART 14
2.5.2 Chuẩn giao tiếp I2C 16
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 18
3.2.1 Yêu cầu thiết kế phần mềm 36
3.2.2 Lưu đồ giải thuật phần mềm 37
Trang 11xi
DANH MỤC BẢNG
Bảng 1 Thao tác trên Arduino IDE 9
Bảng 2 Liệt kê số lượng linh kiện trong tập đồ án 19
Bảng 3 Thông số kỹ thuật cảm biến gia tốc MPU6050 21
Bảng 4 Kết nối chân giữa MPU6050 với module ESP32 22
Bảng 5 Thông số kỹ thuật module sim 7600CE-M1S 23
Bảng 6 Kết nối chân giữa module sim 7600CE-M1S với module ESP32 24
Bảng 7 Thông số kỹ thuật của GPS ATGM336H 25
Bảng 8 Kết nối chân giữa GPS ATGM336H với module ESP32 25
Bảng 9 Thông số kỹ thuật module ESP32 28
Bảng 10 Thông số kỹ thuật của driver A4988 30
Bảng 11 Thông số kỹ thuật của động cơ bước 42 2 pha 4 dây 31
Bảng 12 Thông số đo điện áp và dòng tiêu thụ của các linh kiện 32
Bảng 13 Thông số kỹ thuật của mạch hạ áp LM2596S-3A 32
Bảng 14 Thông số kỹ thuật của còi báo động SFM-20B 33
Bảng 15 Đánh giá phần cứng 57
Bảng 16 Đánh giá phần mềm 58
Trang 12xii
DANH MỤC HÌNH ẢNH
Hình 2.1 Cấu trúc của hệ thống IoT 5
Hình 2.2 Trình biên dịch Arduino IDE 7
Hình 2.3 Sự đa dạng về thư viện 8
Hình 2.4 Một số tính năng thường được sử dụng trên phần mềm 8
Hình 2.5 Logo của phần mềm Visual Studio Code 10
Hình 2.6 Giao diện khởi tạo Project mới trên VS Code 11
Hình 2.7 Giao diện của trang html 12
Hình 2.8 Giao diện của trang css 12
Hình 2.9 Giao diện của Firebase 13
Hình 2.10 Giao diện Realtime Database 14
Hình 2.11 Truyền thông UART 15
Hình 3.1 Sơ đồ khối toàn bộ hệ thống 18
Hình 3.2 Cảm biến gia tốc MPU6050 21
Hình 3.3 Sơ đồ nguyên lý kết nối chân giữa MPU6050 với ESP32 22
Hình 3.4 Module sim 7600CE-M1S 23
Hình 3.5 Sơ đồ nguyên lý kết nối chân giữa MPU6050 với ESP32 24
Hình 3.6 Module GPS ATGM336H 25
Hình 3.7 Sơ đồ nguyên lý kết nối giữa ATGM336H với ESP32 26
Hình 3.8 ESP32 NodeMCU LuaNode32 Module Thu Phát Wifi 38 Chân 27
Hình 3.9 Sơ đồ chân ESP32 28
Hình 3.10 Sơ đồ nguyên lý ESP32 29
Hình 3.11 Mạch điều khiển đọng cơ bước A4988 29
Hình 3.12 Động cơ bước 30
Hình 3.13 Sơ đồ nguyên lý kết nối giữa driver A4988 với ESP32 31
Hình 3.14 Mạch hạ áp LM2596S-3A 32
Hình 3.15 Còi báo động SFM-20B 33
Trang 13xiii
Hình 3.16 Sơ đồ nguyên lý kết nối chân giữa còi SFM-20B với ESP32 34
Hình 3.17 Lưu đồ thuật toán phần cứng 35
Hình 3.18 Lưu đồ thuật toán phần mềm 38
Hình 3.19 Giao diện Đăng nhập và đăng ký 39
Hình 3.20 Thiết kế giao diện của trang Đăng kí 40
Hình 3.21 Thiết kế giao diện của trang Đăng nhập 40
Hình 3.22 Thiết kế giao diện trang chủ 41
Hình 3.23 Giao diện nạp tiền 41
Hình 3.24 Giao diện quét mã QR và google map 42
Hình 3.25 Giao diện lịch sử thanh toán 42
Hình 4.1 PCB của toàn mạch 43
Hình 4.2 Mặt sau của bo mạch 43
Hình 4.3 Mặt trước của bo mạch 44
Hình 4.4 Hiển thị đang khóa xe 44
Hình 4.5 Hiển thị khóa xe đang mở 45
Hình 4.6 Hiển thị thông báo ngã 45
Hình 4.7 Kết quả định vị 46
Hình 4.8 Kết quả thông báo ngã 46
Hình 4.9 Trường hợp chưa thuê xe 47
Hình 4.10 Trường hợp chưa thuê xe 47
Hình 4.11 Trường hợp thuê 2 xe 47
Hình 4.12 Giao diện bắt đầu của App 48
Hình 4.13 Giao diện mới vào, trang Login và Sign Up 48
Hình 4.14 Giao diện trang đăng ký 49
Hình 4.15 Giao diện đăng nhập 50
Hình 4.16 Giao diện chính của app 50
Hình 4.17 Hướng dẫn sử dụng 51
Hình 4.18 Nạp tiền 52
Hình 4.19 Giao diện quét mã QR 53
Trang 14xiv
Hình 4.20 Trạng thái khi chưa thuê xe 54
Hình 4.21 Trạng thái khi thuê xe 54
Hình 4.22 Giao diện thanh toán chuyến đi 55
Hình 4.23 Trạm xe và google map 55
Hình 4.24 Giao diện về trường hợp chưa thuê xe 56
Hình 4.25 Giao diện về trường hợp thuê 1 xe 56
Hình 4.26 Giao diện về trường hợp thuê 2 xe 57
Trang 16Với lối sống ngày càng lành mạnh, con người chăm chút hơn về vấn đề sức khỏe, việc sử dụng xe đạp là một cách tuyệt vời để duy trì sức khỏe Nhiều người chọn lựa đi xe đạp hàng ngày để thay thế cho việc sử dụng phương tiện cơ giới, tăng cường hoạt động thể chất hàng ngày mà không cần đến các phòng tập gym
Xe đạp công cộng và xe đạp nói chung là giải pháp giảm ùn tắc giao thông, kết nối các hệ thống giao thông công cộng như xe bus, tàu điện, là xu hướng toàn cầu của những thành phố phát triển Việc đạp xe không chỉ giải quyết các vấn đề môi trường, xã hội, mà còn giúp người dân nói chung tăng cường sức khỏe và hình thành lối sống xanh Xe đạp công cộng là một dịch vụ đã được phổ biến ở nhiều nước trên thế giới Hiện nay có tập đoàn TNGO đã triển khai dịch vụ này tại Việt Nam và phủ sóng nhanh chóng tại các thành phố: Hồ Chí Minh, Vũng Tàu, Hải Dương và đến nay là Hà Nội Xe đạp công cộng ra đời giúp người dân có thêm sự lựa chọn đi lại, góp phần giảm người đi xe cá nhân Nhận thấy dịch vụ cho thuê xe đạp công cộng có một lượng lớn nhu cầu từ cộng đồng Dự án thúc đẩy vận động xanh và giảm lượng ô nhiễm môi trường
Với những lợi ích trên của mô hình nhóm thực hiện đã quyết định đề xuất đề tài “Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố”
1.2 Mục tiêu đề tài
Mục tiêu đề tài “Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố”
thực hiện các chức năng sau:
Trang 172
Về phần cứng: Xây dựng phần cứng có chức năng theo dõi vị trí, thông báo ngã,
mở/đóng khóa xe khi người dùng quét mã, báo còi khi vị trí hiện tại đến vị trí xe ở trạng thái đóng khóa vượt quá ngưỡng
Về phần mềm: Xây dựng phần mềm Web có chức năng hiển thị thông tin để quản
lý giám sát từ xa, phần App người dùng có thể đăng nhập/đăng ký, tìm kiếm trạm xe, xem các thông tin về số xe đạp trống, số chỗ đõ trống, quét mã QR để mở/đóng khóa xe, nạp tiền và thanh toán, hiển thị thông tin lịch sử giao dịch
1.3 Giới hạn đề tài
Đề tài “Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố” của nhóm
thực hiện được giới hạn trong phạm vi như sau: Đề tài thực hiện mô phỏng với số lượng xe giả định là 2
1.4 Đối tượng và phạm vi nghiên cứu Đối tượng nghiên cứu:
● Nghiên cứu sơ đồ nguyên lý cũng như cách hoạt động của phần cứng module ESP32, module sim 7600CE-M1S, module GPS ATGM336H, cảm biến gia tốc MPU6050, còi, driver A4988 và động cơ bước
● Nghiên cứu và tìm hiểu về cách lập trình ứng dụng web trên Visual Studio Code và các ngôn ngữ lập trình khác liên quan đến ứng dụng
● Nghiên cứu các giao thức kết nối và giao tiếp giữa các module với nhau
Phạm vi nghiên cứu: Nghiên cứu dựa trên các mô hình đã có sẵn, tích hợp và ứng
dụng những tính năng mới cho đề tài
1.5 Bố cục của đề tài
Bài báo cáo này gồm có 5 chương:
Chương 1: Giới thiệu chung
Chương này trình bày tình hình nghiên cứu hiện nay, tính cấp thiết của đề tài, mục đích nghiên cứu, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu, phương phán
Trang 183 nghiên cứu và bố cục đồ án, nguyên nhân và động lực để hoàn thành đề tài và các phương pháp nghiên cứu
Chương 2: Cơ sở lý thuyết
Chương này trình bày cơ sở lý luận và những vấn đề thực tiễn liên quan đến đề tài
Chương 3: Thiết kế và thi công hệ thống
Chương này trình bày chi tiết ý tưởng thiết kế, lựa chọn và tính toán giải pháp thiết kế hệ thống, sơ đồ khối, lưu đồ giải thuật, thiết kế ứng dụng trên phần mềm Visual Studio Code, viết chương trình cho hệ thống, thiết kế sơ đồ mạch in PCB và dựng mô hình ổ khóa xe đạp thông minh
Chương 4: Kết quả và đánh giá
Chương này trình bày các kết quả đã đạt được trong đề tài sau khi hoàn thành khảo sát, giải thích các chức năng hoạt động của hệ thống, kèm với hình ảnh thực tế để minh họa
Chương 5: Kết luận và hướng phát triển
Chương này trình bày các vấn đề đã được giải quyết của đề tài, đồng thời đề ra các hướng phát triển xa hơn và hoàn thiện hơn cho đề tài
Trang 194
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Giới thiệu về IoT Internet of Things
2.1.1 Giới thiệu về IoT
IoT (Internet of Things) được dịch là Internet kết nối vạn vật, hiện nay IoT đang ảnh hưởng đến chúng ta rất nhiều từ nhiều khía cạnh và từ nhiều mức độ khác nhau, từ chiếc đồng hồ thông minh đang theo dõi các hoạt động hằng ngày hoặc thậm chí là đa số các thiết bị được đặt ở trong nhà mà chúng ta có thể điều khiển qua điện thoại thông minh IoT là một mạng lưới khổng lồ để các thiết bị có thể kết nối với nhau thông qua Internet Các thiết bị này có khả năng thu thập và chia sẻ dữ liệu cho nhau Tất cả các dữ liệu được thu thập bằng các cảm biến được gắn trong mọi thiết bị mà ta sử dụng Một bóng đèn mà chúng ta bật bằng ứng dụng điện thoại thông minh, cũng được gọi là một thiết bị IoT hay là bật quạt bằng điện thoại thông minh cũng gọi là một thiệt bị IoT
Một thiết bị IoT có thể đơn giản như đồ chơi của trẻ em hoặc lớn hơn là một chiếc xe không người lái, phức tạp hơn là một động cơ phản lực chứa hàng ngàn con cảm biến thu thập và truyền dữ liệu, để đảm bảo nó hoạt động một cách hiệu quả
Ở những dự án lớn hơn, thì các thành phố thông minh đang được lắp đầy các cảm biến để giúp chúng ta hiểu và kiểm soát môi trường Như vậy, IoT đã đưa ra ngôn ngữ chung để các thiết bị có thể giao tiếp với nhau
2.1.2 Cấu trúc của hệ thống IoT
Cấu trúc của một hệ thống IoT gồm có 4 phần chính: Thiết bị (Things), trạm kết nối(Gateways), hạ tầng mạng (Network and Cloud), dịch vụ (Services)
Trang 205
Hình 2.1 Cấu trúc của hệ thống IoT
Thiết bị: Ở tầng thiết bị, tầng này có các thiết bị rất quen thuộc với chúng ta như bóng
đèn, quạt, máy lạnh, đồng hồ, máy in, ổ khóa, máy hút bụi, camera, thiết bị đo, công tắc, … Nhưng các thiết bị này đều được gắn các cảm biến để làm các nhiệm vụ thu thập dữ liệu từ môi trường xung quanh chúng ta
Trạm kết nối: Các trạm kết nối ở đây đóng vai trò trung gian cho việc kết nối các thiết
bị với điện toán đám mây để đảm bảo an toàn và thuận tiện hơn trong việc kết nối
Hạ tầng mạng và điện toán đám mây: Hạ tầng mạng bao gồm những thiết
bị định tuyến, các dữ liệu từ các tầng bên dưới như thiết bị, muốn gửi qua Internet phải qua các bộ định tuyến để gửi đúng vị trí của máy chủ nằm trong trung tâm dữ liệu
Dịch vụ: Các ứng dụng do các công ty công nghệ hoặc chính người dùng tạo ra để
giúp việc tối ưu hóa việc sử dụng các sản phẩm IoT dễ dàng hơn và tận dụng tối đa chức năng của chúng mang lại
2.1.3 Cấu trúc của hệ thống IoT Ưu điểm:
● Các dữ liệu được lưu trữ trong cơ sở dữ liệu để tiết kiệm thời gian, tiền bạc và tăng tính linh hoạt của dữ liệu
Trang 216 ● Việc kiểm soát giao tiếp giữa các thiết bị được cải thiện hơn, có thể thực hiện thuận tiện mọi lúc mọi nơi thông qua mạng Internet
● Iot là giải pháp giúp tự động hóa mọi thứ để nâng cao chất lượng cuộc sống của con người
Nhược điểm:
● Do kết cấu của hệ thống luôn có mối quan hệ mật thiết với nhau nên khi hệ thống gặp sự cố nào đó thì sẽ có khả năng gây hư hỏng các thiết bị kết nối với nhau ● Với sự tiện lợi của việc kết nối và chia sẻ thông tin trên Internet, khi nhiều thiết bị
kết nối với nhau, việc đánh cắp thông tin có thể xảy ra
2.2 Tổng quan về phần mềm để lập trình vi điều khiển 2.2.1 Giới thiệu về phần mềm Arduino IDE
Arduino IDE là phần mềm dùng để lập trình vi điều khiển Phần mềm hỗ trợ tương thích đa nền tảng, phần mềm có các phiên bản cho các hệ điều hành phổ biến như Windows, Mac, Linux,…với các chức năng và lệnh tích hợp để chỉnh sửa và biên dịch mã Phần mềm thường lập trình bởi các ngôn ngữ lập trình C và C ++ nên phổ biến với sinh viên để lập trình nhúng một cách dễ dàng hơn Phần mềm Arduino IDE hỗ trợ nhiều module Arduino như Arduino Mega, Arduino Uno,.Không những có Arduino phần mềm còn hỗ trợ lập trình các module ESP như ESP8266 ESP32 Mỗi module sẽ chứa vi điều khiển được lập trình trên bảng thông tin ở dạng mã (còn được gọi là bản phác thảo) bao gồm các nền tảng IDE Sau đó, nó sẽ tạo một tệp hex để chuyển và tải lên bộ điều khiển
Trang 227 của bảng Như vậy, phần mềm Arduino IDE giúp chúng ta sử dụng các cảm biến, linh kiện một cách linh hoạt đúng với mục đích sử dụng.[7]
Hình 2.1 Trình biên dịch Arduino IDE
Tuy phần mềm Arduino IDE có mã nguồn mở nhưng khả năng bảo mật thông tin của Arduino IDE là vô cùng tuyệt vời Khi phần mềm phát hiện ra lỗi thì nhà phát hành sẽ sửa nó lại và cập nhật một cách nhanh chóng khiến thông tin của người dùng không bị mất hay là rò rỉ ra bên ngoài
Arduino có một module quản lý bo mạch, nơi người dùng có thể chọn bo mạch mà họ muốn sử dụng nó và có thể thay đổi bo mạch thông qua Menu Quá trình sửa đổi lựa chọn cũng liên tục tự động cập nhật để các dữ liệu có sẵn trong bo mạch và dữ liệu sửa đổi đồng nhất với nhau Không những thế, Arduino IDE cũng giúp bạn tìm ra lỗi từ code mà bạn viết, qua đó giúp bạn sửa lỗi kịp thời tránh tình trạng bo mạch Arduino làm việc với code lỗi quá lâu dẫn đến hư hỏng hoặc tốc độ xử lý bị giảm
Trang 238
Hình 2.3 Sự đa dạng về thư viện
Arduino IDE tích hợp với hơn 700 thư viện, được viết và chia sẻ bởi các nhà xuất bản Phần mềm Arduino và các thành viên của cộng đồng Arduino Mọi người đều có thể sử dụng chúng cho các dự án của riêng mình mà không tốn bất kỳ chi phí hay khoản tiền nào
2.2.2 Các thao tác cơ bản trên phần mềm lập trình Arduino IDE
Hình 2.4 Một số tính năng thường được sử dụng trên phần mềm
Trang 249
Bảng 1 Thao tác trên Arduino IDE
Verify Kiểm tra lỗi code chuẩn bị truyền xuống bo mạch
Upload Nạp đoạn code vào bo mạch
New Tạo một sketch mới
Open Mở một sketch có sẵn
Save Lưu sketch vào IDE
Serial Monitor Mở Serial Monitor
2.3 Tổng quan về phần mềm lập trình Visual Studio Code 2.3.1 Giới thiệu về phần mềm lập trình
Visual Studio Code hay được viết tắt là VS Code Visual Studio Code là một ứng dụng cho phép biện tập, soạn thảo các đoạn code để hỗ trợ trong quá trình xây dựng và thiết kế website.Visual Studio Code có trình soạn thảo vận hành mượt mà trên nhiều nền tảng như Window, Linux, macOS Không những thế, VS Code còn có khả năng tương thích với những thiết bị máy tính có cấu hình tầm trung vẫn có thể sử dụng một cách dễ dàng hoặc cũng có thể responsive để người dùng điện thoại có thể xem được
Visual Studio Code có hỗ trợ đa dạng các chức năng Debug, đi kèm với Github, có Syntax Highlighting Đặc biệt, nó có thể tự hoàn thành mã thông minh và có khả năng cải tiến nguồn Nhờ có tính năng tùy chỉnh như vậy Visual Studio Code cho phép lập trình viên thay đổi Theme, phím tắt và các tùy chỉnh khác
Trang 2510 Visual Studio Code dù mới được phát hành nhưng Visual Studio Code là một trong những Code Editor mạnh mẽ và phổ biến nhất dành cho những lập trình viên Nhờ được hỗ trợ nhiều ngôn ngữ lập trình phổ biến và tích hợp đầy đủ các tính năng nên VS Code đã trở nên quá phổ biến với những lập trình viên
Hình 2.5 Logo của phần mềm Visual Studio Code
2.3.2 Những ưu điểm nổi bật của Visual Studio Code
● VS Code có đa dạng ngôn ngữ lập trình giúp cho lập trình viên thỏa sức sáng tạo như HTML, CSS, Javascript, C++, …
● VS Code có các tiện ích mở rộng rất đạ dạng, ngôn ngữ, giao diện than thiện giúp cho người dùng dễ dàng định hình được nội dung
● Có tích hợp những tính năng quan trọng như tính năng bảo mật (Github), khả năng tăng tốc xử lý (Debug), khả năng nhắc lệnh,…
● Đơn giản hóa các code đã lưu trên hệ thống
2.3.3 Giới thiệu về HTML, CSS, Javascript [1]
HTML: HTML là viết tắt của cụm từ Hypertext Markup Language HTML được sử dụng để tạo và cấu trúc các thành phần trong trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes, HTML là một khung xương của một trang web Thông thường các thẻ html, chúng ta có thể định được hình hài của một trang web sẽ
Trang 2611 trông như thế nào và tổ chức sao cho hợp lý Nếu không có HTML, trang web của chúng ta không thể hoạt động, HTML đóng vai trò là nền móng của một trang web
CSS (Cascading Style Sheets) là một ngôn ngữ được sử dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML) Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web Bạn có thể hiểu đơn giản rằng, nếu HTML đóng vai trò định dạng các phần tử trên website như việc tạo ra các đoạn văn bản, các tiêu đề, bảng, thì CSS sẽ giúp chúng ta có thể thêm style vào các phần tử HTML đó như đổi bố cục, màu sắc trang, đổi màu chữ, font chữ, thay đổi cấu trúc…
Javascript là ngôn ngữ chuyên dùng cho lập trình một trang web Nếu CSS cung cấp cho HTML dom những thuộc tính về màu sắc, cách hiển thị,… thì Javascript cung cấp cho HTML dom những hành động Giả sử khi ta nhấn vào một nút bất kì thì sẽ xảy ra hành động gì? Javascript sẽ cung cấp hành động cho trang web của chúng ta
2.3.4 Các thao tác sử dụng cơ bản trên phần mềm Visual Studio Code
Mở ứng dụng Visual Studio Code, sau đó bấm File => New Folder để tạo dự án mới
Hình 2.6 Giao diện khởi tạo Project mới trên VS Code
Trong mục Folder vừa tạo thì ta tạo thêm một File và đặt tên dưới dạng html
Trang 2712
Hình 2.7 Giao diện của trang html
Tiếp theo tạo thêm file có tên css để thay style cho các thẻ trong html đã tạo ở trang html
Hình 2.8 Giao diện của trang css
Trang 2813
2.4 Tổng quan về Firebase
2.4.1 Giới thiệu về cơ sở dữ liệu Firebase
Firebase là cơ sở dữ liệu(database) thời gian thực dựa trên đám mây máy chủ do Google cung cấp rất hiệu quả Firebase là một nền tảng phát triển các ứng dụng và trang web dành cho các thiết bị di động bao gồm các API đơn giản Nó là tính năng và dễ sử dụng nên nó là một trong những cơ sở dữ liệu nhiều nhà phát triển đã chọn, nó là nền tảng đầu tiên để phát triển sản phẩm cho hàng triệu người dùng trên khắp thế giới Hơn thế, nó còn là một trong những dịch vụ đa năng với khả năng bảo vệ rất tốt Firebase hỗ trợ cả hệ điều hành Android và iOS
Hình 2.9 Giao diện của Firebase
2.4.2 Cách thức hoạt động của Firebase • Firebase Realtime Database
Bằng cách đăng ký tài khoản Firebase để tạo ứng dụng, bạn có thể dễ dàng lấy cơ sở dữ liệu trực tiếp Dữ liệu này được định dạng dưới dạng chuỗi JSON Đồng thời dữ liệu được đồng bộ mỗi khi tác động thay đổi dữ liệu và kết nối đến từng máy client với các ứng dụng đa nền tảng Trong trường hợp lỗi mạng, dữ liệu được lưu trữ cục bộ Do đó, thay đổi được cập nhật tự động vào máy chủ Firebase Dữ liệu được truyền qua chứng chỉ kết nối SSL bảo mật cao
Trang 29• Firebase Hosting
Cung cấp cho các nhà phát triển dịch vụ lưu trữ nhanh và an toàn cho các ứng
dụngweb cấp sản xuất Với một lệnh duy nhất, bạn có thể triển khai các ứng dụng và phân phối cả nội dung tĩnh và động tới CDN Với CDN, một bản sao nội dung từ máy chủ gần nhất được trả lại cho người dùng khi họ truy cập trang web
2.5 Các chuẩn truyền dữ liệu 2.5.1 Chuẩn giao tiếp UART
Trang 3015 UART viết tắt của “Universal Asynchronous Receiver/Transmitter” là kiểu truyền thông tin được sử dụng phổ biến trong các chuẩn giao tiếp, UART là kiểu truyền nối tiếp không đồng bộ Chức năng chính của UART là truyền dữ liệu nối tiếp Trong UART, giao tiếp giữa hai thiết bị có thể được thực hiện theo hai cách là giao tiếp dữ liệu nối tiếp và giao tiếp dữ liệu song song
Dữ liệu truyền qua UART được tổ chức thành các gói, mỗi gói chứa 1 bit bắt đầu (Start bit), 5 đến 9 bit dữ liệu (tùy thuộc vào UART), một bit chẵn lẻ tùy chọn và 1 hoặc 2 bit dừng (Stop bit).[8]
Hình 2.11 Truyền thông UART
Bit bắt đầu: Dữ liệu của giao thức UART thường được giữ ở mức điện áp cao trong
trường hợp không truyền dữ liệu Khi bắt đầu truyền dữ liệu thì giao thức sẽ bắt đầu kéo đường truyền từ mức cao xuống mức thấp Khi giao thức phát hiện sự thay đổi điện áp thì lập tức đọc các bit trong khung
Khung dữ liệu: Là nơi chứa những dữ liệu cần vận chuyển Có kích thước từ 5 bit đến
8 bit khi sử dụng bit chẵn lẻ Trong trường hợp không sử dụng bit trên, kích thước dài đến 9 bit Trong tất cả trường hợp, dữ liệu sẽ gửi bit quan trọng nhất đầu tiên
Bit chẵn lẻ: Là một cách để nhận chỉ báo UART cho dù dữ liệu đã được nhận chưa
Các thay đổi xảy ra trong quá trình truyền Sau khi nhận được khung dữ liệu đọc
Trang 3116 UART, hãy đếm số bit có giá trị 1 và kiểm tra xem tổng số đó là chẵn hay lẻ
Nếu tính chẵn lẻ là 0 (chẵn), thì tổng của 1 trong khung dữ liệu phải là số chẵn Nếu bit chẵn lẻ là 1 (lẻ), tổng các bit 1 trong khung dữ liệu là số lẻ Khi bit chẵn lẻ khớp với dữ liệu, UART biết rằng quá trình truyền không có lỗi Nhưng nếu bit chẵn lẻ là 0 và tổng là số lẻ hoặc nếu bit chẵn lẻ là 1 và tổng là chẵn, UART sẽ biết rằng một bit trong khung dữ liệu đã thay đổi
Bit dừng: Báo hiệu kết thúc gói, hãy gửi điều khiển UART Truyền dữ liệu từ điện áp
thấp lên điện áp cao ít nhất khoảng 2 bit.[8]
Ưu điểm:
● Không cần đến tín hiệu xung Clock ● Chuẩn giao tiếp được sử dụng bởi 2 dây
● Có một bit chẵn lẻ cho phép kiểm tra khi có lỗi
● Cấu trúc gói dữ liệu của UART có thể thay đổi, miễn là cả hai bên đều thiết lập cho nó
● Phương pháp có nhiều tài liệu và được sử dụng rộng rãi trong các mô hình hay hệ thống
Nhược điểm:
● Không hỗ trợ nhiều hệ thống server client
● Kích thước khung dữ liệu được giới hạn tối đa là 9 bit
● Tốc độ truyền của mỗi UART phải nằm trong khoảng 10% của nhau.[8]
2.5.2 Chuẩn giao tiếp I2C
I2C là tên viết tắt của "Inter-Integrated Circuit" trong tiếng Anh Giao thức này được sử dụng để truyền dữ liệu giữa các CPU của nhiều IC trên cùng một bo mạch, mạch này chỉ sử dụng hai dây tín hiệu Do tính đơn giản của nó, giao thức được sử dụng một cách rộng rãi trong các vi điều khiển, thiết bị cảm biến hay các loại module khác nhau, v.v Đây là một giao thức truyền thông nối tiếp đồng bộ Các bit dữ liệu được truyền từng bit theo các khoảng thời gian đều đặn được đặt bởi tín hiệu đồng hồ
Trang 3217 tham chiếu I2C kết hợp các tính năng tốt nhất của UART và SPI Người sử dụng có thể kết nối nhiều slave với một master duy nhất và người dùng cũng có thể điều khiển nhiều master điều khiển một hoặc nhiều slave.[9]
I2C sử dụng hai đường truyền tín hiệu:
● Một đường dữ liệu (SDA) theo 2 hướng
● Một đường xung nhịp được truyền bởi thiết bị chủ (thông thường là 100kHz và 400kHz và cực đại là 1MHz và 3,4 MHz)
● Khi một thiết bị ngoại vi kết nối vào đường bus I2C thì chân SDA của nó sẽ nối với dây SDA của bus, chân SCL sẽ nối với dây SCL
Ưu điểm:
● I2c hỗ trợ nhiều thiết bị master và slave ● I2C chỉ sử dụng hai dây
● Phần cứng ít phức tạp hơn so với UART
● Bit ACK / NACK xác nhận mỗi khung được chuyển thành công ● Giao thức I2C phổ biến được sử dụng rộng rãi trong đời sống
Trang 3318
CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG 3.1 Thiết kế phần cứng
3.1.1 Yều cầu thiết kế phần cứng
“Mô hình quản lý hệ thống cho thuê xe đạp trong thành phố” thực hiện các chức
năng sau: - Định vị vị trí - Thông báo ngã
Trang 3419
3.1.3 Chức năng của từng khối
Khối cảm biến: Cung cấp thông tin về gia tốc, góc quay để từ đó đo đạc so sánh các
ngưỡng để thông báo thông tin tình trạng xe cũng như cung cấp thông tin nhiệt độ của chip của cảm biến để xem xét cảm biến có hoạt động tốt không
Khối module: Giúp kết nối mạng nhờ sử dụng kết nối 4G của module Sim 7600CE đẩy
dữ liệu lên Firebase, cung cấp thông tin về định vị vị trí của module GPS
Khối điều khiển trung tâm xử lý: Thu thập dữ liệu và xử lý dữ liệu từ các thiết bị, khối
cảm biến và module thiết bị, khối động cơ Khối trung tâm xử lý còn là cầu nối trung gian để nhận và gửi dữ liệu lên Firebase để từ đó Firebase, App và Web có thể giao tiếp 2 chiều
Khối động cơ: Bao gồm một driver A4988 điều khiển động cơ bước thực hiện chức
năng đóng mở khóa
Khối nguồn cung cấp: Khối nguồn cung cấp là một khối rất quan trọng trong tập
đồ án này giúp cung cấp điện cho toàn hệ thống bao gồm: Khối xử lý trung tâm, giao tiếp mạng 4G, khối thiết bị, khối cảm biến, khối module, khối relay, khối động cơ Vì vậy cần tính toán hợp lý để khối nguồn có thể cung cấp đủ dòng và áp để mạch có thể hoạt động tốt và ổn định
3.1.4 Tính toán và thiết kế mạch
Dưới đây là số lượng linh kiện trong tập đồ án “Mô hình quản lý hệ thống cho thuê xe
đạp trong thành phố” sử dụng:
Bảng 2 Liệt kê số lượng linh kiện trong tập đồ án
1 Module ESP32 38 chân 1
3 Cảm biến gia tốc MPU6050 1
Trang 3520 4 Module định vị GPS Atgm336h 1
5 Mạch giảm áp LM2596S 3A 1 6 Mạch điều khiển động cơ A4988 1
8 Còi báo động SFM-20B 1
Cộng những linh kiện nhỏ lẻ: điện trở, diode, transistor Các linh kiện được chia thành nhiều khối: Khối điều khiển trung tâm, khối cảm biến thiết bị, khối ngoại vi, khối relay, khối động cơ, khối nguồn
3.1.4.1 Khối cảm biến
Phân tích lựa chọn linh kiện: Đối với đồ án mô hình quản lý xe đạp công cộng ứng
dụng IoT nhóm quyết định sử dụng cảm biến gia tốc MPU6050 để kiểm tra tình trạng của xe và module GPS để định vị vị trí
Cảm biến gia tốc MPU6050[10]
● Giới thiệu: Cảm biến gia tốc MPU6050 rất phổ biến được sử dụng để đo gia tốc trong các ứng dụng MPU6050 có khả năng đo chính xác, tích hợp các con cảm biến gia tốc và con quay hồi chuyển trong cùng một con chip Nó được sử dụng để đo, theo dõi chuyển động, gia tốc và góc quay của đối tượng
MPU6050 có 6 bậc tự do (DOF) bao gồm 3 bậc tự do gia tốc kế và 3 bậc tự do cho quay hồi chuyển Điều này cho phép MPU6050 đo chính xác các thông số chuyển động trên 3 trục không gian: trục X, Y và Z
Trang 3621
Hình 3.2 Cảm biến gia tốc MPU6050
Với kích thước nhỏ gọn thì MPU6050 tiêu thụ năng lượng thấp và tích hợp sẵn các chức năng đo chuyển động quan trọng MPU6050 là một sự lựa chọn quan trọng, phổ biến trong các ứng dụng như là robot, thiết bị định vị và điều khiển chuyển động,…
Trang 3722 ● Kết nối chân giữa cảm biến gia tốc MPU6050 với ESP32
Bảng 4 Kết nối chân giữa MPU6050 với module ESP32
ESP32 MPU6050 G22 3(SCL) G21 4(SDA)
Hình 3.3 Sơ đồ nguyên lý kết nối chân giữa MPU6050 với ESP32
3.1.4.2 Khối module Module sim 7600CE-M1S:
● Giới thiệu: Module sim 7600CE-M1S là giải pháp hỗ trợ đa băng tần 2G, 3G, 4G và
GPS Module sim cũng hỗ trợ LTE CAT4 tải xuống tới 150Mbs và hỗ trợ định vị GPS.[5]
Trang 38Tải về từ 150Mps GPRS Tải lên từ 85.6Kbps
Tải về từ 85.6Kbps TD-SCDMA Tải lên từ 128Kbps Tải về từ 384Kbps TD-HSDPA/HSUPA Tải lên từ 2.2Mbps
Tải về từ 2.8Mbps ● Kết nối chân giữa module sim 7600CE-M1S với ESP32
Trang 3924
Bảng 6 Kết nối chân giữa module sim 7600CE-M1S với module ESP32
Module sim 7600CE-M1S ESP32
● Giới thiệu: Module GPS ATGM336H là một module định vị và điều hướng
BDS/GNSS hiệu năng cao sử dụng chip AT6558 AT6558 là một chip định vị vệ tinh đa phương tiện bao gồm 32 kênh theo dõi, tín hiệu GNSS có thể nhận được 6 hệ thống định vị vệ tinh và nhận ra điểm chung, điều hướng và thời gian Module ATGM33H có
Trang 4025 ưu điểm là độ nhạy cao, tiêu thụ năng lượng thấp và có giá thành thấp và nó phù hợp cho các thiết bị cầm tay, điều hướng xe,…[6]
Bảng 8 Kết nối chân giữa GPS ATGM336H với module ESP32
ATGM336H ESP32