Đồng thời, với sự tiến bộ của khoa học và công nghệ, như Internet of Things IoT, việc nghiên cứu và triển khai các hệ thống xe buýt thông minh đặc biệt cần phải được ưu tiên và đề cao..
TỔNG QUAN
Giới thiệu
Trong bối cảnh đô thị toàn cầu phải đối mặt với thách thức tăng trưởng dân số, ùn tắc giao thông và ô nhiễm môi trường, việc mở rộng và cải thiện hệ thống phương tiện công cộng trở nên thiết yếu Các phương tiện công cộng như xe buýt và hệ thống tàu điện ngầm ngày càng được ưa chuộng, đặc biệt là ở Việt Nam Gần đây, 16 tuyến xe buýt đã được nâng cấp với 239 xe mới, trong đó có 195 xe diesel và 44 xe sử dụng nhiên liệu sạch CNG, tất cả đều được trang bị máy lạnh, hệ thống giám sát hành trình và camera an ninh Ngoài ra, cần ưu tiên nghiên cứu và triển khai các hệ thống xe buýt thông minh nhờ vào tiến bộ của khoa học và công nghệ, đặc biệt là Internet of Things (IoT).
Hệ thống xe buýt thông minh đóng vai trò quan trọng trong việc cải thiện chất lượng cuộc sống của cộng đồng bằng cách tối ưu hóa trải nghiệm đi lại Đối với những người không có phương tiện cá nhân, xe buýt trở thành phương tiện vận tải thiết yếu, giúp họ di chuyển dễ dàng Bằng cách nâng cao tính linh hoạt, độ chính xác, an toàn và tiện lợi của dịch vụ công cộng, hệ thống này giảm thiểu thời gian chờ đợi và tăng cường sự tiện ích cho người dân.
Nghiên cứu về hệ thống xe buýt thông minh đóng vai trò quan trọng trong việc giảm ùn tắc giao thông và ô nhiễm môi trường Bằng cách tối ưu hóa lộ trình và quản lý giao thông thông minh, hệ thống này giảm lượng phương tiện cá nhân trên đường, từ đó nâng cao an toàn giao thông Hiện nay, nhiều đề tài nghiên cứu và phát triển liên quan đến mô hình giám sát và quản lý xe buýt sử dụng công nghệ hiện đại đang được triển khai, với quy mô từ nhỏ đến lớn.
Hệ thống giám sát xe buýt sử dụng công nghệ GPS và GPRS đáp ứng nhiều nhu cầu trong quản lý và theo dõi xe buýt Hệ thống này liên tục cập nhật vị trí xe buýt và gửi dữ liệu về trạm điều khiển qua module SIM Thông tin vị trí được hiển thị trên bảng LED, giúp người dùng theo dõi một cách trực quan Bên cạnh đó, hệ thống giám sát GPS trực tuyến cũng được áp dụng cho các phương tiện giao thông khác.
Hệ thống theo dõi xe buýt trực tuyến cung cấp thông tin về vị trí, tuyến đường, trạm dừng và giờ khởi hành, giúp người dùng dễ dàng truy cập mọi lúc, mọi nơi Bus Map, một trong những hệ thống thành công nhất, mang lại sự tiện lợi và hài lòng cho người sử dụng Hệ thống không chỉ nâng cao hiệu quả quản lý giao thông công cộng mà còn phát triển nhiều tính năng mới như cập nhật tọa độ xe, đếm số lượng hành khách, thanh toán qua quét thẻ và xây dựng trang web hỗ trợ người dùng quản lý thời gian di chuyển thuận tiện hơn.
Nghiên cứu về hệ thống xe buýt thông minh mang lại nhiều lợi ích cho người dân và góp phần xây dựng thành phố thông minh, bền vững và công bằng Đây không chỉ là xu hướng mới trong vận tải công cộng mà còn là yếu tố quan trọng trong sứ mệnh tạo ra một tương lai tốt đẹp hơn cho tất cả mọi người.
Mục tiêu đề tài
Xây dựng một hệ thống xe buýt thông minh toàn diện là mục tiêu nhằm nâng cao trải nghiệm di chuyển của hành khách Hệ thống này sẽ tích hợp nhiều tính năng tiên tiến, giúp cải thiện hiệu quả và sự tiện lợi trong việc di chuyển.
Công nghệ GPS cho phép thu thập vị trí và truyền tải thông tin trực tiếp đến trung tâm quản lý, giúp người dùng theo dõi lộ trình và điều hành chuyến đi một cách chính xác và hiệu quả.
Hệ thống thanh toán sẽ được tự động hóa thông qua việc quét thẻ, giúp giảm bớt công việc thu vé cho nhân viên Dữ liệu từ thẻ quét sẽ được gửi về trung tâm để phân loại hiệu quả.
Thẻ do nhà xe phát hành ghi lại số lần đi xe của chủ thẻ, đảm bảo tính chính xác và minh bạch Hệ thống cũng phát cảnh báo qua loa cho tài xế khi phát hiện thẻ không hợp lệ, nhằm nâng cao an ninh.
Dữ liệu từ xe buýt đến trung tâm sẽ được truyền nhận qua giao thức LoRa, đảm bảo kết nối ổn định và nhanh chóng
Hệ thống sẽ được trang bị camera và máy tính nhúng Raspberry Pi trên xe để đếm số lượng hành khách hiện tại và gửi dữ liệu về trung tâm Thông tin này sẽ được cập nhật trực tuyến, giúp quản lý và hành khách theo dõi tình hình thực tế một cách hiệu quả.
Giao diện trực tuyến sẽ cung cấp thông tin chi tiết về tình hình tuyến xe buýt, bao gồm số lượng hành khách trên xe, giúp hành khách lựa chọn lộ trình di chuyển tối ưu Hệ thống còn tích hợp thẻ xe qua số điện thoại, cho phép người dùng kiểm tra số lần sử dụng xe trong ngày.
Hệ thống xe buýt thông minh của nhóm thực sẽ nâng cao trải nghiệm di chuyển của hành khách, đồng thời mang lại lợi ích toàn diện cho cả người dùng và nhà xe.
Giới hạn đề tài
- Đề tài chỉ tập trung mô hình nghiên cứu hệ thống truyền nhận tín hiệu thông qua công nghệ Lora
- Sử dụng những module có sẵn trên thị trường để xây dựng phần cứng
- Sử dụng những thư viện có sẵn trên nền tảng IDE để xây dựng phần mềm
- Sử dụng máy tính để chạy chương trình đếm số người bằng mô hình YOLO thay Rasberry pi.
Phương pháp nghiên cứu
- Nghiên cứu và phân tích các phương pháp thu thập dữ liệu và điều khiển để lựa chọn phương pháp phù hợp nhất
- Đánh giá các đề tài trước đó, nhận diện những điểm nổi bật và phát triển ý tưởng nâng cấp các tính năng cũng như khắc phục những hạn chế
- Nghiên cứu về cơ sở dữ liệu, cơ chế hoạt động của chúng, và phân tích để chọn ra phương thức phù hợp nhất.
Đối tượng phạm vi nghiên cứu
Tìm hiểu nguyên lý hoạt động của các phần cứng như ESP32-DEVKITC-32U, ArduinoUNO R3, GPS Neo6M, RFID, và Lora RA02
Nghiên cứu lập trình và thiết kế trang web là cần thiết để hiển thị đầy đủ các giá trị thông số từ module thu thập dữ liệu Việc sử dụng các ngôn ngữ lập trình liên quan giúp đảm bảo mọi giá trị và chức năng được trình bày rõ ràng trên trang web.
Khám phá các giao thức giao tiếp giữa các module với nhau
Dựa vào các mô hình hiện có, tiến hành nghiên cứu, tích hợp, và triển khai các tính năng mới cho đề tài.
Bố cục quyển báo cáo
Nội dung chính của đề tài được trình bày qua 5 chương:
Chương này tổng kết tình hình nghiên cứu hiện tại và nêu rõ sự cần thiết của đề tài Nó xác định mục tiêu và nhiệm vụ nghiên cứu, đồng thời đặt ra phạm vi và đối tượng nghiên cứu Phương pháp thực hiện nghiên cứu cũng được trình bày, cùng với bố cục của đồ án.
Chương 2: Cơ sở lý thuyết
Chương này đề cập đến những lý thuyết cơ bản và quan trọng liên quan đến hệ thống
Chương 3: Thiết kế và thi công hệ thống
Chương này sẽ tập trung vào quy trình thiết kế và tính toán hệ thống, bao gồm việc xây dựng sơ đồ khối, sơ đồ nguyên lý, và lưu đồ giải thuật Ngoài ra, chương cũng sẽ trình bày cách thiết kế sơ đồ mạch in PCB và lập trình cho hệ thống.
Chương 4: Kết quả thực hiện
Chương này trình bày kết quả thi công phần cứng và xây dựng trang web, bao gồm hình ảnh thực tế của mô hình cùng với những nhận xét về sản phẩm.
Chương 5: Kết luận và hướng phát triển
Chương này sẽ trình bày các kết luận, ưu điểm và nhược điểm của đề tài, cùng với những hướng phát triển tiềm năng trong tương lai
CƠ SỞ LÝ THUYẾT
Tổng quan về mô hình hệ thống mạng không dây
Mô hình mạng không dây là một khái niệm quan trọng trong công nghệ hiện đại, đặc biệt là trong lĩnh vực truyền thông Công nghệ LoRa nổi bật với khả năng truyền dữ liệu qua khoảng cách xa và tiêu thụ năng lượng thấp Các thông số cơ bản của LoRa bao gồm tần số hoạt động, tốc độ truyền dữ liệu và kỹ thuật điều chế sóng, giúp tối ưu hóa hiệu suất mạng Hiểu rõ về các thông số này là cần thiết để triển khai hiệu quả công nghệ LoRa trong các ứng dụng thực tiễn.
Có 3 mô hình Wireless network:
Mạng di động (cellular network) như GSM, 2G, 3G, LTE, và 5G là một mô hình truyền dữ liệu phổ biến trên các thiết bị di động, nổi bật với tốc độ truyền dữ liệu nhanh chóng, mặc dù tiêu tốn nhiều năng lượng.
- LAN network (Wifi, Bluetooth, Zigbee, NFC): Phổ biến trong các mô hình mạng
LAN (Local Area Network) nhưng phạm vi sử dụng nhỏ và năng lượng sử dụng cao
Hình 2.1: Wireless network Hình 2.1: Wireless network[5]
Mạng LPWAN (SigFox, LoRa, LTE-M, NB-IoT) được phát triển dựa trên mô hình mạng di động và mạng LAN, nổi bật với khả năng truyền dữ liệu tầm xa trong khi tiêu thụ năng lượng rất thấp.
Đối với các ứng dụng Internet of Things cần khoảng cách truyền xa, mạng di động GSM/3G/H+/LTE là lựa chọn hàng đầu, mặc dù chi phí cao và tiêu tốn nhiều năng lượng Trong ngành công nghiệp, giao tiếp thường được hỗ trợ qua các chuẩn như RS485, RS422, RS232 và Ethernet Đồng thời, các phương tiện truyền thông qua mạng di động hiện nay cũng hỗ trợ đầu vào cho các cổng Ethernet và cổng Serial.
- Các tiêu chuẩn: GSM/GPRS/EDGE (2G), UMTS/HSPA (3G), LTE (4G)
- Băng tần sử dụng: 900/1800/1900/2100MHz
- Khoảng cách: sử dụng lên đến 200km cho HSPA và 35km tối đa cho GSM
Tốc độ truyền dữ liệu của các công nghệ di động khác nhau dao động từ 35 đến 170kbps với GPRS, 120 đến 384kbps với EDGE, 384kbps đến 2Mbps với UMTS, 600kbps đến 10Mbps với HSPA, và cuối cùng là từ 3 đến 10Mbps với LTE.
Bluetooth là công nghệ truyền thông không dây tầm ngắn hoạt động trên băng tần UHF 2,4 GHz, được thiết kế để đơn giản hóa việc kết nối giữa các thiết bị điện tử thông qua sóng vô tuyến không định hướng.
Công nghệ này cho phép truyền dữ liệu ngắn giữa các thiết bị, tạo thành mạng PAN với tốc độ truyền dữ liệu lên đến 1 Mb/s và băng thông tối đa 720 Kbps trong khoảng cách từ 10m đến 100m, khác biệt so với kết nối hồng ngoại (IrDA).
Bluetooth Low Energy (BLE) là một giao thức quan trọng trong các ứng dụng IoT, cho phép truyền dữ liệu ở khoảng cách tương tự như Bluetooth nhưng tiêu thụ ít năng lượng hơn BLE được thiết kế để giảm mức tiêu thụ năng lượng, phù hợp cho các thiết bị hoạt động lâu dài Ứng dụng của Bluetooth rất đa dạng, từ thiết bị đeo tay thông minh đến các cảm biến trong nhà thông minh.
- Truyền tải dữ liệu giữa điện thoại và các thiết bị điện tử giải trí như loa, bàn phím, chuột không dây, máy in, máy ảnh,
Những ưu điểm và nhược điểm:
+ Tiện lợi, chi phí thấp và tiêu tốn ít năng lượng
+ Không làm ảnh hưởng sức khỏe con người
+ Mang tính bảo mật cao
+ Trong phạm vi 5 mét các thiết bị có thể kết nối với nhau không cần tiếp xúc trực diện
+ Không ảnh hưởng và gây nhiễu cho các thiết bị không dây khác
+ Tính tương thích cao giữa các thiết bị
+ Tốc độ thấp (tối đa khoảng 720kbps)
+ Kết nối đôi khi bị tín hiệu yếu nếu môi trường có nhiều vật cản
ZigBee là giao thức truyền thông không dây tối ưu cho việc truyền tải dữ liệu trong khoảng cách ngắn, thường được sử dụng phổ biến trong các ứng dụng công nghiệp và Internet of Things (IoT).
Thông tin kỹ thuật về ZigBee:
+ Tốc độ truyền dữ liệu: 250kbp/s
Hình 2.2: Cấu trúc của Zigbee[6]
Tầng vật lý có vai trò quan trọng trong việc điều biến và đóng gói tín hiệu để truyền tải qua không gian Đồng thời, nó cũng đảm bảo sự ổn định của tín hiệu trong các môi trường có nhiễu.
- Tầng MAC: Xác định hình dạng đường truyền và hình dạng mạng để tránh va chạm giúp hệ thống hoạt động mạnh mẽ
Tầng mạng NWK có cấu trúc phức tạp, chủ yếu chịu trách nhiệm tìm kiếm và kết nối mạng, đồng thời mở rộng từ cấu trúc chuẩn 802.15.4 thành cấu trúc lưới Tầng này đóng vai trò quan trọng trong việc xác định đường truyền trong mạng ZigBee và quản lý địa chỉ ZigBee, khác với việc sử dụng địa chỉ tầng MAC.
Tầng APS là cầu nối giữa tầng mạng và các ứng dụng ZigBee, đồng thời thực hiện chức năng quan trọng là loại bỏ các gói dữ liệu trùng lặp từ tầng mạng NWK.
Tầng đối tượng thiết bị ZDO quản lý các thiết bị và cấu hình cho tầng ứng dụng cũng như tầng mạng Tầng này cho phép thực hiện các chức năng như tìm kiếm, quản lý yêu cầu và xác định trạng thái hoạt động của thiết bị.
Tầng các đối tượng ứng dụng người dùng APO cho phép người dùng tương tác trực tiếp với thiết bị và tích hợp các ứng dụng tùy chỉnh vào hệ thống, nâng cao trải nghiệm sử dụng.
ZigBee có ba dạng chính:
Các mô hình mạng ZigBee:
- Star network: Các nút con sẽ được kết nối với nút chủ tại vị trí trung tâm
Mạng lưới Mesh là một hệ thống trong đó các nút có khả năng kết nối với nhau, đảm bảo tín hiệu truyền ổn định và liên tục Khi có cản trở, hệ thống tự động chuyển sang các nút khác để duy trì kết nối.
- Cluster network: Là bản mở rộng của Mesh network và có thể phủ sóng và mở rộng cao hơn
Thành phần trong mạng ZigBee:
Tổng quan về công nghệ LoRa
Công ty Cycleo đã nghiên cứu và phát triển ra LoRa (Long Range Radio), vào năm
Năm 2012, công ty Semtech đã mua lại công nghệ LoRa, một giao thức truyền thông dựa trên tần số vô tuyến LoRa cho phép truyền dữ liệu trên khoảng cách hàng trăm km với mức tiêu thụ năng lượng rất thấp Đặc điểm nổi bật của LoRa là khả năng hoạt động với công suất thấp nhưng vẫn duy trì tầm xa hiệu quả.
Decibel (dB) là đơn vị đo lường tỷ lệ theo thang logarit, thường được sử dụng để biểu thị áp suất âm thanh Đơn vị này được phát minh bởi Bell Labs và mang tên Alexander Graham Bell.
Decibel được sử dụng để biểu thị tỷ lệ công suất điện (Watts)
Chuyển đổi dB sang tỷ lệ công suất: 𝑃 𝑜
Thang đo logarit được sử dụng để tránh các số rất lớn hoặc rất nhỏ, nghĩa là các tỷ lệ Sử dụng dB dễ làm việc hơn
- Tỷ lệ công suất 1.000.000 (1 triệu) có thể biểu thị bằng 60 dB
- Tỷ lệ công suất 0,000001 có thể biểu thị bằng -60 dB
- Tỷ lệ công suất 1,000,000,000,000,000 có thể biểu thị bằng 150 dB
- Tỷ lệ công suất 0,000000000000001 có thể biểu thị bằng -150 dB
- Tỷ lệ công suất 1,000,000,000,000,000,000,000,000 có thể biểu thị bằng 240 dB
- Tỷ lệ công suất 0,000000000000000000000001 có thể biểu thị bằng -240 dB Đơn vị dB là một tỷ lệ, nó không đại diện cho một giá trị tuyệt đối
Có một cách dễ dàng để chuyển đổi giá trị dBm thành giá trị công suất tuyệt đối của nó (Po)
3 dB = x2 -3 dB = ÷2 Bảng 2.4: Thông số quy đổi dB sang công suất tuyệt đối
Có thể tính bất kỳ số nào bằng cách chỉ sử dụng các giá trị 10 và 3
- Máy phát có 6 dB thì có công suất phát (thông thường Pi = 1 mW):
Ví dụ: Máy phát có 17 dBm thì có công suất phát:
2.2.3 Đặc điểm nổi bật của LoRa:
- Tốc độ truyền dữ liệu: Khoảng từ 0.3kbps đến 5.5kbps
- Gateway xử lý nhiều thiết bị Node cùng một lúc
- Các Gateway có thể nhận đồng thời nhiều tần số, trong mọi hệ số lan truyền (Spreading Factor) ở mỗi tấn số
- Tốc độ truyền dữ liệu càng chậm thì khả năng truyền càng mạnh và phạm vi dài
- Ở chế độ nghỉ, LoRa hoạt động 1àA
2.2.4 Kỹ thuật điều chế sóng LoRa:
2.2.4.1 Tần số truyền của LoRa: Điều chế có nghĩa là các thông tin tương tự hoặc kỹ thuật số được mã hóa thành tín hiệu sóng mang
Kỹ thuật Chirp Spread Spectrum, được áp dụng trong LoRa, mở rộng tín hiệu băng tần cơ sở đến một băng tần rộng hơn bằng cách sử dụng tín hiệu tần số cao hơn Đặc điểm nổi bật của phương pháp này là băng thông tín hiệu truyền thông tin lớn hơn nhiều so với băng thông của chính thông tin Nguyên lý hoạt động cơ bản là chia dữ liệu thành các phần nhỏ và chuyển đổi chúng thành các xung cao tần, tạo ra tín hiệu có tần số cao hơn so với dữ liệu ban đầu, được gọi là "chipped".
Trong hệ thống truyền thống hoặc DSSS, pha sóng mang của tín hiệu máy phát thay đổi theo một chuỗi mã, tạo ra một tín hiệu "nhanh hơn" với các thành phần tần số cao hơn Tín hiệu này, còn được gọi là mã trải rộng (chuỗi chip), cho phép truyền dữ liệu với tốc độ cao hơn nhiều so với tín hiệu gốc, dẫn đến việc băng thông tín hiệu được trải rộng ra ngoài băng thông ban đầu Trong thuật ngữ RF, các bit của chuỗi mã được gọi là chip, và khi tín hiệu đến máy thu RF, nó sẽ được nhân với một bản sao giống hệt của mã trải phổ được sử dụng trong máy phát.
RF, dẫn đến một bản sao của tín hiệu dữ liệu gốc.[7]
Thông qua phép này giúp cho link budget RF cao hơn, vì vậy có thể truyền đi phạm vi dài
Hình 2.3 :Thay đổi tín hiệu máy phát pha sóng mang hệ thống DSSS
Độ lợi xử lý (Gp) được xác định bởi tỷ lệ log10 giữa tốc độ chip của chuỗi mã và tốc độ bit của tín hiệu dữ liệu, giúp máy thu khôi phục tín hiệu dữ liệu ban đầu ngay cả khi kênh gặp tỷ lệ tín hiệu nhiễu âm (SNR) thấp LoRa nổi bật với Gp cao hơn so với điều chế FSK, cho phép giảm công suất đầu ra của máy phát mà vẫn duy trì tốc độ dữ liệu và ngân sách liên kết tương tự.
Sử dụng công nghệ trải phổ: C = B log2(1 + 𝑆/𝑁)
C là dung lượng kênh, được đo bằng bit trên giây (bps), đại diện cho tốc độ dữ liệu tối đa cho phép theo tỷ lệ lỗi bit có thể chấp nhận được về mặt lý thuyết (BER).
B là băng thông kênh yêu cầu tính bằng Hz
𝑆/𝑁 là tỷ lệ công suất tín hiệu trên nhiễu
C là đại diện cho lượng thông tin mà kênh giao tiếp có thể truyền tải và hiệu suất mong muốn Theo công thức, việc tăng băng thông (B) giúp duy trì hiệu suất giao tiếp (C), cho phép công suất tín hiệu thấp hơn mức nhiễu, từ đó cải thiện khả năng chống nhiễu và tăng cường khoảng cách truyền dẫn.
Một nhược điểm của hệ thống DSSS là cần đồng hồ tham chiếu chính xác cao, dẫn đến chi phí cao Công nghệ CSS của Semtech cung cấp giải pháp thay thế DSSS với chi phí thấp và công suất tiêu thụ thấp, không yêu cầu đồng hồ tham chiếu chính xác cao Trong điều chế LoRa, tín hiệu được trải phổ thông qua việc tạo ra một tín hiệu chirp liên tục thay đổi tần số.
Hình 2.4: Hình minh họa LoRa Chirp Spread Spectrum
Một ưu điểm nổi bật của phương pháp này là sự tương đương giữa hiệu số thời gian và tần số của máy phát và máy thu, giúp giảm đáng kể độ phức tạp trong thiết kế máy thu Băng thông tần số của chirp tương ứng với băng thông phổ của tín hiệu, cho phép tín hiệu dữ liệu truyền tải thông tin từ thiết bị đầu cuối đến cổng kết nối được xử lý với tốc độ cao hơn.
Điều chế LoRa sử dụng tín hiệu sóng mang chirp và một sơ đồ sửa đổi để tăng cường độ mạnh của tín hiệu truyền Mỗi bốn bit thông tin được gửi đi kèm theo một bit thứ năm biểu thị thông tin chẵn lẻ.
LoRa xử lý độ lợi bằng cách nhân tín hiệu với mã trải rộng, giúp tăng tốc độ chip và mở rộng các thành phần tần số trong tổng phổ tín hiệu Nhờ vào việc trải rộng năng lượng tín hiệu trên một dải tần số rộng hơn, máy nhận có khả năng phân biệt tín hiệu ngay cả khi tỷ lệ tín hiệu trên nhiễu (SNR) thấp hơn.
Hình 2.5: Hình ảnh minh họa chip SX1278 SEMTECH
Tín hiệu cao tần tiếp theo sử dụng mã hóa bằng chuỗi chirp signal, là một loại tín hiệu hình sin có tần số thay đổi theo thời gian.
Chirp signal được phân thành hai loại trong đó:
Trước khi được truyền tới anten, tín hiệu được mã hóa bằng hai loại chirp signal, giúp giảm độ phức tạp và tăng độ chính xác của mạch nhận trong việc điều chế và giải mã dữ liệu LoRa hoạt động trong băng tần vô tuyến ISM, không cần giấy phép, và được sử dụng phổ biến trên toàn cầu.
Bảng 2.5: Bảng tần số được phép sử dụng từng khu vực Ưu điểm của băng tần ISM:
- Bất kỳ ai cũng được phép sử dụng các tần số này
- Không có lệ phí giấy phép được yêu cầu
Nhược điểm của băng tần ISM:
- Tốc độ dữ liệu thấp
LoRa có khả năng chống nhiễu cao nhờ vào việc sử dụng các tín hiệu chirp với các tần suất chirp rate khác nhau Điều này cho phép nhiều thiết bị LoRa hoạt động trong cùng một khu vực mà không gây ra sự can thiệp lẫn nhau Nhờ vậy, nhiều thiết bị có thể trao đổi dữ liệu trên nhiều kênh đồng thời, mỗi kênh tương ứng với một chirp rate riêng biệt.
2.2.4.2 Tính chất truyền trong LoRa:
- Suy hao không gian trống (Free space losses):
L(fs): Suy hao không gian trống tính bằng dB
D: Khoảng cách giữa Node và Gateway tính bằng km
F: Tần số tính bằng MHz
Fresnel zone là vùng không gian hình elip bao quanh đường truyền trực tiếp giữa Node và Gateway Bất kỳ chướng ngại vật nào nằm trong khu vực này, như tòa nhà, cây cối, đỉnh đồi hoặc mặt đất, đều có thể làm suy yếu tín hiệu truyền, ngay cả khi có đường truyền thẳng giữa Node và Gateway.
Hình 2.6: Minh họa các giá trị node và gateway Trong đó: r = 8,657 √𝐷𝑓 [m]
D: Khoảng cách giữa Node và Gateway tính bằng ki-lô-mét [km] f: là tần số tính bằng GHz
- Ảnh hưởng bởi độ cong của Trái Đất:
Trong đó: H: Độ cao (hoặc độ cong cho phép) tính bằng mét [m]
D: Khoảng cách giữa Node và Gateway tính bằng ki-lô-mét [km]
Rearth = 8504 là Bán kính của Trái Đất tính bằng ki-lô-mét [km]
Bảng 2.6: Bảng tính độ cao H dựa vào từng khoảng cách
- Nếu vượt quá 40% mức tắc nghẽn, mất tín hiệu (mất dữ liệu) có thể xảy ra
𝑓 Là bán kính Fresnel zone tính bằng mét [m]
D: Khoảng cách giữa Node và Gateway tính bằng ki-lô-mét [km] f: Tần số tính bằng GHz
H: Độ cong Trái đất cho phép r + H: Tối thiểu Node và Gateway so với mặt đất
Bảng 2.7: Bảng tính bán kính (r) với khoảng trống 100%(trái) và 63%(phải)
- Để có hiệu suất tín hiệu vô tuyến tốt nhất: An-ten Gateway phải được đặt ngoài trời ở vị trí cao (tránh chướng ngại vật trong Fresnel zone)
- Thiết kế an-ten cho cả hai Gateway và Node phải được tối ưu hóa cho tần số khu vực của nó
- Giữ phân cực an-ten thẳng đứng cho cả Gateway và Node và sử dụng an-ten đa hướng để bao phủ một khu vực rộng lớn
Sơ lược về hệ thống IoT
Cấu trúc của hệ thống IoT gồm 4 phần chính: Thiết bị (Things), trạm kết nối (Gateways), hạ tầng mạng (Network and Cloud) và dịch vụ (Services) [9]
Hình 2.22: Kiến trúc của hệ thống IoT
Các thiết bị công nghệ thông minh hiện nay rất đa dạng và phổ biến, bao gồm cảm biến, đồng hồ thông minh, điện thoại thông minh và các thiết bị điều khiển Tất cả những thiết bị này đều có khả năng kết nối Internet, mang lại sự tiện lợi và hiệu quả cho người sử dụng.
Trạm kết nối là yếu tố quan trọng, giúp kết nối các thiết bị với điện toán đám mây một cách an toàn và thuận tiện, đồng thời nâng cao hiệu quả quản lý.
Hạ tầng mạng và điện toán đám mây là hai yếu tố quan trọng trong việc quản lý lưu lượng dữ liệu Hạ tầng mạng bao gồm thiết bị tổng hợp, trạm kết nối và thiết bị định tuyến, giúp kết nối với mạng lưới viễn thông của các nhà cung cấp Trong khi đó, điện toán đám mây bao gồm hệ thống máy chủ, mạng và lưu trữ ảo được kết nối chặt chẽ, tạo thành một nền tảng linh hoạt cho các dịch vụ trực tuyến.
Dịch vụ: Đem những sản phẩm công nghệ IoT và cách tận dụng giá trị của việc phân tích dữ liệu hệ thống khi ra mắt trên thị trường
2.2.2 Ưu điểm và nhược điểm Ưu điểm:
Có thể dễ dàng truy cập và điều khiển từ xa qua mạng Internet
Dữ liệu được lưu trữ trên cơ sở dữ liệu giúp tiết kiệm thời gian và chi phí, đồng thời tăng tính linh hoạt
IoT là giải pháp giúp tự động hóa nhiều nhiệm vụ, cải thiện chất lượng cuộc sống
Việc kết nối và chia sẻ thông tin trên Internet có thể dẫn đến rủi ro lạm dụng thông tin khi nhiều thiết bị được kết nối
Do cấu trúc hệ thống liên quan mật thiết, một sự cố có thể dẫn đến hỏng hóc của các thiết bị kết nối
Thiếu tiêu chuẩn quốc tế và sự tương thích trong hệ thống IoT gây khó khăn cho các nhà phát triển trong việc giao tiếp giữa các thiết bị.
Tổng quan về phầm mềm lập trình
2.4.1 Giới thiệu phần mềm Arduino IDE
Hình 2.23: Giao diện lập trình của Arduino IDE
Arduino IDE, hay còn gọi là Môi trường Phát triển Tích hợp Arduino, là một công cụ phổ biến cho việc lập trình vi điều khiển nhúng bằng ngôn ngữ lập trình.
Arduino IDE hỗ trợ lập trình cho các loại Arduino như Arduino Mega, Arduino Nano và Arduino Uno, cũng như các module ESP như ESP8266 và ESP32 Phần mềm này chạy trên nhiều nền tảng như Mac, Windows và Linux, được xây dựng trên nền Java Với các chức năng và câu lệnh sẵn có, Arduino IDE giúp người dùng dễ dàng chỉnh sửa và biên dịch mã Mỗi module có vi điều khiển trên board mạch, nhận thông tin dưới dạng mã gọi là sketch từ IDE Sau khi biên dịch, mã sẽ được chuyển thành tệp tin Hex và tải lên bộ điều khiển của board mạch.
2.4.2 Các thao tác trên phần mềm
Dưới đây là bảng liệt kê các thao tác chính khi thực hiện lập trình trên phần mềm Arduino IDE
Bảng 2.13: Thao tác trên Arduino IDE
Tổng quan về firebase
Firebase là nền tảng phát triển ứng dụng di động và trang web do Google cung cấp, nổi bật với cơ sở dữ liệu thời gian thực lưu trữ qua đám mây Với hệ thống máy chủ mạnh mẽ và các API đơn giản, Firebase mang đến các chức năng dễ tiếp cận, trở thành lựa chọn hàng đầu cho lập trình viên trong việc phát triển sản phẩm.
Firebase hiện có 52 triệu người dùng trên toàn cầu, cung cấp dịch vụ đa năng với tính bảo mật cao Nền tảng này hỗ trợ cả hệ điều hành Android và iOS, mang đến giải pháp tối ưu cho các nhà phát triển.
Khi đăng ký tài khoản Firebase, người dùng dễ dàng tạo ứng dụng với cơ sở dữ liệu thời gian thực, lưu trữ dữ liệu dưới dạng chuỗi JSON Dữ liệu này tự động đồng bộ hóa khi có thay đổi và kết nối tới mọi client trên các nền tảng khác nhau Trong trường hợp mất mạng, dữ liệu sẽ được lưu cục bộ và tự động cập nhật lên server của Firebase khi kết nối trở lại, đảm bảo mức độ bảo mật cao cho dữ liệu.
Firebase cung cấp quy trình xác thực người dùng đa dạng qua Email, Facebook, Twitter, GitHub và Google Quá trình này không chỉ bảo vệ thông tin cá nhân của người dùng mà còn đảm bảo an toàn, ngăn chặn việc đánh cắp tài khoản hiệu quả.
Firebase cung cấp dịch vụ lưu trữ nhanh và an toàn cho ứng dụng web sản xuất Chỉ với một lệnh, các nhà phát triển có thể triển khai ứng dụng và cung cấp nội dung tĩnh cũng như động cho CDN (Mạng phân phối nội dung) Nhờ vào CDN, người dùng sẽ nhận được bản sao nội dung từ máy chủ gần nhất khi truy cập trang web.
2.5.3 Ưu nhược điểm của Fibase Ưu điểm:
- Tạo và sử dụng tài khoản dễ dàng
- Tốc độ phát triển nhanh
- Hỗ trợ nhiều dịch vụ trong một nền tảng
- Firebase không có máy chủ
- Uy tín được mang lại bởi Google
- Tập trung vào phát triển giao diện người dùng
- Người dùng không được phép truy cập vào mã nguồn do Firebase không là mã nguồn mở
- Firebase vẫn không được hỗ trợ ở nhiều quốc gia
- Truy vấn có thể chậm
- Gói miễn chỉ sử dụng được vài tính năng hạn chế
- Gía sử dụng có thể cao và chi phí sử dụng không ổn định
- Chỉ chạy trên nền tảng Google Cloud.
Giới thiệu các ngôn ngữ website
Thiết kế web dựa trên HTML, CSS và JavaScript là quá trình tập trung vào ba ngôn ngữ này và cách chúng phối hợp để tạo ra các trang web tương tác.
HTML là ngôn ngữ đánh dấu cơ bản xác định cấu trúc và nội dung của trang web Nó sử dụng các thẻ để đánh dấu các phần tử như tiêu đề, đoạn văn, hình ảnh, bảng, liên kết và biểu đồ Cấu trúc của một trang web HTML được tạo thành từ việc lồng ghép các thẻ HTML.
CSS là một ngôn ngữ định dạng quan trọng dùng để kiểm soát giao diện và hiển thị của trang web trên trình duyệt Nó cho phép người dùng tạo ra các quy tắc cho các phần tử HTML, bao gồm màu sắc, kích thước, khoảng cách, kiểu chữ và đường viền Việc tách riêng phần giao diện khỏi cấu trúc và nội dung trang web giúp tối ưu hóa thiết kế và nâng cao trải nghiệm người dùng.
JavaScript là ngôn ngữ lập trình thông dịch quan trọng, thường được sử dụng để thêm tính năng tương tác và động cho trang web Nó cho phép xử lý sự kiện, thay đổi nội dung trang, thao tác với các phần tử HTML và CSS, cũng như nhận và gửi dữ liệu từ máy chủ Nhờ vào những khả năng này, JavaScript đóng vai trò thiết yếu trong việc phát triển các ứng dụng web phức tạp.
Giao tiếp I2C
I2C là giao thức giao tiếp nối tiếp đồng bộ do Philips Semiconductors phát triển, cho phép truyền nhận dữ liệu giữa các IC thông qua chỉ hai đường tín hiệu.
Các bit dữ liệu được truyền theo từng bit một theo các khoảng thời gian đều đặn và được đồng bộ bởi tín hiệu xung clock
I2C được sử dụng với mục đích giao tiếp với nhiều loại IC khác nhau như EEPROM, module cảm biến, vi điều khiển và nhiều thiết bị khác.…
2.7.2 Hoạt động của chuẩn giao tiếp I2C
I2C sử dụng 2 đường truyền tín hiệu:
-SDA: Dùng để truyền dữ liệu hai chiều giữa các thiết bị
-SCL: Cung cấp xung nhịp đồng bộ cho việc truyền dữ liệu
Giao tiếp I2C là phương thức truyền nhận dữ liệu giữa thiết bị Master và Slave Trong đó, thiết bị Master, thường là một vi điều khiển, sẽ điều khiển tín hiệu SCL và thực hiện việc gửi nhận dữ liệu hoặc lệnh qua đường SDA đến các thiết bị khác.
Trong quá trình truyền nhận dữ liệu giữa các thiết bị IC, việc phân biệt các thiết bị là rất quan trọng Mỗi thiết bị được gán một địa chỉ vật lý cố định dài 7 bit để đảm bảo tính chính xác trong việc nhận diện và giao tiếp.
Bit này xác định hướng truyền dữ liệu giữa thiết bị Master và thiết bị Slave Khi thiết bị Master gửi dữ liệu, bit này có giá trị '0', trong khi khi nhận dữ liệu, bit này sẽ có giá trị '1'.
Bit ACK có nhiệm vụ so sánh địa chỉ vật lý của thiết bị với địa chỉ được truyền Khi hai địa chỉ khớp nhau, thiết bị Slave sẽ gửi tín hiệu xác nhận 0 Ngược lại, nếu địa chỉ không khớp, thiết bị sẽ phản hồi bằng tín hiệu NAK với giá trị 1.
Một byte, gồm 8 bit, được truyền từ thiết bị phát đến thiết bị thu Sau đó, một bit phản hồi ACK/NACK sẽ được gửi để thông báo cho thiết bị phát về tình trạng nhận dữ liệu Bit phản hồi sẽ là '0' khi dữ liệu được nhận thành công và '1' khi có lỗi trong quá trình nhận.
Quá trình truyền nhận dữ liệu:
Hình 2.27: Tín hiệu bắt đầu
Thiết bị chủ (Master) khởi tạo tín hiệu Start bằng cách giảm điện áp của cả hai dây SDA và SCL từ mức cao xuống mức thấp theo thứ tự.
Thiết bị Master sẽ gửi 7 bit địa chỉ đến thiết bị Slave để thiết lập giao tiếp, cùng với một bit chỉ dẫn để xác định thao tác đọc hoặc viết dữ liệu.
Thiết bị Slave kiểm tra địa chỉ được gửi từ Master; nếu địa chỉ khớp, Slave sẽ hạ tín hiệu trên dây SDA xuống mức thấp và gửi bit ACK với giá trị ‘0’ Ngược lại, nếu địa chỉ không khớp, Slave không phản hồi, giữ dây SDA ở mức cao và bit ACK/NACK sẽ là ‘1’.
- Khi thiết bị Master muốn truyền dữ liệu đến Slave, nó sẽ thiết lập bit Read/Write ở mức
The Master device indicates a sending operation by setting the bit to '0' Conversely, when the Master intends to receive data from the Slave, it sets the Read/Write bit to '1', signaling a data reading operation.
Khi khung dữ liệu được truyền thành công qua giao tiếp I2C, thiết bị Slave gửi một bit ACK (acknowledge) với giá trị '0' về cho Master Bit ACK này thông báo cho Master rằng dữ liệu đã được nhận và xử lý chính xác, cho phép Master tiếp tục quá trình truyền dữ liệu tiếp theo.
Khi quá trình truyền dữ liệu đến các thiết bị Slave hoàn tất, thiết bị Master phát tín hiệu Stop để thông báo rằng việc truyền dữ liệu đã xong Tín hiệu này được thực hiện bằng cách nâng cao mức độ của dòng SCL và dòng SDA từ trạng thái thấp lên trạng thái cao một cách tuần tự.
Giao tiếp UART
2.9.1 Khái niệm giao tiếp UART
UART là chuẩn giao tiếp phổ biến trong truyền thông điều khiển giữa các thiết bị điện tử Nó được ứng dụng rộng rãi để kết nối vi xử lý, vi điều khiển, cảm biến, mô-đun và nhiều thiết bị khác trong các hệ thống nhúng.
2.9.2 Hoạt động của chuẩn giao tiếp UART
Hình 2.28: Bus vật lý UART.[14]
UART dùng hai đường truyền:
- TX (Transmit): Đường truyền dữ liệu từ bộ gửi đến bộ nhận Dữ liệu được truyền theo kiểu không đồng bộ và tuân theo chuẩn UART
- RX (Receive): Đường truyền dữ liệu từ bộ nhận đến bộ gửi Dữ liệu được nhận và xử lý tương ứng với chuẩn UART
Một frame UART bao gồm các thành phần chính như start bit, dữ liệu (thường là 8 bit, nhưng có thể là 7 hoặc 9 bit), bit kiểm tra (parity bit, nếu có) và bit dừng (thường là 1 hoặc 2 bit) Các thành phần này xác định cách thức dữ liệu được truyền qua kênh UART.
Baud rate là tốc độ truyền dữ liệu, thể hiện số lượng biểu tượng được gửi qua một kênh trong một giây, được đo bằng bit mỗi giây (bps) Để đảm bảo truyền thông chính xác, baud rate cần được cấu hình giống nhau trên cả thiết bị gửi và nhận.
Trong giao tiếp UART, tín hiệu truyền ở trạng thái điện áp cao khi không có dữ liệu Để bắt đầu truyền, UART chuyển tín hiệu từ mức điện áp cao sang thấp trong một chu kỳ xung clock Sự chuyển đổi này cho phép UART nhận biết và đọc các bit dữ liệu theo tốc độ baud đã được cài đặt trước.
Khung dữ liệu chứa thông tin cần truyền và có độ dài biến thiên từ 5 đến 8 bit khi tính năng kiểm tra chẵn lẻ được kích hoạt Nếu không sử dụng kiểm tra chẵn lẻ, độ dài khung có thể mở rộng lên 9 bit Thông thường, quá trình truyền dữ liệu bắt đầu bằng việc gửi bit có trọng số thấp nhất trước.
Trong giao tiếp UART, bit parity được sử dụng để phát hiện lỗi trong quá trình truyền thông, có thể do nhiễu từ trường, tốc độ truyền không khớp, hoặc khoảng cách truyền dữ liệu lớn UART sẽ tính toán số lượng bit giá trị ‘1’ trong dữ liệu nhận và so sánh với giá trị của bit parity Nếu bit parity là ‘0’ (tổng số bit ‘1’ chẵn), dữ liệu được coi là không lỗi khi tổng số bit ‘1’ chẵn Ngược lại, nếu bit parity là ‘1’ (tổng số bit ‘1’ lẻ), dữ liệu chỉ chính xác khi tổng số bit ‘1’ lẻ Nếu có sự không khớp giữa bit parity và tổng số bit ‘1’, UART sẽ xác định rằng dữ liệu có thể đã bị thay đổi trong quá trình truyền.
Bit dừng là tín hiệu đặc biệt mà UART sử dụng để đánh dấu điểm kết thúc của một gói tin Trong quá trình này, UART chuyển mức điện áp từ thấp sang cao và duy trì trong thời gian tương đương với ít nhất hai bit dữ liệu Điều này giúp thiết bị nhận dữ liệu phân biệt sự kết thúc của gói tin và chuẩn bị cho việc nhận gói tin tiếp theo.
Deep learning
Học sâu, một nhánh quan trọng của máy học, cho phép các mô hình máy tính tự học và cải thiện từ dữ liệu thông qua các thuật toán Đặc điểm nổi bật của học sâu là việc áp dụng các cấu trúc và lý thuyết nâng cao, giúp xử lý và phân tích dữ liệu một cách sâu sắc hơn.
2.10.2 Cách thức hoạt động của mô hình học sâu - deep learning
Mạng nơ-ron nhân tạo trong Học Sâu được phát triển nhằm mô phỏng các quá trình suy nghĩ của não bộ Cấu trúc và hoạt động của chúng có thể được giải thích qua các nguyên lý tương tự như cách thức hoạt động của hệ thần kinh.
Một mạng nơ-ron bao gồm nhiều lớp, và độ “sâu” của mạng tăng lên khi số lượng lớp nhiều hơn Mỗi lớp chứa nhiều nút, hay còn gọi là neuron, được liên kết với các lớp xung quanh.
• Mỗi liên kết giữa các nút mang một trọng số nhất định, và trọng số này quyết định mức độ ảnh hưởng của nút đó đến toàn bộ mạng
• Các neuron hoạt động dựa trên hàm kích hoạt, có nhiệm vụ điều chỉnh giá trị đầu ra của neuron để đảm bảo tính ổn định
• Khi dữ liệu được truyền vào, nó sẽ được xử lý qua từng lớp của mạng và cuối cùng đưa ra kết quả tại lớp đầu ra
• Trong quá trình huấn luyện, mô hình sẽ điều chỉnh các trọng số để tối ưu hóa kết quả dự đoán
Để xử lý và học từ lượng dữ liệu lớn, các hệ thống Học Sâu yêu cầu phần cứng mạnh mẽ Việc triển khai các mô hình Học Sâu có thể tốn từ vài tuần đến vài tháng trên các thiết bị hiện đại.
2.10.3 Ưu nhược điểm học sâu (deep learning)
Dưới đây là một số điểm mạnh của Deep Learning:
- Mạng nơ-ron có cấu trúc đa dạng, có thể được điều chỉnh để phù hợp với nhiều loại thuật toán
- Có khả năng giải quyết các bài toán phức tạp với độ chính xác cao
- Tự động hóa và tự điều chỉnh được quá trình học, cũng như khả năng tự tối ưu
- Có thể xử lý tính toán đồng thời và hiệu quả, đối phó được với dữ liệu lớn
Tuy nhiên, Deep Learning cũng gặp phải một số thách thức:
- Đòi hỏi lượng dữ liệu lớn để phát huy hết khả năng
- Chi phí tính toán tăng cao do sự phức tạp của các mô hình
- Thiếu một cơ sở lý thuyết vững chắc để lựa chọn công cụ tối ưu cho Deep Learning
2.10.5 Ứng dụng thực tiễn của Deep Learning
Deep Learning đang cách mạng hóa cách chúng ta xử lý nhiều công việc phức tạp, từ phân tích dữ liệu quy mô lớn đến thực hiện các phép toán chính xác Một số ứng dụng nổi bật của Deep Learning bao gồm nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên và dự đoán dữ liệu, cho thấy tiềm năng to lớn của công nghệ này trong nhiều lĩnh vực khác nhau.
Hệ thống xe tự lái: Công nghệ lái xe tự động là một trong những ứng dụng tiên tiến nhất của Deep Learning
Deep Learning đã được ứng dụng trong phân tích cảm xúc của con người thông qua công nghệ xử lý ngôn ngữ tự nhiên và phân tích văn bản.
Mạng xã hội: Deep Learning đóng một vai trò quan trọng trong việc cải thiện dịch vụ của các nền tảng mạng xã hội lớn
Trợ lý ảo: Các trợ lý ảo như chatbot, Google Assistant, Cortana và Siri đều được phát triển dựa trên Deep Learning
Deep Learning đã đóng góp quan trọng trong lĩnh vực chăm sóc sức khỏe, đặc biệt trong việc phát triển các mô hình dự đoán bệnh và chẩn đoán ung thư Công nghệ này cũng hỗ trợ phân tích hình ảnh y tế như MRI và X-quang, từ đó nâng cao độ chính xác trong chẩn đoán và điều trị bệnh.
Machine Learning và Deep Learning là hai phương pháp quan trọng trong phân tích dữ liệu Deep Learning phù hợp cho các dự án phức tạp, đặc biệt là trong các lĩnh vực như phân loại hình ảnh, xử lý ngôn ngữ tự nhiên và nhận dạng giọng nói, nơi cần xử lý dữ liệu lớn và không cấu trúc Ngược lại, đối với các vấn đề ít phức tạp hơn, Machine Learning truyền thống thường là lựa chọn tối ưu hơn.
Deep Learning yêu cầu tài nguyên lớn, đặc biệt là GPU, để xử lý khối lượng dữ liệu khổng lồ, trong khi Machine Learning có thể hoạt động hiệu quả trên CPU và phần cứng thông thường, cho phép thử nghiệm nhiều mô hình mà không cần đầu tư vào tài nguyên cao.
Deep Learning yêu cầu một lượng dữ liệu lớn để nhận diện các mối quan hệ phức tạp, trong khi việc gán nhãn dữ liệu đòi hỏi nhiều nguồn lực và thời gian, đặc biệt là trong lĩnh vực y tế nơi độ chính xác là rất quan trọng Khi dữ liệu bị hạn chế, các phương pháp Machine Learning truyền thống có thể mang lại hiệu quả cao hơn.
Do đó, việc chọn mô hình phù hợp yêu cầu cân nhắc kỹ lưỡng về độ phức tạp, tài nguyên và dữ liệu sẵn có của dự án.
Mô hình YOLO
YOLO (You Only Look Once) là một thuật toán tiên tiến cho nhận diện đối tượng trong thời gian thực, được giới thiệu lần đầu vào năm 2015 bởi các nhà nghiên cứu Ross Girshick, Joseph Redmon, Ali Farhadi và Santosh Divvala trong một bài báo nổi tiếng.
"You Only Look Once: Unified, Real-Time Object Detection".[15]
Hình 2.32: Mô hình mạng YOLO[15]
YOLO nổi bật với tốc độ xử lý nhanh chóng, đạt 45 khung hình mỗi giây (FPS) mà không phải xử lý các luồng công việc phức tạp Điều này giúp YOLO trở thành một lựa chọn lý tưởng cho các ứng dụng cần nhận diện hình ảnh trong thời gian thực.
YOLO đạt hơn gấp đôi Mean Average Precision (mAP) so với các hệ thống thời gian thực khác, trở thành ứng cử viên lý tưởng cho xử lý thời gian thực Nó cũng vượt trội hơn các mô hình tiên tiến khác về độ chính xác với rất ít lỗi nền Với tính năng mã nguồn mở, YOLO được cải tiến bởi cộng đồng người dùng, góp phần vào sự phát triển nhanh chóng của mô hình trong thời gian ngắn.
YOLO được phát triển qua các thế hệ như hình bên dưới
Hình 2.33: Cách phiên bản YOLO theo thời gian
Kiến trúc YOLO tương tự như GoogleNet, bao gồm 24 lớp tích chập, 4 lớp gộp cực đại và 2 lớp kết nối đầy đủ.
Hình 2.34: Kiến trúc mạng YOLO[16]
Kiến trúc hoạt động như sau:
1 Ảnh đầu vào được thay đổi kích thước thành 448x448 trước khi đi qua mạng tích chập
2 Một tích chập 1x1 được áp dụng đầu tiên để giảm số lượng kênh, sau đó là tích chập 3x3 để tạo ra đầu ra dạng khối
3 Hàm kích hoạt sử dụng trong mô hình là ReLU, ngoại trừ lớp cuối cùng sử dụng hàm kích hoạt tuyến tính
4 Một số kỹ thuật bổ sung như chuẩn hóa theo lô (batch normalization) và dropout được sử dụng để điều chỉnh mô hình và ngăn chặn việc quá khớp (overfitting)
2.12.3 Nguyên lí hoạt động của YOLO
Hình ảnh có hai hộp đại diện cho mèo và chó sẽ được YOLO chia thành lưới, ví dụ như lưới 3x3.
Hình 2.35: Ví dụ thuật toán đoán hình ảnh
Với việc sử dụng lưới, chúng ta có thể xác định đối tượng trong từng ô lưới thay vì chỉ trong toàn bộ hình ảnh Mỗi ô lưới sẽ được mã hóa bằng một vector mô tả đặc trưng của nó Chẳng hạn, ô ở góc trên bên trái nếu không chứa đối tượng nào sẽ được mô tả một cách cụ thể.
C1,1 = (Pc, Bx, By, Bw, Bh, C1, C2) = (0,?,?,?,?,?,?), Trong đó
Pc là xác suất của lớp đối tượng
Bx, By là tâm của hộp giới hạn
Bw, Bh là chiều rộng, chiều cao của hộp giới hạn
C1, C2 là đại diện cho chó và mèo Tiếp theo, lấy ô chứa tâm của hộp giới hạn màu xanh có hình con mèo, vecto sẽ là
C3,2 = (Pc, Bx, By, Bw, Bh, C1, C2) = (1,0.05,0.04,0.35,0.4,1,0)
Theo quy trình này, mỗi ô lưới sẽ được xác định bằng một vectơ, cho phép toàn bộ hình ảnh được biểu diễn thông qua chín vectơ có kích thước tensor 7 hoặc 3x3x7.
Trong tập dữ liệu 67, mỗi mẫu hình ảnh được gán nhãn bằng một tensor 3x3x7 Từ tập dữ liệu này, chúng ta có thể tạo ra tập huấn luyện và tập kiểm tra, đồng thời huấn luyện mạng tích chập, phản ánh chính xác cách thức hoạt động của YOLO.
Một vấn đề thường gặp trong thuật toán dự đoán là khi nó đưa ra nhiều khung giới hạn cho cùng một lớp Để giải quyết tình huống này, cần chọn hộp có xác suất cao nhất cho mỗi lớp Tuy nhiên, nếu có nhiều đối tượng thuộc cùng một lớp xuất hiện trong hình ảnh, chẳng hạn như nhiều con mèo, thì cần áp dụng thuật toán triệt tiêu không tối đa (Non-Maximum Suppression) để xử lý hiệu quả.
Đầu tiên, trong quy trình NMS, cần chọn hộp có xác suất cao nhất Sau đó, hộp này sẽ được so sánh với tất cả các hộp khác trong cùng một lớp bằng cách sử dụng chỉ số giao nhau trên liên kết (Intersection over Union - IoU) Chỉ số này, còn được biết đến với tên gọi chỉ số Jaccard trong lĩnh vực thị giác máy tính, có công thức cụ thể để tính toán.
IoU = Diện tích giao giữa B1 và B2
Diện tích hợp giữa B1 và B2
Khi giá trị IoU vượt quá ngưỡng xác định (ví dụ: 0,5), hộp có xác suất thấp hơn sẽ bị loại bỏ, cho thấy rằng hai hộp có IoU cao có thể đại diện cho cùng một đối tượng Do đó, hộp có xác suất cao hơn sẽ được giữ lại trong khi hộp còn lại sẽ bị loại Quá trình này sẽ tiếp tục cho đến khi tất cả các hộp được xử lý, chỉ giữ lại những hộp có khả năng chứa đối tượng cao nhất.
68 Hình 2.36: Ví dụ thuật toán
THIẾT KẾ HỆ THỐNG
Yêu cầu của hệ thống
Hệ thống cần có khả năng theo dõi và quản lý xe buýt theo thời gian thực, thu thập dữ liệu GPS, ghi nhận số lần quẹt thẻ của hành khách và số lượng người trên xe Thông tin này sẽ được cập nhật lên máy chủ Firebase, giúp người dùng dễ dàng tra cứu và quản lý hành trình cho chuyến đi của mình.
Với mục tiêu đề tài, hệ thống cần đáp ứng các yêu cầu sau:
- Thu thập dữ liệu GPS: Thiết bị slave phải thu thập dữ liệu vị trí từ module GPS
- Thu thập dữ liệu RFID: Thiết bị slave phải ghi nhận số lần quẹt thẻ từ hành khách qua module RFID
- Hiển thị thông tin RFID: Khi hành khách quẹt thẻ, thông tin thẻ phải được hiển thị lên trên LCD
- Thông báo quẹt thẻ thành công: Thiết bị slave phải phát âm thanh thông báo qua loa khi quẹt thẻ thành công
- Đếm số lượng người trên xe: Thiết bị slave được kết nối với camera và máy tính nhúng để đếm số người trên xe
- Truyền dữ liệu qua LoRa: Thiết bị slave phải truyền dữ liệu GPS, RFID tới thiết bị master qua module LoRa
- Nhận dữ liệu từ LoRa: Thiết bị master phải nhận dữ liệu chính xác từ các thiết bị slave quagiao thức LoRa
- Gửi dữ liệu lên Firebase: Thiết bị master phải kết nối với Firebase và cập nhật dữ liệu vị trí GPS và số lần quẹt thẻ lên máy chủ
- Lưu trữ dữ liệu GPS: Firebase phải lưu trữ thông tin vị trí GPS của các xe buýt
- Lưu trữ dữ liệu RFID: Firebase phải lưu trữ thông tin số lần quẹt thẻ RFID
- Lưu trữ thông tin số người: Firebase phải lưu trữ số lượng người trên xe buýt
- Lưu trữ dữ liệu người dùng : Firebase phải lưu trữ các dữ liệu cá nhân, người dùng dùng để đăng kí tài khoản trên trang web hệ thống
- Hiển thị vị trí xe buýt trên bản đồ: Trang web phải hiển thị vị trí của các xe buýt theo thời gian thực trên bản đồ Google Maps
- Hiển thị thông tin RFID: Trang web phải hiển thị thông tin số lần quẹt thẻ từ các xe buýt
- Hiển thị số lượng người trên xe: Trang web phải hiển thị số lượng người trên xe buýt
- Hiển thị tuyến đường : Trang web phải hiển thị tuyến đường xe buýt sẽ đi.
Sơ đồ khối hệ thống
Với đề tài “HỆ THỐNG QUẢN LÝ XE BUÝT THÔNG MINH” sẽ có các chức năng như sau:
Hệ thống bao gồm một Master và hai Slave, trong đó các Slave được lắp đặt trên xe buýt để thu thập dữ liệu từ cảm biến như tín hiệu GPS, thẻ RFID và số lượng hành khách Dữ liệu thu thập được sẽ được gửi về hệ thống trung tâm, từ đó cập nhật lên Firebase, tạo điều kiện cho việc cập nhật thông tin lên Web.
71 Hình 3.1: Sơ đồ khối Master
Hình 3.2: Sơ đồ khối Slave
Khối xử lý: Bộ xử lý chương trình, gửi và nhận dữ liệu trên cơ sở dữ liệu Firebase và điều khiển các khối
Khối truyền dữ liệu sử dụng module Lora để thực hiện việc truyền và nhận thông tin giữa master và slave Đồng thời, khối nguồn đảm bảo cung cấp điện liên tục và ổn định cho toàn bộ mạch.
Khối định vị: Sử dụng module GPS để thu thập dữ liệu vị trí của xe buýt
Khối quét thẻ: Sử dụng module RFID để nhận dữ liệu khi hành khách quẹt thẻ
Khối hiển thị: Sử dụng Lcd I2C để hiển thị thông tin ID và tình trạng hợp lệ của thẻ trên
Slave và hiển thị đèn báo trạng thái hoạt động trên Master
Khối nút nhấn: Sử dụng nút nhấn để reset vi xử lý
Khối âm thanh: Sử dụng module DFPlayer mp3 mini kết hợp Arduino và loa để phát âm thanh thông báo
Khối thông báo sử dụng module buzzer để phát ra âm thanh thông báo mỗi khi quét thẻ Đồng thời, khối đếm số người áp dụng chương trình nhận diện dựa trên mô hình YOLOV5.
Sử dụng Firebase, bạn có thể nhận các gói tin dữ liệu từ ESP32, cho phép hành khách theo dõi thông tin vị trí và tình trạng thẻ RFID qua một trang web.
Thiết kế chi tiết khối
Phân tích lựa chọn linh kiện:
Để đáp ứng nhu cầu hiển thị đa dạng thông tin bao gồm ký tự, số và nhiều hàng dữ liệu, hệ thống cần được trang bị màn hình hiển thị phù hợp Trong thị trường hiện nay có nhiều lựa chọn như LED đơn, LED 7 đoạn và LCD, nhóm nghiên cứu đã quyết định chọn LCD 20x4 tích hợp IC giao tiếp I2C 4 chân LCD 20x4 không chỉ đáp ứng nhu cầu hiển thị nhiều thông tin trên nhiều hàng dữ liệu mà còn tiết kiệm tài nguyên, vì chỉ cần 4 chân kết nối thay vì 11 chân như LCD thông thường.
I/O cho vi điều khiển giúp tối ưu hóa hiệu quả hoạt động của hệ thống Giao tiếp I2C đơn giản và dễ sử dụng, giảm thiểu độ phức tạp trong lập trình và vận hành Để thông báo trạng thái khởi động một cách rõ ràng, việc tích hợp đèn LED đơn màu là lựa chọn tối ưu, phát sáng để thể hiện trạng thái hiện tại, giúp người dùng dễ dàng nhận biết và kiểm tra nhanh chóng khi hệ thống gặp vấn đề.
• Giới thiệu LCD 20x4 tích hợp module chuyển đổi I2C
Màn hình LCD 20x4 là loại màn hình tinh thể lỏng nhỏ, chuyên dùng để hiển thị chữ và số thông qua bảng mã ASCII Mỗi ô trên màn hình được cấu tạo từ các điểm tinh thể lỏng, có khả năng kích hoạt hoặc vô hiệu hóa để tạo ra các ký tự, với mỗi ô chỉ hiển thị một ký tự duy nhất.
Lý do chọn màn hình LCD cho mô hình hệ thống là vì khả năng hiển thị đầy đủ ký tự và chữ cái, giúp người dùng dễ dàng nhận biết thông tin trên màn hình Hơn nữa, tính tiện dụng và kích thước nhỏ gọn của LCD cũng là những ưu điểm nổi bật khi sử dụng.
Màn hình LCD 20x4 là loại hiển thị kỹ thuật số phổ biến, có khả năng hiển thị 20 ký tự trên 4 hàng Với thiết kế này, màn hình cung cấp thông tin rõ ràng và dễ đọc, nên thường được sử dụng trong nhiều ứng dụng điện tử.
Bảng 3.1: Chức năng các chân LCD
Thông số kĩ thuật của LCD 20x4:
- Điện áp: hoạt động mức điện áp 5V.
- Ngõ giao tiếp: Tổng cộng 16 chân
- Có 2 loại màu màn hình phổ biến: màu xanh dương hoặc xanh lá
- Module giúp giao tiếp với vi điều khiển: LCD I2C
Ban đầu, màn hình LCD có tới 16 chân kết nối, nhưng khi lắp Module LCD I2C, số chân kết nối giảm xuống chỉ còn 2 chân tín hiệu SCL và SDA cùng 2 chân nguồn, giúp việc kết nối với ESP trở nên dễ dàng hơn.
Hình 3.4: Hình ảnh IC tích hợp
Bảng 3.2: Sơ đồ kết nối LCD và ESP32
ESP32-DEVKITC-32U(Master) Khối hiển thị
- Nguồn điện sử dụng: từ 2.5 đến 6V DC
- Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2)
- Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780)
- Giao tiếp: chuẩn giao tiếp I2C
- Trang bị chốt Jump : để có thể tắt bật đèn nền LCD dễ dàng
• Dòng tiêu thụ của I2C LCD
Dòng tiêu thụ khi sử dụng : 45mA
Phân tích lựa chọn linh kiện:
Với yêu cầu hệ thống cần sử dụng nút nhấn để tiến hành reset hệ thống khi gặp trục trặc
Nút nhấn là bộ phận thiết yếu trong thiết kế sản phẩm, không chỉ thực hiện chức năng kỹ thuật mà còn ảnh hưởng đến tính an toàn và độ tin cậy của hệ thống Với khả năng chuyển đổi tín hiệu qua một lực nhấn nhẹ, nút nhấn kích thích các chức năng quan trọng như bật/tắt, reset và chuyển đổi trạng thái, từ đó mang lại trải nghiệm người dùng mượt mà và dễ sử dụng.
Bảng 3.3: Thông số kĩ thuật của nút nhấn:
Thông số kĩ thuật Mô tả
Phân loại Nút nhấn DIP
Bảng 3.4 Kết nối chân giữa ESP32-DEVKITC-32U và khối nút nhấn hệ thống NODE
Hệ thống ESP32-DEVKITC-32U Nút nhấn
Bảng 3.5 Kết nối chân của ESP32-DEVKITC-32U với khối nút nhấn
Hệ thống ARDUINO Nút nhấn
3.3.3 Khối truyền nhận dữ liệu
Phân tích lựa chọn linh kiện:
Hệ thống quản lý xe buýt lựa chọn Module Lora Ra-02 nhờ khả năng truyền tín hiệu xa lên đến 5 km, tiêu thụ năng lượng thấp và khả năng xuyên vật cản tốt, đảm bảo dữ liệu truyền ổn định Module này dễ dàng tích hợp với Arduino và ESP32 qua giao thức SPI, có chi phí hợp lý và hỗ trợ mã hóa AES-128 để bảo mật dữ liệu Kỹ thuật điều chế CSS của nó cũng giúp chống nhiễu hiệu quả, đảm bảo tín hiệu ổn định trong môi trường phức tạp.
Giới thiệu module LoRa Ra-02 SX1278:
Hệ thống ứng dụng công nghệ LoRa tiên tiến giúp truyền tải dữ liệu hiệu quả Module LoRa Ra-02 SX1278 nhỏ gọn và chất lượng cao, hoạt động trên nhiều tần số Bộ thu phát SX1287 với bộ khuếch đại dài LoRaTM mang lại nhiều ưu điểm vượt trội.
- Dải phổ siêu dài, cho phép truyền tải dữ liệu xa hơn
- Mức tiêu thụ năng lượng thấp, tiết kiệm pin cho thiết bị
- Phạm vi hoạt động rộng lên đến 5km, đáp ứng nhu cầu truyền tải dữ liệu trong phạm vi lớn
- Khả năng chống nhiễu cao, đảm bảo tín hiệu truyền dẫn ổn định
Sử dụng kỹ thuật điều chế LoRaTM độc quyền của Semtech, SX1287 đạt được độ nhạy cao -148dBm, giúp thu nhận tín hiệu yếu một cách hiệu quả
Hình 3.6: Module LoRa RA – 02 và anten PCB
- Mạch ổn áp RF giữ ổn định tín hiệu RF khi điện áp đầu vào thay đổi Sử dụng giao tiếp SPI half-duplex
- 300kbps là tốc độ bit truyền dữ liệu đạt đến
- Hỗ trợ chế độ MSK, FSK, GMSK, GFSK, OOK Modulation và LoRaTM
- Công suất phát: 20dBm đến 100mW
- Tự động phát hiện được tín hiệu RF, tốc độ siêu cao AFC và chế độ CAD + Với công cụ dữ liệu CRC 256 byte
- Chuẩn không dây: 433MHz - chuẩn phổ biến, dễ dàng tích hợp với các thiết bị khác
- Dải tần số: 420MHz đến 450MHz - cho phép truyền dữ liệu trong phạm vi rộng
- Giao tiếp: SPI / GPIO - hỗ trợ nhiều phương thức kết nối với vi điều khiển
- Độ nhạy: -148 dBm - thu nhận tín hiệu yếu một cách hiệu quả
- Điện áp hoạt động: 1.8V đến 3.7V - thích ứng với nhiều hệ thống
+ Chế độ hoạt động: dưới 10.8mA - tiết kiệm năng lượng
+ Chế độ truyền tải: ≤ 120mA (+ 20dBm) - công suất cao, phạm vi truyền xa
+ Chế độ nhận: ≤ 10.8mA - tiết kiệm năng lượng khi nhận dữ liệu
Bảng 3.6: Sơ đồ kết nối hệ thống và LORA RA02
Hệ thống ESP32-DEVKITC-32U Lora
Hệ thống ESP32-DEVKITC-32U Lora
• Dòng tiêu thụ của Lora :
Dòng tiêu thụ khi sử dụng Lora : 10mA
Để cải thiện khả năng truyền thông tin ở khoảng cách xa và ổn định hơn, nhóm thực hiện đồ án đã sử dụng Antenna Superbat 433Mhz 5dBi SMA với cáp dài 1.5m, phù hợp cho nhiều mô hình cần khoảng cách xa Antenna này được trang bị đầu nối SMA, tương thích với mọi điểm truy cập và các thiết bị có đầu nối SMA Đực.
- Đường kính mặt đáy: 3cm
Hình 3.7: Antenna Superbat 433Mhz 5dBi SMA
Phân tích lựa chọn linh kiện
Hệ thống tích hợp quét thẻ xe giúp khách hàng dễ dàng nhận biết trạng thái quét thẻ Để cải thiện trải nghiệm người dùng, nhóm đã thiết kế thêm còi báo hiệu; khi người dùng đặt thẻ vào vùng quét, hệ thống sẽ phát tiếng bíp để thông báo rằng thẻ đã được đọc thành công.
Còi Buzzer 5VDC nổi bật với tuổi thọ dài và hiệu suất ổn định, đảm bảo chất lượng cao cho người sử dụng Sản phẩm này có thiết kế nhỏ gọn, lý tưởng cho các mạch còi buzzer và mạch báo động nhỏ.
- Nguồn điện sử dụng : 3.5V đến 5.5V
- Dòng điện tiêu thụ: 80 dB
- Tần số cộng hưởng: 2300Hz ± 500Hz
Bảng 3.7: Sơ đồ kết nối ESP32 và Còi
• Dòng tiêu thụ của còi:
Dòng tiêu thụ khi sử dụng còi : 25mA
Phân tích lựa chọn linh kiện
Việc quét thẻ không chỉ hiển thị nội dung cho khách đi xe mà còn thông báo trực tiếp cho tài xế để quản lý hiệu quả Để thực hiện điều này, nhóm sẽ tích hợp module phát âm thanh cho các trường hợp "thẻ hợp lệ" và "thẻ không hợp lệ".
Nhóm sẽ sử dụng module DF Player, một thiết bị phát âm thanh nhỏ gọn hỗ trợ định dạng mp3 lưu trữ trên thẻ nhớ Module này tương thích với FAT16, FAT32 và thẻ TF tối đa 32GB Với tính năng dễ sử dụng và kết nối đơn giản qua giao thức UART, DF Player giúp tiết kiệm chân I/O cho ESP32, tạo điều kiện thuận lợi cho các kết nối chức năng khác.
Giới thiệu module DF Player
Mạch phát nhạc MP3 UART với Amply Mini tích hợp là giải pháp nhỏ gọn cho việc phát lại âm thanh từ thẻ MicroSD Thiết kế của nó cho phép giao tiếp dễ dàng qua UART Với Amply công suất thấp tích hợp sẵn, mạch có thể kết nối trực tiếp với loa dưới 2W, lý tưởng cho các ứng dụng âm thanh cơ bản.
- Giao tiếp thông qua UART hoặc điều khiển trực tiếp qua chân IO
- Điện áp hoạt động từ 3.2V đến 5V DC
- Hỗ trợ các định dạng FAT16, FAT32 và thẻ nhớ TF có dung lượng tối đa 32GB
- Tốc độ lấy mẫu có thể lựa chọn từ 8/11.025/12/16/22.05/24/32/44.1/48 KHz với độ phân giải 24 bit
- Tích hợp IC khuếch đại công suất YX8002A, có công suất tối đa 2W và khả năng kết nối trực tiếp với loa
- Hỗ trợ định dạng âm thanh MP3 và WAV
- Điều chỉnh được 6 mức EQ và 30 mức âm lượng
- Sắp xếp file âm thanh theo thư mục, với tối đa 100 thư mục và mỗi thư mục chứa tối đa 255 bài hát
Bảng 3.8: Sơ đồ kết nối ESP32 và DF Player
• Dòng tiêu thụ DF Player :
Dòng tiêu thụ khi sử dụng : 250mA
Phân tích lựa chọn linh kiện;
Lập trình hệ thống
3.4.1 Lưu đồ giải thuật master
Hình 3.17: Lưu đồ giải thuật master
Khi cắm dây micro USB từ Master vào máy tính, chương trình sẽ kết nối wifi, sau đó khởi tạo kết nối Lora và Firebase, đồng thời thiết lập kết nối Serial để kiểm tra UID thẻ Sau khi hoàn tất thiết lập, chương trình sẽ chờ và sau 10 giây, Master gửi yêu cầu đến Slave để nhận dữ liệu vị trí của xe thứ nhất Đến giây thứ 12, Master tiếp tục yêu cầu tọa độ của xe thứ hai, và vào giây thứ 20, yêu cầu số lượng hành khách của xe buýt thứ nhất, sau đó vào giây thứ 22 là số lượng hành khách của xe thứ hai Quá trình này lặp lại mỗi 30 giây Khi nhận được chuỗi UID thẻ, hệ thống sẽ truyền dữ liệu qua Serial đến máy tính và chờ kiểm tra với tập tin lưu trữ Nếu UID thẻ khớp với mã đã đăng ký, Master sẽ gửi giá trị “hợp lệ” về Slave; nếu không khớp, quá trình truyền nhận cũng diễn ra tương tự với dữ liệu khác.
3.4.2 Lưu đồ giải thuật slave
Hình 3.18: Lưu đồ giải thuật Slave Arduino
102 Hình 3.19: Lưu đồ giải thuật Slave Esp32
Khi cấp nguồn cho hệ thống Arduino, các kết nối với lora, RFID MFRC-522, GPS và Serial được khởi tạo lần lượt với ESP32 Sau khi hoàn tất khởi tạo, chương trình sẽ chạy trong vòng lặp để xử lý các tác vụ yêu cầu Khi nhận tín hiệu từ Master, Arduino sẽ gửi lại dữ liệu như tọa độ và số lượng hành khách theo yêu cầu Khi người dùng quét thẻ lên xe, Arduino đọc UID thẻ qua module RFID MFRC-522 và truyền dữ liệu qua lora về Master để kiểm tra Đồng thời, chuỗi dữ liệu cũng được truyền qua uart đến ESP32 và chờ phản hồi Cuối cùng, slave nhận giá trị kiểm tra từ Master và truyền qua uart để kết thúc quá trình.
Với lưu đồ ESP32, hệ thống khởi động cùng với Arduino khi được cấp nguồn, khởi tạo LCD, DFPlayer Mini và Serial với Raspberry Pi Chương trình trên ESP32 thực hiện hai tác vụ độc lập: tác vụ đầu tiên giao tiếp qua Serial với Raspberry Pi, cập nhật số lượng người mỗi 8 giây và lưu vào biến; tác vụ thứ hai chờ đợi UID từ Arduino để hiển thị trên LCD và phát âm thanh báo hiệu thẻ đã quét thành công Cuối cùng, chương trình kiểm tra giá trị và thông báo kết quả qua màn hình cũng như phát âm thanh để thông báo cho người dùng và tài xế.
3.4.3 Lưu đồ giải thuật chương trình kiểm tra UID thẻ bằng python
Hình 3.20: Lưu đồ giải thuật chương trình kiểm tra UID thẻ bằng python
Khi bắt đầu chương trình, mở file Excel đã lưu trên máy Tiến hành khởi tạo serial với ESP32 và đọc dữ liệu từ Serial liên tục Nếu nhận được dữ liệu UID của thẻ, chương trình sẽ so sánh với các cột thông tin thẻ đã lưu trong file Excel Nếu UID khớp với giá trị đã lưu, ESP32 sẽ gửi trả về kết quả thẻ hợp lệ; ngược lại, ESP32 sẽ thông báo kết quả không hợp lệ về Slave.
3.4.4 Lưu đồ giải thuật đếm số người dùng YOLO trên rasberry pi
Hình 3.21: Lưu đồ giải thuật đếm số người dùng YOLO trên Rasberry Pi
Khi bắt đầu chương trình, cần khởi tạo và tải mô hình YOLOV5, sau đó thiết lập kết nối Serial với Esp32 Sau khi kết nối thành công, mở hai nguồn camera để đọc khung hình từ chúng Tiến hành nhận diện người bằng mô hình YOLOV5 đã được huấn luyện, đếm số người trong khung hình đầu tiên và khung hình thứ hai Cuối cùng, tính tổng số người từ hai khung hình và gửi dữ liệu này qua Serial đến Esp32.
3.4.5 Lưu đồ giải thuật đưa dữ liệu từ máy tính trung tâm lên cơ sở dữ liệu Firebase
Hình 3.22: Lưu đồ giải thuật đưa dữ liệu lên Firebase
Khi khởi động chương trình, trước tiên sẽ cấu hình Firebase và thiết lập kết nối với nó Sau đó, chương trình đọc dữ liệu từ tệp Excel và tải lên cơ sở dữ liệu Firebase Mỗi thẻ UID sẽ được liên kết với số điện thoại của người dùng đã đăng ký, cùng với số lần đi xe tương ứng Người dùng có thể truy cập trang web để theo dõi thông tin thẻ và xem số lần đi xe của mình.
Trang Web gồm có tất cả các chức năng đã trình này
- Trang chủ để tạo hoặc đăng nhập
- Các chức năng lần lượt như hiển thị số hành khách, vị trí của xe, tuyến đường đồng thời các trạm xe trên tuyến
THI CÔNG VÀ KẾT QUẢ THỰC HIỆN
Thi công hệ thống
Nhóm thực hiện đề tài đã thiết kế board mạch trên phần mềm Proteus dựa vào sơ đồ nguyên lý của Master và Slave
Board mạch được thiết kế kích cỡ 42.5mmx93mm
Hình 4.1: Kết quả thiết kế PCB Master
Hình 4.2: Kết quả thiết kế hệ thống Slave Nhóm dùng phần mềm Proteus để tiến hành vẽ mạch
Hình 4.3: Kết quả thi công PCB
Hình 4.4 Thi công mô hình Master
111 Hình 4.5 Thi công mô hình Slave
Kết quả Slave
Hình 4.6: Slave 1 sau khi hoàn thành
Hình 4.7: Slave 2 sau khi hoàn thành
Các cổng kết nối của slave lần lượt từ trái qua phải gồm có:
-Cổng phát âm thanh 3.5mm
Khi cấp nguồn cho thiết bị Slave, màn hình LCD sẽ sáng lên và hiển thị nội dung, thông báo cho người dùng rằng hệ thống đã hoàn tất khởi động và sẵn sàng để sử dụng.
Hình 4.8: Hình ảnh slave khi cấp nguồn
4.2.3 Gửi giá trị tọa độ vị trí về trung tâm
Sau khi Master kết nối thành công với hệ thống trong 10 giây đầu tiên, giá trị tọa độ sẽ được gửi về Master và sau đó được đẩy lên Firebase.
4.2.4 Quét thẻ người đi xe
Khi xe đến trạm, hành khách sẽ lên xe và quét thẻ để ghi nhận số lần đi xe Quá trình quét thẻ hiển thị UID (mã định danh) trên màn hình LCD, kèm theo âm thanh bíp để xác nhận việc quét thành công Hệ thống sẽ chờ một khoảng thời gian để gửi UID về máy chủ (master) và nhận kết quả hiển thị lại trên màn hình LCD.
- Trường hợp thẻ hợp lệ
Hình 4.11: Hình ảnh khi quét thẻ RFID
Màn hình LCD sẽ hiển thị rõ nội dung : “thẻ hợp lệ”, kèm theo đó là loa phát âm thanh:
“Xin chào quý khách” để thông báo cho người dùng và tài xế biết
- Trường hợp thẻ không hợp lệ
Màn hình LCD sẽ hiển thị thông báo “thẻ không hợp lệ” và loa sẽ phát ra âm thanh thông báo: “Thẻ không hợp lệ, vui lòng thử lại” để người dùng và tài xế nắm rõ tình trạng thẻ.
4.2.5 Đếm số lượng người trên xe
Hệ thống được thiết kế với cổng micro USB để kết nối với máy tính nhúng Raspberry Pi trên xe Raspberry Pi sẽ chạy chương trình nhận diện và đếm số người trên xe thông qua hai camera đặt ở khu vực trước và sau Mỗi phút, Master gửi yêu cầu đến Slave, và Slave sẽ trả về số lượng khách trên xe qua giao thức Serial Dữ liệu này sau đó được Master đưa lên Firebase Nhóm cũng sử dụng một đoạn video để hỗ trợ chương trình trong việc đếm số người.
Hình 4.12: Đếm số lượng người trên xe 2
Hình 4.12: Đếm số lượng người trên xe 1
Kết quả master
Hình 4.13: Master khi hoàn thành
4.3.2 Lấy giá trị tọa độ
Khi cấp nguồn, Master kết nối với các Slave và trong 10 giây đầu tiên, Master gửi yêu cầu đến Slave 1, sau đó vào giây thứ 12 gửi yêu cầu đến Slave 2 Các Slave ngay lập tức phản hồi với giá trị tọa độ vị trí của xe Sau khi nhận dữ liệu tọa độ, Master sẽ tải dữ liệu lên Firebase Quá trình này lặp lại mỗi 30 giây.
Hình 4.14: Master gửi giá trị GPS lên Firebase
4.3.3 Lấy số lượng người trên xe
Khi cấp nguồn, Master sẽ kết nối với các Slave Sau 20 giây, Master gửi yêu cầu đến Slave 1 và vào giây thứ 22 thì gửi đến Slave 2 Các Slave ngay lập tức phản hồi số lượng hành khách trên xe Sau khi nhận dữ liệu, Master sẽ cập nhật thông tin lên Firebase Quá trình này lặp lại mỗi 30 giây.
Hình 4.15: Lấy số lượng người trên xe
Khi nhận dữ liệu UID của thẻ, Master sẽ gửi thông tin này đến máy tính trung tâm qua giao thức Serial Tại máy tính trung tâm, quá trình kiểm tra sẽ diễn ra lần lượt cho từng cột dữ liệu.
Dữ liệu lưu trữ trên tệp Excel cho thấy rằng khi kiểm tra, dữ liệu trùng khớp với thông tin được gửi về từ Slave sẽ có giá trị hợp lệ Ngược lại, dữ liệu chưa được lưu trữ khi gửi về từ Slave sẽ nhận được giá trị không hợp lệ.
Sau 8 giây, máy tính sẽ gửi dữ liệu lên Firebase, bao gồm số lần đi xe của tất cả các tài khoản được lưu trong Excel, giúp người dùng dễ dàng truy cập thông tin qua trang web của hệ thống.
Khi nhận dữ liệu từ Slave, hệ thống sẽ hiển thị giá trị kiểm tra trên màn hình và đồng thời ghi lại số lần vào tệp tin Excel.
Hình 4.17: File Excel dùng lưu trữ và kiểm tra dữ liệu
Kết quả Web
Hình 4.19: Trang chủ Web Người dùng tiến hành đăng nhập để sử dụng
Hình 4.20: Màn hình đăng nhập Web
Để đăng nhập, người dùng cần nhập đầy đủ thông tin đã đăng ký trước đó Đối với khách hàng lần đầu, hãy chọn mục đăng ký để tạo tài khoản, giúp thuận tiện cho việc sử dụng sau này.
Hình 4.21: Màn hình đăng kí Web
Sau khi nhập đầy đủ thông tin đăng nhập thành công, giao diện sử dụng của trang Web bao gồm :
- Chọn tuyến xe để hiển thị các thông tính đầy đủ như bản đồ, tuyến đường, số người trên xe
Thêm thẻ người dùng vào website thông qua số điện thoại đăng ký giúp dễ dàng theo dõi số xe và quản lý chi phí hiệu quả.
Hình 4.22: Giao diện sử dụng hệ thống Tại vị trí số :
1 Hiển thị biểu tượng hình đại diện của tài khoản, kèm nút đăng xuất
2 Hiển thị thanh chọn tuyến xe buýt để người dùng có thể chọn tuyến xe cần theo dõi thông tin
3 Nơi người dùng có thể tích hợp thẻ của mình vào để tiện theo dõi số lần đi lại Giả sử khi chọn tuyến xe số 1, giao diện sẽ hiển thị đầy đủ các thông tin như sau
126 Hình 4.23: Các thông tin, chức năng của giao diện
1 Hiển thị lần lượt các trạm xe trên lộ trình xe đi qua
2 Hiển thị thông tin số người trên xe
3 Vị trị xe hiện tại
4 Tuyến đường mà xe sẽ di chuyển.