Translate

SMART TRASH BIN ARDUINO (Tempat Sampah Pintar Buka Otomatis) Sensor PIR dan HC-SRF04

SMART TRASH BIN ARDUINO (Tempat Sampah Pintar Buka Otomatis) Sensor PIR dan HC-SRF04


         Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa digunakan untuk membantu orang untuk membuang sampah, jadi alat ini adalah sebuah tong sampah atau tempat sampah yang bisa membuka secara otomatis ketika ada orang yang lewat, jadi orang yang akan membuang sampah tidak perlu repot untuk membukanya. alat ini menggunakan sensor pir dan HC-SRF04 sebagai kendali atap tong sampahnya, jika penuh sampahnya maka akan membunyikan buzzer. alat ini juga dilengkapi sensor DHT11 yang akan memonitor suhu dan kelembaban tong sampahnya. untuk lebih jelasnya berikut adalah skema dan programnya.  




a. Arduino Uno




b. Sensor PIR




c. Sensor Jarak HC-SRF04




d. LCD + I2C




e. Sensor Suhu dan Kelembaban DHT11







f. Program Arduino IDE

#include <Servo.h>
#include <Wire.h>  // i2C Conection Library
#include "DHT.h"
#include <LiquidCrystal_I2C.h>  //i2C LCD Library
LiquidCrystal_I2C lcd(0x3F, 16, 2); //library i2c lcd

#define DHTPIN 2    // what digital pin we're connected to
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

#define trigPin 4
#define echoPin 3

Servo myservo; 
long duration, distance;
int dataadc;
int buzzer = 10;

void setup() {
  dht.begin();
  myservo.attach(9);
  lcd.begin(); //set lcd i2c
  lcd.noCursor(); //biar gak ada cursor di lcd
  lcd.clear(); //clear lcd
  myservo.write(65); //menutup tutup tempat sampah
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(buzzer,OUTPUT);
}


void loop() {

 float h = dht.readHumidity();
 float t = dht.readTemperature();
 float f = dht.readTemperature(true);

 int hum = h;
 int suhu = t;

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  float hif = dht.computeHeatIndex(f, h);
  float hic = dht.computeHeatIndex(t, h, false);

  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;
  
  dataadc = analogRead(A0);

lcd.setCursor(0,0); 
lcd.print(distance);
lcd.print(" ");
lcd.print(dataadc);
lcd.print("       ");

lcd.setCursor(0,1); 
lcd.print("H=");
lcd.print(hum);
lcd.print(" / S=");
lcd.print(suhu);


if(dataadc > 100){
myservo.write(150); //buka
delay(5000);  
myservo.write(65); //tutup
}

if(distance < 10)
{

lcd.setCursor(9,0); 
lcd.print(" PENUH       ");
  
digitalWrite(buzzer,HIGH);
}

if(distance > 10)
{

lcd.setCursor(9,0); 
lcd.print(" KOSONG     ");
  
digitalWrite(buzzer,LOW);
}

delay(200);

}






g. VIDEO HASILNYA










No comments:

Post a Comment