#define BLYNK_TEMPLATE_ID "TMPL6NxIcF8Ba"
#define BLYNK_TEMPLATE_NAME "DHTLDR"
#define BLYNK_AUTH_TOKEN "Q3ji8kNhlqEieDtjTK3RjFDAnNLIuX3A"

#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHT.h"

#define DHTPIN 15         
#define DHTTYPE DHT22     
#define LDR_PIN 34        

DHT dht(DHTPIN, DHTTYPE);

char ssid[] = "Wokwi-GUEST";
char pass[] = "";

#define BLYNK_Suhu     V0
#define BLYNK_LDR      V1
#define BLYNK_Alarm    V2

void setup() {
  Serial.begin(115200);
  Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
  dht.begin();
}

void loop() {
  Blynk.run();

  float suhu = dht.readTemperature(); 
  int adcValue = analogRead(LDR_PIN); 
  double ldr_lux = ((4063.0 - adcValue) / (4063.0 - 32.0)) * 100000.0;
  ldr_lux = constrain(ldr_lux, 0.0, 100000.0);
  bool alarm = suhu > 40;    

  char lux_str[20];
  sprintf(lux_str, "%.2f", ldr_lux);       

  Blynk.virtualWrite(BLYNK_Suhu, suhu);
  Blynk.virtualWrite(BLYNK_LDR, lux_str);
  Blynk.virtualWrite(BLYNK_Alarm, alarm);

  delay(2000); 
}