Table of Contents

Play Video

IMAGINATION TO REALITY

Imagination to reality is a project which is related to separation of waste. This means that separation of wet waste from dry waste to that each can be treated to reduce the pollution.

Project Description:

The Automated Waste Separation System is designed to separate the dry waste and wet waste. We are using sensors to reduce pollution and enhance waste management efficiency. This project integrates components such as Arduino, servo motors, and soil moisture sensors to automate waste sorting, ensuring each type of waste is treated separately.

Components Required:

  1. Arduino UNO with cable x 1
  2. Soil Moisture Sensor x 1
  3. Servo Motors SG90s x 1
  4. Ultrasonic sensor HC-SR04 x 1
  5. Jumper wires: male to female x 7
    : male to male x 3

Benefits:

  • Efficiency: Automated sorting reduces manual labor and increases sorting accuracy.
  • Environmental Impact: Proper waste segregation minimizes pollution and enhances recycling and composting efforts.

Connections:

Connection of Arduino with ultrasonic sensor:

  • Arduino pin no. 12 to trig.
  • Arduino pin no. 11 to echo
  • Arduino pin 5v to VCC
  • Arduino pin GND to GND

Connection of Arduino to Soil moisture sensor:

  • Arduino pin 5v to VCC
  • Arduino pin GND to GND
  • Arduino pin A0 to A0

Connection of Arduino to Servo motor SG90s:

  • Arduino pin 5v to VCC
  • Arduino pin GND to GND
  • Arduino pin 8 to the signal of the servo motor.

Circuit diagram:

CODE:

#include <Servo.h>
Servo servo1;
const int trig = 12;
const int echo = 11;
long duration;
int distance = 0;
int moist = A0;  //input pin
int soil = 0;
int fsoil;
void setup() {
  Serial.begin(9600);
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  servo1.attach(8);
}



void loop() {
  int soil = 0;
  for (int i = 0; i < 2; i++) {
    digitalWrite(trig, LOW);
    delay(7);
    digitalWrite(trig, HIGH);
    delay(10);
    digitalWrite(trig, LOW);
    delay(10);
    duration = pulseIn(echo, HIGH);
    distance = duration * 0.034 / 2 + distance;
    delay(10);
  }
  distance = distance / 2;
  Serial.println(distance);
  if (distance < 15 && distance > 1) {
    delay(1000);
    for (int i = 0; i < 3; i++) {
      soil = analogRead(moist);
      soil = constrain(soil, 485, 1023);
      fsoil = (map(soil, 485, 1023, 100, 0)) + fsoil;
      delay(75);
    }
    fsoil = fsoil / 3;
    Serial.println(fsoil);
    Serial.print("%");
    if (fsoil > 3) {
      delay(1000);
      Serial.print("WET ");
      servo1.write(180);
      delay(3000);
    } else {
      delay(1000);
      Serial.print("dry ");
      servo1.write(0);
      delay(3000);
    }

    servo1.write(90);
  }
  distance = 0;
  fsoil = 0;
  delay(1000);
}
Scroll to Top