top of page
Writer's pictureSanskruti Ashtikar

Smart Dustbin Using PIC Microcontroller

Updated: Nov 27

Introduction


In the era of smart cities and automation, the concept of a "smart dustbin" is an innovative approach to waste management. A Smart Dustbin, equipped with sensors and a PIC microcontroller, can automatically open its lid when someone approaches and provide status updates when the bin is full. This project not only enhances cleanliness but also makes waste management more efficient and hygienic. This article will guide you through the design, implementation, and programming of a Smart Dustbin using a PIC microcontroller.





Components Required


  1. PIC Microcontroller: PIC16F877A or any similar PIC microcontroller.

  2. Ultrasonic Sensor: HC-SR04 for detecting proximity and measuring the level of trash in the bin.

  3. Servo Motor: For controlling the opening and closing of the dustbin lid.

  4. LCD Display: 16x2 or similar for displaying the dustbin status.

  5. Buzzer: To alert when the bin is full.

  6. Power Supply: 5V DC regulated power supply.

  7. Push Buttons: Optional, for manual control or resetting.

  8. Connecting Wires, Resistors, and Capacitors: For circuit assembly and stability.

  9. Dustbin: A physical dustbin to be modified for automation.

  10. PCB or Breadboard: For assembling the circuit.


System Overview


The Smart Dustbin system works by using an ultrasonic sensor to detect when a person is near the dustbin and automatically opens the lid using a servo motor. The ultrasonic sensor also measures the fill level of the dustbin and displays the status on an LCD. If the dustbin is full, the system triggers a buzzer to alert the user or maintenance staff.


Circuit Diagram


Key Connections:


  1. Ultrasonic Sensor (HC-SR04):

  2. VCC to 5V power supply.

  3. GND to ground.

  4. Trig to a digital output pin of the PIC (e.g., RB0).

  5. Echo to a digital input pin of the PIC (e.g., RB1).

  6. Servo Motor:

  7. Signal pin connected to a PWM output pin of the PIC (e.g., RC2).

  8. VCC to 5V power supply.

  9. GND to ground.

  10. LCD Display:

  11. Data pins (D4-D7) connected to PIC port pins (e.g., RD4-RD7).

  12. Control pins (RS, E) connected to PIC pins (e.g., RD0, RD1).

  13. VCC to 5V, GND to ground, VEE to a variable resistor for contrast control.

  14. Buzzer:

  15. Positive pin to a digital output pin of the PIC (e.g., RB2).

  16. Negative pin to ground.


Microcontroller Configuration


The PIC microcontroller will manage the sensor inputs, control the servo motor, and interact with the LCD and buzzer. The ultrasonic sensor data will determine when to open the dustbin lid and monitor the fill level. The microcontroller will also handle the display of information on the LCD and sound the buzzer when the bin is full.


Pin Configuration


  • RB0: Trig pin of the ultrasonic sensor.

  • RB1: Echo pin of the ultrasonic sensor.

  • RC2: PWM output for controlling the servo motor.

  • RB2: Digital output for the buzzer.

  • RD0-RD1: Control pins for the LCD.

  • RD4-RD7: Data pins for the LCD.





Sample Code


Here’s a simplified example code for the Smart Dustbin project using PIC microcontroller:


#include <xc.h>
#include "lcd.h"
#include "ultrasonic.h"
#include "servo.h"
#define _XTAL_FREQ 4000000
#define TRIG RB0
#define ECHO RB1
#define BUZZER RB2
void main(void) {
    unsigned int distance;
    
    // Initialize modules
    LCD_Init();
    Ultrasonic_Init();
    Servo_Init();
    TRISB = 0x02; // Set RB1 as input for Echo, others as output
    while(1) {
        // Measure distance to detect hand approach
        distance = Ultrasonic_Measure_Distance();
        
        // If hand is detected near the dustbin
        if(distance < 20) {
            // Open the dustbin lid
            Servo_Open();
            __delay_ms(5000); // Wait for 5 seconds
            Servo_Close();
        }
        
        // Measure distance to check bin level
        distance = Ultrasonic_Measure_Level();
        
        // Display the bin status
        LCD_Clear();
        LCD_Set_Cursor(1,1);
        LCD_Write_String("Bin Level: ");
        LCD_Write_Number(distance);
        LCD_Write_String(" cm");
        // Check if the bin is full
        if(distance < 5) {  // Assuming 5 cm as the threshold
            LCD_Set_Cursor(2,1);
            LCD_Write_String("Bin is Full!");
            BUZZER = 1; // Turn on the buzzer
        } else {
            BUZZER = 0; // Turn off the buzzer
        }
        
        __delay_ms(1000); // Update every second
    }
}




Working of the System


  1. Ultrasonic Sensor Operation: The ultrasonic sensor measures the distance to any object in front of the dustbin. When an object (like a hand) is detected within a certain range (e.g., less than 20 cm), it triggers the opening of the dustbin lid by the servo motor.

  2. Servo Motor Control: The servo motor opens the lid when the sensor detects a person and automatically closes it after a few seconds.

  3. Fill Level Monitoring: The same or another ultrasonic sensor can be positioned inside the dustbin to monitor the trash level. It measures the distance from the sensor to the top of the trash pile. If this distance is below a certain threshold (e.g., 5 cm), the system determines that the bin is full.

  4. LCD Display: The LCD displays the current trash level in centimeters and alerts when the bin is full.

  5. Buzzer Alert: When the bin is full, the buzzer sounds to alert users or maintenance staff that the bin needs to be emptied.


Testing and Calibration


  1. Distance Calibration: Calibrate the ultrasonic sensor for accurate distance measurement by testing it at known distances.

  2. Servo Motor Testing: Ensure the servo motor correctly opens and closes the lid. Adjust the timing if necessary.

  3. Buzzer Functionality: Test the buzzer to ensure it sounds correctly when the bin is full.

  4. System Stability: Test the entire system to ensure it operates smoothly without false triggers or errors.


Additional Features


To enhance the functionality of the Smart Dustbin, consider adding:

  1. Wireless Notifications: Use a GSM or Wi-Fi module to send alerts to users when the bin is full.

  2. Solar Power: Integrate a solar panel to make the system more energy-efficient.

  3. Multiple Sensors: Add additional sensors to monitor different parts of the bin for more precise level detection.

  4. Automatic Disposal: Design a mechanism for automatic disposal when the bin is full, such as a conveyor system to move trash to a larger container.


Conclusion


A Smart Dustbin using a PIC Microcontroller is an innovative and practical project that can be applied in homes, offices, and public spaces to improve cleanliness and waste management. This guide provides a foundation for building a basic smart dustbin system, with opportunities for further enhancements and customization.


References


  • PIC16F877A Datasheet: Microchip

  • HC-SR04 Ultrasonic Sensor Documentation: Datasheet

  • MPLAB X IDE: Microchip


Want us to guide you through your project or make the project for you ?







Create Various Projects

Check out our Free Arduino Projects Playlist - Arduino Projects 

Check out our Free Raspberry Pi Projects Playlist - Raspberry Pi Projects 

Check out our Free TinkerCAD Projects Playlist - TinkerCAD Projects 

Check out our Free IoT Projects Playlist - IoT Projects 

Check out our Free Home Automation Projects Playlist - Home Automation Projects 

Check out our Free NodeMCu Projects Playlist - NodeMCu Projects 



8 views0 comments

Related Posts

See All

Comments


bottom of page