#define BLYNK_TEMPLATE_ID "TMPL6t3OghLv1"
#define BLYNK_TEMPLATE_NAME "kontrol Suhu dan Kelembaban"
#define BLYNK_AUTH_TOKEN "DjUAAnQx2cODdPlktU0Oq-vKgC6zXTOj"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <ESP32Servo.h>
#include <Wire.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
Servo servo;
#define BLYNK_PRINT Serial
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
float t;
float h;
int Alarm = 12;
int Heater = 14;
void setup(){
pinMode(Heater, OUTPUT);
servo.attach(13);
analogReadResolution(10);
pinMode(32,INPUT);
pinMode(Alarm, OUTPUT);
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
}
void loop(){
delay(2000);
float t=dht.readTemperature();
float h=dht.readHumidity();
if (t>=70){
tone(Alarm, 20);
Blynk.virtualWrite(V4, HIGH);
}
else{
noTone(Alarm);
Blynk.virtualWrite(V4, LOW);
}
if (h>=50){
digitalWrite(Heater, HIGH);
Blynk.virtualWrite(V3, HIGH);
}
else{
digitalWrite(Heater, LOW);
Blynk.virtualWrite(V3, LOW);
}
Serial.print("Suhu Cellar: ");
Serial.print(t);
Serial.print(" ℃ | ");
Blynk.virtualWrite(V0, t);
Serial.print("Kelembapan Cellar: ");
Serial.print(h);
Serial.println(" %\t");
Blynk.virtualWrite(V1, h);
const float BETA = 3950; // should match the Beta Coefficient of the thermistor
int analogValue = analogRead(32);
float celsius = 1 / (log(1 / (1023. / analogValue - 1)) / BETA + 1.0 / 298.15) - 273.15;
if (celsius>=35){
servo.write(360);
Blynk.virtualWrite(V5, HIGH);
}
else{
servo.write(0);
Blynk.virtualWrite(V5, LOW);
}
Serial.print("Suhu Gardu: ");
Serial.print(celsius);
Serial.println(" ℃");
Serial.println();
Blynk.virtualWrite(V2, celsius);
delay(1000);
}