Have you ever wondered how does an IoT-enabled smart bin works? If not then this blog post will show you exactly how to build one for yourself and you can use it too.
These days, there is a huge impetus on smart city initiatives across the world. One of the popular use cases of Smart City is the concept of Smart Bins. As we all know, efficient waste management is a growing challenge in urban areas. Hence, this Smart Bin concept has also drawn a lot of attention as part of automating the public infrastructure across cities.
What is a Smart Bin?
A smart bin is a regular trash can, equipped with a sensor. Thus, such sensored trash cans can measure the level of trash contained in them and report that to the users.
Smart bins for Efficient Waste Management
How is this concept of smart bins useful for us? If you think of waste management and the level of coordination required for efficiently managing a public waste management system, then a smart bin can lead to.
- Efficient monitoring by waste collection agencies.
- That leads to no more sights of overfilled trash cans across the city streets
- That leads us to the gradual elimination of health and environmental issues related to open disposal of trash.
And finally, it will lead to a cost reduction/per bin for the waste collection agency.
Sensored Trash Can System built on IBM Bluemix
In this post, we are going to show you a model setup of a trash can system installed with garbage sensor, that is built atop the IBM Bluemix services. IBM Blumix cloud provides the middleware tools that can power IoT devices and applications. In this setup, we are going to use the IBM IoT Foundation services to collect data from the garbage sensor.
[thrive_text_block color=”teal” headline=”Looking For a Real Smart Trash Can/Waste Bin?”]
The setup presented in this blog post is a prototype system. If you are looking for a real product or technology around smart trash can or a smart waste bin then refer to our product R&D site on smart cities.
Block Diagram of Sensored Trash Can System
Components of Sensored Trash Can System
As per the above block diagram, the main components of this system are
- Sensored trash can: Fitted with a hardware device that controls the garbage sensor.
- Bluemix IoT Service: This is the IBM’s cloud service (IBM IoT Foundation) which orchestrates the messaging and communication between the trash can and the user’s mobile app.
- Mobile app: This is a mobile app through which the user can monitor the trash level inside the trash can. This app may be used by the waste collection agency personnel or anyone who is responsible for clearing the trash.
- Twilio: Twilio is a service that allows a device to send an SMS to any phone around the world. We have used this service to enable the trash can to send an SMS in case it is filled up almost till the top.
Trash Can Hardware Setup
The hardware device that needs to be fitted inside the trash can consists of the following
- Raspberry Pi 3
- Ultrasonic Sensor (HCSR04)
Raspberry Pi 3 is the popular single board computer, which has many GPIO pins to connect sensors and peripheral devices. It has in-built WiFi to connect to the Internet.
To sense the trash level within the trash can, we have used a garbage sensor. It is actually an ultrasonic sensor, also known as fill level sensor that detects the distance of the trash from the top of the trash can. You can get more info about this sensor (HC-SR04) here
The below schematic diagram shows how to connect the raspberry pi and the ultrasonic sensor.
Hardware Schematic Diagram
Setting up IBM Bluemix & Twilio Service
To demonstrate the actual usage of smart bins, we will be taking help of the following web services from IBM Bluemix and Twilio. Follow the links below to create your account and setup these services.
- IBM IoT Foundation
Follow this link to signup for the IBM Bluemix to get started.
You can find the step by step procedure to setup the IBMIoTF service under your Bluemix account here
You can sign up here for Twilio.
Follow this link to get started with Twilio.
The software source code for this model trash can is available on GitHub.
There are two components of the software
- Trashcan.py : The client application for Raspberry Pi 3, written in Python. It is responsible for monitoring the trash level by controlling the fill level sensor. It is also responsible for sending the trash level data to mobile app display and as well as the SMS notification.
- TrashCanApp : This is the mobile app. It is built on Cordova and displays a simple fill level illustration for the trash can which syncs in real time with the trash level reported by Raspberry Pi 3.
Refer the README file for step by step instruction on setting up the IBM IOT Foundation (IBMIoTF) service to handle data forwarding between the trash can and mobile app. IBMIoTF uses the industry-standard MQTT protocol to connect devices and applications. MQTT is designed for the efficient exchange of data to-and-from devices in real-time.
To ensure that the client application at Raspberry Pi 3 and the TrashCanApp mobile app can sync up with the IBMIoTF service, we have to make some changes in the code before launching/building the programs. Refer the “Python Script Configuration” and “Mobile App Configuration” sections of the README file.
If you have followed along until this stage, then we are ready to demonstrate this trash can.
Although we can test the level of trash can using any obstacle placed at a distance from the fill level sensor, we want to get close to real. So here is a small model trash can be made out of an ordinary container.
You can see the fill level sensor mounted at the center. Here is a look from the inside with its two probes sticking out.
All services running and all things powered up. Let’s see a demo.
As you can see in the video demonstration, we are using crumpled paper as trash. As we keep filling the container with the trash, the level goes up, and it is indicated in the mobile app as well.
At the bottom part of the video, you can see the sensor values getting updated in the IBMIoTF service web console. As we keep filling trash, the value decreases, which indicates the reducing distance between sensor-probe and the trash level. That’s the fill level sensor in action!
Check out the source code of Python client application to see how the Raspberry Pi3 controls hardware to interface with the fill level sensor for reading the distance.
You now have a fully functional smart bin solution. We hope you enjoyed this demonstration. In the coming weeks, we will present few more variants of this demo which addresses some real-world problems and solution that can be specifically applicable to this use case or IoT in general. Stay tuned and feel free to comment in case you have any queries.