When is Bins?
BBC Radio 4’s ‘Friday Night Comedy’ show over Christmas often jokes about no-one knowing when various bins are being collected during the disrupted schedule of the holidays. This gave me an idea, and a good excuse to dig back out the raspberry pi and dust off my electronics experience.
When is Bins is a rasperry pi based product for showing when your different bins are collected. Complete with 3D printed light up bin models doubling as buttons, a motion sensor, a full mobile-friendly web interface and custom designed hardware for reducing costs, it really is the epitome of unnecessary technology, and was a lot of fun to build!
Tech Stack
The product is built with a raspberry pi running a python script. This script uses bin days saved in a database to determine what bins to light up when, and whether or not they have been taken out.
A Node.js server running on the same machine provides a web interface for users to configure their bin days and schedule. In addition, using a Python script, the Node.js server can gather this information automatically from a relevant council website if given your postcode.
Key Features
The Python script was built from scratch, bringing what I’ve learned about scalable web platforms to hardware.
A 3D printer helped to design a prototype case for the electronics.
The raspberry pi also runs a node.js server, to allow the user to easily configure their bins without being limited by the inputs available through the hardware.
Project Status
The project is still in development. Using selenium to scrape council websites is too resource intensive for a raspberry pi, therefore I plan on hosting the Node.js site on a more powerful centralised server, and just using the raspberry pi to retrieve the information from the server directly.
More iterations of the product are also in the works, mostly to reduce the size of the hardware and improve the internal wiring.
Once complete, I intend on polishing the GitHub repository to allow anyone to print and solder their own b-indicator.
Development
Source Code
You can find the full source code on GitHub
The Python scripts can be found in the python
directory.
The Node.js server can be found in the js
directory.
The PCB design can be found in the schematics
directory.
The remaining files are predominantly around deployment, and currently allow for easy updating of the firmware.