Thank you for visiting our CSE 316 Microcontroller project. We have put in place a cashless, automated food ordering system after being fed up with the lengthy lines that formed during peak hours in our ECE canteen.
- Secure login using Personal RFID Card and Password
- Communication via bluetooth with a python server for sensitive user info
- Food Order Using Keypad and LCD Screen
- Order Confirmation Message to user's personal phone using Python API
- Persistent Balance of users using SQLite Server
- Arduino Mega 2560 - 1
- 20x4 LCD Screen with I2C converter - 1
- HC05 Bluetooth Module - 1
- MRFC522 RFID Card Reader - 1
- 4x4 Matrix Keypad - 1
Our Code is divided into two parts.
- The Python Codes folder hold the necessary codes for maintaining bluetooth connection, sending message and maintaining the database.
- Arduino Codes were written using Platform IO extension in VSCode. External libraries include-
- To start with arduino,open the whole project in vscode. With platformio extension added, simply go to src, then run main.cpp and burn it into arduino from the bottom ribbon in platformio. You need to connect ypur pc's bluetooth to the module of our project. To do so,while arduino is running and the hc05 bluetooth module is blinking, open your bluetooth and search for hc05 in new devices. Then pair with the module. The blinking pattern will change and now it'll blink one every three seconds.
- You need to install pyserial from command to continue. To do so,run the command from command prompt :
pip install pyserial
- After connecting the module, run and burn main.cpp again. now open python codes and go to server.py. Run the program and you should be able to do the rest according to the video.
- Pyserial uses serial ports. Bluetooth module may have different port serials. To know which serial your paired module is using, run findport.py. then change the port in the server.py program and run.
We had no prior experience communicating between Python and HC05. Most of our hours were spent toiling at different python libraries. After trying out different ones, we settled on using Python's Serial library and writing our own codes catered to our needs.
We found our serial communication was receiving garbage values on both ends. Filtering out correct values, on both ends, took a long time.
Bluetooth and the RFID card reader occasionally stopped working. It started working once more after manually reconnecting the Arduino's RX1 and TX1 pins. We were unable to identify a suitable remedy. Any recommendations are welcome.
- Sheikh Hasanul Banna (1805094)
- Partho Kunda (1805107)
- Udayon Paul Dhrubo (1805109)
- Md. Shariful Islam Bhuyan, Assistant Professor, CSE, BUET
- Sukarna Barua, Assistant Professor, CSE, BUET
- Md. Masum Mushfiq, Lecturer, CSE, BUET