Arduino ile Ezan Okuyan Saat Projesi 2025 | İslami Dijital Saat Nasıl Yapılır?

Arduino Ezan Okuyan Saat Projesi Nedir?

Arduino ezan okuyan saat projesi, İslami ibadet gereksinimlerini teknoloji ile birleştiren özel bir dijital saat sistemidir. DS1302 gerçek zamanlı saat modülü ile doğru zamanı takip eden, SD kart üzerinde saklanan ezan ses dosyalarını belirlenen vakitlerde otomatik olarak çalan akıllı İslami saat projesidir. Bu proje, modern teknoloji ile dini değerleri harmanlayan anlamlı bir elektronik uygulamasıdır.

İslami Ezan Saati Çalışma Prensibi

Ezan okuyan saat, DS1302 RTC modülü ile sürekli zaman takibi yapar ve önceden programlanmış namaz vakitlerini kontrol eder. Belirlenen ezan vakti geldiğinde, SD kart modülü üzerinden ezan ses dosyasını okuyarak hoparlörden yayınlar. LCD ekranda anlık saat, tarih ve sonraki ezan vakti bilgileri görüntülenir.

🕌 İslami Zaman Sistemi:

  • 5 Vakit Namaz: Sabah, Öğle, İkindi, Akşam, Yatsı
  • Güneş Pozisyonu: Astronomik hesaplamalar
  • Coğrafi Konum: Enlem/boylam bazlı hesap
  • Hijri Takvim: İslami takvim entegrasyonu

🔄 Sistem Çalışma Döngüsü:

  1. Zaman Takibi: DS1302 ile sürekli saat güncelleme
  2. Vakit Kontrolü: Namaz vakitleri ile karşılaştırma
  3. Ezan Çalma: SD karttan ses dosyası oynatma
  4. Görsel Bilgi: LCD’de zaman ve vakit gösterimi
  5. Bekleme Modu: Bir sonraki vakit için hazırlık

Arduino Ezan Saati Teknik Özellikleri

⏰ DS1302 RTC Modülü:

  • Pil Desteği: CR2032 ile güç kesintisinde çalışma
  • Doğruluk: ±2ppm (15 saniye/ay sapma)
  • Sıcaklık Aralığı: -40°C ile +85°C
  • İletişim: 3-wire SPI protokolü
  • RAM: 31 byte kullanıcı verisi

💾 SD Kart Audio Sistemi:

  • Desteklenen Format: WAV (8-bit, 8kHz-22kHz)
  • Dosya Sistemi: FAT16/FAT32
  • Kapasıte: 32GB’a kadar SD/SDHC
  • Ses Kalitesi: 8-bit mono ses
  • Oynatma Süresi: Sınırsız (SD kart boyutuna bağlı)

Arduino Ezan Okuyan Saat Malzemeleri (2025 Güncel Liste)

📦 Temel Elektronik Bileşenler:

  • Arduino Uno R3 – Ana mikrokontrolcü kartı
  • DS1302 RTC Modülü – Gerçek zamanlı saat
  • SD Kart Modülü – Ses dosyası depolama
  • MicroSD Kart (8-32GB) – Ezan ses dosyaları
  • Hoparlör (8Ω 2W) – Ses çıkışı
  • Jumper Kablolar – Bağlantı kabloları
  • 16×2 LCD Panel – Zaman gösterimi (isteğe bağlı)

🔋 Güç ve Koruma:

  • CR2032 Pil – RTC backup güç kaynağı
  • LM386 Amplifikatör – Ses güçlendirme
  • 10kΩ Potansiyometre – LCD kontrast ayarı
  • 220Ω Dirençler – LED koruma
  • 100µF Kapasitör – Güç filtreleme

🎨 Görsel ve İşlevsel Geliştirmeler:

  • OLED Ekran (128×64) – Modern görüntü
  • RGB LED – Vakit gösterge ışığı
  • Rotary Encoder – Ayar kontrolü
  • Push Button – Menü navigasyon
  • Buzzer – Ek sesli uyarı

🏠 Kasa ve Montaj:

  • Ahşap/Plastik Kutu – Estetik muhafaza
  • Pleksiglas – LCD koruma ekranı
  • Velcro/Çift Taraflı Bant – Duvara montaj
  • Cable Management – Düzenli kablo yerleşimi

🎵 Ses Dosyaları:

  • Ezan Sesleri – 5 farklı vakit için WAV formatı
  • Dua Sesleri – Namaz sonrası dualar
  • Kuran Sureleri – Kısa sure koleksiyonu
  • Zikir Sesleri – Tesbih ve zikir kayıtları

Arduino Ezan Saati Devre Şeması

📺 Detaylı Çalışma Videosu:

👉 Arduino Ezan Okuyan Saat Projesi – Video Rehber

Video içeriği: DS1302 RTC programlama, SD kart WAV oynatma, namaz vakitleri hesaplama, İslami takvim entegrasyonu ve estetik saat kasası yapımı

🔌 Arduino Bağlantı Şeması:

DS1302 RTC Modülü:

  • VCC → Arduino 5V
  • GND → Arduino GND
  • CLK → Arduino Pin 6
  • DAT → Arduino Pin 7
  • RST → Arduino Pin 8

SD Kart Modülü (SPI):

  • VCC → Arduino 5V
  • GND → Arduino GND
  • MISO → Arduino Pin 12
  • MOSI → Arduino Pin 11
  • SCK → Arduino Pin 13
  • CS → Arduino Pin 4

16×2 LCD Panel (I2C):

  • VCC → Arduino 5V
  • GND → Arduino GND
  • SDA → Arduino A4
  • SCL → Arduino A5

Hoparlör ve Amplifikatör:

  • LM386 Input → Arduino Pin 9 (PWM)
  • LM386 Output → 8Ω Hoparlör
  • LM386 VCC → Arduino 5V
  • LM386 GND → Arduino GND

⚡ Güç Yönetimi:

  • Ana Güç: 12V Adaptör → Arduino VIN
  • RTC Backup: CR2032 → DS1302 Pil Yuvası
  • Filtre: 100µF Kapasitör → VCC-GND arası

Arduino Ezan Saati Kodları

📚 Gerekli Kütüphaneler:

#include <SD.h>
#include <TMRpcm.h>
#include <ThreeWire.h>
#include <RtcDS1302.h>
#include <LiquidCrystal_I2C.h>

🔐 Premium Üyeler İçin Komple Kod Paketi:

[Üye Girişi Yaparak Tüm Kodlara Erişin]

Premium paket: GPS koordinat hesaplama, otomatik vakit güncelleme, Hijri takvim, Kıble yönü gösterge, hava durumu entegrasyonu, WiFi zaman senkronizasyonu

🕌 Temel Arduino Ezan Saati Kodu:

#include <SD.h>
#include <TMRpcm.h>
#include <ThreeWire.h>
#include <RtcDS1302.h>
#include <LiquidCrystal_I2C.h>

// Pin tanımlamaları
#define SD_CS_PIN 4
#define SPEAKER_PIN 9
#define RTC_CLK_PIN 6
#define RTC_DAT_PIN 7
#define RTC_RST_PIN 8

// RTC ve LCD nesneleri
ThreeWire myWire(RTC_DAT_PIN, RTC_CLK_PIN, RTC_RST_PIN);
RtcDS1302<ThreeWire> rtc(myWire);
LiquidCrystal_I2C lcd(0x27, 16, 2);
TMRpcm audio;

// Namaz vakitleri (saat:dakika formatında)
struct PrayerTime {
  int hour;
  int minute;
  String name;
  String audioFile;
};

// İstanbul için örnek namaz vakitleri (dinamik hesaplama yapılabilir)
PrayerTime prayerTimes[] = {
  {5, 30, "SABAH", "sabah.wav"},
  {12, 15, "OGLE", "ogle.wav"},
  {15, 45, "IKINDI", "ikindi.wav"},
  {18, 20, "AKSAM", "aksam.wav"},
  {19, 50, "YATSI", "yatsi.wav"}
};

const int numPrayers = 5;

// Durum değişkenleri
bool azanPlaying = false;
unsigned long azanStartTime = 0;
int currentPrayerIndex = -1;
bool timeSet = false;

// Ayarlar
bool azanEnabled = true;
int volumeLevel = 20; // 0-30 arası
bool hijriCalendar = false;

void setup() {
  Serial.begin(9600);
  
  // RTC başlatma
  rtc.Begin();
  
  // LCD başlatma
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Ezan Saati v1.0");
  lcd.setCursor(0, 1);
  lcd.print("Baslatiliyor...");
  
  // SD kart başlatma
  if (!SD.begin(SD_CS_PIN)) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("SD Kart Hatasi!");
    while (1);
  }
  
  // Audio başlatma
  audio.speakerPin = SPEAKER_PIN;
  audio.setVolume(volumeLevel);
  
  // RTC durumu kontrol
  if (!rtc.IsDateTimeValid()) {
    Serial.println("RTC saat bilgisi geçersiz, ayarlanıyor...");
    // Derleme zamanı ile saat ayarlama
    RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
    rtc.SetDateTime(compiled);
  }
  
  if (!rtc.GetIsRunning()) {
    Serial.println("RTC çalışmıyor, başlatılıyor...");
    rtc.SetIsRunning(true);
  }
  
  Serial.println("Arduino Ezan Saati başlatıldı");
  
  // Başlangıç melodisi
  playStartupSound();
  
  delay(2000);
}

void loop() {
  // Mevcut zamanı al
  RtcDateTime now = rtc.GetDateTime();
  
  if (!now.IsValid()) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Saat Hatasi!");
    delay(1000);
    return;
  }
  
  // LCD'yi güncelle
  updateDisplay(now);
  
  // Namaz vakti kontrolü
  checkPrayerTimes(now);
  
  // Ezan çalma kontrolü
  if (azanPlaying) {
    // Ezan 3 dakika çalsın
    if (millis() - azanStartTime > 180000) {
      stopAzan();
    }
  }
  
  // Seri port komutları (test ve ayar için)
  if (Serial.available()) {
    processSerialCommands();
  }
  
  delay(1000); // 1 saniye güncelleme
}

void updateDisplay(const RtcDateTime& dt) {
  // İlk satır: Tarih ve saat
  lcd.setCursor(0, 0);
  
  if (hijriCalendar) {
    // Hijri takvim gösterimi (basitleştirilmiş)
    lcd.print("1445/");
    if (dt.Month() < 10) lcd.print("0");
    lcd.print(dt.Month());
    lcd.print("/");
    if (dt.Day() < 10) lcd.print("0");
    lcd.print(dt.Day());
  } else {
    // Miladi takvim
    if (dt.Day() < 10) lcd.print("0");
    lcd.print(dt.Day());
    lcd.print("/");
    if (dt.Month() < 10) lcd.print("0");
    lcd.print(dt.Month());
    lcd.print("/");
    lcd.print(dt.Year());
  }
  
  lcd.print(" ");
  if (dt.Hour() < 10) lcd.print("0");
  lcd.print(dt.Hour());
  lcd.print(":");
  if (dt.Minute() < 10) lcd.print("0");
  lcd.print(dt.Minute());
  
  // İkinci satır: Sonraki namaz vakti
  lcd.setCursor(0, 1);
  int nextPrayer = getNextPrayerIndex(dt);
  
  if (nextPrayer != -1) {
    lcd.print("Sonraki: ");
    lcd.print(prayerTimes[nextPrayer].name);
    lcd.print(" ");
    if (prayerTimes[nextPrayer].hour < 10) lcd.print("0");
    lcd.print(prayerTimes[nextPrayer].hour);
    lcd.print(":");
    if (prayerTimes[nextPrayer].minute < 10) lcd.print("0");
    lcd.print(prayerTimes[nextPrayer].minute);
  } else {
    lcd.print("Sabah: ");
    if (prayerTimes[0].hour < 10) lcd.print("0");
    lcd.print(prayerTimes[0].hour);
    lcd.print(":");
    if (prayerTimes[0].minute < 10) lcd.print("0");
    lcd.print(prayerTimes[0].minute);
    lcd.print("     ");
  }
}

void checkPrayerTimes(const RtcDateTime& dt) {
  if (!azanEnabled || azanPlaying) return;
  
  int currentHour = dt.Hour();
  int currentMinute = dt.Minute();
  int currentSecond = dt.Second();
  
  // Sadece 0. saniyede kontrol et (saniye başında bir kez)
  if (currentSecond != 0) return;
  
  for (int i = 0; i < numPrayers; i++) {
    if (currentHour == prayerTimes[i].hour && 
        currentMinute == prayerTimes[i].minute) {
      
      playAzan(i);
      break;
    }
  }
}

void playAzan(int prayerIndex) {
  if (prayerIndex < 0 || prayerIndex >= numPrayers) return;
  
  Serial.println("Ezan çalıyor: " + prayerTimes[prayerIndex].name);
  
  // LCD'de ezan bilgisi göster
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("EZAN VAKTI");
  lcd.setCursor(0, 1);
  lcd.print(prayerTimes[prayerIndex].name + " NAMAZI");
  
  // Ezan ses dosyasını çal
  if (SD.exists(prayerTimes[prayerIndex].audioFile.c_str())) {
    audio.play(prayerTimes[prayerIndex].audioFile.c_str());
    azanPlaying = true;
    azanStartTime = millis();
    currentPrayerIndex = prayerIndex;
  } else {
    Serial.println("Ezan dosyası bulunamadı: " + prayerTimes[prayerIndex].audioFile);
    
    // Alternatif: Buzzer ile basit ezan sesi
    playSimpleAzanTone();
  }
}

void stopAzan() {
  audio.stopPlayback();
  azanPlaying = false;
  currentPrayerIndex = -1;
  
  Serial.println("Ezan tamamlandı");
  
  // Normal ekrana dön
  lcd.clear();
}

int getNextPrayerIndex(const RtcDateTime& dt) {
  int currentMinutes = dt.Hour() * 60 + dt.Minute();
  
  for (int i = 0; i < numPrayers; i++) {
    int prayerMinutes = prayerTimes[i].hour * 60 + prayerTimes[i].minute;
    if (currentMinutes < prayerMinutes) {
      return i;
    }
  }
  
  return -1; // Bugün başka namaz vakti yok, yarın sabah
}

void playStartupSound() {
  // Basit başlangıç melodisi
  int melody[] = {262, 294, 330, 349, 392, 440, 494, 523};
  
  for (int i = 0; i < 8; i++) {
    tone(SPEAKER_PIN, melody[i], 200);
    delay(250);
  }
  noTone(SPEAKER_PIN);
}

void playSimpleAzanTone() {
  // SD kart dosyası yoksa basit ton ile ezan uyarısı
  for (int i = 0; i < 5; i++) {
    tone(SPEAKER_PIN, 800, 500);
    delay(600);
    tone(SPEAKER_PIN, 600, 500);
    delay(600);
  }
  noTone(SPEAKER_PIN);
}

void processSerialCommands() {
  String command = Serial.readString();
  command.trim();
  
  if (command == "TIME") {
    RtcDateTime now = rtc.GetDateTime();
    printDateTime(now);
  }
  else if (command.startsWith("SET_TIME:")) {
    // Format: SET_TIME:YYYY,MM,DD,HH,MM,SS
    setTimeFromString(command.substring(9));
  }
  else if (command == "AZAN_ON") {
    azanEnabled = true;
    Serial.println("Ezan aktif");
  }
  else if (command == "AZAN_OFF") {
    azanEnabled = false;
    Serial.println("Ezan kapalı");
  }
  else if (command.startsWith("VOLUME:")) {
    int vol = command.substring(7).toInt();
    setVolume(vol);
  }
  else if (command == "TEST_AZAN") {
    playAzan(0); // Sabah ezanını test et
  }
  else if (command == "PRAYERS") {
    printPrayerTimes();
  }
  else if (command == "HIJRI_ON") {
    hijriCalendar = true;
    Serial.println("Hijri takvim aktif");
  }
  else if (command == "HIJRI_OFF") {
    hijriCalendar = false;
    Serial.println("Miladi takvim aktif");
  }
}

void setTimeFromString(String timeStr) {
  // Format: YYYY,MM,DD,HH,MM,SS
  int year = timeStr.substring(0, 4).toInt();
  int month = timeStr.substring(5, 7).toInt();
  int day = timeStr.substring(8, 10).toInt();
  int hour = timeStr.substring(11, 13).toInt();
  int minute = timeStr.substring(14, 16).toInt();
  int second = timeStr.substring(17, 19).toInt();
  
  RtcDateTime newTime(year, month, day, hour, minute, second);
  rtc.SetDateTime(newTime);
  
  Serial.println("Saat ayarlandı: " + timeStr);
}

void setVolume(int volume) {
  volumeLevel = constrain(volume, 0, 30);
  audio.setVolume(volumeLevel);
  Serial.println("Ses seviyesi: " + String(volumeLevel));
}

void printDateTime(const RtcDateTime& dt) {
  Serial.print("Tarih/Saat: ");
  Serial.print(dt.Day());
  Serial.print("/");
  Serial.print(dt.Month());
  Serial.print("/");
  Serial.print(dt.Year());
  Serial.print(" ");
  Serial.print(dt.Hour());
  Serial.print(":");
  Serial.print(dt.Minute());
  Serial.print(":");
  Serial.println(dt.Second());
}

void printPrayerTimes() {
  Serial.println("Namaz Vakitleri:");
  for (int i = 0; i < numPrayers; i++) {
    Serial.print(prayerTimes[i].name);
    Serial.print(": ");
    if (prayerTimes[i].hour < 10) Serial.print("0");
    Serial.print(prayerTimes[i].hour);
    Serial.print(":");
    if (prayerTimes[i].minute < 10) Serial.print("0");
    Serial.println(prayerTimes[i].minute);
  }
}

// Gelişmiş özellikler için fonksiyonlar
void calculatePrayerTimes(float latitude, float longitude) {
  // Astronomik hesaplamalara dayalı otomatik vakit hesaplama
  // Bu fonksiyon coğrafi koordinatlara göre gerçek vakitleri hesaplar
}

void updatePrayerTimesFromInternet() {
  // WiFi modülü ile internet'ten güncel vakit bilgilerini çekme
}

void showQiblaDirection() {
  // Dijital pusula ile Kıble yönü gösterimi
}

void playQuranRecitation() {
  // SD karttan Kuran-ı Kerim tilaveti oynatma
}

DS1302 RTC Modülü Detaylı İnceleme

⏰ Gerçek Zamanlı Saat Özellikleri:

  • Kristal Osilatör: 32.768kHz hassas frekans
  • Pil Backup: CR2032 ile 10+ yıl çalışma
  • Auto-Switch: Ana güç kesintisinde otomatik pil geçişi
  • Trickle Charge: Şarj edilebilir pil desteği
  • 31 Byte RAM: Kullanıcı verisi saklama

📊 Zaman Hassasiyeti:

Doğruluk: ±2ppm (parts per million)
Aylık Sapma: ±5.26 saniye
Yıllık Sapma: ±1.05 dakika
Sıcaklık Etkisi: -0.04%/°C

İslami Zaman Hesaplamaları

🌅 Namaz Vakitleri Hesaplama:

  1. Sabah (Fecr): Güneş doğumundan 18° önce
  2. Öğle (Zuhr): Güneşin tepe noktası + 1 dakika
  3. İkindi (Asr): Gölge = Asıl uzunluk + 1
  4. Akşam (Maghrib): Güneş batımı
  5. Yatsı (Isha): Güneş batımından 17° sonra

🧭 Coğrafi Hesaplama Formülleri:

// Güneş açısı hesaplama
float sunAngle = asin(sin(declination) * sin(latitude) + 
                     cos(declination) * cos(latitude) * cos(hourAngle));

// Namaz vakti hesaplama
float prayerTime = 12 + (timeZone - longitude/15) - 
                   acos(-tan(latitude) * tan(declination))/15;

SD Kart Audio Sistemi

🎵 WAV Dosya Formatı:

  • Sampling Rate: 8kHz, 11kHz, 16kHz, 22kHz
  • Bit Depth: 8-bit mono
  • File Size: ~500KB/dakika (8kHz)
  • Quality: Telefon kalitesi ses
  • Compression: Raw PCM (sıkıştırmasız)

📁 SD Kart Dosya Yapısı:

/
├── sabah.wav     (Sabah ezanı)
├── ogle.wav      (Öğle ezanı)
├── ikindi.wav    (İkindi ezanı)
├── aksam.wav     (Akşam ezanı)
├── yatsi.wav     (Yatsı ezanı)
├── dua.wav       (Namaz sonrası dua)
└── config.txt    (Ayar dosyası)

Arduino Ezan Saati Avantajları

🕌 Dini Faydalar:

  • Vakit Hatırlatma: Otomatik namaz vakti uyarısı
  • Düzenli İbadet: Zamanında namaz kılma alışkanlığı
  • Manevi Huzur: Evde ezan sesi duyma imkanı
  • Aile Bağı: Ortak ibadet zamanı koordinasyonu

💡 Teknolojik Avantajlar:

  • Hassas Zaman: RTC ile yüksek doğruluk
  • Güç Kesintisi: Pil backup ile kesintisiz çalışma
  • Özelleştirme: Kişisel ayarlar ve tercihler
  • Genişletilebilir: Modüler tasarım yapısı

🏠 Pratik Kullanım:

  • Ev Camii: Küçük ev mosque’ı atmosferi
  • Ofis Kullanımı: İş yerinde vakit takibi
  • Seyahat: Taşınabilir ezan saati
  • Hediye: Anlamlı dini hediye seçeneği

Ezan Saati Kurulumu ve Kalibrasyon

🔧 Donanım Kurulumu:

  1. RTC Ayarı: İlk saat ve tarih programlama
  2. SD Kart Hazırlığı: WAV dosyalarını yükleme
  3. Ses Testi: Hoparlör ve amplifikatör kontrolü
  4. LCD Kalibrasyonu: Kontrast ve parlaklık ayarı
  5. Kasa Montajı: Estetik ve koruyucu yerleştirme

⚙️ Yazılım Konfigürasyonu:

  1. Vakit Programlama: Coğrafi konuma göre ayar
  2. Ses Seviyesi: Çevre koşullarına uygun volume
  3. Takvim Seçimi: Hijri veya Miladi takvim
  4. Dil Ayarları: Türkçe/Arapça metin desteği
  5. Otomatik Güncelleme: İnternet senkronizasyonu

Ezan Saati Sorun Giderme

⚠️ Yaygın Problemler:

RTC Saat Kaybediyor:

  • Pil Kontrolü: CR2032 voltaj ölçümü (>2.5V)
  • Bağlantı: CLK/DAT/RST pin kontrolü
  • Kristal: 32.768kHz osilatör çalışması
  • Güç: Ana güç kesintilerinde backup

SD Kart Okunmuyor:

  • Format: FAT32 formatında olmalı
  • Dosya Boyutu: 32GB altı SD/SDHC
  • SPI Bağlantı: MISO/MOSI/SCK/CS pinleri
  • Güç: Kararlı 5V besleme

Ses Çıkmıyor:

  • Hoparlör: 8Ω empedans kontrolü
  • Amplifikatör: LM386 bağlantı kontrolü
  • WAV Format: 8-bit mono format
  • Volume: Ses seviyesi ayarı

İleri Seviye İslami Özellikler

🌐 GPS ve Internet Entegrasyonu:

  • Otomatik Konum: GPS ile enlem/boylam
  • Vakit Güncellemesi: Online vakit hesaplama
  • Hava Durumu: Namaz için uygun hava bilgisi
  • Kıble Yönü: Dijital pusula entegrasyonu

📱 Akıllı Özellikler:

  • WiFi Kontrol: Uzaktan ayar ve kontrol
  • Mobil Uygulama: Smartphone entegrasyonu
  • Voice Control: Sesli komut sistemi
  • Smart Home: Ev otomasyonu entegrasyonu

🎨 Görsel Geliştirmeler (devamı):

  • OLED Display: Modern görüntü kalitesi
  • RGB LED Ring: Vakit gösterge ışıkları
  • E-ink Screen: Düşük güç tüketimli ekran
  • Hologram Projektör: 3D vakit gösterimi

📿 Ek İslami Fonksiyonlar:

  • Tesbih Sayacı: Dijital zikir sayma
  • Kıble Puslası: Namaz yönü gösterge
  • Hijri Takvim: İslami ay ve günler
  • Dua Koleksiyonu: Ses ve metin dualar

Coğrafi Konum ve Vakit Hesaplama

🌍 Dünya Şehirleri Vakit Tablosu:

ŞehirEnlemBoylamSaat Dilimi
İstanbul41.01°28.97°UTC+3
Ankara39.92°32.85°UTC+3
Mekke21.42°39.82°UTC+3
Medine24.47°39.61°UTC+3
Kudüs31.77°35.23°UTC+2

📊 Vakit Hesaplama Algoritması:

 
cpp
// Basitleştirilmiş vakit hesaplama
struct Location {
  float latitude;
  float longitude;
  int timezone;
};

void calculatePrayerTimes(Location loc, int day, int month) {
  float declination = 23.45 * sin(360 * (284 + day) / 365);
  float timeCorrection = 4 * (loc.longitude - 15 * loc.timezone);
  
  // Güneş doğuş/batış hesaplama
  float hourAngle = acos(-tan(loc.latitude) * tan(declination));
  float sunrise = 12 - hourAngle / 15 - timeCorrection / 60;
  float sunset = 12 + hourAngle / 15 - timeCorrection / 60;
  
  // Namaz vakitleri
  prayerTimes[0] = {(int)(sunrise - 1.5), (int)((sunrise - 1.5 - (int)(sunrise - 1.5)) * 60)}; // Sabah
  prayerTimes[1] = {12, 15}; // Öğle (güneş tepe + 15 dk)
  prayerTimes[2] = {(int)(sunrise + 6), 0}; // İkindi (basitleştirilmiş)
  prayerTimes[3] = {(int)sunset, (int)((sunset - (int)sunset) * 60)}; // Akşam
  prayerTimes[4] = {(int)(sunset + 1.5), (int)((sunset + 1.5 - (int)(sunset + 1.5)) * 60)}; // Yatsı
}

Ezan Saati vs Geleneksel Yöntemler

ÖzellikArduino Ezan SaatiGeleneksel SaatCami HoparlörüMobil Uygulama
HassasiyetÇok YüksekOrtaYüksekYüksek
KişiselleştirmeTamSınırlıYokOrta
Ses KalitesiİyiDüşükÇok İyiİyi
Güç TüketimiDüşükÇok DüşükYüksekOrta
Maliyet150-300 TL50-100 TLÜcretsizÜcretsiz
BakımMinimalYokCami bakımıGüncelleme
ÖzellikÇok ZenginBasitTek AmaçZengin

Arduino Ezan Saati Maliyet Analizi 2025

MalzemeOrtalama Fiyat (TL)
Arduino Uno R345-60
DS1302 RTC Modülü8-15
SD Kart Modülü10-18
MicroSD Kart 16GB25-40
Hoparlör 8Ω 2W12-25
LM386 Amplifikatör5-10
16×2 LCD Panel12-18
CR2032 Pil3-5
Jumper Kablolar8-12
Breadboard/PCB10-15
Ahşap Kasa20-40
Diğer Elektronik10-20
Toplam168-278 TL

Yasal ve Dini Konular

📋 Dini Hassasiyetler:

  • Vakit Doğruluğu: Güvenilir kaynaklarla doğrulama
  • Ezan Metni: Orijinal ve doğru telaffuz
  • Ses Seviyesi: Komşu rahatsızlığı önleme
  • Saygılı Kullanım: Uygun ortam ve zaman

⚖️ Yasal Gereklilikler:

  • Ses Kirliliği: Belediye gürültü yönetmelikleri
  • Telif Hakkı: Ezan kayıtları için izin
  • Apartman Kuralları: Ortak yaşam alanları
  • İbadet Özgürlüğü: Anayasal hak çerçevesi

Toplumsal Fayda ve Sosyal Etki

🏘️ Toplumsal Faydalar:

  • Dini Eğitim: Çocuklara vakit bilinci
  • Aile Birliği: Ortak ibadet zamanı
  • Kültürel Koruma: Geleneksel değerler
  • Teknoloji Entegrasyonu: Modern araçlarla din

💫 Manevi Değer:

  • Huzur Verici: Evde ezan sesi rahatlığı
  • Disiplin: Düzenli ibadet alışkanlığı
  • Hatırlatıcı: Günlük koşturmacada vakit
  • Bağlantı: Allah ile güçlü irtibat

Proje Geliştirme Yolları

🚀 Gelecek Versiyonlar:

  • AI Entegrasyonu: Akıllı vakit optimizasyonu
  • Solar Power: Güneş enerjisi ile çalışma
  • Multi-Language: Çoklu dil desteği
  • Cloud Sync: Bulut tabanlı ayar senkronizasyonu

📱 Mobil Ecosystem:

  • Companion App: Detaylı kontrol uygulaması
  • Family Sharing: Aile üyeleri arasında koordinasyon
  • Prayer Statistics: İbadet istatistikleri
  • Community Features: Topluluk özellikleri

Eğitim ve Öğretim Değeri

🎓 STEM + Din Eğitimi:

  • Elektronik: Devre tasarımı ve montaj
  • Programlama: C++ ve algoritma geliştirme
  • Matematik: Astronomik hesaplamalar
  • Coğrafya: Dünya koordinat sistemi
  • Dini Bilgiler: İslami zaman kavramları

👨‍🏫 Öğretim Materyali:

  • Ders Planı: 6 haftalık proje programı
  • Öğrenci Rehberi: Adım adım yapım kılavuzu
  • Öğretmen Kılavuzu: Teknik destek dökümanı
  • Değerlendirme: Proje başarı kriterleri

Sonuç

Arduino ezan okuyan saat projesi, teknoloji ile manevi değerleri harmanlayan özel bir elektronik projesidir. Bu proje ile hem İslami ibadet gereksinimlerini karşılayabilir hem de modern elektronik teknolojileri öğrenebilirsiniz. DS1302 RTC modülü ile hassas zaman takibi, SD kart ile kaliteli ses sistemi ve LCD ile kullanıcı dostu arayüz sunan bu proje, İslami yaşam tarzını destekleyen teknolojik bir çözümdür.

Önemli Notlar:

  • RTC pil backup güç kesintilerinde kritiktir
  • SD kart format mutlaka FAT32 olmalıdır
  • Vakit hesaplamaları coğrafi konuma göre ayarlanmalıdır
  • Ses seviyesi komşu rahatsızlığına dikkat edilmelidir
  • 📺 Gerekli tüm bilgiler videoda detaylı anlatılmıştır
  • ⚠️ Lütfen öncelikle videoyu dikkatlice izleyiniz

🎥 Video Rehber İçeriği:

  • Arduino Uno ve DS1302 RTC modülü bağlantıları
  • SD kart modülü konfigürasyonu ve WAV dosya hazırlığı
  • TMRpcm kütüphanesi ile ses oynatma teknikleri
  • Namaz vakitleri hesaplama algoritmaları
  • LCD ekran programlama ve menü sistemi
  • İslami takvim hesaplamaları ve Hijri tarih
  • Coğrafi koordinat bazlı otomatik vakit ayarı
  • Estetik ahşap kasa tasarımı ve montajı
  • Ses kalitesi optimizasyonu ve hoparlör seçimi
  • Sorun giderme ve sistem bakım rehberi
  • İleri seviye özellikler ve GPS entegrasyonu

Anahtar Kelimeler: Arduino ezan saati, İslami dijital saat, DS1302 RTC modülü, SD kart audio player, namaz vakti uyarı sistemi, Arduino İslami proje, ezan okuyan saat yapımı, dini elektronik proje, namaz vakitleri hesaplama, İslami teknoloji

Devre Şeması


Çalışma Videosu

Gerekli Kodlar                                     :  

MyRealTimeClock Kütüphanesi      :

SimpleSDAudio      Kütüphanesi     : 


 Premium Üyeler İçin Gerekli Kodlar: 

[member]   [/member]

Not                    : Yapamazsanız. Lütfen önce videoyu dikkatlice izleyiniz.