Jadwal Waktu Shalat (JWS) 2 & 3 Panel P10 Arduino Uno dengan kontroller Android melalui Bluetooth

Rancangan displai jadwal waktu sholat / JWS menggunakan arduino ini memanfaatkan I2C EEPROM 24C32 sebagai penyimpan data tampilan Infomasi text yang mampu menampung 4096 karakter. Chip 24C32 umumnya disertakan pada modul RTC DS1307 / DS3231 dengan jalur komunikasi yang sama dan alamat yang berbeda. Karena komunikasi I2C dikategorikan lambat, maka akses pembacaan memori ini diminimalisir dengan metode read on demand.

Display Jadwal Sholat Arduino

Perancangan JWS menggunakan Arduino atau JWS dengan kontroller running text harus mampu menangani hal-hal berikut :

  1. Waktu sholat berdasarkan perjalanan matahari yang berubah-ubah sepanjang tahun, sehingga dibutuhkan perhitungan khusus untuk menentukan posisi matahari secara matematis. Formula yang digunakan berasal dari islamicity, dengan penambahan variabel sudut-sudut matahari.
  2. Pengaturan yang komplek namun fleksibel mengharuskan JWS didesain mampu menyesuaikan tugasnya dengan beberapa parameter yang bisa di monitor atau diganti berkala. Seperti adanya kegiatan-kegiatan khusus sehingga JWS bisa beralih fungsi.

Kapasitas memory flash arduino uno (ATMega328) yang 32Kb masih menyisakan ruang untuk 3 set font diamping 1 font angka. Font-font ini berfungsi memberikan efek tulisan sehingga memungkinkan adanya penekanan informasi.

Efek JWS Arduino

Efek-efek tampilan diperlukan supaya kehadiran JWS lebih menghiasi dinding, bukan hanya sebagai papan informasi. efek yang di tambahkan :

  1. Wipe in – wipe out
  2. Marque
  3. Lukis gambar

JWS Bluetooth

Fasilitas pengaturan JWS dengan bluetooth:

  1. 10 teks informasi yang disimpan dalam memory 24C32 yang mampu menyimpan 4096 karakter.
  2. Font informasi bisa diatur terpisah (System Font 5×7,Arial 14,Arial Black 16) pada uno, dan bisa ditambahkan pada board yang memiliki memori lebih besar.
  3. Waktu padam dan nyala.
  4. Perhitungan waktu sholat dengan metode sudut matahari.
  5. Tampilan tanggal hijriah (bisa diatur dan dinonaktifkan).
  6. Efek wipe untuk tampilan waktu-waktu sholat.
  7. Efek tulisan gambar.
  8. Pengaturan bluetooth meliputi kecerahan DMD panel, kecepatan scroll.
  9. Token aplikasi apk, untuk mengantisipasi apabila ada komunikasi bluetooth yang tidak diinginkan yang mungkin akan merubah setting.
  10. Konfirmasi data setting diterima dan waktu padam/nyala ke apk android.
  11. Data yang diketik di apk disimpan dalam database android, jadi saat aplikasi ditutup data yang diketik tetap akan tampil saat aplikasi dibuka kembali.

Komponen yang digunakan dalam JWS Arduino bluetooth:

  1. Arduino Uno (Gunakan Arduino mega untuk memory yang lebih besar).
  2. RTC DS3231 (termasuk 24C32) kompatibel DS1307 (beda address)
  3. Bluetooth HC-05
  4. Panel P10 (2 panel)

Jika ingin upload sketch dari arduino ide, lepaskan dahulu pin ‘0’ / pin RX jika menggunakan bluetooth hardware serial.

Skema arduino JWS bluetooth:

Video bluetooth arduino JWS:

 

JWS Android

Screenshoot JWS Android bluetooth:

JWS bluetooth android ini menggunakan hardware SPI sebagai pengirim data ke running text, meskipun mengorbankan pin 12 (MISO) yang tidak bisa digunakan karena dikontrol oleh SPI.

Pengaturan JWS dengan arduino yang dibutuhkan :

  1. #define modeDemo pada baris atas digunakan jika ingin menjalankan JWS demo, hapus baris ini jika JWS digunakan normal.
  2. Pin Kontrol DMD hardware SPI : pinOE  harus dipasangkan pada pin PWM sebagai pengatur kecerahan. Sedangkan pinA, pinB, dan pinSCK bisa ditempatkan dimana saja.
  3. Jumlah panel.
  4. Perancangan ini dibuat dengan DS3231, jika menggunakan DS1307 harap diganti bagian alamat I2C-nya.
  5. Pin SQW (DS3231) diset sebagai penghasil pulsa dengan frekuensi 1 HZ sebagai interupsi bagi JWS bahwa detik telah berubah. dalam perancangan JWS arduino ini dihubungkan ke pin A3 namun bisa dipindahkan kemana saja.
  6. Jenis font bisa disesuaikan dengan kebutuhan, (#include-kan juga library font-nya). dengan merubah variabel berikut:
    #define fontWaktu               angka6x13
    #define fontInformasi           SystemFont5x7Ramping
    #define fontTanggal             SystemFont5x7Ramping
    #define fontNamaSholat          SystemFont5x7Ramping
    #define fontWaktuSholat         SystemFont5x7Ramping
    #define fontWaktuMasuk          SystemFont5x7Ramping
    #define fontAdzan               SystemFont5x7Ramping
    #define fontIqomah              SystemFont5x7Ramping
    #define fontMatikanHP           Arial14
    
  7. JWS ini dilengkapi sistem token, untuk RTC dan komunikasi bluetooth, apabila token yang digunakan cocok maka perintah untuk RTC dan bluetooth (setting variabel) akan dijalankan.

Sketch/koding header dan setup android bluetooth JWS:

#define modeDemo                0    //<<==================================== DEMO prinsip kerja 0 / 1

#define selisihImsak            10

//defenisi pin
#define pinA                    6
#define pinB                    7
#define pinOE                   9
#define pinSCK                  8

#define alarm                   5
#define RTCDetikIRQ             A3

//variabel Setting
#define jumlahKolomPanel        2  //panel
#define jumlahBarisPanel        1  //panel

#define lamaTampilWaktuSholat   10 // * 100 milidetik
#define lamaTampilInformasiJam  100 // * 100 milidetik

#define fontWaktu               angka6x13
#define fontInformasi           SystemFont5x7Ramping
#define fontTanggal             SystemFont5x7Ramping
#define fontJadwalSholat        SystemFont5x7Ramping
#define fontWaktuSholat         SystemFont5x7Ramping
#define fontWaktuMasuk          SystemFont5x7Ramping
#define fontAdzan               SystemFont5x7Ramping
#define fontIqomah              SystemFont5x7Ramping
#define fontMatikanHP           Arial14

#define RTC_ADDRESS             0x68
#define I2CEEPROM_ADDRESS       0x57  //Perhatikan alamat I2CEEPROM 0x50(ds1307 .. 0x57(ds3231)
#define RTC_CONTROL_REG         0x0E  //0x07 ds1307, 0x0E ds3231 


#include <Wire.h>
#include <SPI.h>
#include <avr/sleep.h>
#include <avr/pgmspace.h>
#include <EEPROM.h>
#include <SoftwareSerial.h>

#include <DMD2.h>

#include "fungsi.h"
#include "definisi.h"
#include "konstanta.h"
#include "rtc.h"
#include "prayer.h"
#include "i2cUmum.h"
#include "trigonometri.h"

#include <fonts/SystemFont5x7Ramping.h>
#include <fonts/Arial14.h>
#include <fonts/Arial_Black_16.h>
#include <fonts/angka6x13.h>
#include <fonts/AllahMuhammad.h>

const uint16_t alamatFont[] = {&SystemFont5x7Ramping, &Arial14, &Arial_Black_16};

struct Setting
{
  int8_t koreksiHijriah;
  int8_t jumlahAlarm;
  int8_t lamaAdzan;
  int8_t lamaIqomah[5];
  int8_t ulangMatikanHP;
  int8_t lamaSholat[5];
  int8_t lamaSholatJumat;
  int8_t kecepatanJalanInfoText;
  int8_t kecerahanJWS;
  int8_t padamJam;
  int8_t padamMenit;
  int8_t nyalaJam;
  int8_t nyalaMenit;
  int8_t tampilanHijriah;
  int8_t tampilanImsak;
  int8_t tampilanTerbit;
  int8_t tampilanDhuha;
  int8_t tampilanTerbenam;
  int8_t JumlahInfoTextAktif;
};

#if modeDemo
  Setting setting = {0, 5, 1, {5, 5, 5, 5, 5}, 1, {5, 5, 5, 5, 5}, 2, 50, 20, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1};
  char namaMesjid[panjangString] = "Musholla ...\0   ";
#else
  Setting setting;
  char namaMesjid[panjangString];
#endif

//variabel
const char strWaktu[] PROGMEM = "Waktu";
const char strSholat[] PROGMEM = "Sholat";
char strWaktuInformasi[9];
JamDanMenit waktuSholat[9];

EfekMarqueHorizontalkeKiri marqueKiri;
EfekTulis efekTulis;
uint8_t efekScrollOutDanWipeIn;

uint8_t marqueOut;
bool marqueTampilan;
uint8_t wipeInTampilan;
uint8_t wipeOutTampilan;
uint8_t efekTulisTampilan;


uint8_t indexNamaSholat;
uint16_t hitungMundurSholat;
uint16_t hitungMundurPesanSebelumSholat;
uint16_t hitungMundurIqomah;
uint16_t hitungMundurAdzan;
uint8_t hitungMundurAlarm;
uint16_t hitungMudurAlarmIqomah;

byte modeOperasi;
byte modeOperasiSebelumnya;

uint8_t menitSebelumnya = 60;
uint8_t hariSebelumnya = 32;

bool statusAlarm;

bool tampilkanMenit;
bool infoWaktu;
byte infoWaktuTop;
uint16_t lamaTampil = 0;
uint16_t indekTampilan;

char textWaktuJam[6];
char textTanggalHijriah[sizeof(strNamaHari[0]) + 2 + 3 + sizeof(strNamaBulanHijriah[0]) + 3 - 2];

uint8_t bluetoothData[32];
uint16_t indexParseSerial = 0;

byte indexInformasi = 1;
long mulaiMillis;
uint16_t AlamatI2CEEPROM;

int8_t indexSetting = 0;
byte indexSettingInfo;
bool tokenValid = false;
bool RTCValid = true;

byte tanggalHijriah;
byte bulanHijriah;
uint16_t tahunHijriah;

uint16_t AlamatI2CEEPROMSebelumnya;
bool nextEEPROMData = false;
byte EEPROMDataCounter;

bool modeSambungSebelumnya = false;

tanggalDanWaktu now;
tanggalDanWaktu settingWaktu;
byte settingWaktuIndex;

//Class variabel
#define l jumlahKolomPanel * 32
#define t jumlahBarisPanel * 16
SPIDMD dmd(jumlahKolomPanel, jumlahBarisPanel, pinOE, pinA, pinB, pinSCK);
DMDFrame dmdEfek(l, t);

DMD_TextBox boxKolom1(dmd, 0, 0, l / 2, t);
DMD_TextBox boxKolom2(dmd, l / 2, 0, l / 2, t);
DMD_TextBox boxBaris1(dmd, 0, 0, l, (t / 2) - 1);
DMD_TextBox boxBaris2(dmd, 0, t / 2, l, t / 2);

DMD_TextBox boxKolom2Baris1(dmd, l / 2, 0, l / 2, t / 2);
DMD_TextBox boxKolom2Baris2(dmd, l / 2, t / 2, l / 2, t / 2);

//Eeprom24C32_64 I2CEEPROM(EEPROM_ADDRESS);
HardwareSerial *bluetooth;

#define tokenRTC 0xA9
#define tokenBluetooth 0x4C
#define tokenSetInformasi "225654"
#define tokenSetSetting "963215"

void setup() {
  Serial.begin(9600);
  Serial.println("JWS Bluetooth");
  Serial.println("https://www.project.semesin.com/");
  Serial.println();

  bluetooth = &Serial;

  pinMode(alarm, OUTPUT);
  pinMode(RTCDetikIRQ, INPUT_PULLUP);

  //Interupsi setiap 1 detik
  Wire.begin();
  Wire.beginTransmission(RTC_ADDRESS);
  Wire.write(RTC_CONTROL_REG);
  Wire.write(0x00);//SQW freq, 1Hz
  Wire.endTransmission();

#if modeDemo
  prayerData = { -1576, 27343, 1792, 5120, 213, -1152, 1024, 4608, 0, 0, 0,0,0};
  settingWaktu = {50, 29, 4, 5, 7, 5, 2018};
  simpanRTC(RTC_ADDRESS, settingWaktu);
#endif

  if (EEPROM.read(alamatTokenRTC) != tokenRTC)
  {
    //Waktu compiler
    char Month[12];
    int Day, Year;
    uint8_t monthIndex;
    int Hour, Min, Sec;
    char *monthName[12] = {
      "Jan", "Feb", "Mar", "Apr", "May", "Jun",
      "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
    };
    sscanf(__TIME__, "%d:%d:%d", &Hour, &Min, &Sec);
    sscanf(__DATE__, "%s %d %d", Month, &Day, &Year);
    for (monthIndex = 0; monthIndex < 12; monthIndex++) {
      if (strcmp(Month, monthName[monthIndex]) == 0) break;
    }
    uint8_t wday = hariDariTanggal(Day, monthIndex + 1, Year);
    settingWaktu = {Sec, Min, Hour, wday, Day, monthIndex + 1, Year};
    simpanRTC(RTC_ADDRESS, settingWaktu);
    EEPROM.write(alamatTokenRTC, tokenRTC);
  }

#if !modeDemo
  if (EEPROM.read(alamatTokenBluetooth) == tokenBluetooth)
  {
    ambilSetting();
  }
#endif
  ambilHijriah();
  dmd.begin();

  set_sleep_mode(SLEEP_MODE_IDLE);
  sleep_enable();

  mulaiMillis = millis();
  modeOperasi = tampilWaktuSholat;

  while (!digitalRead(RTCDetikIRQ));
}

 

File-file yang digunakan dalam JWS android :

  1. definisi.h
  2. fungsi.h
  3. i2cUmum.h
  4. JWS_Semesin.ino
  5. konstanta.h
  6. prayer.h
  7. rtc.h
  8. trigonometri.h
  9. JWS_Bluetooth.apk
  10. file lengkap (.zip)

Rekomendasi Perakitan JWS Bluetooth Android:

  1. unzip JWS Bluetooth + apk – Semesin.zip (adalah folder sketch arduino beserta file pendukung dalam satu folder)
  2. copy isi folder libraries ke Document/Arduino/libraries/
  3. Buka JWS_Semesin.ino dengan arduino IDE (pengujian dengan versi 1.8.5)
  4. Lepas tx Bluetooth
  5. Upload ke arduino
  6. Hubungkan tx Bluetooth
  7. Buka app JWS Bluetooth klik setting dan kirim pengaturan
  8. Selesai.

antisipasi masalah:

  1. Data EEPROM sebelumnya mungkin berpengaruh pada settingan, set dengan apk via bluetooth atau hapus dahulu dengan examples->EEPROM->eeprom_clear.
  2. #define modeDemo 1 untuk test / 0 untuk running
  3. Pastikan daya mencukupi (kalo tidak punya 5V > 5A hubungkan saja GND DMD ke GND Arduino tapi tidak Vcc +5V-nya)

nb: V1.0 -> Versi2.0

  1. Karakter informasi yang akan ditampilkan langsung diambil dari I2CEEPROM
  2. Penambahan pengaturan sudut-sudut waktu sholat.
  3. Penambahan efek grafis

catatan:

  • koordinat dalam mode derajat-menit –±dd° mm’–(menit = pecahan derajat*60/100)
    contohnya :
    lintang -6.78 -> -6-46′
    bujur 110.38 -> 110-22′
  • jika koordinat sudah sesuai, namun masih ada perbedaan waktu dengan jadwal yang diinginkan (mis: jadwal depag), maka geser bujur (ditambah/dikurang)
  • Jika sebagian jadwal shalat tidak akurat, maka geser derajat masing-masing jadwal shalat yang belum akurat
  • JWS ini belum menggunakan ikhtiyath, untuk mengantisipasinya bisa dengan menggeser derajat-menit bujur ±2 menit)

Hasil percobaan

by: Priadi Amfi

Hasil percobaan

by: Catur cahya

Hasil percobaan

by: Ochoy Thea

289 thoughts on “Jadwal Waktu Shalat (JWS) 2 & 3 Panel P10 Arduino Uno dengan kontroller Android melalui Bluetooth

  1. tanya mas…
    1. Apakah harus upload 8 program tersebut secara terpisah? Alasan?
    2.Untuk semua define font, brarti hrus include masing2 sperti definisi.h , fungsi.h , trigo.h dst?

  2. In file included from C:\Documents and Settings\succes\My Documents\Arduino\sketch_jun10a\sketch_jun10a.ino:48:0:

    sketch\konstanta.h:78:21: warning: initializer-string for array of chars is too long [-fpermissive]

    };

    ^

    C:\Documents and Settings\succes\My Documents\Arduino\sketch_jun10a\sketch_jun10a.ino:60:80: warning: invalid conversion from ‘const uint8_t (*)[483] {aka const unsigned char (*)[483]}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    const uint16_t alamatFont[] = {&SystemFont5x7Ramping, &Arial14, &Arial_Black_16};

    ^

    ….

    ^

    In file included from C:\Program Files\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:23:0,

    from sketch\sketch_jun10a.ino.cpp:1:

    c:\program files\arduino\hardware\tools\avr\avr\include\stdlib.h:276:12: note: initializing argument 1 of ‘int atoi(const char*)’

    extern int atoi(const char *__s) __ATTR_PURE__;

    ^

    apa mksud dr keterangan diatas? compile brhasil tetapi beberapa tampilan tdk tampil sprti anime masjid, lafad Allah Muhammad dan tanggal hijriah. Mhon pencerahannya mz

    1. secara garis besar compilernya belum mendukung fungsi2 conversion tersebut, coba update IDE arduino.

      “warning: initializer-string for array of chars is too long [-fpermissive]” disebabkan adanya kelebihan jumlah konstanta terhadap jumlah yang ditetapkan dalam array (dengan compiler 1.8.5 warning tersebut tidak muncul dan otomatis diperbaiki) namun untuk kompobilitas sketchnya sudah diperbaiki (terima kasih linfo bugnya)

      https://www.project.semesin.com/wp-content/uploads/2018/06/Untitled.png

  3. tetep mas…. udah 1.85 ,,,,,,,,,,,itu urutan uploadnya dr mana duluan? kalo dari trigo.h , waktunya dah pas……….. tp setelah upload yg rtc.h waktunya malah gk sinkron mz….. cari info di forum gk ketemu solusi. Trakhir saya dah upgrade AVR boardnya jg tapi tetep aja hasilnya

    1. Masih permasalahan warning di compile itu yah?

      Saya baru coba:
      1. hapus library DMD_Semesin difolder \Documents\Arduino\libraries
      2. Masukin library (DMD_Semesin.zip) yang baru didownload dari halaman ini
      3. open project yang baru didownload dari halaman ini
      4. compile

      hasilnya nga ada warning seperti itu (sukses tanpa ada error dan warning).

  4. next mz…. pada tab I2c umum mengapa alamat rtc menjadi 0xFF?
    Wire.write(address & 0xFF);
    apa ini penyebab jam tdk singkron?

    maaf mas, saya kebnyakan tanya soalnya ini saya sambil praktek dg alat lengkapnya jg tp saat ini msih blum bs sprti hasi videonya mas…. hehe

    1. Wah saya harus ucapkan terima kasih sudah teliti dan kritis.

      Jadi begini:
      Untuk RTC alamat register (tempat simpan data) besarnya 1 byte.
      Untuk I2C-EEPROM alamat register besarnya 2 byte.

      jadi fungsi
      Wire.write(address >> 8); berfungsi menulis (write) byte MSB
      Wire.write(address & 0xFF); berfungsi menulis (write) byte LSB
      & 0xFF (and 0xFF) berarti mengambil byte terakhir (LSB) dari alamat 2 byte.

      Kebetulan saya menuliskan fungsi sebagai
      byte bacaByteI2C(byte alamatI2CRTC, uint16_t address)
      seharusnya
      byte bacaByteI2C(byte alamatI2C, uint16_t address)
      kesalahan copy paste

      cuma saya bisa jelaskan disini, fungsi tersebut tidak di pake untuk pembacaan RTC, tapi hanya digunakan untuk pembacaan I2CEEPROM yang alamat registernya 2 byte

      untuk pembacaan RTC saya menggunakan fungsi
      tanggalDanWaktu ambilRTC(byte alamatI2CRTC)
      yang ada di “rtc.h”

  5. Mas, boleh request coding utk 3 panel? tapi tlong kodingnya dibuat fresh. Soalnya kalo menurut saya, proyek yg ini bnyak kekurangannya seperti:
    1. Jam diproyek ini tdk singkron, padahal klo bs pake yg https://www.project.semesin.com/2018/05/09/seting-waktu-rtc-otomatis-dengan-arduino/ itu bagus bnget.
    2. Tampilannya hanya bertahan 30 detik dan tidak ada pengulangan lg padahal sudah ada program looping
    3. Tampilan lambang masjid, asma Allah, timer iqomah dan azan tidak tampil sama skali padahal disaat saya koment ini waktu sudah maghrib dan tidak ada tampilan apapun di panelnya.
    Saya dah terlanjur semangat belajar arduino gara2 postingan ini. Pingin bisa bikin yang auto tarhim dan azan mp3.
    ayooo gass poll mas!!!!

    1. Program ini saya pake untuk juga untk di jual. sudah 3 minggu terpasang belum ada komplain.

      tetapi juga gratis bagi yang mau pake (saya sudah lihat beberapa video yang pake sketch ini)
      gak ada masalah seperti punya Mas Candra.

      Untuk yang 3 panel belum ada project/kebutuhannya.
      Cuma kemarena ada yang nyoba, hasilnya cuma ngegeser titik tengah.

  6. Untuk urutan uploadnya dr yg mana dulu mz? ini saya coba pake laptop pun, warningnya tetep ada…. upload sih tetep berhasil, cuman warningnya itu doang sih

    1. Rekomendasi penggunaan:
      1. unzip DMD-semesin.zip ke foler libararies arduino
      2. unzip JWS_Semesin.zip (adalah folder sketch arduino beserta file pendukung dalam satu folder)
      3. Buka JWS_Semesin.ino dengan arduino IDE (pengujian dengan versi 1.8.5)
      4. Upload ke arduino
      5. Hubungkan tx Bluetooth
      6. Buka apk JWS Bluetooth Evaluasi.apk klik setting dan kirim pengaturan
      7. Selesai.

      antisipasi :
      1. Data EEPROM sebelumnya mungkin berpengaruh pada settingan, set dengan apk via bluetooth.
      2. #define modeDemo 1 untuk test / 0 untuk running
      3. Pastikan daya mencukupi (kalo tidak punya 5V > 5A hubungkan saja GND DMD ke GND Arduino tapi tidak Vcc +5V-nya)

  7. Ko lafadz Allah Muhammad nya ga tampil kang? begitupun animasi mesjid nya..padahal ga ada warning saat di upload,kira2 salah apanya y?

  8. Mas ni saya ikut eksperimen buat JWS 2 panel sesuai petunjuk yg dijelaskan diatas, namun ada kendala kenapa ya koq detik jam dan menit gak jalan?
    Jadi waktu akan tampil tetap sesuai saat setting pertama saja. saya menggunakan RTC DS1307 yg alamat addressnya sudah sy sesuaikan sesuai petunjuk.
    mohon pencerahannya, semoga ilmunya tambah barokah dan manfaat, amiin.
    trimakasih banyak sebelumnya.

  9. Tanya lagi mas, kenapa kalo pin SQW RTC disambungkan dg pin sesuai dg yg di sketch kok semua tulisan gak tampil (padam), tapi kalo pin sketch sqw rtc diganti dg pin lainnya baru menyala tapi tidak bsa keluar detiknya?
    Contoh:
    Pin SQW RTC dihubungkan dg pin A3, sketch program dituliskan define RTCDetikIRQ A3 (tulisan gak mau tampil), jika sketch program dituliskan pin lain mis: A0, A1, A2 baru bisa tampil tapi detik tidak muncul & jam tidak sesuai.
    (Dg kata lain klo pin SQW RTC disambung sesuai pin yg di sketch gak mau tampil).
    Mohon solusinya ya mas, trims.

  10. Mas untuk permasalahan pin SQW RTC yg gak sinkron ketika dihubungkan dg pin arduino sudah terselesaikan dg cara RTC di setting mandiri, setelah itu RTC di cabut dari arduino baru diupload sketch JWS_Semesinnya kemudian RTC dipasang kembali.

    Tapi ini ada permasalahan lagi kenapa ya hasil setting dari apk android misalkan kontras, kecepatan informasi, & jam jadwal sholat koq gak tersimpan setelah JWS dimatikan? apakah memang harus setting ulang terus setelah JWS mati?

    Apakah JWS ini sudah diuji dengan jenis RTC DS1307?

    Trimakasih banyak sebelumnya atas pencerahannya, semoga menjadi amal sholih,,,amiin.

    1. Seluruh data setting tersimpan dalam EEPROM (AVR/Arduino) dan data text informasi disimpan dalam I2CEEPROM
      dan hanya diambil jika

      #define modeDemo                0
      

      JWS ini diuji dengan RTC3231 dan belum pernah diuji sendiri dengan DS1307
      namun seharusnya kompatible (kecuali alaram –tidak digunakan dalam proyek ini–)

  11. Mas aplikasi apk JWS Bluetoothnya bagian setting kolom info kenapa ya yg aktif koq hanya 2 saja (info 1, info 2), sedangkan yg info 3, dst… Tidak bsa digunakan?
    Trims

  12. Ok mas saya berminat sekali untuk belajar karna sejak lama kepengin banget bisa mendalami sketch arduino dan selama ini juga sudah berusaha oprek project2 sederhana yg berkaitan robotika berbasis arduino. Skrng pingin banget bisa belajar tentang running text/JWS arduino. Trimakasih banyak atas bimbingannya semoga kebaikan2 mas Asep menjadi investasi amal di akherat.

  13. Mas ini saran aja untuk pengembangan project JWS:
    1. Direkomendasikan menggunakan RTC DS3231 agar penggunaan project JWS ini berjalan dg baik, karna ketika sy menggunakan RTC DS1307 terjadi banyak troble.
    2. Fungsi setting pada (mode demo) dg bluetooth menu lama adzan, lama iqomah, & lama sholat masih belum fungsi, jadi untuk setting msih hrus manual edit sketch programnya.
    3. Hasil setting informasi & waktu dg aplikasi apk belum bisa tersimpan otomatis, ketika arduino restart/power off akan kembali seperti semula saat JWS blum disetting.
    4. Pada mode running, text informasi setelah tampilan gambar & tampilan waktu terus menerus looping berulang ulang tampilan text informasinya, tidak tampil kembali animasi gambar & waktunya.

    NB: project JWS ini sudah lebih dari sempurna karna sudah dilengkapi dg fitur menu setting dg apk yg lengkap terkait menu2 yg dibutuhkan untuk kebutuhan jadwal sholat. Kelebihan lain project JWS ini mampu menampilkan karakter text yg banyak.

    Mohon maaf jika ada kesalahan dlm catatan ini krna sy masih proses belajar, Trims.

  14. Mas Asep mohon maaf nanya lgi ini, kalo hasil setting waktu pada JWS dengan bluetooth gak tersimpan setelah listrik padam solusinya gimna ya? Soalnya klo hrus setting2 terus gak efektif, apalagi daerah sy sering mati listrik, trims. Mohon pencerahannya.

  15. Alhamdulillah mas AsepJWS sudah bisa berjalan normal, cuman ada fungsi menu apk yg perlu diperbaiki untuk penyempurnaan project ini:
    1.) Untuk menu setting lama iqomah dan lama adzan masih tertukar acak:
    Contoh:
    Seting lama iqomah Dzuhur berfungsi untuk Subuh & maghrib
    Seting lama iqomah Isya berfungsi untuk Ashar
    Seting lama iqomah Subuh berfungsi untuk Dhuhur
    Seting lama iqomah Maghrib berfungsi untuk Dhuhur
    2.) untuk seting lama iqomah Ashar gak bisa diseting jadi secara default tampilnya lama iqomah pasti 1 menit.
    Trimakasih itu masukan saja untuk penyempurnaan, mohon maaf jika ada yg kurang berkenan.

  16. Mas mohon maaf mu naya lagi, ni ada masalah terkait JWS pas mode break lama sholat maghrib dan lama sholat isyak kok jadi lama sekali ya jedanya skitar 30 menitan baru nyala kembali, padahal disetingan lama sholat cman 5 menit.
    Kira2 yg perlu diedit sketchnya pada bagian mana ya? Trimakasih bnyak sebelumnya.

    1. Saya sudah cek, semua variabel di setting melalui bluetooth dengan metode scanning keseluruhan setting
      dan diambil dengan metode array
      bukan dsimpan dan diambil satu-satu, jadi semua sudah otomatis
      ragunya saya kemungkinan ada perubahan data saat transmisi bluetooth sehingga data tidak cocok lagi.

      perbaikan ini sudah di lakukan pada versi wemos wifi dengan menambahkan checksum sehingga validnya data terjamin.

  17. Assalamu’alaikum wrwb,
    Mas ini lanjut lagi belajarnya, mohon pencerahannya. Untuk sketch JWS ini kenapa kalo diupload ke arduino nano 328p koq gak bisa ya ada pesan:
    “Error compiling for board arduino nano. Sketch too big… size for tips on reducing it.”
    Padahal spec memory dg arduino uno sama2 328, mohon pencerahannya, trimakasih banyak sebelumnya.

    1. Arduino uno menggunakan bootloader sebesar 512 bytes
      sedangkan nano menggunakan bootloader sebesar 2048 bytes sehingga hanya tersisa 30720 byte untuk program

      board nano didesain untuk 2 mc 328 dan 168, sehingga bootloadernya juga didesain untuk meng-handle dua mc tersebut, sehingga ukuran bootloadernya besar.

      pemecahannya bisa dengan mengganti bootloader nano atau
      optimasi program contohnya dalam jws ini bisa dengan menghapus beberapa font.

  18. mas mau tanya…
    kalo masang chase sebelum variabel timer bs gak ya?
    misal 10 menit sebelum azan, timing tarhim HIGH. Kodingnya gmn mas?

  19. Assalamualaikum mas, bisa nggak minta full coding sama full APK nya untuk belajar dan diterapkan di masjid kami, mohon bantuanya mas.

  20. Pagi mas Bos, mau nanya kalo error “class SPIDMD has no member named ‘FixWidth’ ” itu kesalahannya dimana ya mas Asep, mohon bantuannya.

    1. Coba lihat pesan errornya lebih keatas
      ^ tulisan diatas ‘class spidmd’ has no member named fixWidth

      setau saya tidak ada fungsi seperti itu di dmd2, yang ada fixedWidth
      mungkin ada modifikasi atau semacamnya?

  21. Siang mas asep, contoh hasil jadinya sdh saya kirim ke email, banyak error di tampilan mas, begitu dicabut power supplynya dan dinyalain lg settingan berubah ( gak kesimpan ), trus APK nya fungsi baru jalan beberapa.mohon koreksinya, teimakasig

  22. Assalamu’alaikum.
    Mas asep saya mau belajar serius untuk yang ini, ada video tutorial kah? jika ada bisa di email ato WA,
    klo untuk donasi demi kelancaran project mas Asep kemana ya kirimnya? saya sangat menghargai kerja keras mas Asep dalam pembuatan project ini.. mohon pencerahannya.

  23. Menurut sy ini JWS yg terbaik yg pernah sy coba bikin. Kelebihanya yaitu :
    – bisa di seting melalui bluetoot dengan text yang panjang.
    – apabila koneksi bluetooth terputus, text masih tersimpan.
    – ada automatic on/off
    – ada tgl hijriah dan masehi
    – setting mudah melalui android
    – dll

    Saran pengembangan :
    – Coding perlu ada sedikit penyempurnaan krn msh ada bbrp bug.
    – agar bisa di gunakan utk bbrp variasi panel
    – bug pada font di tulisan informasi.

    Tapi secara umum dah oke dech.

    Sy sudah bikin sysmin nya.

  24. mas mau tanya
    #if !modeDemo
    if (EEPROM.read(alamatTokenBluetooth) == tokenBluetooth)
    {
    ambilSetting();
    }
    #endif
    ambilHijriah();
    dmd.begin();

    setelah di kompile kok muncul begini mas yg kurang di mana ya

    jam_sholat_versi_semesin.:230: error: ‘ambilSetting’ was not declared in this scope

    ambilSetting();

    ^

    jam_sholat_versi_semesin.:233: error: ‘ambilHijriah’ was not declared in this scope

    ambilHijriah();

  25. Syukron Jazilan Mas Asep Kurniawan, Terima kasih Ijin Download + Pake Njih mas.. Semoga Bermanfa’at berkah Ila Yaumil Qiyamah. Aamiiin…

  26. Assalamu alaikum pak Asep, mau tanya , Alhamdulillah ini buat masjid utk kampung sy coba sdh berhasil, cuma blm berani di pasang karena setting jadwal sholat nya blm pas, krn pada aplikasi blue tooth nya menu kordinat g ada, jd tampil menu setting sudut ashar, sudut isya , sudut maghrib …mohon solusi pak..

  27. Assalamu’alaikum kang asep
    Saya sedang uji coba jws yg akang buat, rencananya mau di pasang di pondok pesantren,
    Dari hasil uji coba dengan 1 panel saya puas dan tinggal beli 1 panel lagi, sekiranya sudah jadi nanti beserta casingnya akan saya kirimkan video testimoninya
    Atas ke murahan ilmunya saya mengucapkan terimakasih semoga allah memberikan keberkahan kepada akang sekeluarga aamiin.. Salam

  28. maaf ane nyoba kok error gan, mohon bantuanya dong. makasih
    Arduino: 1.8.7 (Windows 7), Board: “Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)”

    In file included from C:\Users\4TKHUR_TECH\Downloads\Compressed\JWS_P10_DS1302_1PANEL\JWS_P10_DS1302_1PANEL.ino:7:0:

    C:\Users\4TKHUR_TECH\Documents\Arduino\libraries\DMD/DMD.h:52:2: warning: #warning CHANGE THESE TO SEMI-ADJUSTABLE PIN DEFS! [-Wcpp]

    #warning CHANGE THESE TO SEMI-ADJUSTABLE PIN DEFS!

    ^

    sketch\DS1302.cpp: In member function ‘char* DS1302::getTimeStr(uint8_t)’:

    sketch\DS1302.cpp:106:16: warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]

    char *output= “xxxxxxxx”;

    C:\Users\4TKHUR_TECH\Downloads\Compressed\JWS_P10_DS1302_1PANEL\JWS_P10_DS1302_1PANEL.ino: In function ‘void setup()’:

    JWS_P10_DS1302_1PANEL:107:7: error: ‘class DMD’ has no member named ‘setBrightness’

    dmd.setBrightness(200);

  29. Mas, saya sdh tampil normal semuanya, tetapi detik nya tdk berjalan, menitnya juga tdk berjalan, tetapi jika di off kan lalu di on kan lagi baru menitnya sesuai, dimana itu masalahnya ya mas?
    Terimakasih mas sebelumya…

  30. Assalamu’alaykum kang Asep Kurniawan..
    Punten, kalau order semua komponen yg dibutuhkan :
    Arduino Uno (Gunakan Arduino mega untuk memory yang lebih besar).
    RTC DS3231 (termasuk 24C32) kompatibel DS1307 (beda address)
    Bluetooth HC-05
    Panel P10 (2 panel)
    Sabaraha duitna?
    Haturnuhun..
    Semoga ilmunya membawa keberkahan..

  31. Bang,, saya request full apk nya bang
    Lagi belajar arduino.
    Sya rakit pake arduino nano
    Sudah Berhasil. cuma kalo saya setting kordinat gps area saya ( bogor) jadwal kurang sesuai. Jadi harus setting manual lagi sudut subuh,magrib,isya dll

  32. Assalamu’alaikum Kang Asep, terima kasih ilmunya, saya mencoba belajar dan merangkainya untuk yg 3 panel, tetapi ada kendala pada setting dengan aplikasinya. tayangan jadwal apa tidak berlanjut dengan info selanjutnya? ada petunjuk ? VIDEO via WA ya.
    Wassalamualaikum

  33. assalamu’alaikum wrwb. mas sy coba yang 3 panel tapi tampilan waktu hijriah nya misalnya hari rabu, cuma tampil “Rbu, 1\ ”
    knapa ya?

  34. Mantap….!!!
    Makasih banyak pak,
    Saya upload ke arduino nano dan berhasil
    Ini mau saya pasang di masjid sekolah saya bekerja
    Makasih sekali lg, terus berkarya pak
    Semangat…!!!

  35. Assalamualaikum pak Asep,
    Sebelumnya saya ucapkan banyak banyak terimakasih udah dikasih koding gratisan,…
    Alhamdulillah udah bisa saya upload pake pcb jws arduino nano,cm tdi’y ada error di bagian jam’y gak mau berubah ternyata pin’y ada yg beda sama pcb jws yg biasa hehe,
    Besok saya kirim video’y via WA boleh ya pak,
    Ini mau tak pasang di sekolah tempat istri kerja,
    Kya’y ada bug pas di tampilan info running teks’y pak, dia cm nongol 1x per masing” info kalo udah 3 info nongol semua selanjut’y cm muter” nampilin jam, waktu sholat, kalender hijriah sama logo aja pak..
    Mohon koreksi’y pak

  36. halo bang asep, numpang update.
    Untuk penggunaan arduino UNO, sampai saat ini memang trlalu koding yg eror termasuk lafad Allah Muhammad jg tdk bs tampil.
    Untuk penggunaan arduino NANO, sudah fix semua tanpa ada eror sama skali. Ini adalah referensi pribadi menurut pengalaman saya sndri. Saya sndri juga heran kok bs sperti itu, padahal programnya sama hhahahah. Salam utk tmen2 yg lain dan selamat mencoba!!!!

  37. Ikutan,, coba yg 2panel ada masalah sdikit, klo sehabis sholat isya’ lama tampilnya / kmbali ke awal, padahal di HPya diseting 1 menit lama sholatnya,
    Mohon pecerahanya!!!

  38. Om saya ada kndala di bagian sehabis sholat isya displaynya ngga runing lagi knapa ya, apa sya aja yg brmsalah, maklum baru blajar?
    Mohon pecerahanya trimakasih

  39. mas tanya dong
    kenapa bermasalah di font header height nya ya
    Multiple libraries were found for “EEPROM.h”
    Used: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM
    Not used: C:\Users\Lenovo\Documents\Arduino\libraries\arduino_738588
    Multiple libraries were found for “DMD2.h”
    Used: C:\Users\Lenovo\Documents\Arduino\libraries\DMD2
    Not used: C:\Users\Lenovo\Documents\Arduino\libraries\DMD-GL
    exit status 1
    ‘class SPIDMD’ has no member named ‘fontHeader’

  40. Yth Bang Asep

    Koding berhasil dan lancar jaya baik 2 panel maupun 3 panel, ada kendala saat mneggunakan apk android
    1. kenapa setting manual untuk waktu terutama bagian menit tidak bisa berubah? contoh real time jam 21.01 saya mau rubah menjadi jam 19.15 jadinya jam 19.01 bagian menit tidak berubah
    2. untuk lokasi saat saya rubah settingan bujur dan lintang sesuai lokasi, tampilan jws tidak sesuai menyimpang sangat jauh, saya kembalikan lagi seperti sebelumnya juga tidak sesuai.

    mohon pencerahannya. terima kasih

    sukses buat bang Asep

    1. ringkasan percakapan WA:
      1. aplikasi/apk android tidak didukung oleh os yang tinggi
      2. setting koordinat di apk adalah dalam derajat-menit (bukan bilangan pecahan) misal 6.10 (pecahan) maka ditulis 6-6 (derajat-menit)

  41. Assalamualaikum, mas maaf mau minta apk jwsnya yg full lagi bisa ? Soalnya yg kmaren dikasih koq k delete, tlg ya mas kirim ke email saya, semoga bisa jdi amal karena JWS nya sdh terpasang di masjid kampung saya, makasih

  42. assalamualaikum
    bang. alhamdulillah beberapa bulan saya pake lancar
    hanya saya kadang ada pergeseran jadwal beberapa menit, jadi harus setting lagi lewat aplikasi
    bulan ini bulan april ada error dia tampilan tanggal masehi, tampilnya ” 2 Apr Mei 201″
    jadi tampilan bulannya double
    bagaimana cara memperbaikinya

  43. Bang asep. Maaf nanya lagi
    Koding update sudah saya upload. Sukses.
    Tapi ada masalah baru. Setting jam tanggal rtc selalu reset ke awal saat power dicabut. Saya cek batere cmos ok.

  44. Assalamu’alaikum Pak Asep Kurniawan

    Mohon maaf nih saya newbie pengen tanya ini masalahnya kenapa ya ? hehe

    JWS2panelBluetooth:231: error: ‘ambilSetting’ was not declared in this scope

    ambilSetting();

    ^

    JWS2panelBluetooth:234: error: ‘ambilHijriah’ was not declared in this scope

    ambilHijriah();

    ^

    Terimakasih Pak sebelumnya

  45. Assalamualaikum, mas mau nanya terkait apk-nya…
    kalau untuk pengiriman data teks informasi nya di dalam blok program, apa harus menggunakan Join Text ( text yang di kirim ditambah dengan ‘\r’ atau apa..? ) . Sedangkan ‘\r’ itu fungsinya untuk apa ya,,.? maaf masih newbie….

    1. dalam pemrograman variabel bertipe string diakhiri dengan 0 (byte 0), atau disebut juga null-terminated string.
      sedangkan karakter \r –return– (atau sering di sandingkan dengan ‘\n’ –new line–) umumnya digunakan sebagai penanda baris.
      dalam pemrograman JWS ini menggunakan ‘\r’ sebagai penanda/batas antara data yang dikirim.

  46. Ok mas …terimakasih banyak atas infonya…..
    Sudah banyak ilmu yang saya ambil dari blog ini, terkait belajar saya tentang Arduino….
    mungkin lain waktu bisa dibuatkan tutorial pembuatan Aplikasi Android yang berkaitan dengan pengiriman data serentak lewat bluetooth ( seperti Apk JWS ini ) dari Android Ke arduino untuk proses setting jam dll.

  47. Assalamualaikum wr.wb

    Alhmdulilah kami coba mengikuti instruksi, berjalan lancar. Dan kami sudah donasikan JWSnya pada masjid/musholla didaerah kami.
    Akan tetapi dr pengurus msjid ada yg bertanya dipemakaian aplikasi android
    1.Waktu iqomah tdk berubah walau sdh disetting
    2.Tanggal Hijriah jika sudah di setting,stlh mati listrik tgl hijriah bertambah satu hari

    Utk menu lainnya berjalan dgn lancar.
    Sudah kami rekam dan foto utk hasilnya tp belum tahu cara uploadnya sbgi bukti

    1. 1. kalo ada kesempatan saya cek, soalnya belum ada laporan tentang ini sebelumnya
      2. tanggal hijrian berganti saat Magrib, misalkan kondisi mati lampu sebelum Magrib dan nyala kembali setelah Magrib maka otomatis tanggal Hijriah sudah bertambah.

  48. Pak maaf saya baru belajar kenapa saya setiap upload sketchnya berhenti di void setup()
    Yg di garis merah dan ada keterangan error redefinition of ‘void setup()’

  49. kang Asep, maaf nanya nih. saya nyoba tetapi saat dicompile dan di upload tampil tulisan sbb. upload berhasil. tetapi tidak ada tampilan animasi dan jam berhenti. kira2 apanya ya?

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino:60:80: warning: invalid conversion from ‘const uint8_t (*)[483] {aka const unsigned char (*)[483]}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    const uint16_t alamatFont[] = {&SystemFont5x7Ramping, &Arial14, &Arial_Black_16};

    ^

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino:60:80: warning: invalid conversion from ‘const uint8_t (*)[1200] {aka const unsigned char (*)[1200]}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino:60:80: warning: invalid conversion from ‘const uint8_t (*)[1642] {aka const unsigned char (*)[1642]}’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino: In function ‘void prosedurInformasi()’:

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino:560:23: warning: invalid conversion from ‘char (*)[40]’ to ‘uint16_t {aka unsigned int}’ [-fpermissive]

    marqueKiri.alamat = &buffer;

    ^

    C:\Users\tk cyris\Downloads\JWS Bluetooth + apk – Semesin\JWS Bluetooth + apk – Semesin\JWS_Semesin\JWS_Semesin.ino:591:47: warning: invalid conversion from ‘uint16_t {aka unsigned int}’ to ‘const uint8_t* {aka const unsigned char*}’ [-fpermissive]

    dmd.selectFont(alamatFont[(uint16_t)font]);

  50. Admin makasih tutorialnya… tapi punya pertanyaan, gimana sih cara buat sketch codingnya… saya mau belajar….

  51. Maaf mas saya mau tanya tentang core dari JWS ini. Gimana caranya mendapatkan waktu sholatnya?… Apa ada perhitungannya?…
    Terima kasih.

  52. Assalamu Alaikum…
    Terimakasih tak terhingga buat bang Asep atas share ilmunya. Proyek ini sudah berhasil saya buat dan siap di pasang di masjid dekat rmh saya…
    Semoga Allah membalas kebaikan anda dan menjadi investasi amal ibadah di akherat kelak..Amin
    Wassalam

  53. Kang Asep, nanya nih kalau bluetooth nya di ganti pake esp 01 bisa gak ya ,cara nya gimana ya, apakah di sini ada tutorialnya gak

    1. Mau tanya lagy kang, misalnya Uno diganti dengan NodeMCU ESP8266 yg 32MB apakah bisa?…
      Jadi nanti kira2 settingnya lewat WiFi…
      Atau menggunakan ESP32…

  54. m tnya kemarin sy dh buat jam mushola sesuai intruksi di atas tp waktu masuk mode blutooth jam kok mlh gk jalan y? sm set alrm,azan sm iqomh gk m muncul kl set yg lain dh bs kira2 apny yg slh y? mksh

  55. Saya udah coba buat 2 panel dan berhasil, kl mau rubah jumlah panelnya jadi 1 panel saja blok coding mana yg di ubah,? Untuk mengatur tata letak tulisan dan jamnya

    1. koneksi program arduino dan dmd menggunakan hardware spi, jadi pin berikut tetap harus terpasang di
      data => pin 11(MOSI)
      clk => pin 13 (SCK)

      sedangkan line lain bisa disetting pada bagian program berikut:
      //defenisi pin
      #define pinA 6
      #define pinB 7
      #define pinOE 9
      #define pinSCK 8

  56. hmmm… ada yg minta dibuatin ni JWS buat musola kecil. sayangnya ane blm punya modal nih bwt beli bahan. pdhl bagus banget mas asep. hehehe..

  57. mas klo mau memberi tampilan saat waktu shalat jumat itu gmn?
    programnya sebelah mana klo mau di edit….. soalnya rasanya kurang enak jika waktu masuk shalat jumat kosong led matriknya…..mohon ijin saya edit mas…..

    1. edit bagian sini

      if ((now.hari == 6) && (i == jadwalDzuhur)) //Hari jumat
      {
      hitungMundurAdzan = 0;
      hitungMundurIqomah = 0;
      hitungMudurAlarmIqomah = 0;
      hitungMundurPesanSebelumSholat = 0;
      hitungMundurSholat = setting.lamaSholatJumat * 60;//menit
      indexNamaSholat = indexJumat;
      }

  58. saya edit seperti ini kok gak ngefek ya mas? ada yg salahkah? niat saya mau saya tampilkan jam aja saat shalat jumat berlangsung

    if ((now.hari == 6) && (i == jadwalDzuhur)) //Hari jumat
    {
    hitungMundurAdzan = 0;
    hitungMundurIqomah = 0;
    hitungMudurAlarmIqomah = 0;
    hitungMundurPesanSebelumSholat = 0;
    indexNamaSholat = indexJumat;

    boxKolom1.clear();
    dmd.selectFont(fontWaktu);
    uint8_t lebarText = dmd.stringWidth(textWaktuJam);
    uint8_t tinggiText = dmd.fontHeader.height;
    dmd.drawString((16 – lebarText) – 2, (t – tinggiText) / 2 , textWaktuJam);
    dmd.drawString(16 + 2, (t – tinggiText) / 2 , &textWaktuJam[3]);
    tampilkanMenit = false;
    hitungMundurSholat = setting.lamaSholatJumat * 60;//menit

  59. Kalau saya jadikan 4 panel p10 apa saja yang harus saya ganti di koding nya mas saya sudah coba tapi tampilannya kacau mohon pencerahannya mas

  60. bang mau tanya kalaw tulisannya led berjalan 1 per 1 itu gmana ya? dari atas ke bawah & ke samping membentuk kata atau kalimat,..
    mohon penjelasannya…

  61. Assalamualaikum Kang Asep,saya ingin sekali rakit buat mesjid di kampung saya,nanti tolong dibimbing ya kalau part nya sudah terkumpul,tinggal BT sm P10 nya saja

    oia kalau kodenya apakah bisa request???

    *misal
    -t1 animasi full di tampilan awal
    -t2 jam di atas + running text di bawah

    1. ganti fungsi tampilInformasiWaktu() (belum di test):

      void tampilInformasiWaktu()
      {
      dmd.selectFont(fontInformasi);

      byte jamBCD = bin2bcd(now.jam % 12);
      byte menitBCD = bin2bcd(now.menit);
      byte detikBCD = bin2bcd(now.detik);

      byte index = 0;
      index = bcdToArray(buffer + index, jamBCD);
      buffer[index++] = ':';
      index += bcdToArray(buffer + index, menitBCD);
      buffer[index++] = ':';
      index += bcdToArray(buffer + index, detikBCD);
      buffer[index++] = ' ';
      if(now.jam / 12)
      {
      buffer[index++] = 'P';
      }
      else
      {
      buffer[index++] = 'A';
      }
      buffer[index++] = 'M';
      buffer[index] = 0;

      uint8_t lebarText = dmd.stringWidth(buffer);
      dmd.drawString((l - lebarText) / 2, infoWaktuTop, buffer);
      }

  62. semua file sudah saya download….dan ketika saya lakukan COMPILING….maka muncul satu persatu file error….mohon saran dan bimbingan serta petunjuknya booozzz…..terimakasih sebelumnya

    1. const uint16_t alamatFont[] = {&SystemFont5x7Ramping, &Arial14, &Arial_Black_16};…….. yang ini menjadi hambatan saat di upload

      1. Sudah di ulang compile dengan sketch dan library yang didownload kembali dari halaman ini. di compile dengan arduino 1.8.10 (dibuat dengan arduino 1.8.9)
        >> proses compile berjalan lancar dan tidak ditemukan adanya kesalahan
        :: coba update arduinonya ke versi yang lebih baru.

    2. SystemFont5x7Ramping….ini dimana lokasinya….sdh saya cari belum ketemu juga yaaaa……dan sebagai informasi sekarang saya sudah pakai ARDUINO 1.8.13

    1. maksudnya ini ya…

      #include <fonts/SystemFont5x7Ramping.h>
      #include <fonts/Arial14.h>
      #include <fonts/Arial_Black_16.h>
      #include <fonts/angka6x13.h>
      #include <fonts/AllahMuhammad.h>
      

      pake library yang ada di halaman ini, karena beberapa penyesuaian

  63. Kang saya mau buatin jadwal sholat buat dimesjid,tapi bisa ga kalau setingnya manual ga pake bluetooth
    tapi pake tombol,makasih kang

  64. Alahamdulillah…upload sketch berhasil. tapi Nyala nya sampai running text tidak tampil terus. harus di off dulu catu daya nya. di on kan ada lagi sampai running text. Terimakasih sebelumnya…semoga sehat selalu.

    1. JWS di artikel ini di desain untuk 2 dan 3 panel
      jika menginginkan untuk 1 panel mesti di design ulang
      kalo hanya untuk coba-coba ganti bagian ini:

      #define jumlahKolomPanel 2 //panel

      menjadi

      #define jumlahKolomPanel 1 //panel

  65. asslkm..bang izin bertanya …saya rahmat dari Aceh, mohon izin untuk project ini saya pake power supply casan HP 5volt 1 amper , tapi pada saat di cabut powernya ko jam sholat seting lokasinya jadi jakarta lagi ya bang…gak nyimpen ya bang..mohon arahan…terimkasih wssllm

  66. Kang mau tanya untuk setting jadwal shallat nya lintang dan bujurnya sudah di atur sesuai dengan daerah sini tp kenapa masih ga sesuai yaa utk jadwal shallat nya, saya harus berunjuk kemana kalau seperti ini?

    1. tetap merujuk ke jadwal shalat yang berlaku
      setting saja posisi lintangnya hingga Subuhnya sama, kemudian atur sudut-sudut lainnya (gunakan angka belakang koma untuk pergeseran sedikit)

      perhitungan jadwalnya untuk daerah kota Padang ngga ada masalah
      ngga tau juga dengan daerah lain

  67. Assalamualaikum, kalau DMD dan JWS_semesin.zip filenya ada dimana ya?, lalu untuk seperti definisi.h Fungsi.h konstanta.h dimasukan library pada saat apa ya? Terimakasih

  68. const uint16_t alamatFont[] = {&SystemFont5x7Ramping, &Arial14, &Arial_Black_16}; //

    Saat verify keluar pesan eror seperti itu disebabkan karna apa? Library?

  69. Tampilan bergaris (seperti cetakan printer dot matrix yg putus-putus),trus waktu awal dinyalakan tidak ada tampilan AllahMuhammad, Setelah setting pake HP, hanya sebentar tampilan jam sesuai, trus jam nya kembali berubah menjadi 05 05, detik ga muncul/berkedip.apakah ada script yg kurang atau gimana ya kang? jika berkenan,mohon bimbingannya kang.wassalam

  70. marqueKiri.tinggi = dmd.fontHeader.height;
    ‘class SPIDMD’ has no member named ‘fontHeader’
    klo yang muncul error kya yang diatas gimana penyelesaiannya kang?
    mohon pencerahannya… mksh

  71. Kang … Kok gak bisa setting dari aplikasi bluetooth nya .. tgl dan tahun masih 2018 terus gak berubah?….
    Apakah file sketch nya harus di upload satu2?..yg 8 file

  72. Bang … Makasih sebelum nya… Sya mau tanya ko tulisan alloh sama muhammad nya di tengahnya ada garis besar …. Klo di mode demo bagus gak ada garisnya…

  73. Bang ini ko setelah iqomah blank hitam ga ada respon apa apa
    harus di matikan dulu baru bisa jalan lagi

    sebelmnya terima kasih

    1. dalam mode shalat (setelah iqamah) semua aktifikas tampilan dinonaktifkan (padam), dan akan nyala kembali saat mode shalat selesai
      coba cek setingan lamanya waktu shalat, mungkin terlalu besar menitnya

  74. Bang saya compail kog error
    exit status 1
    font/systemfont5x7Ramping.h; No such file or directory…
    Padahal untuk file font/systemfont5x7Ramping.h Sudah Ada.
    Saya menggunakan Arduino yg versi 1.8.12
    Mohon petunjuknya bang…
    🙏🙏🙏

  75. izin bertanya master maksudnya yg ini gimana ya saya kurang paham karna saya ambil psu nya dari adaptor hp dan langsung masuk power utama arduini bukan dari psu 5volt 5amp..

    “Pastikan daya mencukupi (kalo tidak punya 5V > 5A hubungkan saja GND DMD ke GND Arduino tapi tidak Vcc +5V-nya)”

  76. Pa izin bertanya, pada rangkaian, ke 7 GND pada panel p10 itu semuanya harus dihubungkan pada hc-05 atau boleh hanya salah satunya saja? saya kurang paham, terima kasih

Leave a Reply to reza Cancel reply

Your email address will not be published. Required fields are marked *