Metal and Wet Waste Separator Using Maker Uno

Metal and Wet Waste Separator Using Maker Uno

Introduction

Waste separation is a good start to living a green life. Metal and wet waste are essential to be separated because sometimes the metal waste is dangerous if disposed of unproperly and the garbage bag can get watery because of excessive water from wet waste.

 

How to do it?

With Maker Uno, we will create a conceptual project to mimic a separator that can identify the waste inserted into the bin with an infrared sensor module. Then, we will separate metal by using an inductive proximity sensor and identify wet waste with a moisture sensor module. The waste then will be discarded according to the waste type into three different sections with a servo motor.

 

Required Components

 

Circuit Connection

waste segregator circuit connection

Pictorial Diagram

 

The infrared sensor will detect if any waste is inserted into the container, then the inductive proximity sensor will identify whether the waste is metallic or not. If the waste is metallic, then it will be discarded in the METAL section. If the waste is non-metallic, the moisture sensor module will identify whether the waste is wet. If wet, the waste will be discarded into the WET section. If neither, waste will be discarded to the NORMAL section. All the discard process is shown in this conceptual project via servo.

 

Setup

photo 2022 05 30 16 34 28

1. Connect the servo with male-to-male jumpers.

photo 2022 05 30 16 34 25

2. Connect the moisture sensor with its module with female-to-female jumpers and from the module to the breadboard with female-to-male jumpers.

photo 2022 05 30 16 34 27

3. Connect the infrared sensor with female-to-male jumpers.

photo 2022 05 30 16 34 22

4. Connect all the equipment as shown in the pictorial diagram. 

photo 2022 05 30 16 34 07

5. Connect the setup with your computer and upload the code below via Arduino IDE.

 

Code

				
#include 
//input pin declaration
int IRpin = 3;
int IPpin = 5;
int MSpin = A1;
int LED = 13;
//servo declaration
int SM1pin = 9;
Servo Servo1;
//metal sensor variable
int IPvalue;
//moisture sensor variable
int moistureValue;
int moistureLimit=30;
float moisturePercent;
void setup() {
 //input pin setup
 pinMode(IRpin,INPUT);
 pinMode(IPpin,INPUT);
 pinMode(MSpin,INPUT);
 pinMode (13, OUTPUT);
 //servo setup
 Serial.begin(9600);
 Servo1.attach(SM1pin);
}
void loop() {
//sensing presence of waste
if(digitalRead(IRpin)==0){
Serial.println("Waste detected!");
delay(3000);
//metal identification
IPvalue = digitalRead(IPpin);
delay(3000);
 if( IPvalue == 0 ){
 Serial.println( "The waste is metallic" );
 Serial.println( "Discarding waste to METAL section" );
 Servo1.write(0);
 delay(3000);
 }
 else{
 Serial.println( "The waste is nonmetallic");
 //moisture identification
 delay(3000);
 moistureValue = analogRead(MSpin);
 moisturePercent = (100-
((moistureValue/1023.00)*100));
 Serial.print("Moisture Percentage : ");
 Serial.print(moisturePercent);
 Serial.println("%");
 if (moisturePercent>moistureLimit) {
 Serial.println("The waste is wet");
 Serial.println("Discarding waste to WET section");
 Servo1.write(180);
 delay(3000);
 }
  else{
 Serial.println("The waste is normal");
 Serial.println("Discarding waste to NORMAL section ");
 Servo1.write(270);
 delay(3000);
 }
 }
 digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
 delay(1000);                       // wait for a second
 digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
 delay(1000);
 Serial.println("Waste discarded!");
 Serial.println('n');
 delay(1000);
}
}
				

 

 

Outcome Simulation

 

 

Thank You!

Visit my.cytron.io to grab these components and let's work on this project!