#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Change the I2C addresrs if needed
Servo servo;
String textMessage;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
const int trigPins = 12;
const int echoPins= 11;
const int trigPinl = 10;
const int echoPinl= 9;
const int servoPin = 6;
void setup() {
Serial.begin(9600);
servo.attach(servoPin);
pinMode(trigPins, OUTPUT);
pinMode(echoPins, INPUT);
pinMode(trigPinl, OUTPUT);
pinMode(echoPinl, INPUT);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
lcd.init();
lcd.clear();
lcd.begin(20, 4);
lcd.backlight(); // Tursn on the LCD backlight
lcd.setCursor(0, 0);
lcd.print("MUNICIPALCORPORATIOn");
lcd.setCursor(0, 1);
lcd.print(" SMART-E-DUSTBIN");
}
void loop()
{
digitalWrite(trigPins, LOW);
delayMicroseconds(2);
digitalWrite(trigPins, HIGH);
delayMicroseconds(10);
digitalWrite(trigPins, LOW);
long durations = pulseIn(echoPins, HIGH);
int distances = durations * 0.034 / 2;
digitalWrite(trigPinl, LOW);
delayMicroseconds(2);
digitalWrite(trigPinl, HIGH);
delayMicroseconds(10);
digitalWrite(trigPinl, LOW);
long durationl = pulseIn(echoPinl, HIGH);
int distancel = durationl * 0.034 / 2;
if (distancel <= 15 )
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
lcd.setCursor(0, 2);
lcd.print("BIN CAPACITY:FULL ");
sendsms();
}
else if (distancel <= 30)
{
digitalWrite(led1,LOW);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
lcd.setCursor(0, 2);
lcd.print("BIN CAPACITY:HALF ");
}
else if (distancel <= 50)
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
lcd.setCursor(0, 2);
lcd.print("BIN CAPACITY:MEDIUM ");
}
else if (distancel <= 65)
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,HIGH);
lcd.setCursor(0, 2);
lcd.print("BIN CAPACITY:EMPTY ");
}
if (distances <=50)
{
lcd.setCursor(0, 3);
lcd.print("BIN STATUS : OPEN ");
servo.write(30);//open
delay(2000);
}
else
{
lcd.setCursor(0, 3);
lcd.print("BIN STATUS : CLOSE");
servo.write(90);// close
}
}
void sendsms()
{
Serial.print("AT+CMGF=1\r");
delay(100);
Serial.println("AT+CMGS =\"+919581654845\"");
delay(100);
// Serial.println("BUSTBIN SB32 IS FULL AT DESHAIPET AND AT Location:" + String("Lat: ") +String(Lat) + " "+String("Lon: ") + String(Lon));
Serial.println("SMART BUSTBIN MC21 IS FULL AT O-CITY MILLS GROUND LOCATION : https://maps.app.goo.gl/xWGeAe6N2kBKGFR17");
delay(100);
Serial.println((char)26);
delay(100);
Serial.println();
delay(30000);
}
// code final no error all ok tested by kanna