#include <DHT.h>

#define DHTPIN PA0    
#define DHTTYPE DHT22    
DHT dht(DHTPIN, DHTTYPE);

#define GREEN_LED PB0  // Hoş geldin mesajı için
#define BLUE_LED PB1   // Değerleri okuma sırasında
#define YELLOW_LED PA7 // Sıcaklık yüksekse
#define RED_LED PA6    // Sensör hatası veya aşırı sıcaklık

void setup() {
  pinMode(GREEN_LED, OUTPUT);
  pinMode(BLUE_LED, OUTPUT);
  pinMode(YELLOW_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  
  dht.begin();
  
  // Hoş geldin mesajı (Yeşil LED yanar)
  digitalWrite(GREEN_LED, HIGH);
  delay(5000);
  digitalWrite(GREEN_LED, LOW);
}

void loop() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();
  
  // Tüm LED'leri kapat
  digitalWrite(GREEN_LED, LOW);
  digitalWrite(BLUE_LED, LOW);
  digitalWrite(YELLOW_LED, LOW);
  digitalWrite(RED_LED, LOW);
  
  if (isnan(h) || isnan(t) || h < 0 || h > 80 || t < -20 || t > 70) {
    // Sensör hatası (Kırmızı LED yanar ve yanık kalır)
    digitalWrite(RED_LED, HIGH);
    delay(5000);
    return;
  }

  // Optimal değerler (Mavi ve Yeşil LED yanıp söner)
  if (t >= -10 && t <= 45 && h >= 0 && h <= 60) {
    for (int i = 0; i < 3; i++) {
      digitalWrite(GREEN_LED, HIGH);
      digitalWrite(BLUE_LED, HIGH);
      delay(500);
      digitalWrite(GREEN_LED, LOW);
      digitalWrite(BLUE_LED, LOW);
      delay(500);
    }
  }

  // Değerler yüksekse (Sarı ve Mavi LED yanıp söner)
  if (t > 45 || h > 60) {
    for (int i = 0; i < 3; i++) {
      digitalWrite(YELLOW_LED, HIGH);
      digitalWrite(BLUE_LED, HIGH);
      delay(500);
      digitalWrite(YELLOW_LED, LOW);
      digitalWrite(BLUE_LED, LOW);
      delay(500);
    }
  }

  // Değerler düzeldiğinde sistem devam eder
  if (t >= -10 && t <= 45 && h >= 0 && h <= 60) {
    digitalWrite(GREEN_LED, HIGH);
    digitalWrite(BLUE_LED, HIGH);
    delay(3000);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(BLUE_LED, LOW);
  }
}
stm32:B12
stm32:B13
stm32:B14
stm32:B15
stm32:A8
stm32:A9
stm32:A10
stm32:A11
stm32:A12
stm32:A15
stm32:B3
stm32:B4
stm32:B5
stm32:B6
stm32:B7
stm32:B8
stm32:B9
stm32:5V.1
stm32:GND.1
stm32:3V3.1
stm32:GND.2
stm32:GND.3
stm32:3V3.2
stm32:R
stm32:B11
stm32:B10
stm32:B1
stm32:B0
stm32:A7
stm32:A6
stm32:A5
stm32:A4
stm32:A3
stm32:A2
stm32:A1
stm32:A0
stm32:C15
stm32:C14
stm32:C13
stm32:VBAT
dht1:VCC
dht1:SDA
dht1:NC
dht1:GND
vcc2:VCC
gnd2:GND
led1:A
led1:C
led2:A
led2:C
led3:A
led3:C
led4:A
led4:C
r1:1
r1:2
r2:1
r2:2
r3:1
r3:2
r4:1
r4:2