This project was developed to enhance the current payment system used in the cafeteria at Caleb University, located in Lagos, Nigeria.
The aims of this project are to:
- Reduce the time it takes for students to pay for their meals.
- Reduce the need for students to carry cash with them by limiting the number of times they have to go to the ATM.
The objectives of the system are to:
- Streamline the payment process for students, making it faster and more efficient.
- Provide a more convenient and secure way for students to pay for their meals, reducing the need to carry cash on campus.
Languages Used for this projects are:
- Frontend: Html, css and js
- Backend: PHP and MySQL
- Microcontroller Programming: Arduino C++
This is divided into two sections;
- Hardware
- Software
You will need the following hardware components:
- Esp8288 NodeMCU
- RC522 RFID Module kit
- Led
- Buzzer
- Breadboard
- Jumper wires
- Usb cable
You need to solder the header pin that comes with the rfid reader to it then following the connection in the table below. Its advisable to use a breadboard to make the connection cleaner.
NodeMCU Pin | Component Pin |
---|---|
D0 | +ve pin (led and Buzzer) |
D3 | RST (RFID reader) |
D4 | SDA/SS (RFID reader) |
D5 | SCK (RFID reader) |
D6 | MISO (RFID reader) |
D7 | MOSI (RFID reader) |
3v3 | 3v (RFID reader) |
GND | GND (RFID reader, led and buzzer) |
Here is a picture of the device after been connected
You will need the following software to be installed on your computer:
- Xampp
- Arduino IDE
Thie steps to steps to setup each are explained below:
-
Setting up the web app
- Step 1: You will need to install Xampp on your computer. You can download for free on XAMPP official website and follow steps on installing it
- Step 2: You open xampp control panel, start the Apache and MySQL.
- Step 3: Copy the Frontend folder and Backend folder, put them in a folder, navigate to htdocs in the xampp folder in your computer and paste them there
- Step 4: Go to your browser, type "localhost/phpmyadmin" and click enter, it will show an interface which is used to mantain the database. Create a database called "nfc_payment". Then import this database
- Step 5: Go to your browser, type "localhost" and click enter, it should bring the folder you create in step 3, enter the folder and go to the Frontend folder.
-
The microcontroller programming which is done with Arduino IDE
- Step 1: You will need to install the Arduino Integrated Development Environment (IDE) on your computer in order to write commands to the microcontroller. You can download the Arduino IDE for free from the Arduino website.
- Step 2: You need to add Esp8266 to your Arduino IDE. You check this link from Randomnerdtutorials for guide on how to do that.
- Step 3: You need to install the library for the following libraries for the rfid reader to work; SPI.h and MFRC522.h
- Step 4: You connect the microcontroller to the computer with a usb cable, then select the port you are connected to on Arduino IDE
- Step 5: Copy the code in the here, paste it on the IDE and upload to the microcontroller
You connect the microcontroller to a power source of not more than 5v. After doing this the microcontroller will create a Wifi Access point with the name set in the code and the password (ssid in the code: Credit Account, password: 0987654321).
Note: You need to put of your firewall for the microcontroller to be able to send data from the microcontroller to the database on the computer
Next thing to do is to navigate to the web application by typing this url http://localhost/{name of the folder you use}/Frontend in your browser
On the web app the first page you see is the login page. You can either login as a student or as a staff (for now admin)
Use the table below to see login details and roles
Role | Username | Password |
---|---|---|
Admin | admin | admin |
Student | 21/8874 | somade |
After successfull login, the user is redirected to the dashboard page. Other pages in the web app are:
- User Management page: Here a table showing all the students and their details are displayed. A button to create a new user is also added on the page
- Logs page: This page contains a table showing all the transactions (both credit and debit) in the database which includes; the student name, the card id, amount of transaction, transaction type, account balance and time of transaction
- Payment page: This is the page used for payment, the steps in making transaction is given below
- The staff inputs the amount to be credited or debited, then they are redirected to a page which then instructs them to move the card closer to rfid reader
- The system then checks for the card if its registered, also if there is sufficient amount (for debit) then displays an alert that the payment is successful and it redirects the user back to the payment page for another transaction
Here is a screenshot of the payment page
When logged in as a student, the student can see his/her account balance, see transaction logs and logout. The screenshot of the page is shown below
- Somade Daniel O.
- kenneth Chidiebele P.
- Amaeshi Osinachi N.
- Eziemefe Paul E.
- Salami Kehinde T.
- Omooba Ademola
- Ajani Boluwatife
- Ojo Fiyinfoluwa I.
- Ogunlusi Oluwasegun S.
- Adewole Oluwatobi B.
- Atte Nimibofa D.
- Julius David O.
- George Sophie A.
- Adesotu Nancy O.
- Oguafor Michael I.
Thank you for reading through this project. Please note that this is a prototype of our solution and there are certain aspects that can be improved. We welcome contributions and suggestions to improve the system.