#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLOEcmpNMh"
#define BLYNK_DEVICE_NAME "Smart"
#define BLYNK_AUTH_TOKEN "KXn2vN4q4-iwbxZeeB_ywaNEHH75pHCo"
#define LED1 12 //Lampu
#define LED2 14 //Heater
#define LED3 13 //Nozel
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include "DHTesp.h"
const int DHT_PIN = 15;
DHTesp dhtSensor;
const float GAMMA = 0.7;
const float RL10 = 50;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void sendSensor() {
}
void setup()
{
Serial.begin(115200);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
timer.setInterval(1L, sendSensor);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
int analogValue = analogRead(36);
float voltage = analogValue * 5/4095.0;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("Lux: ");
Serial.println(lux);
Blynk.virtualWrite(V3, lux);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");
Blynk.virtualWrite(V0, data.temperature);
Blynk.virtualWrite(V1, data.humidity);
sendSensor();
Blynk.run();
timer.run();
if (lux >= 60){
Serial.print("Status: ");
digitalWrite(LED1, LOW);
Serial.println("Terang");
Blynk.virtualWrite(V4, "lampu Mati");
}
else {
Serial.print("Status: ");
digitalWrite(LED1, HIGH);
Serial.println("Gelap");
Blynk.virtualWrite(V4, "lampu Nyala");
delay(100);
}
if (data.temperature >= 28){
Serial.print("Status: ");
digitalWrite(LED2, LOW);
Serial.println("Panas");
Blynk.virtualWrite(V5, "Heater OFF");
delay(100);
}
else {
Serial.print("Status: ");
digitalWrite(LED2, HIGH);
Serial.println("Dingin");
Blynk.virtualWrite(V5, "Heater ON");
delay(100);
}
if (data.humidity >= 70){
Serial.print("Status: ");
digitalWrite(LED3, HIGH);
Serial.println("Lembab");
Blynk.virtualWrite(V6, "Kipas ON");
}
else {
Serial.print("Status: ");
digitalWrite(LED3, LOW);
Serial.println("Kering");
Blynk.virtualWrite(V6, "Kipas OFF");
}
}