TỔNG QUAN
ĐẶT VẤN ĐỀ
Theo sự thống kê của Cục Đăng kiểm Việt Nam, tính đến tháng 11/2021, trên cả nước có 4512518 ô tô lưu hành [5] Chúng ta có thể thấy chỉ riêng trong nước, lượng xe ô tô đã khá đáng kể Từ đó, vấn đề thiết kế và quản lý bãi giữ xe đã đưa ra để mà đáp ứng được những nhu cầu thiết yếu cho người dân Để làm được điều đó, chúng ta sẽ cần phải áp dụng các tiến bộ về khoa học kỹ thuật công nghệ trong việc quản lý các bãi xe để mà cho thuận tiện, tối ưu nhất cho cả người sử dụng và người quản lý Ngày nay, các công nghệ như RFID, IoT, nhận diện,… được đưa vào quản lý bãi xe một cách rộng rãi và sự hiệu quả mà chúng đưa lại rất rõ rệt.
Trước đây, giữ xe kiểu cũ là khi một xe vào bãi sẽ có nhân viên ghi lại thông tin lên trên vé phần lớn là biển số xe Đối với việc này, nó rất bất tiện cho người dùng và nhân viên giữ xe vì vé giấy rất dễ rách và ướt Đó là xét về mặt tiện ích còn khi ta xét về yếu tố bảo vệ bầu khí quyển của môi trường thì vé giấy chỉ dùng một lần và khi chúng được vứt thì môi trường sẽ bị ô nhiễm và gây thiệt hại về tài nguyên rừng
Nếu như chúng ta có thể áp dụng các công nghệ mới điển hình như RFID thì sẽ đưa ra sự có ích hơn cho cả khách hàng và nhân viên bãi xe Trước mắt ta thấy được sự nhanh chóng, độ chính xác cao và tính an toàn khi dùng công nghệ RFID Ngoài ra, việc dùng thẻ RFID sẽ
MỤC TIÊU ĐỀ TÀI
Thiết kế mô hình bãi giữ xe có chức năng:
Quản lý khách hàng bằng thẻ RFID.
Xây dựng phần mềm quản lý bãi giữ xe trên máy tính.
Xây dựng ứng dụng đặt chỗ trước trên điện thoại
Android Quản lý số chỗ còn trống trong bãi xe.
Xây dựng bản đồ GPS cho người dùng tìm đường đến bãi giữ xe.
Trong quá trình thực thi đề tài này, nhóm thực hiện ứng dụng và kiểm chứng những gì đã được học được ở trường lớp Bên cạnh đó, khả năng tư duy, giải quyết
1 các vấn đề sẽ được phát huy Bên cạnh đó là cơ hội để góp thêm những kinh nghiệm, kỹ năng cho quá trình phát triển sự nghiệp sau này.
GIỚI HẠN ĐỀ TÀI
Đề tài thiết kế mô hình quản lý bãi giữ xe bằng thẻ RFID và phần mềm trên máy tính, đặt chỗ từ xa qua ứng dụng trên điện thoại Android,đọc/ghi dữ liệu bằng Firebase thông qua mạng Internet.
ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
Kit điều khiển Arduino Mega và Arduino
UNO Cảm biến siêu âm.
Hệ thống đọc thẻ RFID.
Cơ sở dữ liệu thời gian thực trên Firebase.
Android Studio lập trình ứng dụng cho điện thoại Android.
Viết chương trình ứng dụng trên máy tính bằng ngôn ngữ Python Các chuẩn giao tiếp có liên quan.
Nghiên cứu hệ thống đọc thẻ RFID.
Nghiên cứu sử dụng nhiều cảm biến siêu âm cùng lúc để phát hiện vật cản Đọc ghi dữ liệu qua Firebase.
Sử dụng Android Studio để lập trình ứng dụng đặt chỗ từ xa cho điện thoại Android.
Viết ứng dụng để quản lý bãi giữ xe trên máy tính.
BỐ CỤC ĐỀ TÀI
Đề tài được thực hiện với 5 chương:
Chương 1 TỔNG QUAN: Đặt vấn đề, mục tiêu đề tài, giới hạn đề tài, đối tượng và phạm vi nghiên cứu.
CƠ SỞ LÝ THUYẾT
CÔNG NGHỆ RFID
Công nghệ RFID viết tắt là Radio Frequency Identification là một công nghệ có khả năng nhận diện được đối tượng bằng sóng vô tuyến Nó có thể thu thập, đánh dấu và nhận dạng các đối tượng thông qua sóng vô tuyến Một hệ thống RFID sẽ gồm hai phần chính là thẻ và đầu đọc Trong đó, thẻ chứa một mạch tích hợp hay còn gọi là chip RFID cùng với ăng-ten. Đầu đọc sẽ giao tiếp với thẻ bằng sóng vô tuyến [6] 2.1.2 Các dải tần RFID
Hiện tại, thế giới phân công nghệ RFID theo ba nhóm tần số: tần số thấp (LF), cao (HF), siêu cao tần (UHF).
Dải tần Khoảng cách Tốc độ
LF 30 KHz – 300 KHz Từ dưới 10cm Chậm
HF 3 MHz – 30 MHz Khoảng từ 10cm
UHF 300 MHz – 3 GHz Lên đến 12m Nhanh
2.1.3 Nguyên lý hoạt động Đầu đọc sẽ phát ra sóng điện từ với một tần số nhất định Khi đó, nếu thẻ nằm trong vùng hoạt động sẽ tiếp nhận sóng đó Sau đó, thẻ sẽ phát ra một tín hiệu riêng biệt Đầu đọc sẽ có một IC tiếp nhận và giải mã tín hiệu đó và xác định được mã đó là của thẻ nào.
Hình 2.1 Cấu tạo bên trong của thẻ RFID
Hình 2.2 Nguyên lý hoạt động của hệ thống RFID 2.1.4 Ứng dụng
● Quản lý bãi giữ xe.
2.1.5 Lợi ích và hạn chế
Bảng 2.2 Lợi ích và hạn chế của hệ thống RFID [1]
Thu thập dữ liệu một cách nhanh chóng Chi phí cao
Lượng thông tin xử lý trong mỗi lần lớn Có thể đọc xuyên vật cản.
Thẻ bền, đa dạng, dùng được nhiều lần
Dễ bị nhiễu sóng khi gặp kim loại và các tín hiệu điện từ khác.
CHUẨN GIAO TIẾP SPI [2]
Chuẩn SPI (Serial Peripheral Interface) là chuẩn truyền thông nối tiếp tốc độ cao được hãng Motorola phát triển Đây là một chuẩn truyền song công (full duplex) nên quá trình truyền và nhận có thể được diễn ra cùng lúc Chuẩn này truyền dữ liệu theo kiểu “Chủ - tớ” hay còn gọi là Master - Slave Trong đó, một thiết bị sẽ đóng vai trò là chủ quản lý và điều phối quá trình truyền nhận thông tin, một hoặc nhiều thiết bị khác sẽ đóng vai trò là tớ chịu sự điều khiển của thiết bị chủ Việc truyền nhận thông tin trong chuẩn SPI sẽ thông qua 4 đường nên còn gọi là chuẩn truyền “4 dây” hay “4 - wire” Bốn dây đó sẽ là:
Hình 2.3 Chuẩn giao tiếp SPI
● SCK (Serial Clock): Đây là xung giữ nhịp trong quá trình truyền được tạo ra bởi thiết bị chủ Mỗi nhịp trên SCK sẽ báo hiệu 1 bit dữ liệu truyền đến hoặc gửi đi Nhờ có xung giữ nhịp SCK mà quá trình truyền nhận ít bị lỗi và có thể đạt được tốc độ cao.
● MISO (Master Input Slave Output): Trên đường truyền này, tín hiệu sẽ được thiết bị Slave tạo ra và truyền đi, thiết bị Master sẽ tiếp nhận tín hiệu vào.
● MOSI (Master Output Slave Input): Ngược lại với MISO, trên đường truyền MOSI, tín hiệu sẽ được tạo ra và truyền đi bởi thiết bị Master, thiết bị Slave sẽ tiếp nhận tín hiệu.
● SS (Slave Select): Chân này còn có tên gọi khác là CS (Chip Select) Thiết bị Master sẽ thông qua chân này mà quyết định việc có truyền nhận dữ liệu với Slave đó không Khi muốn chọn Slave nào để giao tiếp, Master sẽ cho đường SS tương ứng với Slave đó tích cực mức thấp việc này sẽ tùy thuộc vào người dùng
Hình 2.4 Sơ đồ truyền nhận 1-1 giữa Master và Slave
Hình 2.5 Sơ đồ truyền nhận một Master và nhiều Slave 2.2.2 Nguyên lý hoạt động
Mỗi Master và Slave đều sẽ có một thanh ghi dịch 8 bits Khi Master muốn giao tiếp thông tin với thiết bị Slave nào thì chỉ việc kéo chân SS tương ứng với Slave đó xuống mức thấp Sau khi xác nhận truyền nhận, cứ mỗi xung clock thì Master sẽ gửi 1 bit từ thanh ghi dịch của nó đến thanh ghi dịch của Slave theo đường truyền MOSI Cùng lúc đó, Slave cũng gửi 1 bit từ thanh ghi dịch của nó tới thanh ghi dịch của Master qua đường truyền MISO Quá trình này, diễn ra cùng lúc nên ta gọi là truyền song công Sau 8 chu kỳ xung clock, quá trình truyền nhận 1 byte dữ liệu hoàn tất
Hình 2.6 Cơ chế truyền dữ liệu giữa Master và Slave
CHUẨN GIAO TIẾP UART [3]
UART (Universal Asynchronous Receiver-Transmitter) là bộ truyền nhận nối tiếp không đồng bộ có nghĩa là không có tín hiệu clock để đồng bộ hóa các bit truyền đi và nhận vào Để UART trở thành một giao thức thì phải có hai bộ UART kết nối với nhau Cả hai bên phải có những quy ước với nhau về tốc độ, số bit sẽ truyền nhận trước Hai thiết bị UART sẽ được kết nối với nhau qua 3 đường: TX, RX, GND (GROUND) Chân TX của thiết bị này sẽ kết nối với chân RX của thiết bị còn lại và một điều bắt buộc là chân GND của 2 thiết bị UART phải nối với nhau vì các tín hiệu sẽ truyền theo mức điện áp nên phải nối GND để có thể so sánh mức điện áp
Bảng 2.3 Kết nối 2 bộ UART
2.3.2 Truyền dữ liệu Đầu tiên, bộ UART sẽ nhận dữ liệu có thể từ một vi điều khiển thông qua Bus dữ liệu (Data Bus) ở dạng song song Sau đó, bộ UART sẽ đóng khung dữ liệu và truyền đi thông qua chân TX.
Hình 2.7 Khung dữ liệu truyền
● IDLE: Trạng thái nghỉ khi không có sự truyền nhận trên RX hay
TX Ở trạng thái này, tín hiệu luôn luôn ở mức cao.
● St: Bit bắt đầu (Start bit) luôn luôn ở mức thấp Khi bên truyền muốn báo hiệu cho bên nhận là chuẩn bị truyền dữ liệu, nó sẽ chuyển đổi từ trạng thái nghỉ sang truyền bằng cách kéo tín hiệu xuống mức thấp
● 0-8: Các bit dữ liệu muốn truyền Sau khi kéo tín hiệu xuống mức thấp để báo hiệu truyền dữ liệu, UART sẽ bắt đầu truyền từng bit dữ liệu và nó sẽ truyền từ bit có trọng số thấp (ở đây là bit thứ 0) Một khung dữ liệu truyền sẽ có 5 đến 9 bits nhưng thông thường chỉ sử dụng từ 5-8 bits
● P: Bit kiểm tra Parity có thể chẵn hoặc lẻ và cũng có thể không cần Mục đích của bit Parity này là để kiểm tra dữ liệu truyền đi có lỗi hay không bằng cách kiểm tra số lượng bit 1 trong dữ liệu truyền đi tính cả bit Parity Có 2 loại bit Parity:
○ Bit Parity kiểm tra chẵn: Là bit Parity mà khi thêm vào tổng số bit 1 trở thành số chẵn.
○ Bit Parity kiểm tra lẻ: Là bit Parity mà khi thêm vào tổng số bit 1 trở thành số lẻ.
Ví dụ: Ta có dữ liệu truyền đi là 10001011P Ở đây, dữ liệu truyền đi có 8 bit trong đó có 4 bit 1 Khi P = 0, số bit 1 sẽ là 4 ⇒ P là bit parity chẵn Khi P = 1, số bit 1 sẽ là 5 ⇒ P là bit parity lẻ
● Sp: Stop bit (bit kết thúc) bắt buộc tối thiểu phải có 1 bit Stop Bit này luôn ở mức cao Nó báo hiệu việc truyền dữ liệu đã kết thúc Sau đó, nếu UART muốn tiếp tục truyền thì kéo tín hiệu xuống mức thấp để bắt đầu quá trình truyền mới hoặc có thể giữ ở mức cao để về trạng thái nghỉ
Hình 2.8 UART nhận dữ liệu Khi bên nhận phát hiện tín hiệu để báo hiệu báo hiệu chuẩn bị nhận dữ liệu, nó sẽ chờ nửa chu kỳ bit Tính từ thời điểm nửa chu kỳ bit đó, cứ mỗi 1 chu kỳ bit, bên nhận sẽ đọc dữ liệu của bit Thời điểm đọc dữ liệu bit là giữa chu kỳ của bit vì lúc đó là lúc dữ liệu ổn định nhất nên việc đọc sẽ chính xác hơn Bên nhận cứ đọc như thế cho tới khi phát hiện trạng thái dừng
Sau khi hoàn tất việc nhận dữ liệu bên nhận sẽ loại bỏ bit Start, Stop, Parity Sau đó, nó sẽ chuyển dữ liệu về dạng song song và truyền lại cho Bus dữ liệu
Hình 2.9 Truyền nhận dữ liệu UART
CHUẨN GIAO TIẾP I2C [4]
I2C viết tắt của Inter - Integrated Circuit là một chuẩn giao tiếp nối tiếp đồng bộ bằng xung clock Chuẩn này được dùng để truyền nhận dữ liệu giữa các IC mà chỉ cần 2 dây tín hiệu nên nó còn được gọi là giao thức 2 dây (2-wire)
I2C dùng 2 dây để truyền dữ liệu là:
● SCL (Serial Clock Line): Dây này sẽ dùng để phát xung clock.
● SDA (Serial Data Line): Đây là dây sẽ truyền dữ liệu.
Trong chuẩn này, việc giao tiếp cũng sẽ được thực hiện theo kiểu chủ - tớ (Master - Slave) nhưng khác với chuẩn SPI là sẽ có thể có một hoặc nhiều thiết bị chủ trong quá trình giao tiếp Khi lập thành giao thức I2C thì bất kể là thiết bị chủ hay tớ thì các chân SCL sẽ nối chung với nhau, các chân SDA cũng vậy Tuy vậy, những con Slave không thể giao tiếp trực tiếp với nhau được mà chúng chỉ ở đó đợi lệnh từ Master, lệnh đó có thể là truyền hoặc nhận dữ liệu Bên cạnh đó, mỗi đường dây sẽ có nối với một điện trở kéo lên để giữ mặc định các đường dây ở mức cao tránh trường hợp đường dây vừa bị một thiết bị kéo xuống thấp vừa bị một thiết bị khác kéo lên cao (ngắn mạch)
Hình 2.10 Chuẩn giao tiếp I2C có 1 thiết bị chủ
Hình 2.11 Chuẩn giao tiếp I2C có nhiều hơn 1 thiết bị chủ
● Bắt đầu: Dấu hiệu cho biết bắt đầu truyền dữ liệu.
● Bit địa chỉ: Sẽ có từ 7-10 bit nhưng thông thường chỉ có 7 bit. Những bit địa chỉ này sẽ được gắn cho thiết bị để phân biệt các thiết bị với nhau và những địa chỉ này sẽ là cố định.
● Bit Read/Write: Quyết định xem là Master muốn truyền hay nhận dữ liệu Nếu như Master muốn truyền dữ liệu đi thì bit này sẽ là 0 Nếu Master muốn nhận dữ liệu về thì bit này sẽ là 1.
● Bit ACK/NACK: Phản hồi của Slave về Master Nếu địa Master gửi tới giống với địa chỉ của Slave thì nó sẽ phản hồi bit 0 về Master Ngược lại, Slave sẽ phản hồi bit 1.
● Bit dữ liệu: Sẽ là những thông tin mà thiết bị truyền gửi đến thiết bị nhận Đi theo sau là bit ACK/NACK để xác định là thiết bị nhận đã nhận thành công hay chưa nếu nhận thành công thì đặt là 0 nếu chưa thành công thì đặt là 1.
● Kết thúc: Báo hiệu cho các Slave biết quá trình truyền nhận đã kết thúc 2.4.3 Nguyên lý truyền nhận dữ liệu
● Bước 1: Để bắt đầu việc truyền nhận dữ liệu, Master lần lượt kéo SDA và SCL xuống mức thấp.
● Bước 2: Master gửi đi các bit địa chỉ và bit Read/Write.Nếu Master muốn truyền dữ liệu đi thì đặt bit Read/Write là 0 Nếu Master muốn nhận dữ liệu về thì đặt bit Read/Write là 1 Các Slave sẽ so sánh các bit địa chỉ đó với địa chỉ của mình Nếu địa chỉ trùng khớp, Slave sẽ kéo SDA xuống mức thấp và đặt bit ACK/NACK là 0 Mặc định SDA ở mức cao và bit ACK/NACK đặt là 1
● Bước 3: Truyền nhận các bit dữ liệu Nếu truyền nhận thành công thì bit ACK/NACK sẽ được đặt là 0 Nếu chưa thành công bit này sẽ được đặt là 1.
● Bước 4: Sau khi hoàn tất quá trình truyền nhận, Master sẽ phát tín hiệu kết thúc bằng cách lần lược đưa SCL và SDA lên mức cao.
PYQT5 VÀ QT DESIGNER [7]
PyQt5 là một trong những phiên bản của PyQt - thư viện Python hỗ trợ tạo các ứng dụng giao diện đồ họa người dùng (Graphical User Interface) PyQt là phần mềm miễn phí được tạo bởi Riverbank Computing và được phát triển vào năm 1999 PyQt5 được phát hành vào năm 2016 và cập nhật lần cuối vào tháng 10 năm 2021
Các lớp (class) được chia thành nhiều module như: QtCore, QtGui, QtWidgets, QtBluetooth, QtNetwork, mỗi sẽ có những chức năng khác nhau tùy thuộc vào những công việc mà con người muốn xử lý Ví dụ: QtWidgets sẽ chứa các lớp hỗ trợ cho các phần như nút nhấn, các nhãn, các hộp thoại, là những thứ cơ bản để tạo nên giao diện người dùng.
Cách cài đặt thư viện PyQt5: Vào Command Prompt và gõ dòng lệnh: pip install pyqt5 Nếu không thành công có thể đổi thành lệnh: pip3 install pyqt5
Hình 2.13 Cài PyQt5 thành công 2.5.2 QT DESIGNER
Qt Designer là một công cụ giúp xây dựng giao diện đồ họa người dùng một cách nhanh chóng Nó sử dụng phương thức kéo thả gần gũi với người dùng Người dùng có thể dễ dàng bố trí các thành phần như các nút nhấn, các nhãn, hộp văn bản,
Hình 2.14 Giao diện làm việc của Qt Designer 2.6 Android Studio [8]
Hình 2.15 Logo của Android Studio Android Studio là môi trường phát triển tích hợp (Integrated Development Environment) chính thức được sử dụng trong phát triển ứng dụng Android Nó có chức năng hỗ trợ người dùng tạo ra các ứng dụng cho điện thoại Android Hiện tại, có hai ngôn ngữ dùng để lập trình ứng dụng trên Android Studio là Java và Kotlin nhưng Java phổ biến hơn.
Khi lập trình ứng dụng Android bằng Android Studio, ta sẽ làm 2 việc:
● Thiết kế giao diện: Ta sẽ tạo ra giao diện ngoài màn hình bao gồm các nhãn, nút nhấn, hình ảnh,… Những đối tượng thể hiện một chức năng hoặc không chức năng nào Các giao diện này sẽ được lưu ở các file xml
Hình 2.16 Một file thiết kế giao diện
● Lập trình chức năng: Ta sẽ dựa vào phần thiết kế giao diện và yêu cầu đặt ra để viết ra các chức năng cho một trang Các file chức năng sẽ được lưu trong các file java
Hình 2.17 Một file lập trình chức năng 2.7 Cơ sở dữ liệu thời gian thực trên Firebase [9]
Firebase ra mắt đầu tiên vào tháng 4 năm 2012 Nó cung cấp cho người dùng các cơ sở dữ liệu dựa trên nền tảng đám mây Nó giúp người dùng lập trình ứng dụng, web, di động sử dụng cơ sở dữ liệu một cách đơn giản
Cơ sở dữ liệu thời gian thực (Realtime Database) là sản phẩm đầu tiên của Firebase Nó cho phép người dùng lưu trữ và đồng bộ dữ liệu Trong đó, dữ liệu sẽ được sắp xếp dưới dạng cây Trên cây sẽ tạo ra các nút và có thể tạo vô hạn các nút Một nút có có thể sẽ có các nút con bên dưới nếu mà nút đó chưa được gán giá trị
Hình 2.19 Cơ sở dữ liệu thời gian thực trên Firebase
Cơ sở dữ liệu thời gian thực trên Firebase [9]
“Mô hình quản lí bãi giữ xe” được thiết kế bao gồm phần cứng và phần mềm
Mỗi phần sẽ có các yêu cầu riêng như sau:
Phần cứng có khả năng xử lý dữ liệu từ cảm biến khoảng cách, đọc thẻ RFID và kết hợp camera để chụp lại biển số xe, hiển thị số chỗ còn trống trong bãi giữ xe trên LCD, truyền nhận dữ liệu với nhau và cập nhật dữ liệu lên phần mềm máy tính qua cáp USB (mã thẻ, trạng thái bãi đỗ xe), điều khiển động cơ mở và đóng thanh chắn barrier. 3.1.1 Phần mềm
Nhóm tiến hành thực thi vẽ lưu đồ giải thuật và lập trình cho từng thiết bị Sau khi viết chương trình chạy riêng cho từng thiết bị chạy ổn định, nhóm tiến hành kết hợp để viết và chỉnh sửa chương trình chung cho cả hệ thống Đảm bảo giải thuật cho hệ thống là tối ưu nhất Về phần ứng dụng được chia ra hai phần là ứng dụng quản lý hệ thống xe trên máy tính và và ứng dụng xe đặt chỗ trước bằng ứng dụng trên Android có các chức năng như sau:
● Ứng dụng trên máy tính: o Đăng nhập cho nhà quản lý. o Hiển thị hình ảnh trích xuất từ camera được đặt ở cổng vào và cổng ra. o Hiển thị thông tin xe ra và vào, ngày và giờ, hiển thị cả trạng thái bãi xe còn hoặc không còn chỗ. o Lưu trữ và hiển thị lại hình ảnh đã chụp. o Quản lý thẻ gồm thêm thẻ, xóa thẻ. o Xem doanh thu trong một ngày.
● Ứng dụng trên điện thoại Android: o Đăng ký tài khoản mới. o Đăng nhập thành viên. o Thấy được trạng thái của các vị trí trong bãi.
THIẾT KẾ HỆ THỐNG
GIỚI THIỆU
“Mô hình quản lí bãi giữ xe” được thiết kế bao gồm phần cứng và phần mềm
Mỗi phần sẽ có các yêu cầu riêng như sau:
Phần cứng có khả năng xử lý dữ liệu từ cảm biến khoảng cách, đọc thẻ RFID và kết hợp camera để chụp lại biển số xe, hiển thị số chỗ còn trống trong bãi giữ xe trên LCD, truyền nhận dữ liệu với nhau và cập nhật dữ liệu lên phần mềm máy tính qua cáp USB (mã thẻ, trạng thái bãi đỗ xe), điều khiển động cơ mở và đóng thanh chắn barrier. 3.1.1 Phần mềm
Nhóm tiến hành thực thi vẽ lưu đồ giải thuật và lập trình cho từng thiết bị Sau khi viết chương trình chạy riêng cho từng thiết bị chạy ổn định, nhóm tiến hành kết hợp để viết và chỉnh sửa chương trình chung cho cả hệ thống Đảm bảo giải thuật cho hệ thống là tối ưu nhất Về phần ứng dụng được chia ra hai phần là ứng dụng quản lý hệ thống xe trên máy tính và và ứng dụng xe đặt chỗ trước bằng ứng dụng trên Android có các chức năng như sau:
● Ứng dụng trên máy tính: o Đăng nhập cho nhà quản lý. o Hiển thị hình ảnh trích xuất từ camera được đặt ở cổng vào và cổng ra. o Hiển thị thông tin xe ra và vào, ngày và giờ, hiển thị cả trạng thái bãi xe còn hoặc không còn chỗ. o Lưu trữ và hiển thị lại hình ảnh đã chụp. o Quản lý thẻ gồm thêm thẻ, xóa thẻ. o Xem doanh thu trong một ngày.
● Ứng dụng trên điện thoại Android: o Đăng ký tài khoản mới. o Đăng nhập thành viên. o Thấy được trạng thái của các vị trí trong bãi.
17 o Đặt chỗ trước từ xa. o Nạp tiền vào tài khoản. o Hỗ trợ tìm đường tới bãi.
SƠ ĐỒ KHỐI VÀ CHỨC NĂNG TỪNG KHỐI
Hình 3.1 Sơ đồ khối toàn hệ thống
Chức năng của từng khối trong Block:
Khối cảm biển: Đọc giá trị khi có vật cản ở khoảng cách cho phép và đọc giá trị quang trở.
Khối hiển thị: Hiển thị số chỗ còn trống trong bãi giữ xe.
Khối RFID: Đọc mã thẻ RFID bên vào và bên ra.
Khối PC: Đọc và xử lý dữ liệu được gửi đến từ khối xử lý trung tâm và xử lý chuỗi dữ liệu khi có dữ liệu hoặc thông tin có trên firebase Hiển thị hình ảnh từ camera, chụp lại hình ảnh khi có xe vào và ra Khối xử lý trung tâm: Có chức năng là nhận và xử lý chuỗi dữ liệu được gửi đến từ ứng dụng của máy tính, điều khiển động cơ, đọc mã thẻ RFID, đọc giá trị từ các cảm biến siêu âm được gửi về để xử lý
Firebase: Lưu trữ dữ liệu, thông tin và phản hồi, giao tiếp với khối xử lý trung tâm.
Khối đèn: Để hiển thị màu đỏ khi có xe đậu và hiển thị màu xanh khi chỗ đậu không có xe.
Khối nút nhấn: Để điều khiển động cơ khi không còn giao tiếp với khối xử lý trung tâm.
Khối nguồn: Tạo ra nguồn điện cung cấp cho toàn hệ thống của block hoạt động.
NGUYÊN LÝ HOẠT ĐỘNG CỦA HỆ THỐNG
Hệ thống sẽ thực thi và xử lý tuần tự đúng như ban đầu mà nhóm đã thiết kế và viết chương trình từ khi cấp nguồn cho đến khi kết thúc:
Khối xử lý trung tâm cùng với các thiết bị khác như RFID, động cơ, cảm biển khoảng cách, cảm biến quang trở, đèn, LCD, Lazer, sẽ khởi động Đồng thời ứng dụng máy tính được bật, tiến hành nhập thông tin đăng nhập và cấu hình cần thiết sau đó ứng dụng máy tính sẽ kết nối với phần cứng đề truyền nhận dữ liệu
Khối xử lý trung tâm sẽ tiếp nhận dữ liệu từ cảm biến khoảng cách để hiển thị thông tin trạng thái còn bao nhiêu chỗ trong bãi xe trên màn hình LCD Đồng thời cũng sẽ tiếp nhận dữ liệu từ ứng dụng máy tính để cập nhật
19 thêm chỗ đặt trước từ ứng dụng điện thoại Khi có quẹt thẻ xảy ra, khối xử lý trung tâm sẽ gửi dữ liệu tới ứng dụng máy tính để kiểm tra, camera sẽ chụp ảnh và gửi lệnh điều khiển về để điều khiển động cơ đóng hoặc mở.
THIẾT KẾ HỆ THỐNG PHẦN CỨNG
Hiện nay trên thị trường sản xuất rất nhiều linh kiện có thể kể đến gồm có rất nhiều loại cảm biến khoảng cách với khả năng đo được khoảng cách xa lên đến hàng ngàn mét và chúng được sử dụng rộng rãi ở công nghiệp, kho bãi, được phân loại thành các nhóm ở trong thị trường hiện nay được kể đến như là: o Cảm biến khoảng cách bằng tia laser. o Cảm biến khoảng cách bằng sóng âm. o Cảm biến tiệm cận đo khoảng cách.
Vì lý do đề tài của nhóm thực hiện chỉ đo khoảng cách phát hiện vị trí xe đỗ vào trong bãi với tầm khoảng cách ngắn, độ chính xác cao, thời gian đáp ứng nhanh, giá thành rẻ, dễ lắp đặt Nên nhóm thực hiện đã quyết định lựa chọn module cảm biến siêu âm hc-sr04 cho đề tài này.
Module cảm biến siêu âm hc-sr04 được dùng khá rộng rãi trong môi trường công nghiệp cũng như cho nghiên cứu và phát triển sản phẩm. Module hc-sr04 là thiết bị cảm biến có giá thành rẻ, độ ổn định và chính xác khá cao Nó đo khoảng cách bằng cách dùng phản xạ sóng siêu âm với phạm vi dao động từ 2 đến 400 cm Module này chỉ sử dụng có 2 chân để đo khoảng cách: chân TRIG là chân phát tín hiệu, ECHO là chân nhận tín hiệu phản hồi về và hai chân còn lại là VCC (5V), GND là chân nối đất. Hc-sr04 cũng như các module sử dụng sóng siêu âm để phát hiện vật cản khác đều sử dụng chung một nguyên lý phản xạ sóng siêu âm Cảm biến có 2 thành phần là phát sóng siêu âm và thu sóng siêu âm phản xạ về
Nguyên tắc hoạt động của nó như sau: hc-sr04 sử dụng chân TRIG là chân phát tín hiệu truyền đi trong khoảng 10us ở mức cao Khi đó hc-sr04 sẽ tự động phát ra một sóng siêu âm với tần số là 40kHz và kiểm tra xem liệu có tín hiệu trả về hay không Nếu có sóng phản hồi về sẽ tác động lên chân nhận sóng Chỉ cần đo khoảng thời gian từ lúc phát sóng và cho đến lúc sóng phản hồi về, ta có biết được từ cảm biến đến vật xa bao nhiêu Công thức tính là:
Khoảng cách = (thời gian * vận tốc âm thanh (340 m/s)) / 2 (3.1)
Thông số kỹ thuật của cảm biến: o Mức điện áp có thể hoạt động: 5VDC o Mức dòng điện có thể hoạt động: < 15mA o Mức tín hiệu cao: 5V o Mức tín hiệu thấp: 0V o Góc quét được tối đa của cảm biến: 15º o Độ chính xác: ~3mm
Mô tả kết nối: Trong mô hình của nhóm thực hiện, nhóm kết nối các cảm biến với vi điều khiển Arduino Uno R3 thông qua các chân GPIO, lần lượt các chân ECHO và TRIG được nối với các chân như sau: PD3, PD5, PD6, PD7, PB0, PB1, PB2, PB3 Các chân VCC của các cảm biến được nối chung vào nguồn 5V, còn lại là chân GND được nối chung với vi điều khiển
Hình 3.2 Sơ đồ mạch kết nối cảm biến siêu âm với khối xử lý trung tâm
3.2.2 Khối cảm biến cho RFID
Trên thị trường và công nghiệp hiện nay có rất nhiều module sử dụng rộng rãi với nhiều loại IC đa dạng như: RC522, PN532, EM-18 RC522 là IC được ưa chuộng và dùng rất thông dụng và phổ biến, đáp ứng với nhiều nhu cầu khác nhau không chỉ của sinh viên nghiên cứu công nghệ RFID mà còn cho các công nghiệp, phát triển sản phẩm với giá thành phù hợp, độ chính xác cao Đầu đọc thẻ RFID RC522 sử dụng IC MFRC522 của NXP dùng đề giao tiếp với thẻ NFC hoạt động, hoạt động với dãi tần số 13,56MHz Sử dụng mức điện áp
21 được cung cấp là 3,3V Module RFID RC522 hỗ trợ rất nhiều chuẩn giao tiếp được kể đến như: I2C, SPI và UART Nhóm thực hiện đã chọn chuẩn SPI là chuẩn giao tiếp được đánh giá là tốc độ truyền dẫn cao, giá thành rẻ, dễ thiết kế được tích hợp để thi công vào mô hình.
Hình 3.3 Sơ đồ mạch kết nối của module đọc thẻ RFID với khối xử lý trung tâm Mô tả kết nối chân: Trong mô hình của nhóm thực hiện, vi điều khiển Arduino
Mega 2560 có các chân dành riêng để hỗ trợ cho việc giao tiếp với chuẩn SPI nên khối RFID được kết nối với vi điều khiển thông qua các chân, vì mô hình nhóm thực hiện đã sử dụng hai module RFID nên các chân kết nối sẽ như sau: MOSI (PB2), MISO (PB3), SCK (PB1), SDA cho Module RFID thứ nhất (PB4), RST (PH6), IRQ (không dùng).
Có nhiều loại thiết bị để hỗ trợ việc hiển thị như: màn hình LCD 16x2, Oled, TFT, GLCD, … Tuy nhiên, với khối lượng thông tin cần hiển thị, nhóm thực hiện đã quyết định chọn màn hình LCD 20x4 Bên cạnh đó, màn hình LCD 20x4 có số chân kết nói ít bằng cách sử dụng giao tiếp nối tiếp I2C bởi nó giúp hạn chế được số lượng đi dây, giúp thiết kế phần cứng trở nên dễ dàng và gọn gàng với chỉ sử dụng 2 chân của vi điều khiển là SCL và SDA Kết nối lần lượt trực tiếp với 2 chân PD0 và PD1 của vi diều khiển Arduino Mega 2560, nhờ vào các chân này đã được tích hợp sẵn chuẩn giao tiếp I2C để hỗ trợ trong việc giao tiếp với LCD 20x4.
Hình 3.4 Sơ đồ mạch kết nối khối hiển thị với khối xử lý trung tâm
3.2.4 Khối xử lý trung tâm
Hiện nay có rất hiều loại mạch nhúng phục vụ cho nhu cầu học tập, nghiên cứu, phát triển sản phẩn của sinh viên, học sinh nói chung và cho những doanh nghiệp, xây dựng sản phẩm nói chung như: ARM, Raspberry Pi, Altera, Arduino, Intel Galileo, … Nhóm thực hiện đã chọn board Arduino Mega 2560 và Arduino Uno R3 làm thiết bị xử lý trung tâm vì loại này có sẵn và thịnh hành trên thị trường, phù hợp với thiết kế của hệ thống ban đầu mà nhóm đã đặt ra
Hình 3.5 Sơ đồ khối xử lý trung tâm Khối xử lí trung tâm gồm hai vi điều khiển được lập trình để: Giao tiếp với RFID để nhận thông tin từ thẻ.
Nhận thông tin đặt chỗ từ Android qua PC thông qua giao tiếp UART Điều khiển các động cơ đóng mở barrier khi có xe ra/vào Nhận thông tin từ khối cảm biến để cập nhật dữ liệu và vị trí có xe đã đỗ trong bãi.
Hiển thị trạng thái bãi đỗ xe lên LCD.
Trong khi nhóm thực hiện đề tài này đã sử dụng vi điều khiển Arduino Uno R3 và Arduino Mega 2560 thuận tiện cho việc lập trình và tiết kiệm thời gian, giá thành rẻ, sử dụng phổ biến, đặc biệt hỗ trợ nhiều chân UART để truyền nhận nhiều dữ liệu cùng lúc, có số lượng chân kết nối ngoại vi nhiều, tần số xung clock lớn và còn được hỗ trợ cực kì rộng lớn cho nhiều ứng dụng Arduino được phát triển và lập trình dựa trên ngôn ngữ Java mang lại khả năng xử lý chuỗi mạnh mẽ, tạo nên sự thuận lợi cho yêu cầu của hệ thống Vì khi giao tiếp với PC, sẽ dường như làm việc với chuỗi để xử lý đến >90% trong chương trình
THIẾT KẾ PHẦN MỀM
3.3.1 Ý tưởng xây dựng phần mềm quản lý trên máy tính Để quản lý, nắm rõ thông tin số lượng xe ra và vào cũng như thông tin chủ sở hữu xe có trong bãi xe, Từ đó, xây dựng phần mềm để quản lý trên máy tính là cần thiết Phần trên máy tính sẽ có các chức năng như sau:
Giám sát thời gian ra vào của xe bằng thẻ RFID.
27 Ứng dụng có phân quyền admin Mỗi admin sẽ có tài khoản cùng với mật khẩu riêng để đăng nhập Admin sẽ có quyền xem, thêm cũng như chỉnh sửa, quản lý dữ liệu của toàn hệ thống.
Có lưu lại lịch sử thời gian như ngày, giờ ra và vào bãi giữ xe của từng cá nhân.
Quản lý danh sách người dùng bao gồm ID, tên chủ sở hữu xe, vị trí, biển số xe, thời gian ra và vào của từng người.
Có chức năng lưu lại ảnh vào và ra của từng xe hiện có ở trong bãi. Quản lý thẻ như có thể thêm, tìm kiếm, xóa thẻ trong dữ liệu Có khả năng phát hiện thẻ khác không có trong dữ liệu khi quẹt thẻ.
Có chức năng cập nhật dữ liệu cho các trường hợp đặt chỗ trước trên ứng dụng Android.
3.3.2 Ý tưởng thiết kế ứng dụng trên điện thoại Android
Ngoài việc đáp ứng bãi đỗ, nhóm mong muốn giúp các khách hàng có thể dễ dàng dùng hơn khi sử dụng Từ đó, nhóm đã thiết kế ứng dụng Android giúp mọi người có thể đăng ký đặt chỗ trước Ứng dụng sẽ có các tính năng như sau:
● Đăng ký được tài khoản.
● Xem được sơ đồ bãi xe Hiện trạng các vị trí đã sử dụng hay còn trống
● Đặt chỗ trước bằng điện thoại.
● Nạp tiền vào tài khoản.
● Chỉ đường đến bãi xe thông qua việc liên kết với Google Maps.
3.3.3 Thiết kế cơ sở dữ liệu Để lưu trữ các hình ảnh cũng như dữ liệu thông tin từ xe ra và vào ta cần một cơ sở dữ liệu (CSDL) Đó chính là thứ quan trọng nhất mà một ứng dụng có thể lưu trữ và xử lý dữ liệu để tạo nên sự tương tác với người dùng
Vì thế nhóm thực hiện đã đưa MySQLite3 ra để làm cơ sở dữ liệu
MySQLite3 được so sánh như là bộ não hay trái tim của một con người, là trung tâm sự sống của một cá thể, nếu hai bộ phận này bị tổn thương thì mọi hoạt động của cơ thể đó sẽ bị tác động rất nghiêm trọng MySQLite3 cũng vậy, nó chính là nơi lưu trữ, quản lý toàn bộ dữ liệu của một ứng dụng Nếu ta tạo một ứng dụng mà không có hệ quản trị cơ sở dữ liệu, chính xác ở đây là MySQLite3, thì ứng dụng của ta sẽ không có bất cứ sự tương tác nào với người sử dụng Chính vì thế mà việc kết hợp giữa việc lập trình ứng dụng python với cơ sở dữ liệu MySQLite3 là vô cùng cần thiết.
Ngoài ra còn có Firebase giúp kết nối dữ liệu giữa người đặt chỗ trước đến với hệ thống quản lý bãi giữ xe.
LƯU ĐỒ THUẬT TOÁN
3.4.1 Lưu đồ thuật toán khối xử lý trung tâm
Hình 3.10 Lưu đồ giải thuật của khối xử lý trung tâm
Chương trình của khối xử lý trung tâm từ khi bắt đầu vào sẽ khởi động vi điều khiển và các module như đọc thẻ RFID, các cảm biến, màn hình LCD 20x4, động cơ, Chương trình sẽ dừng nếu chưa kết nối và đợi đến khi nào có kết nối Vòng lặp trong chương trình sẽ được thực hiện Nếu bộ xử lý trung tâm đã khởi tạo xong sẽ tiến hành kiểm tra giá trị từ cảm biến và cập nhật trạng thái led
Sau đó sẽ kiểm tra đầu đọc thẻ RFID nếu có quẹt thẻ thì sẽ gửi UID của thẻ tới ứng dụng máy tính để xử lý dữ liệu từ thẻ.
Nếu không có quẹt thẻ sẽ chương trình sẽ kiểm tra có dữ liệu được gửi về Nếu là số sẽ cập nhật trạng thái led, còn lại sẽ điều khiển động cơ đóng mở thanh barrier Nếu không có dữ liệu nào được trả về, chương trình sẽ kiểm tra tiếp quang trở để kiểm tra xem xe đã thực sự vào và ra trong bãi Khi đó barrier sẽ đóng lại
Sau đó chương trình sẽ hiển thị trạng thái thông tin chỗ của bãi đậu xe 3.4.2 Lưu đồ giải thuật của quét thẻ RFID
Hình 3.11 Lưu đồ giải thuật quét thẻ RFID
Chương trình sẽ kiểm tra quá trình quẹt thẻ nếu có và yêu cầu việc quét thẻ RFID, chuyển đổi mã thẻ thành chuỗi sau đó gửi qua ứng dụng trên máy tính
3.4.3 Lưu đồ giải thuật của điều khiển động cơ
Khởi tạo giá trị ban đầu
Kiểm tra có nhấn nhận về là mở nút ở cổng vào cổng vào Đúng
Chuỗi dữ liệu Sai Kiểm tra xe đã Sai Chuỗi dữ liệu Sai Kiểm tra có Sai Kiểm tra xe đã nhận về là đóng vào trong nhận về là đóng nhấn nút ở cổng ra ngoài cổng vào cổng ra ra
Sai Đúng Đúng Đúng Đúng Đúng Đóng Barrier ở Mở Barrier ở Đóng Barier ở cổng vào cổng ra cổng ra
Hình 3.12 Lưu đồ giải thuật điều khiển động cơ
Quy trình điều khiển động cơ được thực hiện theo lưu đồ hình 3.10 như sau:
Sau khi khởi tạo thư viện và port cho động cơ. Động cơ sẽ mở cho thanh barrier ở cổng vào ở các trường hợp như đợi lệnh gửi về từ ứng dụng máy tính hoặc nếu khi nút nhấn được nhấn. Động cơ sẽ đóng thanh barrier ở cổng vào ở các trường hợp như đợi lệnh gửi về từ ứng dụng máy tính hoặc khi xe đã vào trong bãi đỗ xe. Động cơ sẽ mở cho thanh barrier ở cổng ra ở các trường hợp như đợi lệnh gửi về từ ứng dụng máy tính hoặc nếu khi nút nhấn được nhấn. Động cơ sẽ đóng thanh barrier ở cổng ra ở trường hợp như nếu xe đã ra khỏi bãi đỗ xe.
LƯU ĐỒ HOẠT ĐỘNG CỦA HỆ THỐNG ỨNG DỤNG TRÊN MÁY TÍNH 33
3.5.1 Lưu đồ giao diện đăng nhập
Khởi tạo giao diện form đăng nhập
Nhập tài khoản, mật khẩu
Kiểm tra tài khoản và mật khẩu
Sai Đúng Đăng nhập thành công
Hình 3.13 Lưu đồ giao diện đăng nhập Đầu tiên khởi động phần mềm sẽ là nơi đăng nhập Người dùng được yêu cầu nhập tài khoản và mật khẩu Sau đó nhấn nút đăng nhập để kết nối tới cơ sở dữ liệu
33 để đối chiếu với tài khoản và mật khẩu hiện có trong cơ sở dữ liệu có trùng khớp với thông tin mà người dùng đã nhập Nếu không trùng hợp sẽ bắt nhập lại thông tin tài khoản và mật khẩu cho đến khi nào đăng nhập thành công
3.5.2 Lưu đồ giao diện đăng ký
Khởi tạo giao diện form đăng ký
Nhập thông tin vào form đăng ký
Kiểm tra tài Đúng khoản tồn tại
Sai Đăng ký thành công
Hình 3.14 Lưu đồ giao diện đăng ký
Khi khởi tạo giao diện đăng ký, người dùng nhập thông tin như tài khoản, mật khẩu và mật khẩu được nhập lại một lần nữa.
Sau khi nhập hết thông tin và nhấn nút có chữ “đăng ký” Chương trình sẽ tự động kết nối đến cơ sở dữ liệu để đối chiếu xem tài khoản đã nhập đã có trong cơ sở dữ liệu không Nếu không có thì sẽ kiểm tra đến mật khẩu liệu có trùng khớp với mật khẩu nhập lại hay không nếu cả hai đều trùng khớp sẽ chuyển thông tin vào trong cơ sở dữ liệu.
Nếu như người dùng nhập tài khoản đã tồn tại trong cơ sở dữ liệu hay mật khẩu không đúng sẽ báo lỗi và cần nhập lại cho đến khi nào tạo tài khoản mới thành công.
3.5.3 Lưu đồ giao diện cấu hình
Khởi tạo giao diện form cấu hình
Nhập thông tin cần thiết để hệ thống hoạt động
Chọn thư mục lưu ảnh
Kiểm tra thông Sai tin cấu hình Đúng
Hình 3.15 Lưu đồ giao diện cấu hình Khi khởi tạo được giao diện cấu hình Người dùng nhập thông tin cấu hình cần thiết để hệ thống hoạt động và lựa chọn thư mục để chứa ảnh
Sau khi nhập thông tin cấu hình cần thiết thì tiến hành nhấn nút xác nhận. Chương trình sẽ kiểm tra thông tin đã điền đầy đủ Nếu điền không đầy đủ sẽ quay lại nhập lại hết thông tin mà còn thiếu.
Sau khi nhập hết thông tin đầy đủ để cấu hình cho hệ thống hoạt động sẽ chuyển đến giao diện chính.
3.5.4 Lưu đồ giải thuật của giao diện chính
Khởi tạo giao diện chính Khởi tạo các biến Khởi tạo kết nối cổng port Kết nối camera Khởi tạo kết nối firebase Cập nhật dữ liệu từ cơ sở dữ liệu
Dữ liệu được Sai Dữ liệu được Đúng Nhận và tách
Dữ liệu là RFID Đúng RFID ở cổng ra
Sai RFID ở cổng Sai gửi từ firebase gửi đến port chuỗi vào
Sai vào cơ sở dữ
Sai Kiểm tra thẻ liệu
Dữ liệu là vị trí có trong cơ sở có trong cơ sở bãi đỗ xe dữ liệu dữ liệu Đúng Đúng Đúng
Cập nhật vị trí Đúng
Lưu thông tin còn hoặc Gửi dữ liệu tới
Thẻ đặt trước thẻ vào cơ sở trống trong firebase dữ liệu bãi xe
Cập nhật Hiển thị hình ngày, giờ ra ảnh cổng vào trong cơ sở dữ liệu
Hiển thị hình ảnh cổng ra
Hình 3.16 Lưu đồ giao diện chính
KẾT QUẢ VÀ ĐÁNH GIÁ
KẾT QUẢ PHẦN CỨNG
Hình 4.1: Mô hình hệ thống sau khi được cấp nguồn
Trong hình 4.1 đã hiển hiển thị mô hình hệ thống khi được cấp nguồn, trên màn hình LCD sẽ hiển thị thông tin “Xin chao qui khach, So cho con: 4”
Hình 4.2: Mô hình tổng thể của hệ thống nhìn từ trên cao
Trong hình 4.2 đã thể hiện mô hình tổng quan của hệ thống gồm bên cổng ra, cổng vào, vị trí đỗ xe ở trong bãi xe Bên cạnh đó là đèn ở trên mỗi vị trí đỗ xe
Hình 4.3: Bên tay phải mô hình của hệ thống Trong hình 4.3 đã thể hiện là thanh barrier ở cổng vào Thanh barrier sẽ mở theo 2 cách là chờ phản hồi từ ứng dụng trên máy tính hoặc nút nhấn được nhấn Khi xe đã qua khỏi thanh barrier để tiến vào trong bãi xe, thanh barrier sẽ lập tức đóng lại Ngoài ra còn hiển thị hai cảm biến vật cản ở mỗi vị trí đỗ xe ở bên tay trái mô hình của hệ thống bãi giữ xe khi xe đỗ vào 2 vị trí đèn trên đầu mỗi vị trí tương ứng sẽ hiện màu đỏ.
Hình 4.4: Bên tay trái của mô hình hệ thống Ở hình 4.4 đã hiển thị ở cổng ra của bãi giữ xe gồm barrier đóng hoặc mở được điều khiển bằng hai cách đó là chờ phản hồi từ ứng dụng máy tính hoặc là nút nhấn được nhấn Khi xe đã qua khỏi thanh barrier, thanh barrier sẽ lập tức đóng lại Ngoài ra còn hiển thị hai cảm biến vật cản ở mỗi vị trí đỗ xe ở bên tay phải mô hình của hệ thống bãi giữ xe khi xe đỗ vào 2 vị trí đèn trên đầu mỗi vị trí tương ứng sẽ hiện màu đỏ.
Hình 4.5: Mô hình hệ thống khi có một xe vào bãi giữ xe Ở hình 4.5, màn hình LCD đã hiển thị số lượng mà xe còn trống ở trong bãi xe Nếu ở vị trí đỗ xe nào trống đèn trên đầu tương ứng ở vị trí đỗ xe đó sẽ hiển thị màu xanh, ngược lại nếu đèn ở vị trí đỗ xe đó sẽ hiển thị màu đỏ là có xe đã đỗ tại vị trí đó Đồng thời sẽ cập nhật chỗ còn trống trên màn hình hiển thị LCD.
KẾT QUẢ PHẦN MỀM
4.2.1 Kết quả phần mềm trên PC
Những kết quả về thiết kế giao diện và chức năng cũng như các tính năng đã được đưa ra ở mục 3.3.1 “Ý tưởng thiết kế giao diện ứng dụng trên máy tính” Ứng dụng giao diện thực hiện được các yêu cầu từ hệ thống:
Trang đăng nhập: yêu cầu đăng nhập, xác minh người dùng.
Hình 4.6: Giao diện đăng nhập Giao diện đăng ký: Tạo một tài khoản để có thể đăng nhập vào hệ thống được hiển thị ở hình 4.7.
Hình 4.7: Giao diện đăng kýGiao diện cấu hình: Người dùng cung cấp những thông tin cần thiết và tiên quyết như cổng port kết nối, thư mục lưu trữ hình ảnh, chi phí giữ xe để chương trình hệ thống có thể hoạt động.
Hình 4.8: Giao diện cấu hình Giao diện chính: Đưa ra được cái nhìn tổng thể về thông tin khách hàng (ID, biển số xe, vị trí, ), trạng thái của các vị trí có trong bãi xe, hiển thị ngày giờ.
Hình 4.9 Giao diện làm việc chính
Giao diện ảnh vào: Hiển thị hình ảnh và thông tin biển số xe nếu là người dùng đặt chỗ trước Nếu không phải người dùng đặt chỗ trước thì nhập thông tin biển số xe vào.
Hình 4.10 Ảnh chụp ngõ vào
Giao diện ảnh ra: Hiển thị hình ảnh cụ thể tương ứng với từng người dùng thẻ được chụp từ camera ở cổng vào và camera ở cổng ra Ngoài ra còn hiển thị thông tin biển số xe của người quẹt thẻ và số tiền cần phải trả
Hình 4.11 Ảnh chụp khi xe ra
Hình 4.12 Giao diện quản lý thẻ
● Trang đăng nhập: Tại đây, người dùng sẽ nhập vào Nick name và mật khẩu đã đăng ký.
● Trang đăng ký: Nơi để tạo tài khoản mới Người dùng sẽ điền đầy đủ thông tin để đăng ký.
● Trang chủ: Nơi thể hiện các thông tin cá nhân, sơ đồ, hiện trạng của các vị trí trong bãi xe.
● Hộp thoại đặt chỗ: Tại đây, thông tin để đặt chỗ cần được điền đẩy đủ bởi người dùng.
Hình 4.16 Hộp thoại đặt chỗ
● Hộp thoại nạp tiền: Tại đây, người dùng sẽ nhập số tiền cần nạp và nhấn xác nhận.
Hình 4.17 Hộp thoại nạp tiền
● Chức năng “tìm đường”: Khi người dùng nhấn vào tìm đường trên trang chủ Điện thoại sẽ hiện ra yêu cầu truy cập GPS Sau khi được cấp quyền truy cập GPS, ứng dụng sẽ quay lại trang chủ Khi đó, người dùng sẽ nhấn tìm đường lần nữa Ứng dụng sẽ chuyển hướng qua Google bản đồ
Hình 4.18 Yêu cầu cấp quyền GPS