#define BLYNK_TEMPLATE_ID "TMPL6icFVpxli"
#define BLYNK_TEMPLATE_NAME "Monitoring suhu ruang budidaya jamur"
#define BLYNK_AUTH_TOKEN "GjT-dqODOOahBEQh3a2nwhbW38blfKAL"
#define BLYNK_PRINT Serial
//Library
#include "DHT.h";
#define DHTPIN 5
#define DHTTYPE 22
DHT dht(DHTPIN, DHTTYPE);
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char auth[] = "GjT-dqODOOahBEQh3a2nwhbW38blfKAL";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
const int blower = 4;
const int selenoid = 2;
int manblower;
int manselenoid;
int statusblower;
int statusselenoid;
//Kontrol Blower Blynk
BLYNK_WRITE(V2){
manblower = param.asInt();
if(manblower == 1){
statusblower = 1;
}else {
statusblower = 0;
}
}
//Kontrol Selenoid Blynk
BLYNK_WRITE(V3){
manselenoid = param.asInt();
if(manselenoid == 1){
statusselenoid = 1;
}else {
statusselenoid = 0;
}
}
BlynkTimer timer;
void setup() {
Serial.begin(115200);
pinMode(selenoid, OUTPUT);
pinMode(blower, OUTPUT);
dht.begin();
timer.setInterval(2500L, sendSensor);
}
void loop() {
Blynk.run();
timer.run();
}
void sendSensor() {
float t = dht.readTemperature();
float h = dht.readHumidity();
Serial.print("Temperature : ");
Serial.print(t);
Serial.print(" Humidity : ");
Serial.println(h);
//Apabila suhu tinggi
if (t >= 28) {
digitalWrite(blower, LOW);
digitalWrite(selenoid, HIGH);
statusblower = 0;
statusselenoid = 1;
Serial.println("Suhu ruangan tinggi, selenoid akan menyala");
}
//Apabila suhu stabil
else if (t == 27) {
digitalWrite(blower, LOW);
digitalWrite(selenoid, LOW);
statusblower = 0;
statusselenoid = 1;
Serial.println("Suhu ruangan sudah stabil");
}
//Apabila suhu rendah
else if (t <= 26) {
digitalWrite(blower, HIGH);
digitalWrite(selenoid, LOW);
statusblower = 1;
statusselenoid = 0;
Serial.println("Suhu ruangan rendah, blower akan menyala");
}
//Mengirimkan nilai ke Blynk
Blynk.virtualWrite(V0, t);
Blynk.virtualWrite(V1, h);
Blynk.virtualWrite(V2, statusblower);
Blynk.virtualWrite(V3, statusselenoid);
delay(2000);
}