#define BLYNK_PRINT Serial

#define BLYNK_TEMPLATE_ID "TMPL6FJF67jdW"
#define BLYNK_TEMPLATE_NAME "Sensor Suhu"
#define BLYNK_AUTH_TOKEN "lBrgBy9IS-Ar44HlufInMMzPqYphwq_b"

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

#include "DHTesp.h" // Diimport Library Sensor DHT
#define DHTPIN 15 // Variable DHTPIN diberi nilai 15
#define DHTTYPE DHT22
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

int  Heater = 33;
int AirConditioning = 25;
const int DHT_PIN = 15;
DHTesp dhtSensor;

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

BlynkTimer timer;

void setup() {
  pinMode (Heater, OUTPUT);
  pinMode (AirConditioning, OUTPUT);
  lcd.init();
  lcd.backlight();
  dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
  Blynk.begin(auth, ssid, pass);  
  timer.setInterval(1000L, sensor_suhu);
}

void sensor_suhu(){
  delay (500);
  TempAndHumidity data = dhtSensor.getTempAndHumidity();
    lcd.setCursor (0, 0);
    lcd.print ("Suhu = ");
    lcd.setCursor (8, 0);
    lcd.print (data.temperature);
    lcd.setCursor (0, 1);
    lcd.print ("Kelembaban = ");
    lcd.setCursor (13, 1);
    lcd.print (data.humidity);
    Blynk.virtualWrite(V0, data.temperature); 
    Blynk.virtualWrite(V1, data.humidity);

  if (data.temperature < 20){
    digitalWrite (Heater, HIGH);
    digitalWrite (AirConditioning, LOW); 
    Blynk.virtualWrite(V2, "AC OFF, Heater ON" );
    Blynk.virtualWrite(V3, "Kondisi Udara Dingin" );    
  }
  if (data.temperature > 20 && data.temperature < 26){
    digitalWrite (Heater, LOW);
    digitalWrite (AirConditioning, LOW); 
    Blynk.virtualWrite(V2, "AC OFF, Heater OFF" );
    Blynk.virtualWrite(V3, "Kondisi Udara Normal" );   
  }
  if (data.temperature > 26){
    digitalWrite (Heater, LOW);
    digitalWrite (AirConditioning, HIGH);
    Blynk.virtualWrite(V2, "AC ON, Heater OFF" );
    Blynk.virtualWrite(V3, "Kondisi Udara Panas" );
  }
}

void loop() {
  Blynk.run();
  timer.run();
  sensor_suhu();  
}
NOCOMNCVCCGNDINLED1PWRRelay Module
NOCOMNCVCCGNDINLED1PWRRelay Module