//alamat Blynk
#define BLYNK_TEMPLATE_ID "TMPL6CI7CG2I0"
#define BLYNK_TEMPLATE_NAME "Esp32 Sensor DHT22"
#define BLYNK_AUTH_TOKEN "1nRxd91Aw_LzydV2q7jGcnjsaP4s2ko9"
#define BLYNK_PRINT Serial
//Library
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
#define DHTPIN 27 // Pin Yang Digunakan
#define DHTTYPE DHT22 // DHT 22
#define LED 19
DHT dht(DHTPIN, DHTTYPE); // membuat objek dht
const float GAMMA=0.7;
const float RL10=50;
BlynkTimer timer;
void setup(){
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
pinMode(LED, OUTPUT);
dht.begin();
timer.setInterval(2500L, sendSensor);
}
void loop(){
Blynk.run();
timer.run();
}
void sendSensor(){
float h = dht.readHumidity();
float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
if (isnan(h) || isnan(t)) {
Serial.println("Gagal membaca dari sensor DHT!");
return;
}
// untuk Mengkonversi nilai LDR menjadi satuan Cahaya
int analogValue=analogRead(34);
float voltage = analogValue / 4096. * 3.3;
float resistance = 3000 * voltage / (1 - voltage / 3.3);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
//virtual pin yang digunakan pada blynk
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V2,lux);
//Menampilkan nilai Lux pada serial monitor
Serial.print("LUX : ");
Serial.print(lux);
Serial.println("");//enter jarak
//Menampilkan nilai Suhu pada serial monitor
Serial.print("Suhu : ");
Serial.print(t);
Serial.println("");// enter jarak
//Menampilkan nilai Kelembaban pada serial monitor
Serial.print("Kelembaban : ");
Serial.println(h);
//perintah if jika nilai kelembaban lebih dari 50 maka led akan hidup jika dibawah 50 maka led akan mati
if (h>50){
digitalWrite(19, HIGH);
}
else{
digitalWrite(19, LOW);
}
}