Smart Trash Bin Automation
Make a simplified table trash bin and can.
Components and supplies
1
Arduino UNO
1
Breadboard (generic)
1
SG90 Micro-servo motor
2
Ultrasonic Sensor - HC-SR04 (Generic)
16
Jumper wires (generic)
1
ESP8266 ESP-01
Tools and machines
1
Tape, Electrical
1
Hot glue gun (generic)
Apps and platforms
1
Blynk
1
Arduino IDE
Project description
Code
my Code
arduino
1#define BLYNK_PRINT Serial // Blynk 2#include <ESP8266WiFi.h> // WIFI 3#include <BlynkSimpleEsp8266.h> 4#include<Servo.h> //Servo SG90 5char auth[] = "483e2a27dc3b4fdcb5108b*******"; // token 6char ssid[] = "J**** Sidh***"; // SSID WIFI 7char pass[] = "190****"; // PASSWORD WIFI 8Servo servo; 9#define trigPin 13 //Ultrasonic1 10#define echoPin 12 //Ultrasonic1 11#define trigPin2 5 //Ultrasonic2 12#define echoPin2 4 //Ultrasonic2 13#define LED 2 //LED WIFI 14#define BLYNK_MAX_SENDBYTES 256 //256 Bytes 15 16void setup() 17{ 18 Serial.begin (9600); 19 pinMode(trigPin, OUTPUT); //Ultrasonic1 20 pinMode(echoPin, INPUT); //Ultrasonic1 21 pinMode(trigPin2, OUTPUT); //Ultrasonic2 22 pinMode(echoPin2, INPUT); //Ultrasonic2 23 pinMode(LED, OUTPUT); //LED 24 servo.attach(16); //Servo 25 Blynk.begin(auth, ssid, pass); 26 Blynk.email("josie**************@gmail.com", "TrashBin", "Online."); // Test Online Email Sent 27 Blynk.notify("Tong Sampah Sudah Online"); //Notify Trash Online 28 servo.write(210); // Starting Position Servo 29} 30void loop() 31{ 32 Blynk.run(); 33 34 //Ultrasonic1 35 long duration, distance; 36 digitalWrite(trigPin, LOW); 37 delayMicroseconds(2); 38 digitalWrite(trigPin, HIGH); 39 delayMicroseconds(10); 40 digitalWrite(trigPin, LOW); 41 duration = pulseIn(echoPin, HIGH); 42 distance = (duration/2) / 29.1; 43 Blynk.virtualWrite(V1, distance); //Level 44 //Ultrasonic1 45 46 //Ultrasonic2 47 long duration2, distance2; 48 digitalWrite(trigPin2, LOW); 49 delayMicroseconds(2); 50 digitalWrite(trigPin2, HIGH); 51 delayMicroseconds(10); 52 digitalWrite(trigPin2, LOW); 53 duration2 = pulseIn(echoPin2, HIGH); 54 distance2 = (duration2/2) / 29.1; 55 Blynk.virtualWrite(V2, distance2); //Level 56 //Ultrasonic2 57 58 // Open Automation 59 if (distance >= 30 || distance <= 0) //Condition when trash open and close automatically 60 { 61 Serial.println("Out of range"); 62 servo.write(210); //menutup 63 if (distance2 >= 6 || distance2 <= 0) //Condition When Trash close reading full or not 64 { 65 Serial.print(distance2); 66 Serial.println(" cm2"); 67 digitalWrite(LED, HIGH); 68 delay(500); 69 } 70 else 71 { 72 digitalWrite(LED, LOW); 73 delay(3000); 74 Serial.println("FULL"); 75 Blynk.email("jo********@gmail.com", "Subject: TrashBin", "Full"); //if trash full will sending you email every 15minutes 76 Blynk.notify("Hey, Tong Sampah Penuh Segera Dikosongkan"); //Notify if trash full with blynk 77 } 78 } 79 else 80 { 81 Serial.print(distance); 82 Serial.println(" cm"); 83 servo.write(60); //Open trash 84 delay(5000); //Delay open trash 85 } 86 delay(500); //Reading hands 87} 88//Open Automation 89 90 //Open Manually 91 BLYNK_WRITE(V3) 92 { 93 servo.write(param.asInt());//open 94 delay(5000); 95 } 96 BLYNK_WRITE(V5) 97 { 98 servo.write(param.asInt()); 99 delay(5000); 100 } 101 //Open Manually 102
my Code
arduino
1#define BLYNK_PRINT Serial // Blynk 2#include <ESP8266WiFi.h> 3 // WIFI 4#include <BlynkSimpleEsp8266.h> 5#include<Servo.h> 6 //Servo SG90 7char auth[] = "483e2a27dc3b4fdcb5108b*******"; 8 // token 9char ssid[] = "J**** Sidh***"; // SSID WIFI 10char pass[] = "190****"; 11 // PASSWORD WIFI 12Servo servo; 13#define trigPin 13 //Ultrasonic1 14#define 15 echoPin 12 //Ultrasonic1 16#define trigPin2 5 //Ultrasonic2 17#define echoPin2 18 4 //Ultrasonic2 19#define LED 2 //LED WIFI 20#define BLYNK_MAX_SENDBYTES 256 21 //256 Bytes 22 23void setup() 24{ 25 Serial.begin (9600); 26 pinMode(trigPin, 27 OUTPUT); //Ultrasonic1 28 pinMode(echoPin, INPUT); //Ultrasonic1 29 30 pinMode(trigPin2, OUTPUT); //Ultrasonic2 31 pinMode(echoPin2, INPUT); //Ultrasonic2 32 33 pinMode(LED, OUTPUT); //LED 34 servo.attach(16); //Servo 35 36 Blynk.begin(auth, ssid, pass); 37 Blynk.email("josie**************@gmail.com", 38 "TrashBin", "Online."); // Test Online Email Sent 39 Blynk.notify("Tong Sampah 40 Sudah Online"); //Notify Trash Online 41 servo.write(210); // Starting Position 42 Servo 43} 44void loop() 45{ 46 Blynk.run(); 47 48 //Ultrasonic1 49 50 long duration, distance; 51 digitalWrite(trigPin, LOW); 52 delayMicroseconds(2); 53 54 digitalWrite(trigPin, HIGH); 55 delayMicroseconds(10); 56 57 digitalWrite(trigPin, LOW); 58 duration = pulseIn(echoPin, HIGH); 59 distance 60 = (duration/2) / 29.1; 61 Blynk.virtualWrite(V1, distance); //Level 62 //Ultrasonic1 63 64 65 //Ultrasonic2 66 67 long duration2, distance2; 68 digitalWrite(trigPin2, LOW); 69 70 delayMicroseconds(2); 71 digitalWrite(trigPin2, HIGH); 72 delayMicroseconds(10); 73 74 digitalWrite(trigPin2, LOW); 75 duration2 = pulseIn(echoPin2, 76 HIGH); 77 distance2 = (duration2/2) / 29.1; 78 Blynk.virtualWrite(V2, distance2); 79 //Level 80 //Ultrasonic2 81 82 // Open Automation 83 if (distance >= 84 30 || distance <= 0) //Condition when trash open and close automatically 85 86 { 87 Serial.println("Out of range"); 88 servo.write(210); //menutup 89 90 if (distance2 >= 6 || distance2 <= 0) //Condition When Trash close reading 91 full or not 92 { 93 Serial.print(distance2); 94 Serial.println(" 95 cm2"); 96 digitalWrite(LED, HIGH); 97 delay(500); 98 } 99 else 100 101 { 102 digitalWrite(LED, LOW); 103 delay(3000); 104 Serial.println("FULL"); 105 106 Blynk.email("jo********@gmail.com", "Subject: TrashBin", "Full"); //if 107 trash full will sending you email every 15minutes 108 Blynk.notify("Hey, 109 Tong Sampah Penuh Segera Dikosongkan"); //Notify if trash full with blynk 110 } 111 112 } 113 else 114 { 115 Serial.print(distance); 116 Serial.println(" cm"); 117 118 servo.write(60); //Open trash 119 delay(5000); //Delay open trash 120 121 } 122 delay(500); //Reading hands 123} 124//Open Automation 125 126 //Open Manually 127 128 BLYNK_WRITE(V3) 129 { 130 servo.write(param.asInt());//open 131 delay(5000); 132 133 } 134 BLYNK_WRITE(V5) 135 { 136 servo.write(param.asInt()); 137 delay(5000); 138 139 } 140 //Open Manually 141
Downloadable files
untitled1_UKYimgh4rG.png
untitled1_UKYimgh4rG.png

untitled1_UKYimgh4rG.png
untitled1_UKYimgh4rG.png

Documentation
Part that i use
Part that i use

Comments
Only logged in users can leave comments