Ezan vakitlerini takip etmek, İslam dininde önemli bir ibadet uygulamasıdır ve Müslümanlar için günlük rutinlerinde bir temel oluşturur. Geleneksel olarak, ezan vakitleri güneşin konumuna göre hesaplanır ve genellikle manuel olarak takip edilir. Ancak, günümüzde teknolojinin ilerlemesiyle birlikte, ezan vakitlerini takip etmek için çeşitli dijital araçlar ve uygulamalar mevcuttur.

Arduino gibi mikrodenetleyiciler ve uygun sensörler kullanılarak, ezan vakitlerini otomatik olarak takip eden ve belirli zamanlarda uygun sinyaller veren bir cihaz oluşturmak mümkündür. Bu tür bir cihaz, birçok Müslüman için günlük ibadetlerini kolaylaştırabilir ve zamanlarını daha verimli bir şekilde planlamalarına yardımcı olabilir.

Bu proje için Arduino mikrodenetleyicisi ve ilgili bileşenlerin yanı sıra, bir gerçek zamanlı saat modülü, bir LCD ekran, bir SD kart okuyucu ve bir hoparlör gibi malzemelere ihtiyaç duyulabilir. Ayrıca, ezan vakitlerini depolamak için bir dizi veri yapısı ve zaman bilgilerini tutmak için bellek yönetimi kodu gerekebilir.

Ezan vakitlerini depolamak için bir dizi yapısı kullanarak, her gün için sabah, öğle, ikindi, akşam ve yatsı ezan vakitlerini saklamak mümkündür. Bu veriler, kullanıcının belirli bir tarihte hangi saatlerde ezan vakitlerinin olduğunu belirlemesine olanak tanır. Ayrıca, Arduino’nun gerçek zamanlı saat modülü aracılığıyla güncel zaman bilgisi alınarak, doğru ezan vakitlerinin hesaplanması sağlanabilir.

Projeyi tamamlamak için, Arduino’nun programlama dilini kullanarak ezan vakitlerini takip eden ve gerekli zamanlarda uygun işlemleri gerçekleştiren bir kod yazılmalıdır. Bu kod, gerçek zamanlı saat modülünden zaman bilgisi almayı, depolanan ezan vakitlerini karşılaştırmayı ve gerekli sinyalleri üretmeyi içermelidir.

#include <MyRealTimeClock.h> DS1302 RTC kütüphanesi
#include <LiquidCrystal_I2C_AvrI2C.h> I2C 16x2 Ekran kütüphanesi
#include <SD.h> // sd kart kütüphanesi Arduinı IDE ile otomatik kurulmuş olur
#define Sd_Chip_pin 53 //MicoSD kartın CS haberleşme pini arduino'nun 53 nolu pinine bağlı olduğunu belirttik
#include <TMRpcm.h> // melodi çalma kütüphanesi
#include "SPI.h"
char val;
TMRpcm tmrpcm; // melodi fonksiyonu oluşturma
TMRpcm wav;



struct EzanVakitleri {
    int sabah[32][2];  // Sabah ezan vakitleri (31 gün)
    int ogle[32][2];   // Öğle ezan vakitleri (31 gün)
    int ikindi[32][2]; // İkindi ezan vakitleri (31 gün)
    int aksam[32][2];  // Akşam ezan vakitleri (31 gün)
    int yatsi[32][2];  // Yatsı ezan vakitleri (31 gün)
};

// Aylık ezan vakitlerini tanımlama

EzanVakitleri ocak = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{6, 18},{6, 19},{6, 19},{6, 20},{6, 20},{6, 20},{6, 21},{6, 21},{6, 21},{6, 22},{6, 22},{6, 22},{6, 23},{6, 23},{6, 23},{6, 23},{6, 23},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24} },
// Öğle ezan vakitleri
{ {0, 00},{13,13},{13,13},{13,14},{13,14},{13,15},{13,15},{13,16},{13,16},{13,17},{13,17},{13,17},{13,18},{13,18},{13,18},{13,19},{13,19},{13,20},{13,20},{13,20},{13,20},{13,21},{13,21},{13,21},{13,22},{13,22},{13,22},{13,22},{13,22},{13,23},{13,23},{13,23} },
// İkindi ezan vakitleri
{ {0, 00},{16,27},{16,27},{16,28},{16,28},{16,29},{16,30},{16,30},{16,31},{16,31},{16,32},{16,32},{16,33},{16,33},{16,34},{16,34},{16,35},{16,35},{16,36},{16,36},{16,37},{16,37},{16,38},{16,38},{16,38},{16,39},{16,39},{16,40},{16,40},{16,40},{16,41},{16,41} },
// Akşam ezan vakitleri
{ {0, 00},{18,51},{18,52},{18,52},{18,53},{18,54},{18,54},{18,55},{18,55},{18,56},{18,56},{18,57},{18,58},{18,58},{18,59},{18,59},{19, 0},{19, 1},{19, 1},{19, 2},{19, 2},{19, 3},{19, 3},{19, 4},{19, 4},{19, 5},{19, 5},{19, 6},{19, 6},{19, 7},{19, 7},{19, 8} },
// Yatsı ezan vakitleri
{ {0, 00},{20, 3},{20, 4},{20, 4},{20, 5},{20, 5},{20, 6},{20, 6},{20, 7},{20, 7},{20, 8},{20, 8},{20, 9},{20, 9},{20,10},{20,10},{20,11},{20,11},{20,12},{20,12},{20,13},{20,13},{20,14},{20,14},{20,14},{20,15},{20,15},{20,16},{20,16},{20,17},{20,17},{20,17} }
};

EzanVakitleri subat = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 24},{6, 23},{6, 23},{6, 23},{6, 23},{6, 23},{6, 22},{6, 22},{6, 22},{6, 21},{6, 21},{6, 21},{6, 20},{6, 20},{6, 19},{6, 19},{6, 19},{6, 18},{6, 18},{6, 17},{6, 17},{6, 16},{6, 16},{6, 15},{0, 00},{0, 00} },
// Öğle ezan vakitleri
{ {0, 00},{13,23},{13,23},{13,23},{13,23},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,24},{13,23},{13,23},{13,23},{13,23},{13,23},{13,23},{13,23},{13,23},{13,22},{13,22},{13,22},{0, 00},{0, 00} },
// İkindi ezan vakitleri
{ {0, 00},{16,41},{16,42},{16,42},{16,42},{16,42},{16,43},{16,43},{16,43},{16,43},{16,43},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,44},{16,43},{16,43},{0, 00},{0, 00} },
// Akşam ezan vakitleri
{ {0, 00},{19, 8},{19, 9},{19, 9},{19,10},{19,10},{19,10},{19,11},{19,11},{19,12},{19,12},{19,12},{19,13},{19,13},{19,13},{19,14},{19,14},{19,14},{19,15},{19,15},{19,15},{19,16},{19,16},{19,16},{19,16},{19,17},{19,17},{19,17},{19,17},{19,17},{0, 00},{0, 00} },
// Yatsı ezan vakitleri
{ {0, 00},{20,18},{20,18},{20,18},{20,19},{20,19},{20,19},{20,20},{20,20},{20,20},{20,21},{20,21},{20,21},{20,21},{20,22},{20,22},{20,22},{20,22},{20,23},{20,23},{20,23},{20,23},{20,23},{20,24},{20,24},{20,24},{20,24},{20,24},{20,25},{20,25},{0, 00},{0, 00} }
};


EzanVakitleri mart = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{6, 15},{6, 14},{6, 13},{6, 13},{6, 12},{6, 12},{6, 11},{6, 10},{6, 10},{6,  9},{6,  8},{6,  8},{6,  7},{6,  6},{6,  6},{6,  5},{6,  4},{6,  3},{6,  3},{6,  2},{6,  1},{6,  0},{6,  0},{5, 59},{5, 58},{5, 57},{5, 57},{5, 56},{5, 55},{5, 54},{5, 54} },
// Öğle ezan vakitleri
{ {0, 00},{13,22},{13,22},{13,21},{13,21},{13,21},{13,21},{13,20},{13,20},{13,20},{13,20},{13,19},{13,19},{13,19},{13,19},{13,18},{13,18},{13,18},{13,17},{13,17},{13,17},{13,17},{13,16},{13,16},{13,16},{13,15},{13,15},{13,15},{13,14},{13,14},{13,14},{13,14} },
// İkindi ezan vakitleri
{ {0, 00},{16,43},{16,43},{16,43},{16,43},{16,42},{16,42},{16,42},{16,42},{16,41},{16,41},{16,41},{16,40},{16,40},{16,40},{16,39},{16,39},{16,38},{16,38},{16,37},{16,37},{16,37},{16,36},{16,36},{16,35},{16,35},{16,34},{16,34},{16,33},{16,32},{16,32},{16,31} },
// Akşam ezan vakitleri
{ {0, 00},{19,18},{19,18},{19,18},{19,18},{19,18},{19,19},{19,19},{19,19},{19,19},{19,19},{19,19},{19,20},{19,20},{19,20},{19,20},{19,20},{19,20},{19,20},{19,20},{19,21},{19,21},{19,21},{19,21},{19,21},{19,21},{19,21},{19,21},{19,21},{19,22},{19,22},{19,22} },
// Yatsı ezan vakitleri
{ {0, 00},{20,25},{20,25},{20,25},{20,25},{20,26},{20,26},{20,26},{20,26},{20,26},{20,26},{20,26},{20,27},{20,27},{20,27},{20,27},{20,27},{20,27},{20,27},{20,28},{20,28},{20,28},{20,28},{20,28},{20,28},{20,28},{20,29},{20,29},{20,29},{20,29},{20,29},{20,29} }
};

EzanVakitleri nisan = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{5, 53},{5, 52},{5, 51},{5, 51},{5, 50},{5, 49},{5, 48},{5, 47},{5, 47},{5, 46},{5, 45},{5, 44},{5, 44},{5, 43},{5, 42},{5, 41},{5, 41},{5, 40},{5, 39},{5, 39},{5, 38},{5, 37},{5, 36},{5, 36},{5, 35},{5, 34},{5, 34},{5, 33},{5, 33},{5, 32},{0, 00} },
// Öğle ezan vakitleri
{ {0, 00},{13,13},{13,13},{13,13},{13,12},{13,12},{13,12},{13,12},{13,11},{13,11},{13,11},{13,11},{13,10},{13,10},{13,10},{13,10},{13, 9},{13, 9},{13, 9},{13, 9},{13, 8},{13, 8},{13, 8},{13, 8},{13, 8},{13, 7},{13, 7},{13, 7},{13, 7},{13, 7},{13, 7},{0, 00} },
// İkindi ezan vakitleri
{ {0, 00},{16,31},{16,30},{16,30},{16,29},{16,28},{16,28},{16,27},{16,27},{16,26},{16,25},{16,25},{16,24},{16,23},{16,23},{16,22},{16,22},{16,21},{16,20},{16,20},{16,19},{16,18},{16,18},{16,17},{16,16},{16,16},{16,15},{16,14},{16,14},{16,14},{16,14},{0, 00} },
// Akşam ezan vakitleri
{ {0, 00},{19,22},{19,22},{19,22},{19,22},{19,22},{19,22},{19,23},{19,23},{19,23},{19,23},{19,23},{19,23},{19,23},{19,24},{19,24},{19,24},{19,24},{19,24},{19,24},{19,25},{19,25},{19,25},{19,25},{19,25},{19,25},{19,26},{19,26},{19,26},{19,26},{19,27},{0, 00} },
// Yatsı ezan vakitleri
{ {0, 00},{20,30},{20,30},{20,30},{20,30},{20,30},{20,30},{20,31},{20,31},{20,31},{20,31},{20,32},{20,32},{20,32},{20,32},{20,33},{20,33},{20,33},{20,33},{20,34},{20,34},{20,34},{20,35},{20,35},{20,35},{20,35},{20,36},{20,36},{20,36},{20,37},{20,37},{0, 00} }
};

EzanVakitleri mayis = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{5, 31},{5, 31},{5, 30},{5, 30},{5, 29},{5, 28},{5, 28},{5, 27},{5, 27},{5, 26},{5, 26},{5, 25},{5, 25},{5, 25},{5, 24},{5, 24},{5, 23},{5, 23},{5, 23},{5, 22},{5, 22},{5, 22},{5, 22},{5, 21},{5, 21},{5, 21},{5, 21},{5, 20},{5, 20},{5, 20},{5, 20} },
// Öğle ezan vakitleri
{ {0, 00},{13, 7},{13, 7},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 6},{13, 7},{13, 7},{13, 7},{13, 7},{13, 7},{13, 7},{13, 7} },
// İkindi ezan vakitleri
{ {0, 00},{16,15},{16,16},{16,16},{16,17},{16,17},{16,18},{16,19},{16,19},{16,20},{16,20},{16,21},{16,21},{16,22},{16,22},{16,23},{16,23},{16,24},{16,24},{16,25},{16,25},{16,26},{16,26},{16,27},{16,27},{16,28},{16,28},{16,29},{16,29},{16,29},{16,30},{16,30} },
// Akşam ezan vakitleri
{ {0, 00},{19,27},{19,27},{19,27},{19,28},{19,28},{19,28},{19,28},{19,29},{19,29},{19,29},{19,29},{19,30},{19,30},{19,30},{19,31},{19,31},{19,31},{19,31},{19,32},{19,32},{19,32},{19,33},{19,33},{19,33},{19,34},{19,34},{19,34},{19,35},{19,35},{19,35},{19,36} },
// Yatsı ezan vakitleri
{ {0, 00},{20,38},{20,38},{20,38},{20,39},{20,39},{20,39},{20,40},{20,40},{20,41},{20,41},{20,41},{20,42},{20,42},{20,43},{20,43},{20,44},{20,44},{20,44},{20,45},{20,45},{20,46},{20,46},{20,47},{20,47},{20,47},{20,48},{20,48},{20,49},{20,49},{20,50},{20,50} }
};

EzanVakitleri haziran = 
{
// Sabah ezan vakitleri (saat, dakika)
{ {0, 00},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 20},{5, 21},{5, 21},{5, 21},{5, 21},{5, 21},{5, 22},{5, 22},{5, 22},{5, 23},{5, 23},{5, 23},{5, 23},{5, 24},{5, 24},{0, 00} },
// Öğle ezan vakitleri
{ {0, 00},{13, 8},{13, 8},{13, 8},{13, 8},{13, 8},{13, 8},{13, 9},{13, 9},{13, 9},{13, 9},{13, 9},{13,10},{13,10},{13,10},{13,10},{13,10},{13,11},{13,11},{13,11},{13,11},{13,12},{13,12},{13,12},{13,12},{13,12},{13,13},{13,13},{13,13},{13,13},{13,13},{0, 00} },
// İkindi ezan vakitleri
{ {0, 00},{16,31},{16,31},{16,31},{16,32},{16,32},{16,33},{16,33},{16,33},{16,34},{16,34},{16,34},{16,35},{16,35},{16,35},{16,36},{16,36},{16,36},{16,36},{16,37},{16,37},{16,37},{16,37},{16,37},{16,38},{16,38},{16,38},{16,38},{16,38},{16,38},{16,38},{0, 00} },
// Akşam ezan vakitleri
{ {0, 00},{19,36},{19,36},{19,37},{19,37},{19,37},{19,38},{19,38},{19,38},{19,38},{19,39},{19,39},{19,39},{19,40},{19,40},{19,40},{19,40},{19,41},{19,41},{19,41},{19,41},{19,42},{19,42},{19,42},{19,42},{19,42},{19,42},{19,43},{19,43},{19,43},{19,43},{0, 00} },
// Yatsı ezan vakitleri
{ {0, 00},{20,50},{20,51},{20,51},{20,52},{20,52},{20,52},{20,53},{20,53},{20,53},{20,54},{20,54},{20,54},{20,55},{20,55},{20,55},{20,56},{20,56},{20,56},{20,56},{20,57},{20,57},{20,57},{20,57},{20,57},{20,57},{20,58},{20,58},{20,58},{20,58},{20,58},{0, 00} }
};



// Ay dizisi
EzanVakitleri *aylar[] = { &ocak, &subat, &mart, &nisan, &mayis, &haziran, };
// Şu anki ayın ezan vakitlerini depolamak için işaretçi
EzanVakitleri *suankiay;



MyRealTimeClock myRTC(6, 7, 8); //Or CLK -> 6 , DAT -> 7, Reset -> 8 pinleri arduino'ya ekledik
LiquidCrystal_I2C_AvrI2C lcd(0x27,17,2); //lcd isminde 0x27 adresli bir 17x2 ekran nesnesi oluşturduk 

int anficalistir = 2; //Anfi çalıştırmak için 2 nolu pini çıkış olarak atayacağız
int minareisikyak = 3; //Minare Işıkları için 3 nolu pini çıkış olarak atayacağız
int ramazanayimi=1; //Ramazan ayı içinde 1 yapacağız


void(* resetfunc) (void) = 0; //WAV Dosyası çalıştıkdan sonra RAM'ı boşaltmak için buraya donuyoruz

void setup()
{ 
  pinMode(anficalistir, OUTPUT); //çıkış olarak ayarlandı
  pinMode(minareisikyak, OUTPUT); //çıkış olarak ayarlandı
  digitalWrite(anficalistir, LOW); //Çıkış LOW yapıldı
  digitalWrite(minareisikyak, LOW); //Çıkış LOW yapıldı

  Serial.begin(9600);
  //myRTC.setDS1302Time(12, 15, 12, 5, 17, 3, 2024);  //(saniye, dakika, saat, haftanın günü, ayın günü, ay, yıl) DS1302'yı ayarlamak için
  lcd.begin(); //lcd'yi başlatıyoruz
  lcd.backlight(); //lcd arka ışığını açıyoruz.
  tmrpcm.speakerPin = 11; // hoparlör + bacağı digital 11. pine tak
  if (!SD.begin(Sd_Chip_pin)) { // sd module bağlandık
  return;
  }

}
void loop()
{
 myRTC.updateTime(); //Guncel Saati bilgisini istiyoruz
 int suanzaman[6]={myRTC.month,myRTC.dayofmonth,myRTC.year,myRTC.hours,myRTC.minutes,myRTC.seconds}; // Saat ve Tarih bilgisini suanzaman içine kaydettik


 // Şu anki ayı al ve ezan vakitlerini ona göre ayarla (örneğin, Ocak ayı için)
 int aybaslat = myRTC.month - 1; // Diziler sıfırdan başladığı için 1 çıkarıyoruz
 suankiay = aylar[aybaslat];


  int sabahezansaati=suankiay->sabah[myRTC.dayofmonth][0]; //Sabah Ezan Vakti için Saatı ayarladık
  int sabahezandakikasi=suankiay->sabah[myRTC.dayofmonth][1]; //Sabah Ezan Vakti için Dakikayı ayarladık
  int sabahezansaniyesi=0;

  int oglenezansaati=suankiay->ogle[myRTC.dayofmonth][0]; //Öğlen Ezan Vakti için Saatı ayarladık
  int oglenezandakikasi=suankiay->ogle[myRTC.dayofmonth][1]; //Öğlen Ezan Vakti için Dakikayı ayarladık
  int oglenezansaniyesi=0;

  int ikindiezansaati=suankiay->ikindi[myRTC.dayofmonth][0]; //İkindi Ezan Vakti için Saatı ayarladık
  int ikindiezandakikasi=suankiay->ikindi[myRTC.dayofmonth][1]; //İkindi Ezan Vakti için Dakikayı ayarladık
  int ikindiezansaniyesi=0;

  int aksamezansaati=suankiay->aksam[myRTC.dayofmonth][0]; //Akşam Ezan Vakti için Saatı ayarladık
  int aksamezandakikasi=suankiay->aksam[myRTC.dayofmonth][1]; //Akşam Ezan Vakti için Dakikayı ayarladık
  int aksamezansaniyesi=0;

  int yatsiezansaati=suankiay->yatsi[myRTC.dayofmonth][0]; //Yatsı Ezan Vakti için Saatı ayarladık
  int yatsiezandakikasi=suankiay->yatsi[myRTC.dayofmonth][1]; //Yatsı Ezan Vakti için Dakikayı ayarladık
  int yatsiezansaniyesi=0;



   if (suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)  //Şuan Zaman Sabah ezanı zamanına eşit olduğunda çalışacak
  {
  digitalWrite(anficalistir, HIGH); //Anfi Başlatıldı
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR...  ");
  lcd.setCursor(0,1);
  lcd.print(" SABAH ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("1.wav"); // Sabah ezanı SD kartdaki Dosyamız
  tmrpcm.volume(1);  //Sesi yükselttik
  tmrpcm.quality(1); //Ses kalitesi max. yapıldı
  delay(306000); //EZAN OKUNURKEN 5.1 DAKİKA BEKLE
  tmrpcm.stopPlayback(); //WAV dosyası durduruldu
  tmrpcm.disable(); //Kütüphane kapatıldı

  digitalWrite(anficalistir, LOW); //Anfi kapatıldı
  lcd.setCursor(0,0);
  lcd.print("  SABAH EZANI        ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....      ");

  delay(60000);
  resetfunc(); // reser atıldı
  }





else if (suanzaman[3]==oglenezansaati && suanzaman[4]==oglenezandakikasi && suanzaman[5]==oglenezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" OGLEN ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("2.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(210000);//EZAN OKUNURKEN 3,5 DAKİKA BEKLE
  tmrpcm.stopPlayback();
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW);
  lcd.setCursor(0,0);
  lcd.print("  OGLEN EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");

  delay(60000);
  resetfunc();
  }





 else if (suanzaman[3]==ikindiezansaati && suanzaman[4]==ikindiezandakikasi && suanzaman[5]==ikindiezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" IKINDI ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("3.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(246000); //EZAN OKUNURKEN 4.1 DAKİKA BEKLE
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  IKINDI EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     "); 

  delay(60000);
  resetfunc();  
  }







 else if (suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" AKSAM ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("4.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(147000); //EZAN OKUNURKEN 2,45 DAKİKA BEKLE
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  AKSAM EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");

  delay(60000);
  resetfunc();
  }







 else if (suanzaman[3]==yatsiezansaati && suanzaman[4]==yatsiezandakikasi && suanzaman[5]==yatsiezansaniyesi)
  { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("EZAN OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" YATSI ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds);
  lcd.print("          "); 

  tmrpcm.play("5.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(206400);
  tmrpcm.stopPlayback(); 
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW);
  lcd.setCursor(0,0);
  lcd.print("  YATSI EZANI       ");
  lcd.setCursor(0,1);
  lcd.print("EZAN OKUNDU....     ");   

  delay(60000);
  resetfunc();
  }




 else
{
lcd.setCursor(0,0);
lcd.print("TARIH= ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.print("     ");
lcd.setCursor(0,1);

switch(myRTC.dayofweek)
      { case 1: lcd.print("pts.");break;
        case 2: lcd.print("sal.");break;
        case 3: lcd.print("crs.");break;
        case 4: lcd.print("prs.");break;
        case 5: lcd.print("cum.");break;
        case 6: lcd.print("cts.");break;
        case 7: lcd.print("paz.");break;
      }

lcd.print(" ");
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
lcd.print("     ");
}






//CUMA GÜNÜ CUMA NAMAZINDAN 1 SAAT ÖNCE SELA OKUR
 if (myRTC.dayofweek==5 && suanzaman[3]==oglenezansaati - 1 && suanzaman[4]==oglenezandakikasi && suanzaman[5]==oglenezansaniyesi)
 { 
  digitalWrite(anficalistir, HIGH);
  lcd.setCursor(0,0);
  lcd.print("SELAA OKUNUYOR..    ");
  lcd.setCursor(0,1);
  lcd.print(" CUMA SELASI       ");
  lcd.print(myRTC.hours); 
  lcd.print(":"); 
  lcd.print(myRTC.minutes);
  lcd.print(":"); 
  lcd.print(myRTC.seconds); 

  tmrpcm.play("6.wav"); 
  tmrpcm.volume(1);
  tmrpcm.quality(1);
  delay(378000);
  tmrpcm.stopPlayback();
  tmrpcm.disable();

  digitalWrite(anficalistir, LOW); 
  lcd.setCursor(0,0);
  lcd.print("  CUMA           ");
  lcd.setCursor(0,1);
  lcd.print("SELAA OKUNDU....     ");

  delay(60000);
  resetfunc();
 } 
//--------


//PERŞEMBE GÜNÜ AKŞAM EZANI İLE CUMA SABAH EZANINA KADAR AKTİF OLUR (MİNARE IŞIKLARINI YAKMAK İÇİN KULLANILIR)
 if (myRTC.dayofweek==4 && suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
 {digitalWrite(minareisikyak, HIGH);}
 else if (myRTC.dayofweek==5 && suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)
 {digitalWrite(minareisikyak, LOW);}
//--------

//RAMAZAN AYI BOYUNCA İFTAR SAATI İLE SAHUR SAATI ARASINDA AKTİF OLUR (MİNARE IŞIKLARINI YAKMAK İÇİN KULLANILIR)
 if (ramazanayimi==1 && suanzaman[3]==aksamezansaati && suanzaman[4]==aksamezandakikasi && suanzaman[5]==aksamezansaniyesi)
 {digitalWrite(minareisikyak, HIGH);}
 else if (ramazanayimi==1 && suanzaman[3]==sabahezansaati && suanzaman[4]==sabahezandakikasi && suanzaman[5]==sabahezansaniyesi)
 {digitalWrite(minareisikyak, LOW);}
//--------




}

 

 

Bu kod, bir Arduino mikrodenetleyici kullanarak ezan vakitlerini takip etmek için temel bir çerçeve sağlar. Kod, gerçek zamanlı saat modülünden zaman bilgisi alır, ardından depolanan ezan vakitleriyle karşılaştırır ve ekrana uygun bir mesaj yazdırır. Bu proje, ezan vakitlerini otomatik olarak takip etmek için bir başlangıç noktası sağlar ve ihtiyaçlara göre genişletilebilir veya özelleştirilebilir.

Kullanılan kütüphaneler ile ilgili daha fazla ayrıntı için önceki yapmış olduğumuz Arduino Uno ile 5 Vakit Ezan Okuyan Sistem Yapıyoruz adlı yazımızı incelemenizi tavsiye ediyorum.

Mustafa KESKİN

By Mustafa KESKİN

Ölümün olduğu bu dünyada, hiçbir şey çok da ciddi değildir aslında

One thought on “Arduino Mega ile 12 Ay 5 Vakit Otomatik Sesli Ezan Okuyan Proje Çalışması”

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.