## Inspiration

Throughout the hackathon, our team was intrigued by staff members sorting through trash bins in order to ensure recycling, compost and landfill waste was separated. After further investigation and a quick staff member interview, we learned about San Francisco's "zero-waste" program. This program requires event hosts within city limits to sort their waste into the three specified categories to reduce landfill use, with penalties or bans for events that fail to meet the waste sorting criteria. The demand for waste sorting has grown so much that private companies, such as Green Mary, have entered the sector.

Our team came up with an innovative solution, Smart Bin. Smart Bin automates waste sorting, reducing manual labor costs and reducing pollution.

## What it does

Smart Bin is a smart, standalone trash disposal system. It scans incoming waste and sorts it as it goes through our system.

## How we built it

Our system is built on top of a Raspberry Pi. The Raspberry Pi hosts a Yolo11 object detection system that scans incoming waste and makes an inference as to what section it should be directed to (landfill, compost, recycling). The output from out model is then sent to an Arduino board that controls a servo motor using PMW. Our motor directs the trash to its corresponding bin, effectively sorting it.

## Challenges we ran into

One challenge we ran into was the internet connection at the venue. We wanted to download open-source data sets from Roboflow Universe to train our Object Detection model to segregate different types of waste. We also dealt with hardware difficulties during the event, running the servo motors took a lot of juice from the batteries so we had to prepare a lot beforehand. We also modeled designs of our props to be 3d printed during the event, which took a long time to print where we had to optimize different slicing methods to improve from 7 hours of printing to sub 5 hours of print time. We also had limitations when it comes to computing power of the raspberry pi, where all of our detection model, and functions are all ran on this mini-computer.

## Accomplishments that we're proud of

We are extremely proud of what we built. We were able to build Smart Bin as a standalone system, one that is only dependent on a Raspberry Pi, an Arduino Board, and a servo motor. The total cost of our unit comes out to less than $50, making it highly accessible and likely to make an impact on the environment.

## What we learned

Through this project, we gained a deeper understanding of the complexities involved in waste management and automation. We learned about the real-world implications of waste diversion requirements for events and how crucial it is to accurately sort trash. Additionally, we improved our skills in hardware integration, machine learning, and rapid prototyping, which were crucial to successfully building a working product in a limited time frame.

## What's next for SmartBin

Our next steps involve expanding the scalability of the system across urban environments by integrating even more advanced real-time data analytics and optimizing waste collection routes through machine learning algorithms. We aim to enhance the mobile experience by allowing users to locate and interact with SmartBins seamlessly. Additionally, we plan to collaborate with municipalities and large organizations to implement SmartBin on a larger scale, helping cities reduce waste inefficiencies and environmental impact.
## Inspiration

The idea started when one of our members attended a program oriented towards social impact and justice, in which a main focus was the issue of hunger. This spurred a group conversation on what we could do to help combat this global crisis.

As students at schools with many student organizations focused on sustainability, we wanted to come up with a way to tackle the source of the food waste problem. Roughly 805 million people go undernourished on a daily basis, but enough food is produced to feed everyone. Poor food allocation and distribution is a cause for both environment and health crises.

## What it does

FREE(Food Distribution Effort for Everyone) is composed of three components: a web application, a network of interactive kiosks, and a cluster of computer-vision enabled cameras. The web application allows any vetted user to deposit food at any of our designated drop-off/pick-up stations(kiosks). The current implementation allows a user to donate and deposit food at any of the 10 drop-off stations in the Cambridge, Massachusetts area. This information is then sent to the kiosk(s) in the area, which displays live information about the food stations in its’ zone. Each station is represented by an RGB LED that changes color on a spectrum from red to green, giving quick information about which stations have more food than others. More in-depth information is displayed on an information panel at the bottom. When a user wants to get food from a station, they only need to tap on the station that they desire. Currently, only stations 1-5 have touch support due to a lack of available hardware. Lastly, the kiosks automatically enter standby mode when the user walks away to save power. The computer-vision enabled cameras, which have not been fully implemented, will recognize when a particular type of food is placed in a food station, automatically send that information to the kiosks, and give an approximate date of expiry for when the food needs to be removed from the station.

## How we built it

Due to time constraints, the kiosk is constructed out of cardboard, paper, packing tape, and prototyping electronics. Despite the low-grade construction materials, all functionality on the kiosk works as expected. The software was created with a React/Webpack/Flask/SQL stack on the localhost. We also used version control with Git

## Challenges we ran into

Difficulties with the WiFi made testing the hardware and debugging very time-consuming and frustrating. Attempted connections to the kiosk, web app and cameras would often fail. The kiosk was also faced challenges with intermittent connectivity, as the wire available to us was too small to fit well in the breadboards. The ESP32 DevKit V1 used on the kiosk also needed to be re-flashed before it could be used, a difficult and unfamiliar task. In regards to software development specifically, we had very limited experience with SQL and back-end frameworks such as Flask. Connecting front-end to the back-end and database proved to be much more difficult than anticipated.

## Accomplishments that we're proud of

We were very proud of the fact that most of us had never created a full and scalable web-application from scratch before. Although we had difficulties developing the back-end since we didn’t have much experience at all with Flask or SQL, we were able to get through it. When we were able to use Axios and Flask to send data to the kiosk, we were extremely excited. We were also proud of using an unfamiliar IoT platform, the DOIT ESP32 DevKit V1, and successfully implementing it.

## What we learned

Completing this project within 24 hours from scratch was very challenging but just as rewarding. Setting up multiple software developer environments on different operating systems and doing developer operations was just as challenging as creating the codebase itself. We definitely should have spent the time to set up virtual environments. It would’ve saved us from some dependencies problems later on in our code. However, early and diligent planning saved us a lot of time in regards to integrating the components of our project together (Front-end, Back-end, and Hardware). The features we planned for the minimum viable product were implemented much easier than features we came up with along the way. We learned a lot about fully connecting a front-end based on React.js with a back-end consisting of Flask/SQL through online resources, the kind HackMIT mentors, and lots of trial and error. Focusing on smaller components of our project one at a time and learning to constantly communicate allowed us to maximize the time of four individuals.

## What's next for FREE: Food Redistribution Effort for Everyone

FREE is designed for rapid and global deployment. It serves to combat immediate food shortages caused by natural disasters, political strife, or even poor public policy. FREE kiosks will be energy self-sufficient by means of solar panels, with the current WiFi configuration replaced by cellular (LTE/5G). These advancements will enable global deployment and communication between the kiosks and the internet. The current web-app interface would include more features, such as the specific details of food at a given location, account vetting, and increased information from the kiosk/camera setups to increase the versatility, safety, and overall efficacy of the system as a whole. The camera units would be implemented to allow anyone to deposit food at a station, have the food be quality checked, and easily obtain food. Lastly, the FREE kiosks and camera units would be made of weather-resistant and durable materials suitable for use anywhere on the globe.
## Inspiration

Canadians produce more garbage per capita than any other country on earth, with the United States ranking third in the world. In fact, Canadians generate approximately 31 million tonnes of garbage a year. According to the Environmental Protection Agency, 75% of this waste is recyclable. Yet, only 30% of it is recycled. In order to increase this recycling rate and reduce our environmental impact, we were inspired to propose a solution through automating waste sorting.

## What it does

Our vision takes control away from the user, and lets the machine do the thinking when it comes to waste disposal!
By showing our app a type of waste through the webcam, we detect and classify the category of waste into either recyclable, compost, or landfill. From there, the appropriate compartment is opened to ensure that the right waste gets to the right place!

## How we built it

Using TensorFlow and object detection, a python program analyzes the webcam image input and classifies the objects shown. The TensorFlow data is then collected and pushed to our MongoDB Atlas database via Google Cloud. For this project, we used machine learning and used a single shot detector model to maintain a balance between accuracy and speed. For the hardware, an Arduino 101 and a step motor were responsible for manipulating the position of the lid and opening the appropriate compartment.

## Challenges we ran into

We had many issues with training our ML Models on Google Cloud, due to the meager resources provided by Google. Another issue we encountered was finding the right datasets, due to the novelty of our product. Due to these setbacks, we resorted to modifying a TensorFlow provided model.

## Accomplishments that I'm proud of

We managed to work through difficulties and learned a lot during the process! We learned to connect TensorFlow, Arduino, MongoDB, and Express.js to create a synergistic project.

## What's next for Trash Code

In the future, we aim to create a mobile app for improved accessibility and to create a fully customized trained ML model. We also hope to design a fully functional full-sized prototype with the Arduino.