This project involves a machine equipped with an RFID card reader to authenticate users. Users can insert bottles into the machine, which then classifies and detects if the item is a bottle. If it is a bottle, the user's points are updated on a webpage; if not, the machine rejects the item.
Wiring Diagram 1.pdf Credit goes to our group member, Sithija
- Features
- Technologies Used
- Project Setup Guide
- Usage
- Project Structure
- License
- Acknowledgements
- Contributing
- RFID Authentication: Access control for registered users.
- Load Cell Verification: Checks weight (17g-23g) of objects.
- Image Classification: Uses OpenCV and TensorFlow to detect bottles.
- Servo Motor Control: Directs items based on classification results.
- User Points Database: Tracks user points, accessible via a web interface.
- Arduino, RFID, Load Cell, OpenCV, TensorFlow, Python, XAMPP, SQLite
- Refer to the Project Setup Guide file for detailed instructions.
- Launch XAMPP Control Panel and Start
Apache
andMySQL
services. - In your browser, navigate to
http://localhost/display_data.php
to view the webpage. - Start the Arduino Program
SmartRecycler.ino
. - Run the Main Python Program
arduino_communication.py
. - User Interaction:
- Users authenticate with their RFID cards.
- Place the bottle on the load cell.
- If the weight is correct, the camera captures an image and the classification process begins.
- The servo motor directs the bottle to the appropriate box based on the classification.
- Accepted bottles add points to the user's account, viewable on the web interface.
graph TD;
RegisteredUser-->AuthenticateRFID;
AuthenticateRFID-->DoorOpens;
AuthenticateRFID-->DoorRemainsClosed;
DoorOpens-->CheckWeightWithLoadCell;
CheckWeightWithLoadCell-->RejectBox;
CheckWeightWithLoadCell-->ProcessImageWithPythonOpenCV;
ProcessImageWithPythonOpenCV-->RejectBox;
ProcessImageWithPythonOpenCV-->RotateServoMotorToAcceptBox;
RotateServoMotorToAcceptBox-->UpdateUserPointsInDatabase;
UpdateUserPointsInDatabase-->DisplayUserPointsOnWebsite;
This project is licensed under the MIT License. See the LICENSE file for details.
- Special thanks to our project team members.
- CT/2020/027 - J.A.C.D.Kumara
- CT/2020/047 - H.I.K.Jayarathna
- CT/2020/065 - E.D.K.Chamara
- ET/2020/010 - G.G.H.N. Kokilani
- ET/2020/015 - P.C.Vithanage
- ET/2020/098 - A.S.S.Sisiranatha
- Inspired by various open-source projects and tutorials on Arduino, OpenCV, and TensorFlow.
Contributions are welcome! If you find any issues or want to add new features, feel free to fork the repository and submit a pull request.