#define BLYNK_PRINT Serial//tambahan
#define BLYNK_TEMPLATE_ID "TMPL6IJ2_rR6c"//tambahan
#define BLYNK_TEMPLATE_NAME "TA01"//tambahan
#define BLYNK_AUTH_TOKEN "qSxJiUytrmHPXzARpFd3kXNaiT6ybkfM"//tambahan
#include <WiFi.h>//tambahan
#include <WiFiClient.h>//tambahan
#include <BlynkSimpleEsp32.h>//tambahan
#include <DHTesp.h>//tambahan
// MENDAFTARKAN LIBRARY SESOR SUHU DTH
#include <DHT.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_GFX.h>
#include <Fonts/FreeSerif9pt7b.h>
#define DHTPIN 4
DHTesp dhtSensor;//tambahan
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define DHTTYPE DHT22
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
DHT dht(DHTPIN, DHTTYPE);
const int relay1=5;
const float GAMMA = 0.7;//tambahan
const float RL10 = 50;//tambahan
//const int DHT_PIN = 15;//tambahan
//DHTesp dhtSensor;//tambahan
char auth[] = BLYNK_AUTH_TOKEN;//tambahan
char ssid[] = "Wokwi-GUEST";//tambahan
char pass[] = "";//tambahan
BlynkTimer timer;
void sendSensor()//tambahan
{
int analogValue = analogRead(35);//tambahan
float voltage = analogValue * 5/4095.0;//tambahan
float resistance = 2000 * voltage / (1-voltage/5);//tambahan
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1/GAMMA));//tambahan
Serial.print ("Lux: ");//tambahan
Serial.println(lux);//tambahan
Blynk.virtualWrite(V13, lux);//tambahan
//koding sensor temperatur dan kelembapan
TempAndHumidity data = dhtSensor.getTempAndHumidity();//tambahan
Serial.println("Temp: " + String(data.temperature, 2) + "°C");//tambahan
Serial.println("Humidity: " + String(data.humidity, 1) + "%");//tambahan
Serial.println("---");//tambahan
Blynk.virtualWrite(V0, data.temperature);//tambahan
Blynk.virtualWrite(V4, data.humidity); //tambahan
}
void setup() {
// put your setup code here, to run once:
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);//tambahan
Blynk.begin(auth,ssid,pass);//tambahan
timer.setInterval(1L, sendSensor);//tambahan
Serial.begin(115200);
dht.begin();
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
Serial.println("Kontrol relay dengan sensor suhu");
pinMode(relay1, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
Blynk.run();//tambahan
timer.run();//tambahan
display.setFont(&FreeSerif9pt7b);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(0, 40);
float suhu = dht.readTemperature();
if (suhu > 25){
digitalWrite(relay1, HIGH);
delay(1000);
Serial.println("Suhu Ruangan Panas: ");
Serial.print(suhu);
Serial.println(" C");
display.println(suhu);
display.display();
}else {
digitalWrite(relay1, LOW);
delay(1000);
Serial.println("Suhu Ruangan : Dingin ");
Serial.print(suhu);
Serial.println(" C");
display.println(suhu);
display.display();
}
}