JWS Universal (Jadwal Waktu Shalat) 1 – 8 panel

Jadwal Waktu Shalat (JWS) adalah media informasi di rumah ibadah Masjid/Mushalla/Surau yang menampilkan informasi waktu-waktu Shalat.

Dalam perkembangannya Jam Waktu Shalat berfungsi sebagai :

  1. Menampilkan Jadwal / Waktu Shalat wajib dan sunat
  2. Menampilkan informasi tanggal Masehi, Hijriah, Pasaran Jawa, dan penanggalan khusus seperti penanggalan Minang
  3. Menampilkan Ayat Al-Quran, Doa
  4. Informasi Tartil, Tarhim, Azan, Iqamah
  5. Pengingat / alarm waktu masuk Shalat dan selesai Iqamah
  6. Memutar Suara/Musik Tartil, Tarhim disertai kontrol hidup/mati amplifier
  7. Perhitungan jadwal berdasarkan posisi matahari, masukan manual, data jadwal online harian.

Diagram alir Jawdal waktu-waktu Shalat :

 

Skema Jam waktu shalat universal:

 

Tampilan aplikasi (apk) JWS Semesin Universal:

 

contoh tampilan jadwal shalat 3 panel :

 

Koding / sketch JWS semesin:

/*
   JWS Semesin 1 - 8 panel

   Fitur yang tidak aktif
   1. Tampilan tanggal Hijriah
   2. Tampilan tanggal Jawa
   3. Tampilan tanggal Minang
   4. Pesan selama tartil
   5. Pesan selama tarhim
   6. Pesan selama Iqamah

*/

#define serialDebug                       false
#define modeDemo                          false

#define namaMesjid                        "JWS"

//defenisi pin
#define pinMP3Busy                        2
#define pinRelayAmpli                     3
#define pinBuzzer                         4
#define RTCDetikIRQ                       A3

#define relayOn                           LOW

#define I2CEEPROM_ADDRESS                 0x57

//setting
#define periodaAlarmWaktuShalatMasuk      100//milidetik
#define periodaAlarmWaktuAkhirIqamah      300//milidetik

#define pixelLebarPanel                   32
#define pixelTinggiPanel                  16

//variabel Setting
#define kecepatanMinimal                  10
#define skalaKecepatan                    10

#define tokenSetting                      32
#define lamaAksesApk                      10L * 60 * 1000

#define jumlahNyalaPadam                  5
#define jumlahTextInformasi               10

#define fontNamaMesjid                    Arial14
#define fontJamDanMenitUtama              angka6x14
#define fontSimbolGambar                  simbolGambar

#include <Wire.h>
#include <EEPROM.h>
#include <DMD_Semesin.h>
#include <RTC_Semesin.h>
#include <DFPlayer_Mini_Mp3.h>
#include <BluetoothApk.h>

#include <fonts/angka6x14.h>
#include <fonts/SystemFont5x7Ramping.h>
#include <fonts/Arial14.h>
#include <fonts/simbolGambar.h>

#include "fungsi.h"
#include "definisi.h"
#include "konstanta.h"
#include "setting.h"
#include "WaktuShalat.h"

const uint8_t *alamatFont[] = {
  Arial14,
  SystemFont5x7Ramping,
};

SPIDMD dmd(8, 1);//max jumlah panel = 8
RTC_DS3231 rtc;
DateTime now;

//Status
bool RTCValid = true;
byte modeOperasi = modeInformasi;
bool statusAlarm;
bool tampilJamMenitDetik = false;
long millisRunningText;
uint8_t kecepatanRunningText;
uint8_t kecepatanRunningEfek;

uint16_t hitungMundurTartil;
uint16_t hitungMundurTarhim;
uint16_t hitungMundurAzan;//terhitung sejak waktu masuk
uint16_t hitungMundurIqamah;//terhitung sejak selesai azan

bool pesanSetelahAzan;
bool pesanSebelumShalat;
uint16_t hitungMundurPeringatanSimbol;
uint16_t hitungMundurShalat;

bool initHitungMundurTartil;
bool initHitungMundurTarhim;
bool initHitungMundurAzan;
bool initHitungMundurIqamah;
bool initHitungMundurPeringatanSimbol;
bool initHitungMundurShalat;

uint8_t hitungMundurAlarmIqamah;//kali

int8_t indexWaktuIbadah;
int8_t indekInformasi;

//efek
uint16_t lamaTampilText;
bool initTampil;

bool tampilanInformasiSambung;

byte indekTampilan = jumlahInformasi;
EfekMarque efekMarque;

uint16_t lebarText;
uint8_t tinggiText;

byte detikSebelumnya = 60;
byte menitSebelumnya = 60;
byte tanggalSebelumnya = 0;

long millisAlarm;

bool status;

BluetoothApk bluetoothApk(&Serial, "JWS2 SEMESIN.COM");
long millisAksesApk;
bool aksesApk;

uint16_t counterAlamat = 0;
uint16_t counterAlamatSebelumnya = 0;
uint16_t parameterSebelumnya = 0;

byte lebarJamUtama = 32;

byte lebarJadwalShalat = 32;
byte modeTampilanJadwal;
char buffer[72];
uint16_t offsetJadwalEEPROM;
bool runningTextAktif;

JamDanMenitJadwal jadwalBerikutnya;
JamDanMenitAlarm alarmBerikutnya;
int8_t hitungMundurAlarm;
bool initHitungMundurAlarm;
bool statusRelayAmpli;

void setup() {

  pinMode(pinBuzzer, OUTPUT);
  digitalWrite(pinRelayAmpli, !relayOn);
  pinMode(pinRelayAmpli, OUTPUT);
  pinMode(pinMP3Busy, INPUT_PULLUP);

  Serial.begin(9600);
  Serial.println(F("JWS Semesin 1-8 panel"));
  Serial.println(F("https://www.semesin.com/project"));

  mp3_set_serial (Serial);
  mp3_set_volume (15);


#if serialDebug
  Serial.println(F("Inisialisasi"));
#endif

  rtc.begin();

  if (rtc.lostPower())
  {
#if serialDebug
    Serial.println(F("RTC tidak jalan"));
#endif
    write_i2c_register(DS3231_ADDRESS, DS3231_STATUSREG, 0x00);
  }
  write_i2c_register(DS3231_ADDRESS, DS3231_CONTROL, DS3231_SquareWave1Hz);

  if (EEPROM.read(offsetof(Setting, token)) != tokenSetting)
  {
    pengaturanAwal();
  }

  updateUkuranTampilan();
  dmd.waitInterruptOver = false;
  dmd.begin();
  dmd.clearScreen();
  dmd.setBrightness(25.5 * EEPROM.read(offsetof(Setting, kecerahanStandar)));

  kecepatanRunningEfek = skala2kecepatanRunning(EEPROM.read(offsetof(Setting, kecepatanEfek)));

#if serialDebug
  Serial.println(F("Sistem mulai"));
#endif

  dmd.selectFont(fontNamaMesjid);
  dmd.drawString(1, 1, namaMesjid);

  delay(3000);
  dmd.clearScreen();

  statusRelayAmpli = digitalRead(pinMP3Busy);
}


void loop() {

....... file lengkap bisa didownload melalui link dibawah

file JWS universal:

JWS Semesin v2.1

catatan:
* untuk RTC DS3231, pin-SQW harus terpasang pada pin-A3 (arduino)
* jika menggunakan pcb jws (versi manapun) ada kemungkinan tidak cocok dan perlu modifikasi

Bagikan Link halaman ini :

57 thoughts on “JWS Universal (Jadwal Waktu Shalat) 1 – 8 panel

  1. Assalamualaikum…
    Saya Arifin dari Jakarta
    Saya sdh mencoba upload sket ke arduino uno dg komposisi komponen sesuai sketsa dan sdh tanam aplikasi di android. saat dinyalakan hanya tertulis Shalat. kemudian saya koneksikan dg BT dan coba set. Namun setelah terkirim, panelnya malah blank. adakah yg perlu saya perbaiki ?
    Terima kasih banyak atas tutornya

  2. Asalamualaikum wr wb.unutuk file mp3nya bisa didonwload dmn ya kak.mohon bantuannya….sudah sukses membuatnya.tinggal untuk mp3nya…kalau pakai pcb yg dijual bebas di online memang mati bila dikoneksikan blutut karena wiring tdk sama.

    1. alhamdulilah sukses kang.. terima kasih ilmunya sangat bermanfaat… sudh coba dua2 nya yg jws 3 panel sama yg universal semua sukses… semoga kang asep semakin d lancarkan rejekinya.. amin…

    1. pastikan wiringnya sesuai skema
      catatan:
      * untuk RTC DS3231, pin-SQW harus terpasang pada pin-A3 (arduino)
      * jika menggunakan pcb jws (versi manapun) ada kemungkinan tidak cocok dan perlu modifikasi

  3. ijin gan ..
    udah coba upload ke arduino , cuman apk gak bisa kebuka udah pake id (jws) dan sandi (1234) masalah dimana ??

    1. *cek arduino bluetooth (baudrate 9600) – cek juga dengan program lain yang menggunakan bluetooth pada pin Serial (pin 0 dan 1)
      *pada android, pastikan telah di pairing dan dipilih di aplikasi
      *gunakan password standar 1234 jika belum di ganti, atau password terakhir yang disetting

  4. Seperti biasanya, proyek kang Asep top markotop. Smua koding lengkap tinggal enter dan hulaaaaa laaaaaaaaa…..
    Semua program berjalan baik gak ada eror. Testimoni video di upload ahhhhhhh

  5. Maaf akang sebelumnya banyak Terima kasih atas ilmunya
    Koq tampilan nama Masjid ga ada ya? Apa harus pakai rangkaian sama persis ga bisa dgn pcb jws lain
    Trims Akang

  6. assalamualaikum maha guru, terimakasih ats postingannya, sedikt bertanya.
    saya menggunakan mega2560 koneksi sudah saya sesuiakan dan koding sudah saya sesuaikan, tapi led nya menyala semua, apa yang yang salah ya guru. dan masih belum bisa di menampilkan.
    terimakasih ya guru.

  7. Assalamualaikum kang,, mau tanya kang, cara untuk download aplikasi jws androidnya gimana kang,, mohon arahan,,

  8. Kang ,perkenalkeun sama sama Asep.mau tanya kumaha kalo p10 dmd nya pingin di ganti ke rgb matrix pake adagruit gfx.ap yg mesti di lakukan

    1. BIsa saja, tapi akan ada beberapa ‘konversi’ dari standar library dmd2 (modified) dan library adafruit gfx, terutama fitur ‘automatic scan width’ yang tidak dimiliki adafruit gfx (mesti di modif juga/dihilangkan)

  9. Assalamualaikum bang.untuk file di isi di memory sd ..donwloadnya dmn ya bang.sebelumnya ijin mengunakan karya abang.

  10. Assalamualaikum, ijin download Pak, saya sdh upload ke arduino, mohon bantuannya :
    1. tartil ataupun tarhim tidak bunyi, file sudah sesuai format, jika saya play manual bisa bunyi, namun tidak bisa pada saat sesuai jam shalat, misal saya setting untuk duhur baik, tartil maupun tarhim, namun tidak berbunyi.

    2. untuk alarm adzan tidak bisa menggunakan suara adzan kah?

    terima kasih

  11. Assalamualaikum…gan, mau nanya…Bluetooth Apk, sudah di download, tapi kok ndak bisa di instal di androit ya…suwon…

  12. Assalamualaikum wr wb.
    ijin download Pak, saya sdh upload ke arduino, Tapi kalender hijriyah dan pasaran hari tidak muncul, cara menampilkan kalender hijriyah dan pasaran hari bagaimana ya pak..
    Jazakumulloh atas karyanya

  13. Assalamuaikum kang saya febri mau tanya kalau masalah ini apanya ya kang terima kasih kang

    void pengaturanAwal()
    {
    uint16_t ptr = &settingAwal;
    for (uint16_t i = 0; i < sizeof(Setting); i++)
    {
    byte dataDefault = pgm_read_byte(ptr++);
    EEPROM.update(i, dataDefault);
    }

    Wire.beginTransmission(I2CEEPROM_ADDRESS);
    Wire.write((uint8_t)0);
    Wire.write((uint8_t)0);
    Wire.write((uint8_t)0);
    Wire.endTransmission();
    }
    #endif
    invalid conversion from 'const Setting*' to 'uint16_t {aka short unsigned int}' [-fpermissive]

  14. Terimakasih terlebih dulu ….. Gan kok setting via aplikasi di hp gak bisa … Error perangkat tidak merespon di pengaturan umum kalau di pengaturan sholat tulisan pengaturan terkirim cuma tidak berubah… Wiring sudah sesuai diagram… Mohon solusi nya

    1. Makasih kang asep… Udah fix semua .. ternyata masalah nya di modul RTC nya …yg error lambat waktunya … Ganti RTC baru langsung joss…

  15. kang ijin download.. rencana mau buatin untuk musholla.. kalo misal modul blutut di ganti modul wifi esp8266 gmana kang.. apanya yang harus di rubah.. soalnya modul blutut hrganya lumayan mahal..(maklum kantong pelajar) mohon bantuanya.. terima ksih semoga kang asep di lancarkan rejekinya.. amin

  16. ok terima kasih infonya kang.. tp untuk pake nodemcu..ilmunya beon nyampe saya ,ehhehe.. arduino j masih tahap beljar kang.. maksih ya kang atas ilmunya.. sangat bermanfat…

  17. Assalamualakium Om

    Mau tanya… saya hanya mau buat satu panel P10, dan tidak pakai audio.. mp3 dan yang lainnya..
    tetepai masih pakai BUzer.

    Apakah yang saya harus rubah programnya?

  18. maaf kok mp3 nya gak bisa nyala ya kak.. wiring sudah sesuai dg gambar.. tp mp3 gak bisa di putar.. apakah saya salah memasukkan nama file mp3 nya di kartu memory.. mohon bimbingannya terima kasih

  19. maaf mau tany bang , kena puny saya error terus ya.. pdahal sudah mengikuti arahan di atas.. wiring juga sudah benar.. tiap kali saya verifikasi keluar
    error exit status 1
    error compiling for board arduino uno
    itu kenapa ya mohon bimbingannya terima ksih sebelumnya

  20. Karya Mas Asep yg luar biasa,,, bisa digunakan untuk referensi pembelajaran bagi pemula,,, kami tunggu project JWS yg menggunakan control wifi esp8266 mas biar controlnya lebih stabil dan tentunya lebih ekonomis buat beli alatnya yg pas buat kocek mahasiswa. Makasih banyak ni jdi termotivasi untuk bereksperimen.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.