I2luY2x1ZGUgJmx0O0xpcXVpZENyeXN0YWwuaCZndDsKTGlxdWlkQ3J5c3RhbCBsY2QoOCw5LDEwLDExLDEyLDEzKTsvL1JTLEVOLEQ0LEQ1LEQ2LEQ3CiNpbmNsdWRlICZsdDtTZXJ2by5oJmd0OwojZGVmaW5lIGlyMSBBMQojZGVmaW5lIHNlbjEgQTAgLy8gbW9pc3R1cmUKI2RlZmluZSBidXp6ZXIgMgojZGVmaW5lIHRoZWZ0IEEyCiNkZWZpbmUgdHJpZ1BpbjEgNS8vLy9yaWdodAojZGVmaW5lIGVjaG9QaW4xIDQKI2RlZmluZSB0cmlnUGluMiA3ICAvLy8vIGZyb250CiNkZWZpbmUgZWNob1BpbjIgNgppbnQgY2hvcmk9MDsKbG9uZyBkdXJhdGlvbiwgZGlzdGFuY2Usc2Vuc29yMSxzZW5zb3IyOyAvLyB1cyB2YXJpYWJsZQppbnQgb25ldGltZT0wLG9uZXRpbWUxPTAgOwppbnQgd2V0PTAsbW9pc3R1cmU9MCxvYmplY3Q9MCxjYWJpbjI9MCxjMT0wLGMyPTA7ClNlcnZvIG15c2Vydm87ICAvLyBjcmVhdGUgc2Vydm8gb2JqZWN0IHRvIGNvbnRyb2wgYSBzZXJ2bwovLyB0d2VsdmUgc2Vydm8gb2JqZWN0cyBjYW4gYmUgY3JlYXRlZCBvbiBtb3N0IGJvYXJkCnZvaWQgc2V0dXAoKSAKewogU2VyaWFsLmJlZ2luKDk2MDApOwogbGNkLmJlZ2luKDE2LCAyKTsvL2luaXRpYWxpemluZyBMQ0QKIGxjZC5zZXRDdXJzb3IoMCwwKTsgCiBsY2QucHJpbnQoJnF1b3Q7QXV0b21hdGljIFdBU1RFJnF1b3Q7KTsKIGxjZC5zZXRDdXJzb3IoMCwxKTsgCiBsY2QucHJpbnQoJnF1b3Q7U2VncmVnYXRpb24gc3lzJnF1b3Q7KTsKIGRlbGF5KDMwMDApOwogcGluTW9kZShpcjEsSU5QVVQpOwogcGluTW9kZSh0aGVmdCxJTlBVVCk7CiBwaW5Nb2RlKHNlbjEsSU5QVVQpOwogcGluTW9kZShidXp6ZXIsT1VUUFVUKTsKIHBpbk1vZGUodHJpZ1BpbjEsIE9VVFBVVCk7CiBwaW5Nb2RlKGVjaG9QaW4xLCBJTlBVVCk7CiBwaW5Nb2RlKHRyaWdQaW4yLCBPVVRQVVQpOwogcGluTW9kZShlY2hvUGluMiwgSU5QVVQpOwogbXlzZXJ2by5hdHRhY2goMyk7ICAvLyBhdHRhY2hlcyB0aGUgc2Vydm8gb24gcGluIDkgdG8gdGhlIHNlcnZvIG9iamVjdAogbXlzZXJ2by53cml0ZSg4NSk7CiBkZWxheSgzMDAwKTsKfQoKdm9pZCBsb29wKCkgCnsKIGNob3JpPWRpZ2l0YWxSZWFkKHRoZWZ0KTsKIGlmKGNob3JpPT1ISUdIKXtkaWdpdGFsV3JpdGUoYnV6emVyLEhJR0gpOyBsY2Quc2V0Q3Vyc29yKDAsMSk7IAogIGxjZC5wcmludCgmcXVvdDt0aGVmdCBBbGVydCEmcXVvdDspO30KIGVsc2V7ZGlnaXRhbFdyaXRlKGJ1enplcixMT1cpO30KIG1vaXN0dXJlPWFuYWxvZ1JlYWQoc2VuMSk7CiBTZXJpYWwucHJpbnQoJnF1b3Q7bW9pc3R1cmUgPSAmcXVvdDspOwogU2VyaWFsLnByaW50bG4obW9pc3R1cmUpOwogZGVsYXkoNTAwKTsKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogdWx0cmFzZW5zb3IodHJpZ1BpbjEsIGVjaG9QaW4xKTsKIHNlbnNvcjEgPSBkaXN0YW5jZTsKIGRlbGF5KDEwKTsKIAogIHVsdHJhc2Vuc29yKHRyaWdQaW4yLCBlY2hvUGluMik7CiAgc2Vuc29yMiA9IGRpc3RhbmNlOyAgICAKICBkZWxheSgxMCk7CiAgCiAgU2VyaWFsLnByaW50bG4oc2Vuc29yMSk7CiAgU2VyaWFsLnByaW50bG4oc2Vuc29yMik7CiAgCiAgaW50IGx2bDE9KDE2LXNlbnNvcjEpKjYuNTsKICBpbnQgbHZsMj0oMTYtc2Vuc29yMikqNi41OwogIFNlcmlhbC5wcmludGxuKGx2bDEpOwogIFNlcmlhbC5wcmludGxuKGx2bDIpOwogIGlmKGx2bDEmbHQ7MCl7bHZsMT0wO30KICBpZihsdmwyJmx0OzApe2x2bDI9MDt9CiAgaWYobHZsMSZndDsxMDApe2x2bDE9MTAwO30KICBpZihsdmwyJmd0OzEwMCl7bHZsMj0xMDA7fQogIGxjZC5jbGVhcigpOwogIGxjZC5zZXRDdXJzb3IoMCwwKTsgCiAgbGNkLnByaW50KCZxdW90O21vaXN0dXJlOiAmcXVvdDspOwogIGxjZC5zZXRDdXJzb3IoMTIsMCk7IAogIGxjZC5wcmludChtb2lzdHVyZSk7CiAgZGVsYXkoMTAwMCk7CiAgbGNkLmNsZWFyKCk7CiAgbGNkLnNldEN1cnNvcigwLDEpOyAKICBsY2QucHJpbnQoJnF1b3Q7REw9ICZxdW90Oyk7CiAgbGNkLnNldEN1cnNvcig0LDEpOyAKICBsY2QucHJpbnQobHZsMSk7CiAgbGNkLnNldEN1cnNvcig4LDEpOyAKICBsY2QucHJpbnQoJnF1b3Q7V0w9ICZxdW90Oyk7CiAgbGNkLnNldEN1cnNvcigxMywxKTsgCiAgbGNkLnByaW50KGx2bDIpOwogIGRlbGF5KDEwMDApOwogIGlmKGx2bDEgJmx0Oz0gMTAwICZhbXA7JmFtcDsgbHZsMSAmZ3Q7PSA3MCkKICB7ICAgICAgCiAgIGlmKG9uZXRpbWU9PTApCiAgIHsKICAgICBsY2Quc2V0Q3Vyc29yKDAsMCk7IAogICAgIGxjZC5wcmludCgmcXVvdDstc2VuZCBtc2ctJnF1b3Q7KTsKICAgICBkaWdpdGFsV3JpdGUoYnV6emVyLEhJR0gpOyAKICAgICAvLyB0cmFja2luZzEoKTsgCiAgICAgZGlnaXRhbFdyaXRlKGJ1enplcixMT1cpOwogICAgIG9uZXRpbWU9MTsKICAgfQogIH0KICBlbHNlIGlmIChsdmwyICZsdDs9IDEwMCAmYW1wOyZhbXA7IGx2bDIgJmd0Oz0gNzApCiAgewogICAgaWYob25ldGltZTE9PTApCiAgICB7CiAgICAgIGxjZC5zZXRDdXJzb3IoMCwwKTsgCiAgbGNkLnByaW50KCZxdW90Oy1zZW5kIG1zZy0mcXVvdDspOwogICAgIGRpZ2l0YWxXcml0ZShidXp6ZXIsSElHSCk7IAogICAgIAogICAgIAogICAgIC8vdHJhY2tpbmcoKTsKICAgICBkaWdpdGFsV3JpdGUoYnV6emVyLExPVyk7CiAgICAgb25ldGltZTE9MTsgCiAgICB9CiAgfQplbHNlCnsKIG9uZXRpbWU9MDsKIG9uZXRpbWUxPTA7Cn0KLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICBvYmplY3Q9ZGlnaXRhbFJlYWQoaXIxKTsKICBtb2lzdHVyZT1hbmFsb2dSZWFkKHNlbjEpOwogIGlmKG9iamVjdD09TE9XKQogIHsKICAgbW9pc3R1cmU9YW5hbG9nUmVhZChzZW4xKTsKICAgbGNkLnNldEN1cnNvcigwLDApOyAKICAgbGNkLnByaW50KCZxdW90Oy1HQVJCQUdFIFNFTlNFLSZxdW90Oyk7CiAgIGRpZ2l0YWxXcml0ZShidXp6ZXIsSElHSCk7CiAgIGRlbGF5KDE1MCk7CiAgIGRpZ2l0YWxXcml0ZShidXp6ZXIsTE9XKTsKICAgZGVsYXkoMTAwMCk7CiAgIG1vaXN0dXJlPWFuYWxvZ1JlYWQoc2VuMSk7CiAgIFNlcmlhbC5wcmludCgmcXVvdDttb2lzdHVyZSA9ICZxdW90Oyk7CiAgIFNlcmlhbC5wcmludGxuKG1vaXN0dXJlKTsKICAgZGVsYXkoNTAwKTsKICAgbW9pc3R1cmU9YW5hbG9nUmVhZChzZW4xKTsKICAgU2VyaWFsLnByaW50KCZxdW90O21vaXN0dXJlID0gJnF1b3Q7KTsKICAgU2VyaWFsLnByaW50bG4obW9pc3R1cmUpOwogICBkZWxheSg1MDApOwogICAvL2RlbGF5KDIwMDApOwogICBpZihtb2lzdHVyZSZndDs9NDApICAgICAgICAgICAgICAgICAgICAgICAgIAogICB7CiAgICBsY2Quc2V0Q3Vyc29yKDAsMCk7IAogICAgbGNkLnByaW50KCZxdW90OyBXRVQgIEdBUkJBR0UmcXVvdDspOwogICAgbXlzZXJ2by53cml0ZSgzNSk7CiAgICBkZWxheSg1MDAwKTsKICAgIG15c2Vydm8ud3JpdGUoODUpOwogICAgZGVsYXkoMjAwMCk7CiAgICBTZXJpYWwucHJpbnRsbigmcXVvdDt3ZXQmcXVvdDspOwogICB9CiAgIGVsc2UgaWYobW9pc3R1cmUmbHQ7MTAwKQogICB7ICAKICAgIGxjZC5zZXRDdXJzb3IoMCwwKTsgCiAgICBsY2QucHJpbnQoJnF1b3Q7IGRyeSAgR0FSQkFHRSZxdW90Oyk7CiAgICBteXNlcnZvLndyaXRlKDE0NSk7IAogICAgZGVsYXkoNTAwMCk7CiAgICBteXNlcnZvLndyaXRlKDg1KTsKICAgIGRlbGF5KDIwMDApOwogICAgU2VyaWFsLnByaW50bG4oJnF1b3Q7bW9pc3R1cmUmcXVvdDspOwogICAgbGNkLmNsZWFyKCk7CiAgIH0gCiAgICAKICB9IAogICAgICAgIAogfQoKIAogdm9pZCBpbml0X3NtcygpCiB7CiAgU2VyaWFsLnByaW50bG4oJnF1b3Q7QVQrQ01HRj0xJnF1b3Q7KTsKICBkZWxheSg0MDApOwogIFNlcmlhbC5wcmludGxuKCZxdW90O0FUK0NNR1M9XCZxdW90Oys5MTk5NzgwMzQ3XCZxdW90OyZxdW90Oyk7ICAgLy8gdXNlIHlvdXIgMTAgZGlnaXQgY2VsbCBuby4gaGVyZQogIGRlbGF5KDQwMCk7CiB9Cgogdm9pZCBpbml0X3NtczEoKQogewogIFNlcmlhbC5wcmludGxuKCZxdW90O0FUK0NNR0Y9MSZxdW90Oyk7CiAgZGVsYXkoNDAwKTsKICBTZXJpYWwucHJpbnRsbigmcXVvdDtBVCtDTUdTPVwmcXVvdDsrOTE5OTcxMDM0N1wmcXVvdDsmcXVvdDspOyAgIC8vIHVzZSB5b3VyIDEwIGRpZ2l0IGNlbGwgbm8uIGhlcmUKICBkZWxheSg0MDApOwogfQogIAogdm9pZCBzZW5kX2RhdGEoU3RyaW5nIG1lc3NhZ2UpCiB7CiAgU2VyaWFsLnByaW50bG4obWVzc2FnZSk7CiAgZGVsYXkoMjAwKTsKIH0KIAogdm9pZCBzZW5kX3NtcygpCiB7CiAgU2VyaWFsLndyaXRlKDI2KTsKIH0KIAogdm9pZCB0cmFja2luZzEoKQogewogIGluaXRfc21zKCk7CiAgc2VuZF9kYXRhKCZxdW90O0tFQyAgZHVzdGJpbidzIGRyeSBzaWRlICBpcyBmdWxsOlxuJnF1b3Q7KTsKICBzZW5kX3NtcygpOwogIGRlbGF5KDUwMDApOwoKICAgaW5pdF9zbXMxKCk7CiAgc2VuZF9kYXRhKCZxdW90O0tFQyAgZHVzdGJpbidzIGRyeSBzaWRlICBpcyBmdWxsOlxuJnF1b3Q7KTsKICBzZW5kX3NtcygpOwogIGRlbGF5KDUwMDApOwogfQogIHZvaWQgdHJhY2tpbmcoKQogewogIGluaXRfc21zKCk7CiAgc2VuZF9kYXRhKCZxdW90O0tFQyAgZHVzdGJpbidzIHdldCBzaWRlICBpcyBmdWxsOlxuJnF1b3Q7KTsKICBzZW5kX3NtcygpOwogIGRlbGF5KDUwMDApOwogIGluaXRfc21zMSgpOwogIHNlbmRfZGF0YSgmcXVvdDtLRUMgZHVzdGJpbidzIHdldCBzaWRlICBpcyBmdWxsOlxuJnF1b3Q7KTsKICBzZW5kX3NtcygpOwogIGRlbGF5KDUwMDApOwogfQogdm9pZCB1bHRyYXNlbnNvcihpbnQgdHJpZ1BpbixpbnQgZWNob1BpbikKIHsgCiAgZGlnaXRhbFdyaXRlKHRyaWdQaW4sIExPVyk7ICAvLyBBZGRlZCB0aGlzIGxpbmUKICBkZWxheU1pY3Jvc2Vjb25kcygyKTsgLy8gQWRkZWQgdGhpcyBsaW5lCiAgZGlnaXRhbFdyaXRlKHRyaWdQaW4sIEhJR0gpOwogIGRlbGF5TWljcm9zZWNvbmRzKDEwKTsgLy8gQWRkZWQgdGhpcyBsaW5lCiAgZGlnaXRhbFdyaXRlKHRyaWdQaW4sIExPVyk7CiAgZHVyYXRpb24gPSBwdWxzZUluKGVjaG9QaW4sIEhJR0gpOwogIGRpc3RhbmNlID0gKGR1cmF0aW9uLzIpIC8gMjkuMTsKIH0=
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,10,11,12,13);//RS,EN,D4,D5,D6,D7
#include <Servo.h>
#define ir1 A1
#define sen1 A0 // moisture
#define buzzer 2
#define theft A2
#define trigPin1 5////right
#define echoPin1 4
#define trigPin2 7 //// front
#define echoPin2 6
int chori=0;
long duration, distance,sensor1,sensor2; // us variable
int onetime=0,onetime1=0 ;
int wet=0,moisture=0,object=0,cabin2=0,c1=0,c2=0;
Servo myservo; // create servo object to control a servo
// twelve servo objects can be created on most board
void setup()
{
Serial.begin(9600);
lcd.begin(16, 2);//initializing LCD
lcd.setCursor(0,0);
lcd.print("Automatic WASTE");
lcd.setCursor(0,1);
lcd.print("Segregation sys");
delay(3000);
pinMode(ir1,INPUT);
pinMode(theft,INPUT);
pinMode(sen1,INPUT);
pinMode(buzzer,OUTPUT);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
myservo.attach(3); // attaches the servo on pin 9 to the servo object
myservo.write(85);
delay(3000);
}
void loop()
{
chori=digitalRead(theft);
if(chori==HIGH){digitalWrite(buzzer,HIGH); lcd.setCursor(0,1);
lcd.print("theft Alert!");}
else{digitalWrite(buzzer,LOW);}
moisture=analogRead(sen1);
Serial.print("moisture = ");
Serial.println(moisture);
delay(500);
//////////////////////////////////////////////////////
ultrasensor(trigPin1, echoPin1);
sensor1 = distance;
delay(10);
ultrasensor(trigPin2, echoPin2);
sensor2 = distance;
delay(10);
Serial.println(sensor1);
Serial.println(sensor2);
int lvl1=(16-sensor1)*6.5;
int lvl2=(16-sensor2)*6.5;
Serial.println(lvl1);
Serial.println(lvl2);
if(lvl1<0){lvl1=0;}
if(lvl2<0){lvl2=0;}
if(lvl1>100){lvl1=100;}
if(lvl2>100){lvl2=100;}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("moisture: ");
lcd.setCursor(12,0);
lcd.print(moisture);
delay(1000);
lcd.clear();
lcd.setCursor(0,1);
lcd.print("DL= ");
lcd.setCursor(4,1);
lcd.print(lvl1);
lcd.setCursor(8,1);
lcd.print("WL= ");
lcd.setCursor(13,1);
lcd.print(lvl2);
delay(1000);
if(lvl1 <= 100 && lvl1 >= 70)
{
if(onetime==0)
{
lcd.setCursor(0,0);
lcd.print("-send msg-");
digitalWrite(buzzer,HIGH);
// tracking1();
digitalWrite(buzzer,LOW);
onetime=1;
}
}
else if (lvl2 <= 100 && lvl2 >= 70)
{
if(onetime1==0)
{
lcd.setCursor(0,0);
lcd.print("-send msg-");
digitalWrite(buzzer,HIGH);
//tracking();
digitalWrite(buzzer,LOW);
onetime1=1;
}
}
else
{
onetime=0;
onetime1=0;
}
/////////////////////////////////////////////////////
object=digitalRead(ir1);
moisture=analogRead(sen1);
if(object==LOW)
{
moisture=analogRead(sen1);
lcd.setCursor(0,0);
lcd.print("-GARBAGE SENSE-");
digitalWrite(buzzer,HIGH);
delay(150);
digitalWrite(buzzer,LOW);
delay(1000);
moisture=analogRead(sen1);
Serial.print("moisture = ");
Serial.println(moisture);
delay(500);
moisture=analogRead(sen1);
Serial.print("moisture = ");
Serial.println(moisture);
delay(500);
//delay(2000);
if(moisture>=40)
{
lcd.setCursor(0,0);
lcd.print(" WET GARBAGE");
myservo.write(35);
delay(5000);
myservo.write(85);
delay(2000);
Serial.println("wet");
}
else if(moisture<100)
{
lcd.setCursor(0,0);
lcd.print(" dry GARBAGE");
myservo.write(145);
delay(5000);
myservo.write(85);
delay(2000);
Serial.println("moisture");
lcd.clear();
}
}
}
void init_sms()
{
Serial.println("AT+CMGF=1");
delay(400);
Serial.println("AT+CMGS=\"+9199780347\""); // use your 10 digit cell no. here
delay(400);
}
void init_sms1()
{
Serial.println("AT+CMGF=1");
delay(400);
Serial.println("AT+CMGS=\"+9199710347\""); // use your 10 digit cell no. here
delay(400);
}
void send_data(String message)
{
Serial.println(message);
delay(200);
}
void send_sms()
{
Serial.write(26);
}
void tracking1()
{
init_sms();
send_data("KEC dustbin's dry side is full:\n");
send_sms();
delay(5000);
init_sms1();
send_data("KEC dustbin's dry side is full:\n");
send_sms();
delay(5000);
}
void tracking()
{
init_sms();
send_data("KEC dustbin's wet side is full:\n");
send_sms();
delay(5000);
init_sms1();
send_data("KEC dustbin's wet side is full:\n");
send_sms();
delay(5000);
}
void ultrasensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW); // Added this line
delayMicroseconds(2); // Added this line
digitalWrite(trigPin, HIGH);
delayMicroseconds(10); // Added this line
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
}