Project Title: Sota Bin - State-of-the-Art Sorting for a Sustainable Future
Course: SYSC3010W25
Group: L2-G3
TA: Afsoon Khodaee
Team Members: Uchenna Obikwelu, Adeyehun Folahanmi, Dearell Tobenna Ezeoke, Emeka Anonyei, Tobiloba Ola
Problem Statement: Waste misclassification is a persistent issue that contaminates recyclables, increases landfill waste, and reduces recycling efficiency. Many users struggle to sort waste properly due to the lack of real-time guidance and intuitive feedback mechanisms.
Motivation: Our main goal was to design a smart waste bin that automatically sorts waste materials while educating its user on how to classify waste items properly. This is why we designed Sota Bin — "State-of-the-Art Sorting for a Sustainable Future." We also addressed the issue of continuous bin monitoring by implementing an automated bin-full detection feature using IR sensors instead of ultrasonic sensors.
Key Features:
- Classifies waste into four categories — landfill, paper, plastic/metal, and compost.
- Educates users on the classification of items in real-time via a website.
- Sends alerts when a bin section is full, notifying users and managers.
- Provides sorting data analytics over time.
- Allows managers to remotely reset the Sense HAT LED indicator when a bin section is full via the web.
Key Users: Everyday users and facility managers in schools, offices, and other public spaces.
| Folder | Description |
|---|---|
SOTA BIN MAIN/ |
Contains the main Python implementation for each Raspberry Pi responsible for different subsystems as well as the website code. Each folder includes a README explaining the role and setup: • RPi1: Object detection and waste classification• RPi2: Motor control• RPi3: Bin full monitoring for Paper and Compost bin sections and Website scripts (see WEB)• RPi4: Bin full monitoring for Plastic/Metal and Landfill bin sections• configs/: Configuration constants and Firebase credentials |
SOTA BIN TEST/ |
Contains end-to-end and unit test scripts for all components. • HARDWARE_TEST/ and SOFTWARE_TEST/ are unit test scripts for hardware and software components.• Other folders are for end-to-end testing. |
Project_Images/ |
Contains key photos from the project: system diagram, RPi1 peripheral wiring, bin full detection (IR + SenseHAT), motor setup, and group image. All images are referenced in the Appendix section below. |
README.md |
This file — the top-level documentation for understanding and running the entire system. |
- RPi1: Camera, color sensor, IR reflective sensor, metal sensor, LCD display
- RPi2: Stepper motor + A4988 driver, servo motor
- RPi3: IR reflective sensors, Sense HAT
- RPi4: IR reflective sensors, Sense HAT
- Power: 5V USB for RPis, 12V adapter for metal sensor
# Clone the repository
$ git clone https://github.com/ucheeaa/sota-bin-sysc3010
# Navigate to the appropriate directory (example for RPi1)
$ cd "SOTA BIN MAIN/RPi1"
# Install dependencies (adjust based on your Pi)
$ pip install opencv-python firebase-admin RPi.GPIO sense-hat websocket-client- Add your Firebase
firebase_key.jsonto the correct directory (e.g.,RPi1/,RPi3/, etc.) - Update scripts with your Firebase Realtime Database URL
- Create Firebase project
- Enable Realtime Database
- Download
firebase_key.jsonand add to each Pi folder except for RPi2 which doesn't communicate with Firebase
- RPi1 (Object Classification):
cd "SOTA BIN MAIN/RPi1"
python3 classifier_and_commander.pyThen in another terminal run:
cd "SOTA BIN MAIN/RPi1"
python3 lcd_simulation.py- RPi2 (Motor Control):
cd "SOTA BIN MAIN/RPi2"
python3 final_motor.py- RPi3 (Bin Full Monitoring & Web Interaction):
cd "SOTA BIN MAIN/RPi3"
python3 monitor_bins.py- RPi4 (Optional Monitoring):
cd "SOTA BIN MAIN/RPi4"
python3 bin_full_monitor.py- Web Dashboard:
cd "SOTA BIN MAIN/RPi3/WEB"
# Open index.html in browser or serve via local server-
Running SOTA BIN TEST/HARDWARE_TEST and SOTA BIN TEST/SOFTWARE_TEST scripts should pass
-
LCD screen continuously shows "Place one item at a time."
-
When waste is placed on plate:
- Object is detected and classified
- Classification appears in RPi1 local DB, Firebase and Web UI
- Servo and stepper motors activate (RPi2) to the appropriate bin section
-
When a bin is full:
- One of the two Sense HATs beems up
- Web interface alert appears
- Manager is sent an email
-
When reset is clicked (web):
- Firebase logs the action
- RPi3 detects it and clears Sense HAT display
Group L2-G3: Tobiloba, Folahanmi, Uchenna, Dearell, and Emeka.





