#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 12
#define DHTTYPE DHT22
#define TRIG 6 //output
#define ECHO 7 //input
LiquidCrystal_I2C lcd(0x27,16,2);
DHT dht(DHTPIN, DHTTYPE);
long duration, cm;
void setup() {
// put your setup code here, to run once:
dht.begin();
lcd.init();
lcd.backlight();
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
// lcd.setCursor(0,0);
// lcd.print("Halo");
// lcd.setCursor(0,1);
// lcd.print("Hai");
}
void loop() {
// put your main code here, to run repeatedly:
int pot = analogRead(A0);
int ldr = analogRead(A1);
int hasilUkur = jarak(TRIG, ECHO);
float temp = dht.readTemperature();
float hum = dht.readHumidity();
lcd.setCursor(0,0);
lcd.print("p: ");
lcd.print(pot);
// lcd.clear();
lcd.print(" ");
lcd.print("|");
// lcd.setCursor(0,1);
lcd.print("l: ");
lcd.print(ldr);
// lcd.clear();
lcd.print(" ");
jarak(TRIG, ECHO);
// lcd.setCursor(0,0);
// lcd.print("temp: ");
// lcd.print(temp);
// // lcd.clear();
// lcd.print(" ");
// lcd.setCursor(0,1);
// lcd.print("hum: ");
// lcd.print(hum);
// // lcd.clear();
// lcd.print(" ");
// lcd.setCursor(0,1);
// lcd.print("hum: ");
// lcd.print(hum);
// // lcd.clear();
// lcd.print(" ");
lcd.setCursor(0,1);
lcd.print("jarak: ");
lcd.print(hasilUkur);
// lcd.clear();
lcd.print(" ");
if(hasilUkur > 50){
digitalWrite(13, LOW);
digitalWrite(12, HIGH);
} else if(hasilUkur > 100){
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
} else if(hasilUkur > 150){
digitalWrite(13, HIGH);
digitalWrite(12, HIGH);
}
}
int jarak(int trig, int echo){
digitalWrite(trig, LOW);
delayMicroseconds(2);
digitalWrite(trig, HIGH);
delayMicroseconds(5);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
// return cm = duration / 29 / 2;
return cm = duration * 0.0343 / 2;
}