Membuat Jam Sholat Abadi

on
Categories: Mikrokontroller, Produk

Yuk kita bikin jam sholat abadi sendiri. membuat jam sholat abadi yang saya maksud disini adalah jam sholat yang tidak perlu lagi kita menginputkan data jadwal sholat menurut lokasi masing masing tempat.

Saya akan menjelaskan bagaimana saya membuat jam sholat abadi ini kepada kamu langsung. Karena saya beragama hindu, jadi saya tidak bisa menjelaskan secara detai tentag waktu sholat yang ada. tapi disini saya mencoba untuk membuat jadwal atau jam sholat abadi berdasarkan rumus yang ada untuk menentukan waktu sholat berdasarkan letak geografis serta zona waktu.

Berdasarkan pada hasil pencarian tentang formula untuk menghitung waktu sholat berdasarkan nujur, lintang dan zona waktu ditambah dengan ketinggian tempat, saya mendapatkan sebuah situs yang banyak digunakan website website dalam pembuatan aplikasi komputer jam sholat yang tidak memerlukan penginputan waktu secara manual.

Beberapa parameter yang digunakan dalam mencari waktu tersebut menurut yang saya baca adalah :

  • tahun (sekarang)
  • bulan (sekarang)
  • tanggal (sekarang)
  • longitude
  • latitude
  • time zone
  • danĀ Altitude matahari waktu Shubuh dan Isya

Dalam beberapa web ada juga yang menambahkan beberapa parameter lagi, namun disini saya menggunakan yang banyak digunakan oleh orang orang. Kalau kamu ingin memperbaiki dengan yang benar mohon berikan komentar ya.

[ads1]

Sebelum kita membahas rumus, download skematik dan firmware tersebut secara gratis, coba kita cek video uji coba jam sholat abadi buatan saya yuk pada dua video dibawah ini.

#Jam #sholat abadi karena pake rumus koordinat dan zona waktu. suara #adzan.

Video kiriman Anak Agung Duwi Arsana (@duwiarsana) pada

Nah, hal pertama yang harus dihitung yaitu membuat rumus konversi derajat ke radian dan juga konversi dari radian ke derajat.

//convert Degree to Radian
double degToRad(double degree)
{
    return ((3.1415926 / 180) * degree);
}
 
//convert Radian to Degree
double radToDeg(double radian)
{
    return (radian * (180/3.1415926));
}

Nah untuk algoritma perhitungan waktu sholat nya seperti ini.

void calcPrayerTimes(int year, int month, int day,
                     double longitude, double latitude, int timeZone,
                     double fajrTwilight, double ishaTwilight,
                     double &fajrTime, double &sunRiseTime, double &zuhrTime,
                     double &asrTime, double &maghribTime, double &ishaTime)
{
    double D = (367 * year) - ((year + (int)((month + 9) / 12)) * 7 / 4) + (((int)(275 * month / 9)) + day - 730531.5);
 
    double L = 280.461 + 0.9856474 * D;
    L = moreLess360(L);
 
    double M = 357.528 + (0.9856003) * D;
    M = moreLess360(M);
 
    double Lambda = L + 1.915 * sin(degToRad(M)) + 0.02 * sin(degToRad(2 * M));
    Lambda = moreLess360(Lambda);
 
    double Obliquity = 23.439 - 0.0000004 * D;
    double Alpha = radToDeg(atan((cos(degToRad(Obliquity)) * tan(degToRad(Lambda)))));
    Alpha = moreLess360(Alpha);
 
    Alpha = Alpha - (360 * (int)(Alpha / 360));
    Alpha = Alpha + 90 * (floor(Lambda / 90) - floor(Alpha / 90));
 
    double ST = 100.46 + 0.985647352 * D;
    double Dec = radToDeg(asin(sin(degToRad(Obliquity)) * sin(degToRad(Lambda))));
    double Durinal_Arc = radToDeg(acos((sin(degToRad(-0.8333)) - sin(degToRad(Dec)) * sin(degToRad(latitude))) / (cos(degToRad(Dec)) * cos(degToRad(latitude)))));
 
    double Noon = Alpha - ST;
    Noon = moreLess360(Noon);
 
 
    double UT_Noon = Noon - longitude;
 
 
    ////////////////////////////////////////////
    // Calculating Prayer Times Arcs & Times //
    //////////////////////////////////////////
 
    // 2) Zuhr Time [Local noon]
    zuhrTime = UT_Noon / 15 + timeZone;
 
    // Asr Hanafi
    //double Asr_Alt =radToDeg(atan(2+tan(degToRad(latitude - Dec))));
 
    // Asr Shafii
    double Asr_Alt = radToDeg(atan(1 + tan(degToRad(latitude - Dec))));
    double Asr_Arc = radToDeg(acos((sin(degToRad(90 - Asr_Alt)) - sin(degToRad(Dec)) * sin(degToRad(latitude))) / (cos(degToRad(Dec)) * cos(degToRad(latitude)))));
    Asr_Arc = Asr_Arc / 15;
    // 3) Asr Time
    asrTime = zuhrTime + Asr_Arc;
 
    // 1) Shorouq Time
    sunRiseTime = zuhrTime - (Durinal_Arc / 15);
 
    // 4) Maghrib Time
    maghribTime = zuhrTime + (Durinal_Arc / 15);
 
 
    double Esha_Arc = radToDeg(acos((sin(degToRad(ishaTwilight)) - sin(degToRad(Dec)) * sin(degToRad(latitude))) / (cos(degToRad(Dec)) * cos(degToRad(latitude)))));
    // 5) Isha Time
    ishaTime = zuhrTime + (Esha_Arc / 15);
 
    // 0) Fajr Time
    double Fajr_Arc = radToDeg(acos((sin(degToRad(fajrTwilight)) - sin(degToRad(Dec)) * sin(degToRad(latitude))) / (cos(degToRad(Dec)) * cos(degToRad(latitude)))));
    fajrTime = zuhrTime - (Fajr_Arc / 15);
 
    return;
}

Nah kalau untuk menampilkan di LCD saya bikin koding nya seperti dibawah ini nih. untuk referensi kamu bisa lihat disini.

lcd.setCursor(0,1);
lcd.print("Isya   ");
doubleToHrMin(isha, hours, minutes);
lcd.setCursor(11,1);
lcd.print((hours%100)/10);
lcd.print(hours%10);
lcd.print(":");
lcd.print((minutes%100)/10);
lcd.print(minutes%10);

PCB untuk jam sholat abadi ini saya gambar menggunakan software egale pcb. Kelebihan dari jam sholat yang saya buat ini adalah dibagian alarm waktu sholat nya dapat kita gunakan file mp3. yang artinya kamu bisa isikan file mp3 tersebut dengan suara adzan seperti yang ada pada video saya tadi. format mp3 yang cocok dengan firmware yang akan saya bagikan gratis ini adalah track001.mp3 untuk suara adzan subuh dan track002.mp3 untuk adzan maghrib.

Baca juga  Cara mendapatkan file Hex dari Arduino

Kalau kamu download firmware jam sholat abadi ini kamu bisa tidak memasang IC mp3 decoder. kamu bisa hanya membuat rangkaian jam sholat nya saja jadinya ga ada alarm suara adzan nya hanya menampilkan jam sholat aja bergantian. Lumayan lah.

Pas saya jalanin simulasi di proteus sesuai dengan skematik juga program nya jalan dengan baik nih. coba aja cek foto dibawah ini. Jadi disini saya ga pakai mp3 nya, hanya jam sholat nya aja dengan firmware yang sama.

Kamu bisa download file skematik jam sholat, firmware lengkap pada link dibawah ini.

[sociallocker]

Firmware Jam sholat Atmega328 16Mhz.

Firmware MP3 Player Atmega328 16Mhz.

Skematik Jam sholat abadi mp3 (eagle file).

[/sociallocker]

Nah ini kan jam sholat pake LCD. Nanti saya akan bikin jam sholat versi seven segment dan juga versi LED MATRIX. tentu aja kamu juga bisa download gratis skematik dan firmwarenya gratis. Ditunggu aja ya saya cari waktu ngetik artikel nya nanti. Untuk simulasi jam sholat seven segment seperti gambar dibawah nih.