#define BLYNK_TEMPLATE_ID "TMPL6E51wacmV"
#define BLYNK_TEMPLATE_NAME "Wokwi to Blynk Test 1"
#define BLYNK_AUTH_TOKEN "dW4NoB2U4UAtzI7JLtT56CXq7_Bfbe5Y"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
LiquidCrystal_I2C lcd(0x27, 16, 2);
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void sendSensor(){
float t= dht.readTemperature();
float h= dht.readHumidity();
Blynk.virtualWrite(V0, h);
Blynk.virtualWrite(V1, t);
}
BLYNK_WRITE(V3) {
int pinValue = param.asInt();
float t = dht.readTemperature();
float h = dht.readHumidity();
if (t >= 38) {
Serial.print("Level Kesehatan Cuaca : ");
Serial.println(pinValue);
}
if (t <= 38) {
Serial.print("Level Kesehatan Cuaca : ");
Serial.println(pinValue);
}
}
BLYNK_WRITE(V2)
{
lcd.init();
lcd.backlight();
Serial.begin(115200);
dht.begin();
pinMode(22, OUTPUT);
float t = dht.readTemperature();
float h = dht.readHumidity();
lcd.setCursor(0,0); // Mengatur kursor layar LCD ke baris 1, kolom 1
lcd.print("Temp : ");
lcd.print(t);
lcd.print((char)223); // Menampilkan simbol derajat Celsius
lcd.print("C");
lcd.setCursor(0,1); // Mengatur kursor layar LCD ke baris 2, kolom 1
lcd.print("Humid : ");
lcd.print(h);
lcd.print("%");
if (h >= 45 && h <= 65) {
Serial.println("Kelembapan Normal");
delay(1000);
}
if (h <= 44) {
Serial.println("Kelembapan Udara Rendah");
delay(1000);
}
if (h >= 66) {
Serial.println("Kelembapan Udara Tinggi");
delay(1000);
}
if (t >= 39) {
digitalWrite(12, HIGH);
Serial.println("Suhu Terlalu Panas");
delay(1000);
digitalWrite(12, LOW);
}
if (t >= 18 && t <= 38) {
digitalWrite(32, HIGH);
Serial.println("Suhu Normal");
delay(1000);
digitalWrite(32, LOW);
}
if (t <= 17) {
digitalWrite(33, HIGH);
Serial.println("Suhu Dingin");
delay(1000);
digitalWrite(33, LOW);
}
}
void setup()
{
Serial.begin(115200);
pinMode(12, OUTPUT);
pinMode(32, OUTPUT);
pinMode(33, OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
dht.begin();
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run(); // Memproses permintaan Blynk
timer.run(); // Menjalankan timer
}