#define POMPA1_PIN 9   // Pompa 1 için çıkış pini
#define POMPA2_PIN 12   // Pompa 2 için çıkış pini
#define PHONE_NUMBER "+905438535925"  // SMS gönderilecek telefon numarası
#include <SoftwareSerial.h>
SoftwareSerial gsm(10, 11); //RX,TX

void setup() {
  gsm.begin(9600);
  delay(2000);
  
  // Pin modlarını belirleyelim
  pinMode(POMPA1_PIN, OUTPUT); // Pompa 1 için çıkış
  pinMode(POMPA2_PIN, OUTPUT); // Pompa 2 için çıkış
  
  // Başlangıçta pompa pinlerini kapalı yapalım
  digitalWrite(POMPA1_PIN, LOW);  // Pompa 1 kapalı
  digitalWrite(POMPA2_PIN, LOW);  // Pompa 2 kapalı
  
  Serial.begin(9600);
  delay(3000);
  
  gsm.println("ATS0=1"); // Bir çalmada otomatik aç
  delay(3000);
  gsm.println("AT+DDET=1"); // DTMF'yi aç
  delay(3000);
  
  Serial.println("Sistem başladı");
}

void sendSMS(String message) {
  gsm.println("AT+CMGF=1"); // SMS formatını metin olarak ayarla
  delay(1000);
  gsm.print("AT+CMGS=\""); // Telefon numarasına SMS gönder
  gsm.print(PHONE_NUMBER);
  gsm.println("\"");
  delay(1000);
  gsm.println(message);  // SMS içeriğini gönder
  delay(1000);
  gsm.write(26);  // SMS'i gönder (Ctrl+Z)
  delay(3000);
}

void loop() {
  String gelen = "";
  if (gsm.available()) {
    while (gsm.available()) {
      delay(13);
      char c = gsm.read();
      gelen += c;
    }
    Serial.print("Gelen: ");
    Serial.println(gelen);
    
    // DTMF sinyaline göre pompa kontrolü
    if (gelen.indexOf("DTMF: 1") != -1) {
      Serial.println("1'e basıldı, Pompa 1 açıldı");
      digitalWrite(POMPA1_PIN, HIGH);  // Pompa 1 aç
      sendSMS("Pompa 1 açıldı");
    }
    else if (gelen.indexOf("DTMF: 2") != -1) {
      Serial.println("2'ye basıldı, Pompa 1 kapatıldı");
      digitalWrite(POMPA1_PIN, LOW);   // Pompa 1 kapat
      sendSMS("Pompa 1 kapatıldı");
    }
    else if (gelen.indexOf("DTMF: 3") != -1) {
      Serial.println("3'e basıldı, Pompa 2 açıldı");
      digitalWrite(POMPA2_PIN, HIGH);  // Pompa 2 aç
      sendSMS("Pompa 2 açıldı");
    }
    else if (gelen.indexOf("DTMF: 4") != -1) {
      Serial.println("4'e basıldı, Pompa 2 kapatıldı");
      digitalWrite(POMPA2_PIN, LOW);   // Pompa 2 kapat
      sendSMS("Pompa 2 kapatıldı");
    }
  }
}
