#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
#include <SoftwareSerial.h>
#include <Servo.h>
#define trigPin1 11
#define echoPin1 12
#define ESP8266_BAUD 9600
int LED = 13;
int IRPin = 7;
long duration, distance, Sensor1;
char auth[] = "tKJWtUy4CNpYS1nanfUN0fzUVWThhQMi";
char ssid[] = "NadzriFam";//wifi id
char pass[] = "Loveispain867";//wifi password
Servo myservo;
SoftwareSerial EspSerial(2,3);
ESP8266 wifi(&EspSerial);
void setup(){
Serial.begin(9600);
myservo.attach(9);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(LED,OUTPUT);
pinMode(IRPin, INPUT);
pinMode(9, OUTPUT);
EspSerial.begin(ESP8266_BAUD);
delay(3000);
Blynk.begin(auth, wifi, ssid, pass);
Blynk.begin(auth, wifi, ssid, pass);
Blynk.email("yeehongchew@gmail.com", "TrashBin", "Online.");
Blynk.notify("Trash Can Online");
}
void loop(){
Blynk.run();
SonarSensor(trigPin1,echoPin1);
Sensor1 = distance;
Serial.println(Sensor1);
if (digitalRead(IRPin) == HIGH){
myservo.write(360);
delay (100);
if( Sensor1 >= 10 || Sensor1 <=0){
Serial.print(Sensor1);
Serial.println("cm");
digitalWrite(LED, LOW);
//delay(500);
}
else{
Serial.println("Rubbish is ready to collect.");
Blynk.email("yeehongchew@gmail.com", "Subject: Blynk TrashBin", "Rubbish is ready to collect.");
Blynk.notify("Rubbish is ready to collect.");
digitalWrite(LED, HIGH);
delay(500);
}
}
else {
myservo.write(-180);
delay(3000);
}
delay(100);
Blynk.virtualWrite(V0,Sensor1);
Blynk.virtualWrite(V1,Sensor1);
}
void SonarSensor(int trigPin,int echoPin) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1; //cm
}