#define BLYNK_TEMPLATE_ID "TMPL4Q6RWZtER"
#define BLYNK_TEMPLATE_NAME "Esp32 ile Uygulama"
#define BLYNK_AUTH_TOKEN "vn2uaK29pGRzglgmrD1T9-QxoJJZAD8k"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h> //Library DHT
char auth[] = BLYNK_AUTH_TOKEN ; //Auth Token
char ssid[] = "Wokwi-GUEST"; // Wifi SSID
char pass[] = ""; //password hotspot
const int DHT_PIN = 15;
int value0, value1, value2, value3, value6;
byte LED_R = 26;
byte LED_Y = 27;
byte LED_G = 14;
byte LED_B = 12;
/*
byte BTN_R = 35;
byte BTN_Y = 32;
byte BTN_G = 33;
byte BTN_B = 25;
*/
const int buttonPinY = 21;
const int buttonPinS = 19;
int buttonStateY = 1;
int buttonStateS = 1;
DHTesp dht;
BlynkTimer timer;
//sıcaklık ve nem değeri okuma fonksiyonu
void sendSensor()
{
TempAndHumidity data = dht.getTempAndHumidity();
//serial monitörde değerleri gösterme
Serial.print("Sıcaklık: ");
Serial.print(data.temperature);
Serial.println("°C ");
Serial.print("Nem: ");
Serial.print(data.humidity);
Serial.println("% ");
Blynk.virtualWrite(V4, data.temperature);//Sıcaklık verisini sanal pin V4 üzerinden Blynk Cloud’a göndermek
Blynk.virtualWrite(V5, data.humidity); //Nem verisini sanal pin V5 üzerinden Blynk Cloud’a göndermek
}
BLYNK_WRITE(V0)
{
value0 = param.asInt();
digitalWrite(LED_R, value0);
Blynk.virtualWrite(V0, value0);
cekAllLed();
}
BLYNK_WRITE(V1)
{
value1 = param.asInt();
digitalWrite(LED_Y, value1);
Blynk.virtualWrite(V1, value1);
cekAllLed();
}
BLYNK_WRITE(V2)
{
value2 = param.asInt();
digitalWrite(LED_G, value2);
Blynk.virtualWrite(V2, value2);
cekAllLed();
}
BLYNK_WRITE(V3)
{
value3 = param.asInt();
digitalWrite(LED_B, value3);
Blynk.virtualWrite(V3, value3);
cekAllLed();
}
BLYNK_WRITE(V6)
{
value6 = param.asInt();
digitalWrite(LED_R, value6);
//Blynk.virtualWrite(V7, value6);
Blynk.virtualWrite(V0, value6);
digitalWrite(LED_Y, value6);
//Blynk.virtualWrite(V8, value6);
Blynk.virtualWrite(V1, value6);
digitalWrite(LED_G, value6);
//Blynk.virtualWrite(V9, value6);
Blynk.virtualWrite(V2, value6);
digitalWrite(LED_B, value6);
//Blynk.virtualWrite(V10, value6);
Blynk.virtualWrite(V3, value6);
}
void cekAllLed(){
if(value0 == 1 && value1 == 1 && value2 == 1 && value3 == 1){
Blynk.virtualWrite(V6, 1);
}
else{
Blynk.virtualWrite(V6, 0);
}
// if(value0 == 0 && value1 == 0 && value2 == 0 && value3 == 0){
// Blynk.virtualWrite(V6, 0);
// }
}
void setup()
{
// Debug console
Serial.begin(115200);
dht.setup(DHT_PIN, DHTesp::DHT22);
pinMode(LED_R, OUTPUT);
pinMode(LED_Y, OUTPUT);
pinMode(LED_G, OUTPUT);
pinMode(LED_B, OUTPUT);
/*
pinMode(BTN_R, INPUT);
pinMode(BTN_Y, INPUT);
pinMode(BTN_G, INPUT);
pinMode(BTN_B, INPUT);
*/
pinMode(buttonPinY, INPUT);
pinMode(buttonPinS, INPUT);
Blynk.begin(auth, ssid, pass); //Blynk başlama
timer.setInterval(1000, sendSensor); //1000ms de bir veri gönderimi için zamanlayıcıyı etkinleştirme
}
void loop()
{
buttonStateY = digitalRead(buttonPinY);
if (buttonStateY == LOW) { //Yeşil butona basılırsa hepsini yak
Blynk.virtualWrite(V6, 1);
Blynk.virtualWrite(V0, 1);digitalWrite(LED_R, HIGH);
Blynk.virtualWrite(V1, 1);digitalWrite(LED_Y, HIGH);
Blynk.virtualWrite(V2, 1);digitalWrite(LED_G, HIGH);
Blynk.virtualWrite(V3, 1);digitalWrite(LED_B, HIGH);
//Serial.print("yeşil");
}
buttonStateS = digitalRead(buttonPinS);
if (buttonStateS == LOW) { //Siyah butona basılırsa hepsini söndür
Blynk.virtualWrite(V6, 0);
Blynk.virtualWrite(V0, 0);digitalWrite(LED_R, LOW);
Blynk.virtualWrite(V1, 0);digitalWrite(LED_Y, LOW);
Blynk.virtualWrite(V2, 0);digitalWrite(LED_G, LOW);
Blynk.virtualWrite(V3, 0);digitalWrite(LED_B, LOW);
//Serial.print("siyah");
}
Blynk.run(); //blynk çalıştır
timer.run(); //timer çalıştır
}