TEMPAT SAMPAH PINTAR DENGAN SENSOR ULTRASONIK BERBASIS ESP32
Dosen Pengampu : Aminuddin R
Disusun Oleh : 1. Arlisa Wulandari (3.32.20.2.03) 2. Khoirul Hidayat (3.32.20.2.13)Kelas : EK3C
LATAR BELAKANG
Proyek ini dilatar belakangi karena kurangnya kesadaran masyarakat dalam membuang sampah pada tempatnya yang akhirnya dibuang di sembarang tempat, sehingga menjadi masalah serius dalam kehidupan sehari – hari. Untuk meminimalisir permasalahan ini, maka dibuatlah “Tempat Sampah Pintar dengan Sensor Ultrasonik Berbasis ESP32”. Dengan adanya tempat sampah otomatis ini diharapkan mampu membangun ketertarikan masyarakat dalam membuang sampah yang benar. Terciptanya lingkungan yang bersih dan sehat yang pada akhirnya akan menumbuhkan kesadaran masyarakat mengenai pentingnya membuang sampah pada tempatnya.
KOMPONEN YANG DIGUNAKAN
1. Komponen Masukan : Sensor Ultrasonik dan Push Button
2. Komponen Luaran : Motor Servo , LED Merah, LED Hijau,Telegram
CARA KERJA
Tempat sampah otomatis ini akan mendeteksi orang saat datang melalui sensor ultrasonic 1 yang berada didepan tempat sampah, Motor servo akan merespon bergerak menarik tuas sehingga tutup tempat sampah terbuka, led hijau akan menyala dan akan mengirimkan pesan ke bot telegram jika ada seseorang yang membuang sampah. Setelah sensor ultrasonic 1 tidak mendeteksi orang maka akan menutup kembali. Saat tempat sampah didalam penuh ( sensor ultrasonic 2 yang berada pada didalam tutup tempat sampah mendeteksi sampah ) maka motor servo akan tetap berada pada posisi menutup, led merah akan menyala dan akan mengirimkan pesan pada bot telegram jika tempat sampah penuh. Untuk membuka kembali maka perlu menekan push button maka tutup tempat sampah akan terbuka.
POWER POINT PRESENTASI
PROGRAM ARDUINO
//Library CT bot dan Servo
#include "CTBot.h"
#include <ESP32_Servo.h>
//#include <TimerOne.h>
//Deklarasi Variabel
CTBot myBot;
Servo servo;
float durasi1, durasi2, jarak1, jarak2;
//Deklarasi pin Push Button
int button1 = 18;
int buttonState1 = 0;
//Deklarasi pin LED
int LED1 = 2;
int RED1 = 15;
//Deklarasi pin Sensor Ultrasonik
int pinTRIGGER1 = 22;
int pinECHO1 = 23;
int pinTRIGGER2 = 21;
int pinECHO2 = 19;
#define interval1 500
#define interval2 100
#define interval3 5000
#define interval4 10000
unsigned long Sebelum1 = 0;
unsigned long Sebelum2 = 0;
unsigned long Sebelum3 = 0;
unsigned long Sebelum4 = 0;
String ssid = "realme C2" ; // SSID Wifi
String pass = "khoirul25"; // Password Wifi
String token = "5911137707:AAEA70d8Kj6_XrAlii6_kQi8UsoCyXKPCdE" ; //Token Bot Telegram
const int id1 = 1074133593; //id Bot telegram
const int id2 = 2022401204;
void setup() {
Serial.begin(9600); // inisialisasi Serial
Serial.println("Starting TelegramBot...");//Memulai bot telegram
myBot.wifiConnect(ssid, pass); // Menghubungkan ESP32 untuk menjadi access point
myBot.setTelegramToken(token); // set token bot telegram
// Mengecek koneksi
if (myBot.testConnection())
Serial.println("\ntestConnection OK");
else
Serial.println("\ntestConnection NOK");
servo.attach(27);
servo.write(180);
//Sensor Ultrasonik 1 & 2
pinMode(pinTRIGGER1, OUTPUT);
pinMode(pinECHO1, INPUT);
pinMode(pinTRIGGER2, OUTPUT);
pinMode(pinECHO2, INPUT);
//Push Button
pinMode(button1, INPUT_PULLUP);
//Led Merah & Led Hijau
pinMode(LED1, OUTPUT);
digitalWrite(LED1, LOW);
pinMode(RED1, OUTPUT);
digitalWrite(RED1, LOW);
}
void loop() {
buttonState1 = digitalRead(button1);
Ultrasonik1();
Ultrasonik2();
Kondisi_1();
Kondisi_2();
Kondisi_3();
}
//kalibrasi sensor ultrasonik 1
void Ultrasonik1(){
unsigned long Sekarang1 = millis();
if (Sekarang1 - Sebelum1>=interval1) {
digitalWrite(pinTRIGGER1, HIGH);
delayMicroseconds(10);
digitalWrite(pinTRIGGER1, LOW);
durasi1 = pulseIn(pinECHO1, HIGH);
jarak1 = ((durasi1 * 0.034) / 2);
Serial.print("Jarak1= ");
Serial.println(jarak1);
}
}
//Kalibrasi sensor ultrasonik 2
void Ultrasonik2(){
unsigned long Sekarang2 = millis();
if (Sekarang2 - Sebelum2>=interval2) {
digitalWrite(pinTRIGGER2, HIGH);
delayMicroseconds(10);
digitalWrite(pinTRIGGER2, LOW);
durasi2 = pulseIn(pinECHO2, HIGH);
jarak2 = ((durasi2 * 0.034) / 2);
Serial.print("Jarak2= ");
Serial.println(jarak2);
}
}
void Kondisi_1(){
if ((jarak1 >5)&&(jarak2<30)&&(buttonState1==LOW))
{
unsigned long Sekarang3 = millis();
if (Sekarang3 - Sebelum3>=interval3) {
Sebelum3 = Sekarang3;
servo.write(0);
digitalWrite(RED1, LOW);
digitalWrite(LED1, HIGH);
myBot.sendMessage(id1, "Ada orang membuang sampah");//Mengirimkan pesan ke bot telegram
myBot.sendMessage(id2, "Ada orang membuang sampah");//Mengirimkan pesan ke bot telegram
Serial.print("Ada orang membuang sampah");
}
}
else {
servo.write(180);
digitalWrite(RED1, LOW);
digitalWrite(LED1, LOW);
}
}
void Kondisi_2(){
if ((jarak1 < 5)&&(jarak2>30)&&(buttonState1==LOW))
{
servo.write(180);
digitalWrite(RED1, HIGH);
digitalWrite(LED1, LOW);
myBot.sendMessage(id1, "Tempat Sampah Penuh");//Mengirimkan pesan ke bot telegram
myBot.sendMessage(id2, "Tempat Sampah Penuh");//Mengirimkan pesan ke bot telegram
Serial.print("Tempat Sampah Penuh");
}
}
void Kondisi_3(){
if ((jarak1 < 5)&&(jarak2>30)&&(buttonState1==HIGH))
{
unsigned long Sekarang4 = millis();
if (Sekarang4 - Sebelum4>=interval4) {
Sebelum4 = Sekarang4;
servo.write(0);
digitalWrite(RED1, LOW);
digitalWrite(LED1, HIGH);
myBot.sendMessage(id1, "Ambil sampah di Tempat Sampah");//Mengirimkan pesan ke bot telegram
myBot.sendMessage(id2, "Ambil sampah di Tempat Sampah");//Mengirimkan pesan ke bot telegram
Serial.print(" Ambil sampah di Tempat Sampah");
}
}
else {
servo.write(180);
digitalWrite(RED1, LOW);
digitalWrite(LED1, LOW);
}
}
Link Video Link Video Simulasi Alat
Komentar
Posting Komentar