Welcome to the Smart Plastic Bottle Redemption System! This project integrates RFID authentication, Arduino-based servo motor control, load cell weight verification, and image classification using OpenCV and TensorFlow to create an automated bottle redemption machine.
- Project Overview
- Features
- Technologies Used
- Installation
- Usage
- Project Structure
- Contributing
- License
- Acknowledgements
The Smart Plastic Bottle Redemption System is designed to automate the process of accepting and classifying plastic bottles for recycling. The system uses RFID to authenticate users, a load cell to verify the weight of the bottle, and a pre-trained MobileNetV2 model to classify the object as a plastic bottle or reject it. Points are awarded to registered users, which they can view on a web interface.
- RFID User Authentication: Ensures only registered users can use the machine.
- Load Cell Weight Verification: Accepts objects weighing between 17g-23g.
- Image Classification: Uses OpenCV and TensorFlow to classify objects.
- Servo Motor Control: Directs accepted bottles to an acceptance box and rejected items to a rejection box.
- User Points Database: Awards points to users for accepted bottles and provides a web interface to view points.
- User Guidance Display: An Arduino 16x2 LCD provides step-by-step instructions.
- Arduino: For controlling servo motors and displaying messages.
- RFID: For user authentication.
- Load Cell: For weight verification.
- OpenCV: For capturing and processing images.
- TensorFlow: For image classification using a pre-trained MobileNetV2 model.
- Python: Backend logic for image processing and machine learning.
- Xampp: For the web interface to display user points.
- SQLite: For user and points database.
Hardware Setup
-
Arduino and RFID Setup:
- Connect the RFID reader to the Arduino.
- Connect the servo motors to the Arduino.
- Connect the 16x2 LCD display to the Arduino.
- Connect the load cell to the Arduino using an HX711 amplifier.
-
Camera Setup:
- Ensure your laptop’s built-in camera or an external camera is set up for image capture. Software Setup
-
Clone the Repository:
https://github.com/chamishkadilina/Smart-Plastic-Bottle-Redemption-System.git
-
Set Up Python Environment:
-
Arduino Code:
- Upload the
arduino/arduino_code.ino
to the Arduino board using the Arduino IDE.
- Upload the
-
Configure Database:
- Start the Arduino Program:
- Run the Main Python Program:
- 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;
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.
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.