#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();
}