Smart Waste Management System using ARDUINO

DOI : 10.17577/IJERTV8IS110004

Download Full-Text PDF Cite this Publication

Text Only Version

Smart Waste Management System using ARDUINO

Shwetashree Vijay1 Pilla Nitish Kumar3

Department of Electronics and Electrical Engineering Department of Electronics and Electrical Engineering Vellore Institute of Technology, Vellore,India Vellore Institute of Technology, Vellore,India

Sam Raju2 4Vivekanandan S

Department of Electronics and Electrical Engineering Department of Electronics and Electrical Engineering Vellore Institute of Technology, Vellore,India Vellore Institute of Technology, Vellore,India

Abstract In this paper, a system is introduced to manage waste in big cities effectively without having to monitor the parts 24×7 manually. Here the problem of unorganized and non- systematic waste collection is solved by designing an embedded IoT system which will monitor each dumpster individually for the amount of waste deposited. Here an automated system is provided for segregating wet and dry waste. A mechanical setup can be used for separating wet and dry waste into separate containers here sensors can be used for separating wet and dry. For detecting the presence of any waste wet or dry can be detected using an IR sensor in the next step for detecting wet waste a moister sensor can be used. In this process, if only IR is detected motor will rotate in the direction of the dry waste container if both the sensor detects the waste then it will go to the wet container. Both these containers are embedded with ultrasonic sensors at the top, the ultrasonic sensor is used for measuring distance. This makes it possible to measure the amount of waste in the containers if one of the containers is full then alert message will be sent to the corresponding personal.

Keywords ATmega328, EEPROM, IOREF, FTDI USB


    Today big cities around the world are facing a common problem, managing the city waste effectively without making city unclean. Todays waste management systems involve a large number of employees being appointed to attend a certain number of dumpsters this is done every day periodically. This leads to a very inefficient and unclean system in which some dumpsters will be overflowing some dumpsters might not be even half full. This is caused by variation in population density in the city or some other random factor this makes it impossible to determine which part needs immediate attention. Here a waste management system is introduced in which each dumpster is embedded in a monitoring system which will notify the corresponding personal if the dumpster is full. In this system, it is also possible to separate wet and dry waste into two separate containers. This system provides an effective solution to waste management problem


    • Manual systems in which employees clear the dumpsters periodically.

    • No systematic approach towards clearing the dumpsters.

    • Unclear about the status of a particular location

    • Employees are unaware of the need for a particular location

    • Very less effective in cleaning city


  1. Module Description

    1. List of Modules

      1. Processor

      2. Sensors

      3. Softwares

      4. DC Motor

            1. Processor:

              1. ARDUINO UNO:

        The Arduino Uno is a microcontroller board is dependent on the ATmega328 (datasheet). The microcontroller in Arduino is Microchip ATmega328P and the Operating Voltage is 5 volts. The Input Voltage range from 7 to 20 Volts and the Digital I/O Pins are 14 of which 6 provide PWM output. The analog Input Pins are 6,and DC Current per I/O Pin is 20 mA. Direct Current for 3.3V Pin is 50 mA. .The main part is the flash Memory contains 32 KB of which 0.5 KB used by bootloader SRAM for this Arduino has 2 KB and EEPROM of 1 KB with a Clock Speed of 16 MHz .The Length of the Arduino is 68.6 mm With the Width of 53.4 mm having the weight of 25 g . It contains everything expected to assist the microcontroller; essentially associate it to a laptop with a USB link or power it with associate degree AC-to-DC instrumentality or battery to start. The Uno varies from each single going before board in that it doesn't utilize the FTDI USB-to-sequential driver chip. Rather, it includes the Atmega16U2 (Atmega8U2 up to make R2) modified as a USB-to-sequential device.

        IOREF: This stick on the Arduino/Genuino board gives the voltage reference with that the microcontroller works. Associate in Nursing suitably organized defend will examine the IOREF pin voltage and choose the fitting power source or empower voltage interpreters on the outputs to figure with the 5V or 3.3V.

        VIN: the input voltage to the Arduino / Genuino board once it's utilizing an external power supply (instead of five volts from the USB association or alternative managed power source). We will be able to provide voltage through this pin, or, if providing voltage by means that of the power jack, get to that through this pin

        LED: there's a worked in crystal rectifier driven by advanced 13 pin. At the purpose once the pin is high in terms of value, the crystal rectifier is on, once the pin is low, it's off.

        5V: This pin outputs a managed 5V from the controller on the board. The board is given power either from the DC power jack (7 – 20V), the USB connecter (5V), or the VIN stick of the board (7-20V). Providing voltage by means that of the 5V or 3.3V pins sidesteps the controller, and might damage the board.

        Reset: generally wont to add a reset catch to shields that sq. the one on the board

        GND: This is a ground pin

        3V3: 50mA of maximum current is drawn and on- board regulator generates 3.3 volts of supply

        Fig Diagram for Arduino Uno Processor

            1. Sensors:

              1. Ultrasonic Sensor:-

                Ultrasonic (US) sensor is a 4-pin module, whose pin names are Vcc, Trigger, Echo and Ground respectively. This detector could be a very-about detector utilized This detector could be utilized in several applications wherever mensuration distance or sensing objects are needed. The module has 2 eyes like accompanies like robot at the front that frames the ultra- supersonic transmitter and recipient. The locator works with the simple secondary school recipe that

                Distance = Speed × Time

                The Ultrasonic transmitter broadcast a supersonic wave, this wave goes in air and when it gets questioned by any

                material it gets reflected back toward the sensor this reflected wave is seen by the Ultrasonic beneficiary module as appeared in the image beneath Now, to figure the separation utilizing the above recipe, we should know Speed and time. Since we tend to utilize the supersonic wave we as a whole know all inclusive speed of wave at region conditions that is 330m/s. The hardware inbuilt on the module will compute the time taken for the US wave to return and turns on the reverberation stick high for that equivalent specific measure of your time, along these lines we can likewise realize the time taken. Presently just figure the separation utilizing a microcontroller or small scale chip. Likewise, this nondeterministic mapping case (i.e., one-to-many mapping) happens even after we normalize all parameter values to extract the structures of the web requests and queries. Since the mapping can appear differently in different cases, it becomes difficult to identify all of the one-to-many mapping patterns for each web request. Moreover, when different operations occasionally overlap at their possible query set, it becmes even harder for us to extract the one-to-many mapping for each operation by comparing matched requests and queries across the sessions.

                Fig Module Diagram for Ultrasonic Sensor

              2. IR Sensor:

                An infrared sensor is an electronic device that emits in order to sense some aspects of the surroundings. An IR sensor can measure the heat of an object as well as detects the motion. These types of sensors measures only infrared radiation rather than emitting it that is called as a passive IR sensor.Usually in the infrared spectrum, all the objects radiate some form of thermal radiations. These types of radiations are invisible to our eyes that can be detected by an infrared sensor. The emitter is simply an IR LED (Light Emitting Diode) and the detector is simply an IR photodiode which is sensitive to IR light of the same wavelength as that emitted by the IR LED. When IR light falls on the photodiode, the resistances and these output voltages, change in proportion to the magnitude of the IR light received.

                Fig Module Diagram for IR Sensor

              3. Moisture Sensor:

        Moisture sensors measure the volumetric water content in soil. Since the direct gravimetric measurement of free soil moisture requires removing, drying, and weighing of a sample, soil moisture sensors measure the volumetric water content indirectly by using some other property of the soil, such as electrical resistance, dielectric constant, or interaction with neutrons, as a proxy for the moisture content.

        The relation between the measured property and soil moisture must be calibrated and may vary depending on environmental factors such as soil type, temperature, or electric conductivity. Reflected microwave radiation is affected by the soil moisture and is used for remote sensing in hydrology and agriculture. Portable probe instruments can be used by farmers or gardeners.

        Fig Module Diagram for Moisture Sensor

            1. Softwares:

              1. Arduino IDE

                The Arduino integrated development environment (IDE) is a cross-stage application (for Windows, macOS, Linux) that is written in the programming language Java. It is utilized to compose and transfer programs to Arduino compatible boards, yet in addition, with the assistance of outsider centres, other seller advancement sheets.

                The source code for the IDE is discharged under the GNU General Public License. The Arduino IDE underpins the dialects C and C++ utilizing uncommon guidelines of code organizing. The Arduino IDE supplies a product library from the Wiring venture, which gives numerous normal information and yield methodology. Client composed code just requires two essential capacities, for beginning the sketch and the principle program circle, that are aggregated and connected with a program stub fundamental () into an executable cyclic official program with the GNU toolchain, additionally included with the IDE distribution. The Arduino IDE utilizes the program avrdude to change over the executable code into a book record in hexadecimal encoding that is stacked into the Arduino board by a loader program in the board's firmware

                The primary code, otherwise called a sketch, made on the IDE platform will eventually produce a Hex File which is then moved and transferred in the controller on the board.

                The IDE condition for the most part contains two essential parts: Editor and Compiler where previous is utilized

                for composing the required code and later is utilized for assembling and transferring the code into the given Arduino Module.

                This environment supports both C and C++

                Fig Module Screenshot for Arduino IDE

              2. ThingSpeak

        ThingSpeak is an IoT analytics platform service that allows you to aggregate, visualize and analyze live data streams in the cloud. ThingSpeak provides instant visualizations of data posted by your devices to ThingSpeak. With the ability to execute MATLAB code in ThingSpeak you can perform online analysis and processing of the data as it comes in. ThingSpeak is often used for prototyping and proof of concept IoT systems that require analytics.

        Fig Module Screenshot for BLYNK App

        1.1.4. DC Motor:

        A DC motor is any of a class of rotational electrical machines that changes over direct flow electrical energy into mechanical energy. The most well-known sorts depend on the powers delivered by magnetic fields. About a wide range of DC engines have some internal mechanism, either electromechanical or electronic, to intermittently alter the course of current stream in part of the engine .we use 500rpm and 12v DC motor is used in this project .This DC motor is used for segregating the wet and dry waste. Microcontrollers can't drive the engines legitimately. So we need some sort of drivers to control the speed and direction of motors. The motor drivers will goes about as interfacing gadgets among microcontrollers and engines. motor drivers will go about as flow speakers since they take a low momentum control signal and give a high ebb and flow signal. This high current sign is utilized to drive the engines. Utilizing L293D chip is the easy

        route for controlling the engine utilizing microcontroller. It contains two H-connect driver circuits inside. This chip is intended to control two engines. L293D has two arrangements of plans where 1 set has input 1, input 2, output1,output 2, with enable pin while other set has input 3, input 4, yield 3, yield 4 with other enable pin.

        Fig 1.1.4. Module Diagram for DC Motor

  2. Architecture Diagram A

Fig 3.3-Architecture Diagram for Smart Waste Management System

Here, the figure represents an integration of Smart Waste Management System with a 3-tier sensor processor device system.

  • Ultrasonic sensor measure distances by using ultrasonic waves. The sensor emits an ultrasonic wave and receives the reflected wave back from the target.

  • IR Sensor emits in order to sense some aspects of the surroundings.

  • Moisture Sensor measures the volumetric water content in the soil. Reflected microwave radiation is affected by the soil moisture and is used for remote sensing hydrology and agriculture.

  • DC motor which is connected to the digital pins of Arduino

  • We are using serial monitor for the display.

Prototype of the Waste Management system


    #define SW_VERSION "" // SW version will appears at innitial LCD Display

    #include <ESP8266WiFi.h>

    const int M1_FORE = D1; //D5 const int M1_BACK = D2; //D6 const int Weight = D3; //D6 const int trigPin1 = D5; //D5 const int echoPin1 = D6; //D6 const int trigPin2 = D7; //D7 const int echoPin2 = D8; //D8

    // defines variables

    long duration1,duration2; int distance1,distance2;

    WiFiClient client; WiFiServer server(80);

    const char* MY_SSID = "vivo 1820"; const char* MY_PWD = "hello123";

    const char* TS_SERVER = ""; String TS_API_KEY ="49TH83LL0I1SJDJN";

    void connectWifi()


    Serial.print("Connecting to "+ *MY_SSID); WiFi.begin(MY_SSID, MY_PWD);

    while (WiFi.status() != WL_CONNECTED)


    delay(1000); Serial.print(".");


    Serial.println(""); Serial.println("WiFi Connected"); Serial.println("");

    server.begin(); Serial.println("Server started");

    Serial.print("Use this URL to connect: "); Serial.print("http://"); Serial.print(WiFi.localIP()); Serial.println("/");


    void sendDataTS(void)


    int water_value = analogRead(A0);

    digitalWrite(trigPin1, LOW); delayMicroseconds(2); digitalWrite(trigPin1, HIGH); delayMicroseconds(10); digitalWrite(trigPin1, LOW); duration1 = pulseIn(echoPin1, HIGH); distance1 = duration1*0.034/2; Serial.print("Distance_1: "); Serial.println(distance1);

    client.print("POST /update HTTP/1.1\n"); client.print("Host:\n"); client.print("Connection: close\n"); client.print("X-THINGSPEAKAPIKEY: " +

    TS_API_KEY + "\n");

    client.print("Content-Type: application/x-www- form-urlencoded\n");

    client.print("Content-Length: "); client.print(postStr.length()); client.print("\n\n"); client.print(postStr); delay(100);



    digitalWrite(trigPin2, LOW); delayMicroseconds(2); digitalWrite(trigPin2, HIGH); delayMicroseconds(10); digitalWrite(trigPin2, LOW); duration2 = pulseIn(echoPin2, HIGH); distance2 = duration2*0.034/2; Serial.print("Distance_2: "); Serial.println(distance2);

    Serial.print("Water_Value: "); Serial.println(water_value);

    if(digitalRead(Weight) == LOW)


    if(water_value < 700)


    digitalWrite(M1_FORE,HIGH); delay(2000); digitalWrite(M1_FORE,LOW); delay(1000); digitalWrite(M1_BACK,HIGH); delay(2100); digitalWrite(M1_BACK,LOW);




    digitalWrite(M1_BACK,HIGH); delay(2000); digitalWrite(M1_BACK,LOW); delay(1000); digitalWrite(M1_FORE,HIGH); delay(2000); digitalWrite(M1_FORE,LOW);



    void setup()


    Serial.begin(9600); delay(10); connectWifi();

    pinMode(trigPin1, OUTPUT); // Sets the trigPin as an Output

    pinMode(echoPin1, INPUT); // Sets the echoPin as an Input

    pinMode(trigPin2, OUTPUT); // Sets the trigPin as an Output

    pinMode(echoPin2, INPUT); // Sets the echoPin as an Input

    pinMode(M1_FORE, OUTPUT); // Sets the MOTOR_FORWARD as an Output pinMode(M1_BACK, OUTPUT); // Sets the MOTOR_BACKWARD as an Output pinMode(Weight,INPUT); digitalWrite(Weight,HIGH);


    void loop()


    sendDataTS(); delay(16000);



    The below figure shows the graphical representation of levels of waste in both containers as uploaded to the ThingSpeak cloud. This page can be accessed by any person who has the username and password of the account.


    if (client.connect(TS_SERVER, 80))


    String postStr = TS_API_KEY; postStr += "&field1=";

    postStr += String(distance1); postStr += "&field2="; postStr += String(distance2); postStr += "\r\n\r\n";


Every project is always has scope for improvement, perhaps the most pressing issue of separation of waste is when their dispose simultaneously. The waste segregator can be improvised to include the separation of paper and plastic, safe segregation of biomedical waste generated at home, compact and aesthetic Mechanical design.


  1. 2017 5th International Conference on Instrumentation, Control, and Automation (ICA) Yogyakarta, Indonesia, August 9-11, 2017

  2. IOT Based Smart Garbage alert system using Arduino UNO Date and journal: 2016 IEEE Region 10 Conference (TENCON) Author: Dr.N.SATHISH KUMAR, B.VIJAYALAKSHMI, R. JENIFER PRARTHANA, A .SHANKAR (S.R.M., Coimbatore, INDIA)

  3. Solid waste management based upon IoT or Smart city Date and Journal: ICICCS 2017 Author: Krishna Nirde, Prashant S. Mulay, UttamM.Chaskar (C.O.E. Pune).


  5. SVASTHA: An effective solid waste management system in Android OS Date and journal: 2013 by IEEE Global humanitarian technology Author: Issac and akshai

  6. Smart bin using Arduino and other sensors Date and journal: 2013 by FCIS Author: Yusuf et al

  7. SMART DUSTBIN MANAGEMENT SYSTEM Date and journal: 7 may 2018 (IJESRT) Author: Swati Sharma and sarabjeet Singh

  8. WIRELESS DUST BIN MONITORING AND ALERT SYSTEM USING ARDUINO JOURNAL:-978-1-5090-3239- 6/17/$31.00©2017IEEE P.Siva Nagendra Reddy, R.Naresh Naik,

    A.Amareshwar Kumar, S.NandaKishor

  9. IOT Based Smart Bin JOURNAL AND DATE:- Volume: 04 Issue: 09 | Sep -2017 ISO 9001:2008

1 thoughts on “Smart Waste Management System using ARDUINO

Leave a Reply