#define BLYNK_TEMPLATE_ID "TMPL6zDFi5SJb"
#define BLYNK_DEVICE_NAME "PROJEK GEDEN"
#define BLYNK_AUTH_TOKEN "zqEUKrlVUsjtMAOCaMEsq0VZf7-i2IbN"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#define LDR_PIN 34
#define LED1 12
#define PIR_PIN 15
#define Buzzer 2
LiquidCrystal_I2C lcd(0x27, 16, 2);
// LDR Characteristics
const float gama = 0.7;
const float rl10 = 50;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";//nama hospot yg digunakan
char pass[] = "";//password hospot
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(LDR_PIN, INPUT);
pinMode(PIR_PIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(Buzzer, OUTPUT);
lcd.init(); // Inisialisasi LCD
lcd.backlight(); // Nyalakan backlight LCD
}
void loop(){
//LDR SENSOR
int nilaiLDR = analogRead(LDR_PIN);
nilaiLDR = map(nilaiLDR, 4095, 0, 1024, 0); //mengubah nilai pembacaan sensor LDR dari nilai ADC arduino menjadi nilai ADC ESP32
float voltase = nilaiLDR / 1024.*5;
float resistansi = 2000 * voltase / (1 - voltase / 5);
float lux = pow(rl10 * 1e3 * pow(10, gama) / resistansi, (1 / gama));
Blynk.virtualWrite(V0, lux);
lcd.setCursor(1, 0);
lcd.print("Cahaya ");
if (lux < 300) { // If the LDR value is lower than 200
digitalWrite(LED1, HIGH); // Turn buildin LED on
lcd.print("Gelap!!");
}
else {
digitalWrite(LED1, LOW); // Turn buildin LED off
lcd.print("Terang!!");
}
Serial.print("Kecerahan: ");
Serial.println(lux);
delay(1000); // Pause 1000ms
//SENSOR PIR
lcd.setCursor(0, 1);
int pirValue = digitalRead(PIR_PIN);
if (pirValue == HIGH) {
Serial.println("Gerakan Terdeteksi");
lcd.print("Gerakan Terdeteksi");
digitalWrite(Buzzer, HIGH);
delay(5000);
}
else {
digitalWrite(Buzzer, LOW);
Serial.println("Tak ada Gerakan!");
lcd.print("Tak ada Gerakan!");
}
delay(1000);
}