#define BLYNK_TEMPLATE_ID "TMPL6lNQntLHI"
#define BLYNK_TEMPLATE_NAME "Sensor Suhu"
#define BLYNK_AUTH_TOKEN "pxZ9ETKCJncNE7fV8kfc4RzIC35gIy2E"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
DHT dht(23,DHT22);
LiquidCrystal_I2C lcd(0x27,16,2);
BlynkTimer timer;
void setup(){
Serial.begin(115200);
Serial.println("Latihan 4c - elbert j.s");
pinMode(16,OUTPUT);
pinMode(17,OUTPUT);
pinMode(18,OUTPUT);
lcd.init();
lcd.backlight();
dht.begin();
lcd.setCursor(0,0);
lcd.print("Mengukur Suhu....");
delay(2000);
Blynk.begin(BLYNK_AUTH_TOKEN,ssid,pass);
timer.setInterval(2000L,sendSensorData);
}
void sendSensorData(){
noTone(19);
float t=dht.readTemperature();
float h=dht.readHumidity();
if(isnan(h)||isnan(t)){
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
Blynk.virtualWrite(V0,t);
Blynk.virtualWrite(V1,h);
lcd.setCursor(0,0);
if(t<25){
Blynk.virtualWrite(V2,"Dingin");
Blynk.setProperty(V0,"color","0000ff");
Blynk.setProperty(V2,"color","0000ff");
lcd.print("Kondisi: Dingin");
digitalWrite(16,HIGH);
digitalWrite(17,LOW);
digitalWrite(18,LOW);
}
else if(t<30){
Blynk.virtualWrite(V2, "Normal");
Blynk.setProperty(V0,"color","00ff00");
Blynk.setProperty(V2,"color","00ff00");
lcd.print("Kondisi: Normal");
digitalWrite(16,LOW);
digitalWrite(17,HIGH);
digitalWrite(18,LOW);
}
else{
Blynk.setProperty(V0,"color","ff0000");
Blynk.setProperty(V2,"color","ff0000");
if(h<=75){
Blynk.virtualWrite(V2,"Panas");
lcd.print("Kondisi: Panas");
digitalWrite(16,LOW);
digitalWrite(17,LOW);
digitalWrite(18,HIGH);
}
else{
digitalWrite(16,LOW);
digitalWrite(17,LOW);
Blynk.setProperty(V2,"color","#8A9A5B");
Blynk.virtualWrite(V2,"Lembab");
lcd.print("Kondisi: Lembab");
digitalWrite(18,HIGH);
tone(19,1000);
delay(500);
digitalWrite(18,LOW);
noTone(19);
delay(500);
}
}
lcd.setCursor(0,1);
lcd.print("Lembab: "+String(h)+"%");
}
void loop(){
Blynk.run();
timer.run();
}