Blog 5 - Bin Bot Project - Davin Barron
Blog 5 - Bin Bot Project - Davin Barron
Introduction
The core objective of the Bin Bot project is to develop an intelligent, automated smart bin utilising an MQTT network. During the initial design phases, our primary focus was simply identifying what smart features were technically viable, practical to implement, and well-aligned with the bin's overall functionality.
Following plenty of collaborative team discussions, we decided to center Bin Bot around Ireland's deposit return scheme, specifically tailoring the user experience for primary school classrooms. By gamifying the recycling process, our goal is to teach children the vital importance of sustainability through a fun, engaging, and interactive activity. Now that we are in the final sprint, we can really see how the Bin Bot's IoT capabilities are starting to take root and the entire system is finally taking shape.
In this blog, I’m going to talk about my specific technical contributions to the project, as well as my reflections on how I found working with the team, what worked well, and the areas I can look to improve in going forward.
Team Design
The system architecture is structured to separate responsibilities across hardware, network, and backend layers. To handle data from the physical bins to the cloud, each classroom is assigned its own unique MQTT topic on the BeeBotte server to keep data streams isolated and organised.
Development tasks are divided among the team to support this pipeline:
Matteo handles the data ingestion from the BeeBotte server, pulling the individual classroom MQTT topic data directly into Google Sheets and building out the analytics on a Looker Studio dashboard.
John focuses on the encryption block, implementing XOR encryption on the edge Micro:Bit to secure data before transmission and managing the decryption phase on the receiving side.
Igor is responsible for the physical hardware layer, calibrating and integrating the ultrasonic sensor and gyroscope with the edge Micro:Bit.
George manages the final stages of the backend ecosystem, handling the automated email subscription system and syncing the project data with Google Classroom.
My Contributions
My primary task in the Bin Bot project is to find a way to extract barcode information and then use those barcodes to pull product information along with the correct deposit return scheme pricing.
In my previous post (Blog 4), I initially tried using the HuskyLens to read barcode numbers. However, I discovered that the specific model we had wasn't able to scan barcodes properly, so I opted to identify the type of material instead. That material data was then sent to our MQTT topic, and I showed how we could use Node-RED to pull that information from MQTT and send it over to Google Sheets.
Development (Continued)
KOI AI Camera
Following up on the material identification from Blog 4, we wanted to take another shot at barcode scanning using a dedicated camera, so we decided to test the KOI AI Camera. First, I connected the camera to our KittenBot board using the official
Next, I configured the MakeCode for the Micro:Bit by following their
However, I discovered that for some reason the camera is unable to actually recognise barcodes. I made use of the examples Kittenbot provided on the documentation (the example pdf can be found here).
I contacted the support team to resolve this issue but never received a reply, even after following up after not receiving an initial response.
Because of this dead end, I had to rethink our strategy for capturing barcodes.
MQTT IoT Panel App
Once the barcode is scanned using the camera app, the number is pasted into the input section of our custom dashboard layout on the MQTT IoT Panel App.
Node-RED
Once Node-RED has the barcode, it passes it to the API Calls node. To get all the details about the recycled container, this node runs three web requests at the exact same time:
- Open Food Facts (Product API): Gets the brand name, product name, and size.
- Open Food Facts (Prices API): Pulls retail pricing to find an average cost if a live price wasn’t sent from the app.
- Shane Hastings' Re-turn API: Checks the barcode against the Irish deposit return scheme database to see if it qualifies for a refund.
The code looks at the volume (checking for milliliters or liters) and cross-references it with the Re-turn API fields (is_eligible or barcodeValid). If the product is part of the deposit network, it sets the status to "YES" and figures out the exact refund value based on the container size:
- €0.15 for containers between 150ml and 500ml.
- €0.25 for containers between 500ml and 3 liters.
Teamwork Reflection
The teamwork aspect of this project was a really nice change of pace since group work isn't found in any of my other modules. It was a great experience to develop something together, which is an essential skill to have when entering the workplace. One of the best parts was being able to bounce ideas around and get a second opinion, which really helped during our initial brainstorming sessions when we first started the project. I loved how dedicated everyone was and how we supported each other using a shared Miro board and Slack workspace to share Node-RED flows and helpful links.
An area where I think I can improve a bit more is communicating any misunderstandings I might have. For example, if a teammate is well-versed in a topic that I don’t fully understand, I need to speak up and ask them to explain it to me in a simpler way. The same goes for my own work too. If I explain something that they don't quite get, I should work on communicating that technical topic in a more approachable, easy-to-understand way.
Conclusion & Project Outcome
Overall, this project was a fantastic experience and a whole lot of fun to work on. We managed to take a tricky hardware setback with the camera, pivot successfully to a mobile app solution, and build a fully automated backend in Node-RED that pulls live product data and figures out the exact Re-turn scheme pricing instantly.
With everything connected, the data flows smoothly from the phone straight into our Google Sheet, which we then hooked up to a Looker Studio dashboard to make the recycling metrics easy and interactive for a classroom to see.
Once we officially wrapped up the project and recorded our final demonstrations, the team headed out to Geoff's for a little project after-party to celebrate getting it over the finish line! 🥳
Project Demonstrations
You can check out the final system in action through the video links below:
My Individual Video Demo: Personal Demo
Our Full Team Video Demo: Team Demo
Comments
Post a Comment