Anda di halaman 1dari 84

PROYEK AKHIR

ABAYA

RANCANG BANGUN PENGATURAN DAN


PEMANTAUAN SISTEM KELISTRIKAN PADA
MASJID MENGGUNAKAN MEDIA SOSIAL

DESIGN AND CONTROL OF ELECTRICAL SYSTEM


SETUP AT MOSQUE USING SOCIAL MEDIA

Oleh:

M. Qomaruddin Fuad
NRP. 1103151060

Dosen Pembimbing :

Taufiqurrahman, SST., M.T.


NIP. 198309202008121001

Firman Arifin, ST., M.T.


NIP. 197409252001121003

PROGRAM STUDI D3 TEKNIK ELEKTRONIKA


DEPARTEMEN TEKNIK ELEKTRO
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
2018
PROYEK AKHIR

Rancang Bangun Pengaturan dan Pemantauan Sistem


Kelistrikan Pada Masjid Menggunakan Media Sosial

Design and Control of Electrical System Setup at Mosque


Using Social Media

Oleh:

M. Qomaruddin Fuad
NRP. 1103151060

Dosen Pembimbing :

Taufiqurrahman, SST., M.T.


NIP. 198309202008121001

Firman Arifin, ST., M.T.


NIP. 197409252001121003

PROGRAM STUDI D3 TEKNIK ELEKTRONIKA


DEPARTEMEN TEKNIK ELEKTRO
POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
2018

ii
PERNYATAAN ORISINILITAS

Saya selaku penulis menyatakan bahwa Proyek Akhir ini adalah benar-
benar hasil karya saya sendiri, dan semua sumber/referensi baik yang
dikutip maupun dirujuk telah saya nyatakan dengan benar.

Surabaya, 18 Julis 2018


Penulis yang menyatakan,

M. QomaruddinFuad
NRP. 1103 151 060

iii
RANCANG BANGUN PENGATURAN DAN PEMANTAUAN
SISTEM KELISTRIKAN PADA MASJID MENGGUNAKAN
MEDIA SOSIAL

Oleh:

M. Qomaruddin Fuad
NRP. 1103151060

Proyek Akhir ini Diajukan Sebagai Salah Satu Syarat Untuk


Memperoleh Gelar Ahli Madya ( A.Md )
di
Politeknik Elektronika Negeri Surabaya
Disetujui dan disahkan pada tanggal 23 Agustus 2018

Oleh :
Dosen Penguji Proyek Akhir: Dosen Pembimbing:

1. Dr. Ing. Arif Irwansyah, S.T., M. Sc. 1. Taufiqurrahman, SST., M. T.


NIP. 19770318.200112.1.002 NIP. 198309202008121001

2. Eru Puspita, S.T., M.Kom. 2. Firman Arifin, ST., M. T.


NIP. 19691231.199501.1.001 NIP. 197409252001121003

3. Madyono, S.ST., M.T.


NIP. 19690425.199203.1.001

Mengetahui,
Ketua Program Studi D3 Teknik Elektronik

Dr. Eng. Bambang Sumantri, S.ST., M.Sc.


NIP. 197812102003121002
iv
ABSTRAK

Listrik merupakan salah satu kebutuhan pokok bagi manusia, dan salah
satunya digunakan untuk menyalakan kelistrikan pada masjid. Pada masjid
perkotaan sering kita dapati masih menyala walaupun sudah tidak ada
aktivitas di masjid, hal ini dikarenakan terkadang pada saat sholat
khususnya waktu sholat isya’ dan subuh lupa untuk mematikan listrik pada
masjid. Dan terkadang pengurus masjid telat untuk menghidupkan
kelistrikan yang ada di masjid sehingga waktu sholat sedikit terkendala.
Alat ini bertujuan untuk membantu meringankan pekerjaan pengurus
masjid dalam mengelola masjid khususnya masjid di perkotaan. Dimulai
dengan meng-schedule penggunaan lampu, audio, kipas, pompa akan
diatur sesuai dengan waktu sholat sehingga penggunaan listrik pada masjid
dapat terkontrol. Dalam proyek akhir ini peralatan yang digunakan adalah
arduino mega bertindak sebagai mikrokontroller atau sebagai pusat kontrol,
relay digunakan sebagai saklar, RTC ds3231 digunakan sebagai pewaktuan
digital, LED P10 digunakan sebagai display untuk menampilkan jam
sholat, dan ESP8266 12E digunakan sebagai berkomunikasi atau kontrol
melalui internet. Dari program penjadwalan on/off yang sudah ditanamkan
pada arduino mega akan mengatur relay untuk menghidupkan atau
memadamkan kelistrikan pada masjid seperti lampu, audio qiro’, kipas, dan
pompa kemudian status on/off tersebut akan dikirimkan sebagai notivikasi
ke aplikasi telegram melalui modul ESP8266 12E. Dari hasil percobaan
yang telah dilakukan diperoleh bahwa tingkat kesalahan untuk
penjadwalan kelistrikan adalah 0%, dan untuk pengiriman data (notivikasi)
ke telegram membutuhkan koneksi jaringan yang besar dan stabil hal ini di
buktikan dengan adanya perbandingan error antara pegiriman data
menggunakan hotspot hp dengan rooter WiFi sebesar 11.6% : 0.04%.
Dengan adanya alat ini dapat mempermudah pengurus masjid dalam
mengatur penggunaaan listrik pada masjid sehingga kelistrikan tersebut
dapat digunakan secara effisien.

Kata kunci: Smart Mosque, Kelistrikan Masjid, Media Sosial

v
ABSTRACT

Electricity is one of the basic needs for humans, and one of them is used to
power electricity in mosques. In urban mosques we often find it is still
burning even though there is no activity in the mosque, this is because
sometimes at the time of prayer especially the prayer time isha 'and dawn
forgets to turn off the electricity in the mosque. And sometimes the mosque
management is late to turn on the electricity in the mosque so that the
prayer time is a bit constrained. This tool aims to help ease the work of
mosque managers in managing mosques, especially mosques in urban
areas. Starting with scheduling the use of lights, audio, fans, the pump will
be adjusted according to prayer time so that the electricity usage in the
mosque can be controlled. In this final project the equipment used is a mega
arduino acting as a microcontroller or as a control center, the relay is used
as a switch, RTC ds3231 is used as a digital timing, the P10 LED is used
as a display to display prayer hours, and ESP8266 12E is used as a
communication or internet control . From the on / off scheduling program
that has been implanted in the Arduino Mega will set the relay to turn on
or turn off electricity in the mosque such as lights, audio qiro ', fans, and
pumps then the on / off status will be sent as notification to the telegram
application via ESP8266 12E module . From the results of experiments that
have been done, it is found that the error rate for electrical scheduling is
0%, and for sending data (notification) to telegram requires a large and
stable network connection. This is evidenced by the comparison between
data transmission using a handphone hotspot and WiFi rooter 11.6% :
0.04%. With this tool can facilitate the mosque management in regulating
the use of electricity in the mosque so that electricity can be used efficiently.

Keywords: Smart Mosque, Electricity in Mosque, Social Media

vi
KATA PENGANTAR

Semua penulis akan mati, hanya karyanya yang akan terus abadi.
Demikian petuah kaum cendekia yang selalu penulis ingat. Alhamdulillah,
segala puji syukur bagi Allah SWT karena berkat rahmat dan hidayah-Nya,
penulis dapat menyelesaikan proyek akhir yang berjudul:
“Rancang Bangun Kendali dan Pemantau Aktifitas
Kelistrikan Pada Masjid Menggunakan Media Sosial”
Sedikit cerita dalam pembuatan buku yang pertama, terdapat dilema
yang panjang dalam menyelesaikanya. Diantaranya kegalauan penulis
ketika harus membagi waktunya antara menjadi aktivis akademisi dan
aktivis pergerakan. Sehingga hal ini berimplikasi pada kualitas dari buku
yang dalam penyajianya lebih merujuk pada data kuantitatif dengan sedikit
mengesampingkan data kualitatif. Selain itu kurangnya konsultasi kepada
pihak – pihak yang berkaitan dengan pembuatan tugas akhir ini serta waktu
sehingga cenderung berisikan materi elektronika semata.
Pembuatan dan penyusunan buku Proyek Akhir ini selain diajukan
sebagai salah satu syarat untuk menyelesaikan studi Diploma-3 (D3) dan
memperoleh gelar Ahli Madya (Amd) di jurusan Teknik Elektronika
Politeknik Elektronika Negeri Surabaya, juga didedikasikan kepada
Bangsa Indonesia agar lebih menggunakan energi listrik secara efektif dan
optimal.
Penulis berusaha secara optimal dengan segala pengetahuan dan
informasi yang didapatkan dalam menyusun laporan proyek akhir ini.
Namun, penulis menyadari berbagai keterbatasannya, karena itu penulis
memohon maaf atas keterbatasan materi laporan proyek akhir ini. Penulis
sangat mengharapkan masukan berupa kritik dan saran yang konstruktif
demi kesempurnaan laporan proyek akhir ini.
Demikian besar harapan penulis agar laporan proyek akhir ini dapat
bermanfaat bagi pembaca.

Surabaya, 18 juli 2018

Penulis

vii
UCAPAN TERIMA KASIH
Dengan penuh rasa syukur kehadirat Allah Subhanahu Wa Ta’ala
dan tanpa menghilangkan rasa hormat yang mendalam, saya selaku
penyusun dan penulis mengucapkan terima kasih yang sebesar-besarnya
kepada pihak-pihak yang telah membantu penulis untuk menyelesaikan
proyek akhir ini, penulis mengucapkan terima kasih kepada :

1. Untuk orang tua dan keluarga yang tak hentinya memberikan nasihat
dan berkat do’anya lah saya bisa berada di titik ini.
2. Untuk seluruh keluarga besar saya yang selalu memberikan dukungan
dan motivasi.
3. Bapak Dr. Zainal Arif, S.T., M.Eng., selaku Direktur PENS.
4. Bapak Dr.Eng.Bambang Sumantri,S.T.,M.Sc., selaku Ketua
Program Studi Diploma 3 Teknik Elektronika PENS.
5. Bapak Taufiqurrahman, SST., M. T. dan Bapak Firman Arifin,
ST., M. T. selaku dosen pembimbing proyek akhir.
6. Seluruh Bapak dan Ibu dosen yang telah membimbing dan membekali
ilmu kepada penulis selama penulis menempuh pendidikan di kampus
tercinta ini, Politeknik Elektronika Negeri Surabaya (PENS).
7. Seluruh keluarga besar D3 Elka B 2015 atas dukungan serta segala
bentuk bantuan.
8. Seluruh keluarga besar Himpunan Mahasiswa Islam (HMI)
Komisariat Elektro atas dukungan serta segala bentuk bantuan.
9. Semua pihak yang telah membantu penulis hingga terselesainya
proyek akhir ini yang tidak dapat penulis sebutkan satu-persatu.

Semoga Allah Subhannahu Wa Ta’ala selalu memberikan


perlindungan, rahmat dan nikmat-Nya bagi kita semua. Amin!

viii
PERSETUJUAN PUBLIKASI TERBATAS

Sebagai civitas akademik Politeknik Elektronika Negeri Surabaya, saya


yang bertanda tangan di bawah ini:

Nama : M. Qomaruddin Fuad


NRP : 1103 151 060
Program Studi : Teknik Elektronika
Departemen : Teknik Elektro

demi pengembangan ilmu pengetahuan, menyetujui untuk memberikan


kepada Politeknik Elektronika Negeri Surabaya Hak Bebas Royalti Non-
eksklusif (Non-exclusive Royalty-Free Right) atas proyek akhir saya yang
berjudul:

“Rancang Bangun Pengaturan dan Pemantauan Sistem


Kelistrikan Pada Masjid Menggunakan Media Sosial ”
beserta perangkat yang ada (jika diperlukan), yang oleh karenanya
Politeknik Elektronika Negeri Surabaya dengan ini berhak menyimpan,
mengalih-media-kan atau mengalih-format-kan, mengelola dalam
pangkalan data (database), merawat, dan memublikasikan tugas akhir saya
selama tetap mencantumkan nama saya sebagai penulis/pencipta dan
sebagai pemilik Hak Cipta.

Demikian pernyataan ini saya buat dengan sebenarnya.

Surabaya,
Penulis

M. Qomaruddin Fuad

ix
Daftar Isi

HALAMAN JUDUL ............................................................ i


HALAMAN PENGESAHAN .............................................. ii
ABSTRAK ........................................................................... iii
ABSTRACT ......................................................................... iv
KATA PENGANTAR .......................................................... v
UCAPAN TERIMA KASIH ................................................ x
DAFTAR ISI ........................................................................ xii
DAFTAR GAMBAR ............................................................ xiv
DAFTAR TABEL ................................................................ xvii

BAB I. PENDAHULUAN
1.1 Latar Belakang ................................................. 1
1.2 Tujuan ............................................................. 2
1.3 Permasalahan ................................................... 2
1.4 Manfaat .......................................................... 2

BAB II. TINJAUAN PUSTAKA


2.1 Studi Literatur..................................................... 3
............................................................................ 4

BAB III. PERANCANGAN DAN PEMBUATAN ALAT


3.1 Konfigurasi Sistem........................................... 5
3.2 Perancangan Perangkat Keras .......................... 6
3.2.1 Relay Modul .............................................. 6
3.2.2 Arduino Mega ............................................ 7
3.2.3 Led Dot Matrik P10 ................................... 8
3.2.4 Modul Esp8266 12E ................................... 9
3.3 Perancangan Packaging Box ............................... 9
3.4 Perancangan Perangkat Lunak ............................. 10
3.4.1 Program Jam Sholat.................................... 10
3.4.2 Program Schadule ON/OFF kelistrikan ....... 10
3.4.3 Program Komunikasi Esp8266 12E dengan
Arduino ...................................................... 11
3.4.4 Pedoman Jam Sholat Wilayah Surabaya ..... 12

BAB IV. PENGUJIAN DAN ANALISA


4.1 Pengujian Program jadwal sholat yang ditampilkan
Pada Led P10 ...................................................... 13

x
4.1.1 Tujuan Pengujian ........................................ 13
4.1.2 Setting Pengujian ........................................ 13
4.1.3 Blok Diagram Pengujian ............................. 13
4.1.4 Prosedur Pengujian ..................................... 14
4.1.5 Hasil Pengujian .......................................... 14
4.1.6 Analisa pengujian ....................................... 16
4.2 Pengujian Schadule on/off Kelistrikan ................. 16
4.2.1 Tujuan Pengujian ....................................... 16
4.2.2 Setting Pengujian ....................................... 17
4.2.3 Blok Diagram Pengujian ............................. 17
4.2.4 Prosedur Pengujian ..................................... 17
4.2.5 Hasil Pengujian .......................................... 17
4.2.6 Analisa pengujian .................................. 18
4.3 Pengujian Koneksi Modul Esp8266 12E
dengan handphone ........................................... 18
4.3.1 Tujuan Pengujian ....................................... 18
4.3.2 Setting Pengujian ....................................... 19
4.3.3 Blok Diagram ............................................. 19
4.3.4 Prosedur Pengujian ..................................... 19
4.3.5 Hasil Pengujian .......................................... 20
4.3.6 Analisa pengujian ....................................... 21
4.4. Pengujian Keseluruhan Sistem ......................
4.3.1 Tujuan Pengujian ....................................... 21
4.3.2 Setting Pengujian ....................................... 21
4.3.3 Blok Diagram ............................................. 22
4.3.4 Prosedur Pengujian ..................................... 23
4.3.5 Hasil Pengujian .......................................... 23
4.3.6 Analisa pengujian ....................................... 26

BAB V. PENUTUP
5.1 Kesimpulan ....................................................... 29
5.2 Saran ................................................................. 29

DAFTAR PUSTAKA ............................................................ 31


LAMPIRAN 1........................................................................ 33
LAMPIRAN 2............ ............................................................ 69

xi
DAFTAR GAMBAR

Gambar Halaman

3.1 Blok diagram sistem ................................................. 5


3.2 Pin relay to arduino .................................................. 7
3.3 Schematik koneksi to arduino ................................... 8
3.4 LED P10 .................................................................. 8
3.5 Koneksi P10 to Arduino ........................................... 8
3.6 Datasheet ESP8266 12E ........................................... 9
3.7 Packaging Box ......................................................... 9
3.8 Koneksi ESP8266 12E To Arduino .......................... 11
3.9 Konfigurasi Pin Esp8266 12E to Relay ..................... 11
3.10 Pedoman Jam Waktu Sholat ..................................... 12
4.1 Blok diagram Tampilan P10 ..................................... 13
4.2 Tampilan jam sholat pada LED P10 ......................... 14
4.3 Blok diagram Pengujian Relay ................................. 17
4.4 Hasil Pengujian dengan indikator Lampu ................. 18
4.5 Blok diagram komunikasi Esp to Telegram .............. 19
4.6 Membuat NewBot pada Telegram ............................ 20
4.7 Setting program Bot Token ...................................... 20
4.8 Pemantauan Lampu pada Telegram .......................... 21
4.9 Blok diagram pengujian keseluruhan sistem ............. 22
4.10 Data percobaan Penjadwalan Kelistrikan .................. 24
4.11 Hasil Pengiriman Notivikasi pada Telegram ............. 26

xii
DAFTAR TABEL

Tabel Halaman

4.1 Data jam sholat pada web .................................... 14


4.2 Data Hasil Percobaan Jam Sholat Abadi .............. 15
4.3 Data Pinout Lampu Indikator .............................. 18
4.4 Schadule kelistrikan pada Masjid ........................ 23

xiii
BAB 1
PENDAHULUAN
1.1 LATAR BELAKANG
Pada saat ini listrik merupakan salah satu kebutuhan pokok bagi manusia,
salah satunya penggunaan listrik pada saat sholat lima waktu pada Masjid.
Dimana yang kita ketahui bahwa untuk menghidupkan alat-alat elektronik
pada masjid seperti, lampu, pompa air sound dan lain-lain masih di
lakukan secara manual atau masih menggunakan tenaga manusia.
Pada masjid di perkotaan contohnya, dimana masjid hanya
digunakan untuk sholat berjamaah saja. Sehingga pada saat sebelum
sholat berjamaah, alat-alat elektronik harus dihidupkan 30 menit sebelum
waktu sholat. Namun tak jarang pengurus masjid tersebut telat untuk
menghidupkan peralatan elektronik di masjid, terutama pada waktu sholat
isya’ dan sholat Subuh. Sehingga waktu sholat sedikit terkendala. Di
tambah lagi penggunaan listrik kurang terkontrol, sehingga sering di
jumpai setelah sholat masih ada lampu yang menyala. Sehingga perlu
diadakanya monitoring serta pengontrolan kelistrikan sesuai kebutuhan.
Sehingga pengeluaran akan kebutuhan litrik bisa terpantau dengan
mudah.
Oleh karena itu kami membuat suatu alat kendali dan pemantau aktifitas
kelistrikan pada masjid (smart mosque). Yanga mana alat ini dirancang
untuk mempermudah kerja pengurus masjid untuk mengontrol
penggunaan alat-alat elektronik seperti, menyalakan pompa air,
menyalakan lampu, serta menyalakan audio Qiro’ sesuai dengan waktu
sholat abadi, dimana pengaturannya dapat dilakukan dengan melakukan
pengontrolan menggunakan mikrokontroller serta dapat kita pantau
aktifitas kelistrikannya mengguankan media sosial seperti whats up. Yang

1
mana dengan alat ini diharapkan penggunaan listrik pada masjid dapat
dipantau dan digunakan sesuai kebutuhan.

1.2 Tujuan
Tujuan dari program ini adalah sebagai berikut :
1. Memantau kelistrikan pada masjid.
2. Membantu tugas dari pengurus masjid dalam
pengendalian alat- alat kelistrikan pada Masjid sesuai
dengan waktu sholat.
3. Menjaga stabilitas penggunaan listrik pada masjid dengan
cara penjadwalan on/off pada kelistrikan yang diatur
sesuai dengan waktu sholat.
1.3 Permasalahan
Adapun permasalahan yang akan dihadapi yaitu :
1. Bagaimana cara membuat alat pengontrol kelistrikan
secara otomatis sesuai dengan waktu sholat abadi.
2. Bagaimana cara melakukan komunikasi atau
menghubungkan Modul Node MCU dengan handphone?
3. Bagaiamana cara menanamkan waktu sholat abadi pada
kontroller ?
1.4 Manfaat
Manfaat yang didapatkan oleh pengurus masjid dengan
adanya teknologi ini adalah sebagai berikut:
1. Pemantauan alat-alat listrik dapat dilakukan dengan jarak
jauh
2. Membantu mengatur kelistrikan pada masjid
3. Menjaga penggunaan daya yang effiseien

2
BAB 2
TEORI PENUNJANG
2.1 Studi Literatur
Proyek akhir ini dibuat untuk mengatasi masalah kelistrikan
pada masjid sesuai dengan jadwal sholat. Berbagai alat yang telah
di buat saat ini, rata-rata masih belum ada penambahan waktu
sholat untuk mengontrol kelistrikan. Rata-rata untuk pengontrolan
kelistrikan masih di fokuskan dalam skala rumah dan belum ada
yang mengimplemntasikan pada tempat-tempat ibadah
Diantaranya yaitu, penelitian yang dilakukan oleh Widiantor, dan
Noor Ageng Setiyanto, dari Teknik Informatika, Fakultas Ilmu
Komputer, Universitas Dian Nuswantoro. Yang berjudul
“Informasi Jadwal Sholat Berdasarkan Metode Hisab
Menggunakan Mikrokontroller Atmega328 dan DMP P10 untuk
kota semarang”.Metode yang dignakan adalah perhitungan hisab.
Metode hisab sendiri adalah perhitungan secara matematis dan
astronomi untuk menentukan posisi bulan dalam menentukan
dimulainya awal bulan pada kalender hijriyah, selain menentukan
awal bulan hijriyah metode ini juga di gunakan untuk menentukan
jadwal sholat lima waktu. Hasil percobaan ditampilkan melaui dot
matrik sehingga dapat di digunakan masyarakat.

Selain itu, pada paper yang dibuat Andri Agus S, Zulkifli, dan
Rendra Gustriansyah pada tahun 2015 menulis tentang “Sistem
Kendali Peralatan Listrik Dengan Sms Menggunakan Arduino dan
GPRS Sheild untuk Pengontrolan Lampu Dalam Skala Rumah
Tangga Jarak Jauh Berbasis Sms”. dimana pengendalian lampu

3
dilakukan melalui sms yang mana modul gprs sheild digunakan
sebagai penghubung antara handphone dengan sistem
pengontrolan.
Sumber: http://ejournal.uigm.ac.id/index.php/IG/article/view/6
Berangkat dari Tinjaun Pustaka di atas yang digunakan sebagai
referensi, alat ini mengadopsi dua sistem di atas yaitu
pengontrolan kelistrikan dilakaukan dengan penambahan jadwal
sholat abadi, dimana kelistrikan akan dinyalakan sesuai dengan
kebutuhan seperti sholat dhuhur, asat, maghrib, isya’ dan subuh.
Di man pengontrolannya di fokuskan antara saat waktu sholat
isya’ dan sholat subuh. Sehingga di harapkan dapat mengurangi
penggnaan yang tidak bagitu dibutuhkan.

4
BAB 3
PERANCANGAN DAN PEMBUATAN SISTEM
Pada pembuatan proyek akhir ini secara umum terbagi menjadi
tiga bagian yaitu :
1. Perencanaan sistem yang akan digunakan
2. Perancangan packaging box
3. Perancangan dan pembuatan sofware yang terdiri dari :
a. Program jam sholat abadi
b. Progam schedule penggunaan kelistrikan
c. Program pengiriman data
3.1. Konfigurasi Sistem
Blok diagram pada sistem yang akan di buat ditunjukan pada
gambar 3.1 berikut:

API

Module Esp
8266 Handphone

Jam sholat
abadi ArduinoMeg
a

Module Relay

Pompa air Audio Qiro’ Lampu Sound

Gambar 3.1Blok Diagram Sistem

5
Prinsip kerja sistem di atas adalah dengan adanya library jam sholat abadi
yang di tanamkan pada Arduino Mega akan di gunakan sebagai patokan
untuk mengatur atau men-schedule kelistrikan pada masjid.
Sebelum kita meng-schedulekelistrikan pada masjid kita sesuai kan
terlebih dahulu program sholat sesusi dengan zona waktu tempat kita,
kemudian kita setting pengaturan seperti lampu, sound, qiro’ dan pompa.
Pada sistem ini, untuk lampu akan menyala pada jam 03:00 – 06:00
kemudian akan mati pada jam 06.00 dan akan menyala lagi sampai jam
16:00 dan akan mati lagi pada jam 21:00 – 03;00 begitu seterusnya,
kemudian untuk qiro’ akan dinyalakan 30 menit sebelum waktu adzan.
Dan jika sudah waktunya adzan maka qiro’ akan mati dan ganti ke sound
untuk adzan. Sedangkan untuk pompa air akan dinyalakan ketika kondisi
air pada tandon sudah hamu habis. Dan semua sistem tersebut akan
terintegrasi dengan handphone dengan menggunakan komunikasi pada
sim 800.

3.2. Perancangan Perangkat Keras


Perancangan perangkat keras merupakan keseluruhan
perancangan penunjang pada pengolahan input berupa lampu level
penilaian yang akan diolah dan digunakan sebagai data utama dari
sistem alat ini. Driver yang digunakan pada alat ini berupa relay yang
dihubungkan dengan Arduino Mega yang di tambahkan shield yang
digunakan untuk membantu dalam menghubungkan antar pin yang ada
pada arduino, modul relay, serta esp module (khususnya untuk vcc dan
gnd)

` 3.2.1 Relay Modul


Relay adalah Saklar (Switch) yang dioperasikan secara
listrik dan merupakan komponen Electromechanical
(Elektromekanikal) yang terdiri dari 2 bagian utama yakni
Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak
Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk
menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil
(low power) dapat menghantarkan listrik yang bertegangan lebihtinggi.
Sebagai contoh, dengan relay yang menggunakan Elektromagnet 5V
dan 50 mA mampu menggerakan Armature Relay (yang berfungsi

6
sebagai saklarnya) untuk menghantarkan listrik 220V 2A. Gambar 3.2.
menunjukan koneksi antara pin modul relay dengan Arduino, seperti
berikut :

Modul relay Arduino


Vcc 5v
Gnd Gnd
IN2 Pin D3

Gambar 3.2. pin relay to arduino


Pada input (IN2) akan di bubungkan pada pin digital 3 (D3). Dimana
pada posisi awal adalah Normali Open (NO) dan jika pin tiga di
deklarasikan sebagai HIGH maka akan mengirimkan inpuls 1 dimana
akan mengubahnya menjadi Normali Close (NC) sehingga lampu akan
menyala, begitu juga sebaliknya jika inpuls pada Digital 3 di berikan
inpuls low maka akan berubah kembali menjadi Normali Close dan
lampu akan mati. sehingga hal ini akan menjadi Relay sebgai Saklar
yang dapat menghantarkan arus listrik.

3.2.2. Arduino Mega


Arduino mega sendiri di gunakan sebagai kontroller pada alat
ini dimana dalam arduino ini yang di tanamkan jadwal waktu sholat
abadi. Arduino adalah papan pengembangan mikrokontroller yang
berbasis Arduino dengan menggunakan chip ATmega2560. Board ini
memiliki pin I/O yang cukup banyak, sejumlah 54 buah digital I/O pin
(15 pin diantaranya adalah PWM), 16 pin analog input, 4 pin UART
(serial port hardware). Arduino Mega 2560 dilengkapi dengan sebuah
oscillator 16 Mhz, sebuah port USB, power jack DC, ICSP header, dan
tombol reset. Board ini sudah sangat lengkap, sudah memiliki segala
sesuatu yang dibuthkan untuk sebuah mikrokontroller. Dengan
penggunaan yang cukup sederhana, anda tinggal menghubungkan power
dari USB ke PC anda atau melalui adaptor AC/DC ke jack DC. Untuk
koneksi antara arduino, sim800, RTC3231, dan P10 digunakan Shield
tambahanseperti ditunjukan pada Gambar 3.4. dibawah ini

7
Gambar 3.3. Schematik Shield arduino
3.2.3. LED Dotmatrik P10
Led ini di fungsikan sebagai tampilan atau interface yang
menunjukan jam dan waktu sholat seperti dzuhur, asar, maghrib Isya’
dan subuh untuk mampilkan angka dan tulisan letak led mana saja yang
akan di tampilkan, dengan cara menentukan panjang dan lebar kata yang
akan dimasukan. Gambar 3.4 menunjukan tampilan Led P10 :

Gambar 3.4. Led P10


Untuk koneksi dari pin P10 ke Arduino mega ditunjukan pada gambar 3.5
sebagai berikut :

Gambar 3.5. Koneksi P10 to arduino

8
3.2.4 .Modul ESP8266 12-E
ESP8266 12-E ini digunakan sebagai komunikasi anrata arduino
mega dengan handphone. Untuk datasheet Modul ESP8266 ditunjukan
pada gambar 3.6 berikut ini :

Gambar 3.6. Datasheet ESP8266 12-E

3.3. Perencanaan Packaging Box


Desain alat yang digunkan dalam proyek akhir ini ditunjukan
pada gambar 3.7 berikut :
Nampak Belakang Nampak Depan

Gamabar 3.7. packaging box

9
3.4. Perancangan Perangkat Lunak
3.4.1. Program Jam Sholat

Pengguaan program jam sholat pada alat yang akan


dibuat ini adalah sebagai barometer peng-scadulan pengontrolan
kelistrikan pada masjid. Dimana program ini mengatur waktu
adzan, iqomah, hingga sholat yang dapat di atur sesuai dengan
letak daerah atau lokasi yang akan digunakan, yang dapat diatur
sesui koordinat letak bujur (longitude), lintang (latitude), sudut
waktu subuh serta sudut waktu isya’. Pada alat ini diatur sesuai
koordinat lintang, bujur, sudut waktu subuh serta sudut waktu
isya’ kota surabaya yang dapat kita peroleh melaui intenet atau
Maps. Hasil yang diperoleh adalah letak bujur = 112°45' BT ,
lintang = 7°14' LS, sudut waktu subuh = 20.0 deg. Kemiringan
Matahari, setra sudut waktu isya’ = 18.0 deg. Kemiringan
Matahari. Untuk program dan flowchat jam sholat akan terlampir
pada lampiran.

3.4.2. Program Schadule ON/OFF Lampu dan Audio dengan Relay

Relay adalah Saklar (Switch) yangdioperasikan


secara listrik dan merupakan komponen Electromechanical
(Elektromekanikal) yang terdiri dari 2 bagian utama yakni
Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak
Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik
untuk menggerakkan Kontak Saklar sehingga dengan arus listrik
yang kecil (low power) dapat menghantarkan listrik yang
bertegangan lebihtinggi.

Relay ini digunakan untuk mengatur ON/OFF


kelistrikan pada masjid. Dimana untuk ON/OFF lampu akan
diatur sesuai dengan aktifitas pada masjid, seperti waktu sholat
maghrib dan isya’. Hasilnya yang diperoleh adalah lampu
menyala pada pukul 03:00 – 06:00 WIB dan pada pukul 16:00
WIB – 03:00 WIB, selain itu penggunaan audio qiro’ akan di
atur 30 menit sebelum waktu adzan. Sedangkan untuk kipas
angin akan di nyalakan dengan qiro’. Dan untuk pompa air akan
dinyalakan sekitar 1 jam sebelum sholat dan dinyalakan lagi
ketika air dalam tandon kosong.

10
3.4.3. Program Komunikasi ESP8266 12E dengan Arduino Mega

Pada program ini menggunakan Modul Esp8266 12-E yang bertujuan


untuk mengkoneksikan atara arduino dengan media sosial, untuk
mengkoneksikan antara modul wifi ini kita harus mengetaui API
(Application Programming Inteface) dimana memungkinkan untuk
melakukan pertukaran informasi data melalui dua perangkat yang
berbeda atau lebih melalui jaringan internet. Yang dihubungkan
dengan arduino mega, seperti gambar 3.8 berikut ini :

Gambar 3.8. koneksi ESP8266 12E to arduino

Serta konfigurasi pin Esp ke arduino ditunjukan pada


gamabar 3.9, berikut :
Esp8266 12E Arduino Mega
Tx Rx
Rx Tx
Vcc 3.3V
GND GND

Gambar 3.9. . Konfigurasi Pin ESP to Arduino

11
3.4.4. Pedoman Jam Sholat Wilayah Surabaya

Pada proyek akhir yang akan dibuat ini, pedoman jam


sholat digunakan sebagai pembanding dengan hasil percobaan. Yang
dapat di peroleh dari internet. Gambar 3.10 berikut adalah data jam
sholat untuk wilayah surabaya yang di ambil dari web.

(Sumber : https://www.jadwalsholat.org/adzan/monthly.php?id=265):

Gambar 3.10. Pedoman jam Waktu sholat

12
BAB 4
PENGUJIAN DAN ANALISA

Bab ini menjelaskan mengenai pengujian dari sistem yang telah


dibuat dan merupakan tahapan penting dalam pengerjaan penelitian.
Pengujian dilakukan untuk mengetahui apakah sistem yang telah dibuat
sesuai dengan apa yang direncaakan. Pengujian dilakukan secara bertahap
dan berkesinambungan. Hasil dari seiap tahap pengujian kemudian
dianalisis sehingga dapat diketahuui kelebihan dan kekurangan dari
metode yang dilakukan. Bagian-bagian yang akan di uji adalah sebagai
berikut :

 Pengujian program jadwal sholat yang ditampilkan pada LED


P10
 Pengujian schadule kelistrikan
 Pengujian pengiriman data pada Modul NodeMCU
 Pengujian keseluruhan sistem

4.1. Pengujian program jadwal sholat yang ditampilkan pada LED


P10
.4.1.1. Tujuan
Tujuan dari pengujian ini adalah untuk mengatur waktu sholat
abadi sesuai dengan wilayah yang akan digunakan.
4.1.2.SettingPengujian
Pada proses pengujian dibutuhkan beberapa alat agar didapatkan
hasil yang sesuai. Adapun peralatan yang dibutuhkan adalah sebagai
berikut :
1. RTC DS3231
2. Sofware Arduino IDE
3. Arduino Mega
4. Kabel USB
5. Modul P10
6. Library Jam Sholat Abadi

4.1.3. Diagram Blok Pengujian


Untuk blok diagram pengujian jam sholat yang ditampilakan
pada led p10 ditunjukan pada gambar 4.1.

Algoritma Jam
Arduino Mega Led P10
sholat

13
Gambar 4.1. blok diagram tampilan P10
4.1.4. Prosedur Pengujian
Untuk mendapatkan hasil pengujian yang sesuai, langkah-
langkah yang harus dilakukan adalah :
1. Mengatur RTC sesuai dengan waktu sekarang
2. Menghubungkan RTC dengan Arduino Mega dengan ketentuan
vcc, ground, sda, dan scl sesuai dengan yang telah ditentukan.
3. Menghubungkan modul p10 dengan arduino mega
4. Masukan library yang dibutuhkan untuk jam sholat abadi
5. Mengatur Logitude dan Latitude sesuai dengan derah yang di
inginkan
6. Memantau hasil output yang peroleh

4.1.5. Hasil pengujian


Dari pengujian yang telah dilakukan diperoleh data, kemudian
ditampilkan pada led P10seperti gambar 4.2 berikut :

Gambar 4.2. tampilan jam sholat pada led p10

Tabel 4.1 berikut ini menunjukan data jam sholat yang diambil dari
sumber di bawah ini
Tabel 4.1. Data jam sholat pada web
(Sumber https://www.jadwalsholat.org/adzan/monthly.php?id=265)
DATA WEB
Longitude = 112.4 , latitude= -7.14
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh
S
16-07-18 11:37 14:59 17:29 18:43 04:22
U
R
17-07-18 11:37 14:59 17:29 18:43 04:22
A 18-07-18 11:37 14:59 17:30 18:43 04:22
B
A 19-07-18 11:37 14:59 17:30 18:44 04:22
Y
A
20-07-18 11:37 14:59 17:30 18:44 04:23

14
21-07-18 11:37 14:59 17:30 18:44 04:23
22-07-18 11:37 14:59 17:30 18:44 04:23
23-07-18 11:37 14:59 17:30 18:44 04:23
24-07-18 11:38 14:59 17:31 18:44 04:23
25-07-18 11:38 14:59 17:31 18:44 04:23
26-07-18 11:38 14:59 17:31 18:44 04:23
27-07-18 11:38 14:59 17:31 18:44 04:23
28-07-18 11:38 14:59 17:31 18:44 04:23
29-07-18 11:38 14:59 17:31 18:44 04:23
DATA WEB
Longitude = 115.13, latitude= -8.39
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh
B 27-07-18 12:28 15:49 18:19 19:32 05:15
A 28-07-18 12:28 15:49 18:19 19:32 05:15
L 29-07-18 12:28 15:49 18:19 19:32 05:15
I
30-07-18 12:28 15:49 18:19 19:32 05:15
DATA WEB
Longitude = 106.49, latitude= -6.10
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh
27-07-18 12:01 15:24 17:56 19:09 04:45
JAKARTA 28-07-18 12:01 15:24 17:56 19:09 04:45
PUSAT
29-07-18 12:01 15:23 17:56 19:09 04:45
30-07-18 12:01 15:23 17:56 19:09 04:45

Tabel 4.1 berikut ini menunjukan hasil percobaan jam sholat abadi
Tabel 4.2. Data Hasil Percobaan Jam Sholat Abadi

Data percobaan
Longitude = 112.4 , latitude= -7.14
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh keberhasilan
16-07-18 11:37 14:59 17:29 18:43 04:22 √
17-07-18 11:37 14:59 17:29 18:43 04:22 √
S 18-07-18 11:37 14:59 17:30 18:43 04:22 √
U 19-07-18 11:37 14:59 17:30 18:44 04:22 √
R 20-07-18 11:37 14:59 17:30 18:44 04:23 √
A 21-07-18 11:37 14:59 17:30 18:44 04:23 √
B 22-07-18 11:37 14:59 17:30 18:44 04:23 √
A 23-07-18 11:37 14:59 17:30 18:44 04:23 √
Y 24-07-18 11:38 14:59 17:31 18:44 04:23 √
A √
25-07-18 11:38 14:59 17:31 18:44 04:23
26-07-18 11:38 14:59 17:31 18:44 04:23 √

15
27-07-18 11:38 14:59 17:31 18:44 04:23 √
28-07-18 11:38 14:59 17:31 18:44 04:23 √
29-07-18 11:38 14:59 17:31 18:44 04:23 √

DATA PERCOBAAN
Longitude = 115.13, latitude= -8.39
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh keberhasilan
B 27-07-18 12:28 15:49 18:19 19:32 05:15 √
A 28-07-18 12:28 15:49 18:19 19:32 05:15 √
L 29-07-18 12:28 15:49 18:19 19:32 05:15 √
I
30-07-18 12:28 15:49 18:19 19:32 05:15 √
DATA PERCOBAAN
Longitude = 106.49, latitude= -6.10
Lokasi Tanggal Dzuhur Asar Maghrib Isya’ Subuh keberhasilan
27-07-18 12:01 15:24 17:56 19:09 04:45 √
JAKARTA 28-07-18 12:01 15:24 17:56 19:09 04:45 √
PUSAT
29-07-18 12:01 15:23 17:56 19:09 04:45 √
30-07-18 12:01 15:23 17:56 19:09 04:45 √

4.1.6. Analisa Pengujian


Dari pengujian jam shoat abadi yang telah dilakukan, dapat
diketahui bahwa nilai longitude dan latitude sangat
mempengaruhi hasil konfersi yang diperoleh, jika salah atau nilai
yang dimasukan lebih 0.1 saja dalam memasukan nilai longitude
& latitude pada algoritma, maka hasil jamnya pun akan berbeda.
Contoh jika longitude untuk daerah surabaya adalah 112.4 namun
yang dimasukan pada algoritma adalah 112.5 maka waktu sholat yang
diperoleh akan terpaut 1 menit dari waktu sholat yang seharusnya.
Sehingga untuk men-setting longitude & latitude harus benar-
benar sesuai dengan lokasi yang digunakan.

4.2. Pengujian schaduleon/off kelistrikan (lampu, pompa, audio,


kipas)

4.2.1. Tujuan
Tujuan dari pengujian ini adalah untuk menggunakan
kelistrikan sesuai dengan kebutuhan sehingga penggunaannya dapat
dilakukan dengan effisien.

16
4.2.2. Setting Pengujian
Pada proses pengujian ini diperlukan beberapa alat agar
didapatkan hasil yang maksimal. Adapun beberapa peralatan yang
digunakan adalah sebagai berikut :
1. Modul relay 4 input
2. 4 lampu indikator
3. Kabel jumper
4. Kabel + steker
5. Arduino mega
6. Sofware arduino IDE
4.2.3. Blok Diagram Pengujian
Untuk blok diagram pengujian relay ditunjukan pada gambar 4.2
dimana arduino mega digunakan untuk mengontrol modul relay
untuk mematikan dan menghidupkan kelistrikan pada masjid.

Arduino
Mega Modul relay

Lampu Kipas Audio Pompa Air

Gambar 4.3 blok diagram pengujian Relay

4.2.4. Prosedur pengujian


Untuk mendapatkan hasil pengujian yang tepat, Adapun langkah-langkah
yang harus dilakukan sebagai berikut :
1. Membuka software arduino IDE
2. Mengubungkan modul relay dengan arduino mega
3. Melakukan pengujian pada 4 lampu indikator

4.2.5. Hasil Pengujian


Pada gambar 4.4 menunjukan hasil pengujian dengan indikator
lampu

17
Gambar 4.4. hasil pengujian dengan indikator lampu

4.2.6. Analisi Pengujian


Dari pengujian Pengujian schadule on/off kelistrikan (lampu,
pompa, audio, kipas) yang telah dilakukan, dapat diketahui bahwa modul
relay yang digunakan bertindak sebagai saklar On/Off pada alat-alat
kelistrikan dan penjadwalan digunakan sebagai pengaturan On/Off
sehingga penggunaan kelistrikan dapat pakai secara maksimal dan
effisien.
lampu akan menyala jika mendapatkan supply dari adapter DC yang
dihubungkan ke modul relay, dan akan menyala jika relay modul
dihubungkan ke arduino mega dengan ketentuan seperti pada tabel 4.3
sebagai berikut :

Tabel4.3. Data Pinout Lampu Indikator


Modul Relay Arduino
Input 1 Pin 3
Input 2 Pin 4
Input 3 Pin 5
Input 4 Pin 10

Pada pengujian On/Off ini diperoleh hasil yang sesuai dengan apa yang
dinginkan.

4.3. Pengujian Koneksi ModulESP8266 12-E dengan Handphone


4.3.1. Tujuan
Pengujian pengujian adalah untuk mngintegrasikan antara
handphone dengan media sisial, diman pengintegrasisian ini
digunakan untuk melakukan pemantauan pada kelistrikan yang ada di
masjid melalui handphone.

18
4.3.2. Setting Pengujian
Proses pengujian dibutuhkan beberapa alat yang digunakan
beberapa alat yaitu sebagai berikut :
1. Modul ESP8266 12E
2. Socket lampu + lampu
3. Arduino Mega
4. Software Arduino IDE
5. Aplikasi Telegram + API
6. Kabel male-female
7. Kabel USB

4.3.2. Blok Diagram


Cara kerja sistem ditunjukan pada gambar 4.5, dimana arduino
digunakan untuk mengatur modul esp dan relay, untuk terkoneksi dengan
telegram kita memerlukan API dari telegram tersebut, yang digunakkan
untuk pengiriman notivikasi pada hp (melalui telegram). Berikut adalah
blok diagram sistem tersebut :

API

Arduino ESP8266 TELEGRAM HANDPHONE


12E

Relay Lampu

Gamabar 4.5 blok diagram komunikasi esp to telegram


4.3.3 Prosesur pengujian
Untuk mendapatkan hasil pengujian yang tepat, adapun
langkah langkah yang harus dilakukan adalah sebagai berikut :
1. Membuka software Arduino IDE
2. Menginstal aplikasi telegram
3. Membuat Bot Telegram
4. Merangkai ESP8266 12E dengan arduino
5. Kobeksi Internet (yang stabil)

19
6. Masukan Token API Telegram yang sudah didapatkan pada
program.
7. Melakukan pengujian serta mengamati hasilnya
4.3.4. Hasil Pengujian
Untuk membuat API baru yang akan digunakan pada program,
berikut ditunjukan pada gambar 4.6 :

Gambar 4.6Membuat New Bot pada telegram

Pada gambar 4.7 ditunjukan bagaimana cara memasukan API


serta koneksi yang digunakan :

Nama WiFi
Password WiFi

API Telegram
Gambar. 4.7 setting program Bot Token

Pada gambar 4.7 adalah tampilan notivikasi yang di tampilkan pada


telegram

20
Gambar 4.7. Pemantauan Lampu pada telegram

4.3.5. Analisis Pengujian


Dari pengujian yang sudah dilakukan, maka dapat diketahui
bahwa masih terdapat delay pada saat pengiriman data, hal ini
disebabkan beberapa faktor yang mempengaruhi delay dalam
pertukaran informasi pada saat pengiriman melaui telegram bot yaitu :
pertama lalulintas server yang sangat padat sehingga respon dari
server bot terjadi delay, dan kedua adalah koneksi internet yang tidak
stabil. Kedua hal tersebut sangat mempengaruhi pengiriman atau
pertukaran data pada telegram bot, sehingga data yang dikirimkan
tidak real time.

4.4. Pengujian Keseluruhan Sistem


4.4.1. Tujuan
Pengujian keseluruhan sistem dilakukan untuk
mengintegrasikan keseluruhan sistem yang ditunjukan untuk
mempermudah dalam pengaturan daya listrik sehingga penggunaan
dapat dilakukan secara effisien

4.4.2. Setting pengujian


Pada proses pengujian dibutuhkan beberapa alat yang
digunakan yaitu sebagi berikut :
1. Arduino Mega
2. Modul Relay
3. Modul P10 + kabel koneksi ke arduino
4. RTC 3231
5. Kabel Serabut
6. Modul Esp8266 12E /NodeMCU

21
7. Koneksi internet (yang stabil)
8. soket lampu + lampu
9. steker
10. Kabel jumper
11. Adaptor 9v
12. Pin out tambahan (shield)
13. Software Arduino IDE

4.4.3. Blok Diagram pengujian


Pada gambar 4.9 di tunjukan bagaimana sistem ini
berkerja, dimana algoritma dari jam sholat abadi digunakan sebagai
patokan untuk menjadwal on dan off kelistrikan pada masjid, ketika
input relay High maka modul esp akan mengirimkan notivikasi “On”
melalui internet ke telegram dan ketika input yang dibaca Low maka
modul esp akan mengirimkan notivikasi “Off” melalui internet ke
telegram, sedangkan untuk p10 digunakan sebagai dispalay jam
sholat.

Internet HandPhone

API Module
ESP8266 12E

Jam sholat
abadi ArduinoMega Modu l p10

Module Relay

Pompa air Audio Qiro’ Lampu Sound

Gambar 4.9Blok Diagram Pengujian Keseluruhan Sistem

22
4.4.4. Prosedur Pengujian
Untuk mendapatkan pengujian yang tepat, adapun
langkah-langkah yang harus dilakukan adalah seabgai berikut :
1. Membuat packaging box sesuai dengan desain yang
telah dibuat
2. Membuat shield arduino mega
3. Mengatur tanggal dan waktu sekatang
4. Mengatur program sholat sesuai sudut lintang dan bujur
5. Megatur program pada tampilan P10
6. Membuat schadule kelistrikan pada masjid untuk setiap
waktu sholat
7. Membuat Bot pada telegram
8. Mengintegrasikan keseluruhan sistem.

4.4.5 Hasil Pengujian


Penjadwalan On dan Off kelistikan yang digunakan
ditunjukan pada tabel 4.4 berikut :

Alat jam Keterangan / waktu


05:51 - 16:00 OFF

16.01 – 21.00 ON
Lampu
21:01 – 03:00 OFF

03:04 - 05:50 ON

11:16 – 11:37 On dan Of (Dzuhur)

14:44 – 14:59 On dan Of (Asar)


On dan Of
Audio Qoro’ 17:15 – 17:31
(Maghrib)
18.30 – 18:43 On dan Of (Isya’)

04:04 – 04:22 On dan Of (Subuh)

Kipas angin 11:37 – 12:29 On dan Of (Dzuhur)

23
14:59– 15.31 On dan Of (Asar)
On dan Of
17:31– 18:03
(Maghrib)
18:43 – 19.15 On dan Of (Isya’)

04:22– 04:54 On dan Of (Subuh)

11:00 ON

12:00 OFF
Pompa Air
03.04 ON
04.04 OFF
Tabel 4.4. Schadule kelistrikan pada Masjid

Untuk tampilan penjadwalan On/Off ditunjukan pada gambar


4.10 berikut ini :

(Jam 03.04 lampu dan pompa menyala)

kipas
lampu audio
pompa

Jam 04:04audio nyala pompa mati


audio kipas
lampu
pompa

24
Jam 04:23 kipas menyala audio mati

kipas
pompa
lampu audio

Jam 04.54 kipas angin mati

audio kipas

lampu pompa

Jam 05:51 lampu, audio, kipas dan pompa mati

25
Gambar 4.10 Data percobaan penjadwalan kelistrkan
(pengambilan ketika jam sholat Subuh)
Untuk hasil pengiriman notifikasi pada telegram di tunjukan pada
gambar 4.11 berikut,

(Hotspot Handphone) (Rooter Wifi)

Gambar 4.11 Hasil Pengiriman Notifikasi pada Telegram

4.4.6. Analisa Pengujian

Dari data percobaan pada tabel 4.4 dapat diketahui data


perbandingan antara percobaan dan data realtime pada gambar
4.10 sebagai referensi untuk mencari error. Mencari persentase
error menggunakan rumus berikut

𝐩𝐞𝐫𝐜𝐨𝐛𝐚𝐚𝐧−𝐫𝐞𝐚𝐥 𝐭𝐢𝐦𝐞
% Error = ×100%
𝐩𝐞𝐫𝐜𝐨𝐛𝐚𝐚𝐧

Contoh perhitungan error pada aktivitas kelistrikan pada saat


sholat subuh diperoleh hasil :

 lampu dan pompa menyala pada pukul 03.04


03.04−03.04
% Error = ×100%
03.04

= 0%

 audio nyala pompa mati pada pukul 04:04

26
04.04−04.04
% Error = ×100%
04.04

= 0%
 kipas menyala audio mati pukul 04:22
04.22−04.22
% Error = ×100%
04.22

= 0%

 kipas angin mati pukul 04.54

04.54−04.54
% Error = ×100%
04.54

= 0%

 lampu off pada pukul 05:51

05.51−05.51
% Error = ×100%
05.51

= 0%

Perhitungan error pada pengiriman pada telegram

1. Menggunakan Hotspot Handphone

 Kipas on pada pukul 11.37


11.37−13.17
% Error = ×100%
11.37

= 0.158 x 100%

= 15.8%

27
 Kipas off pada pukul 12.29
12.29−13.21
% Error = ×100%
12.29

= 0.074 x 100%

= 7.4%

2. Menggunakan Rooter WiFi

 Kondisi on
23.28−23.29
% Error = 23.28 ×100%

= 0.0004 x 100%

= 0.04%

Dari hasil tersebut dapat diketahui bahwa untuk penjadwalan


on/off kelistrikan pada masjid sudah sesuai dengan apa yang
telah diatur atau dengan kata lain error = 0%, Sedangkan dari
data perbandingan yang di tampilkan pada gambar 4.7
(menggunakan Rooter Wifi) dan gambar 4.11 (menggunakan
hotspot handphone) menunjukan bahwa penggunaan hotspot atau
jaringan wifi sanagat mempengaruhi pada saat pengiriman data
ke telegram, hal ini dibuktikan bahwa untuk pengiriman
notifikasi pada telegram (menggunakan hotspot Handphone)
terdapat rata-rata error yaitu 11.6%, sedangkan untuk saat
menggunakan rooter Wifi terdapat rata-rata error sebeser 0.04%,
hal ini disebabkan oleh jaringan (hotspot handphone) yang
digunakan tidak stabil, sehingga pengiriman pada telegram
mengalami error yang cukup besar atau tidak real time.
Sedangkan pada saat menggunakan koneksi rooter atau WiFi
error yang didapat tidak terlalu besar.

28
BAB 5
PENUTUP
5.1. Kesimpulan

Dari hasil proyek akhir yang telah didapatkan, maka


dapat disimpulkan sebagai berikut :

1. Dari hasil perhitungan tingkat kesalahan (% Error)


antara penjadwalan kelistrikan dengan hasil real time
yang telah dilakukan diperoleh hasil error sebesar 0%.

2. Dari hasil perhitungan tingkat kesalahan atau error


antara pengiriman data menggunakan jaringan pada
handphone, dan pengiriman data menggunakan jaringan
rooter, untuk pengiriman notifikasi pada telegram
(menggunakan hotspot Handphone) terdapat rata-rata
error yaitu 11.6%, sedangkan untuk saat menggunakan
rooter Wifi terdapat rata-rata error sebeser 0.04%. dari
rata-rata tersebut kemudian dibandingkan dan
didapatkan nilai perbandingan sebesar 290 : 1.

5.2. Saran
Selama proyek akhir ini untuk kedepanya dapatt
dikembangkan kembali adalah sebagai berikut :
1. Pengaturan alat harus lebih dikembangkan lagi sesuai
kebutuhan.
2. Pada pompa air akan lebih baik jika di buat otomatis.
3. Untuk pengiriman via internet sebaiknya menggunakan
Rooter Wifi hotspot.
4. Pengembangan pemantauan dapat dikembangkan lagi
melalui web. Sehingga dapat di akses semua warga.
5. Menambahkan komunikasi feedback untuk membaca
kondisi jika status on tapi alat tidak berfungsi.

29
Halaman Sengaja Dikosongkan

30
DAFTAR PUSTAKA

[1] https://aliboron.wordpress.com/2013/05/12/hisab-waktu-waktu-
shalat/ diakses pada 30 November 2017
[2] http://www.rokhmad.com/2017/07/diy-membuat-jam-waktu-
sholat-abadi.html 30November 2017
[3] https://www.researchgate.net/publication/320471163_SISTEM_
PEMANTAU_PENGENDALIAN_RUMAH_CERDAS_MENG
GUNAKAN_INFRASTUKTUR_INTERNET_MESSAGING
diakses pada 17 Desember 2017
[4] https://www.warriornux.com/esp8266-iot-telegrambot-kontrol-
relay-lampu-via-internet/ diakses pada 01Juni 2018
[5] https://www.kloppenborg.net/images/blog/esp8266/esp8266-
esp12e-specs.pdf diakses pada 01 Juni 2108
[6] https://mikroavr.com/nodemcu-arduino/ diakses pada 01 juni
2018
[7] https://mikroavr.com/tutorial-telegram-arduino/ diakses pada 01
juni 2018

31
Halaman Sengaja Dikosongkan

32
LAMPIRAN 1
Program Sistem

1. Program setting RTCDS3231


// Init the DS3231 using the hardware interface
DS3231 rtc(SDA, SCL);

void setup()
{
// Setup Serial connection
Serial.begin(9600);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}

// Initialize the rtc object


rtc.begin();

// The following lines can be uncommented to set the date and time
rtc.setDOW(SATURDAY); // Set Day-of-Week to SUNDAY
rtc.setTime(18, 55, 0); // Set the time to 18:55:00 (24hr format)
rtc.setDate(01, 7, 2018); // Set the date to July 1st, 2018
}

void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");

// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");

// Send time
Serial.println(rtc.getTimeStr());

33
// Wait one second before repeating :)
delay (1000);

2. Program Schadule Keliatrikan Pada Masjid


////////////penjadwalan kelistrikan/////////////
#define lampu 3
#define audio 4
#define kipas 5
#define pompa 10
void setup()
{
//////seting/////
Serial.begin (9600);
////////////////////////////
pinMode (lampu,OUTPUT);
pinMode (audio,OUTPUT);
pinMode (kipas,OUTPUT);
pinMode (pompa,OUTPUT);
/////////////////conversi String to Int////////////////////////
int xjam1 = xjam.toInt(); /// jam
int xxjam1 = xxjam.toInt(); /// menit
// int lampu1 = 3; ///// lampu 1
// int qiro = 4;/////lampu 2
// int kipas = 5;//// lampu 3
// int pompa = 10; /// lampu 4
Serial.print (xjam1);
Serial.print(":");
Serial.println(xxjam1);
//Serial.print (xpjg);
// Serial.print (":");
// Serial.println (xxjam);
////// scadule lampu

///// jam : 16:00 lampu nyala sampai jam 21:00 ////////


//// jam 03:00 nyala sampai jam 06:00 ///////

if (xjam1>=16 && xjam1<=21 ){


digitalWrite (lampu,HIGH );
Serial.print ("lampu1 ON ");
}
if (xjam1>=21 && xjam1<=3 ){

34
digitalWrite(lampu, LOW);
Serial.print ("lampu1 off ");
}
if (xjam1>=3 && xjam1<=6 ){
digitalWrite (lampu, HIGH);
Serial.print ("lampu1 on");
}
if (xjam1==5 && xxjam1 >=51 && xjam1<=16 ){
digitalWrite(lampu,LOW);
Serial.print ("lampu1 off");
}
//////////////////////////////schadule audio////////////////////////////////////////////
if (xjam1==11 && xxjam1==22 ){ ///////// dzuhur
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==11 && xxjam1==37 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1>14 && xxjam1==44 ){ ///////// asar
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==14 && xxjam1==59 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1==17 && xxjam1==15 ){ ///////// Maghrib
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==17 && xxjam1==30 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1==18 && xxjam1==29 ){ ///////// Isya'
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==18 && xxjam1==44 ){

35
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1=4 && xxjam1>=8 ){ ///////// Subuh
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1=4 && xxjam1>=23 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
/////////////////////////////////////////////////////////////-----------kipas--------------
-///////////////////////////////////////////////////////
if (xjam1==11 && xxjam1==37 ){ ///////// dzuhur
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==12 && xxjam1==07 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==14 && xxjam1==59 ){ ///////// asar
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==15 && xxjam1==29){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==17 && xxjam1==15 ){ ///////// Maghrib
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==17 && xxjam1==30 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==18 && xxjam1==44 ){ ///////// isya'
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}

36
if (xjam1==19 && xxjam1>=24 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1=4 && xxjam1>=23 ){ ///////// Subuh
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1=4 && xxjam1>=53 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
////////////////////////////////////pompa air////////////////////////////
/////////////////////////////////////////siang/////////
if (xjam1==10 && xxjam1>=00 ){
digitalWrite (pompa,HIGH );
Serial.print ("pompa ON ");
}
if (xjam1==12 && xxjam1>=00 ){
digitalWrite(pompa, LOW);
Serial.print ("pompa off ");
}
/////////////////////////////// pagi////////////
if (xjam1>=2 && xxjam1>=00 ){
digitalWrite (pompa,HIGH );
Serial.print ("pompa ON ");
}
if (xjam1=4 && xxjam1>=00 ){
digitalWrite(pompa, LOW);
Serial.print ("pompa off ");
}

3. Program seting jam sholat


/////////////////======Program Jam sholat=========

int menite = 1; ///waktu iqomah lamanya


void mulai()
{
dmd.clearScreen( );
long mulai = millis();
while (millis() - mulai < 3000) {

37
DateTime now = rtc.now();
String Teks;

///=====pengaturan koordinat-gunakan gps android untuk


menentukan posisi anda=================
double lintang = -7.14; // latitude surabaya
double bujur = 112.4; // longitude surabaya
int Z = 7 ; //Zona Waktu GMT WIB biasanya 7

int tgl = now.date(); //Tanggal


int bln = now.month(); //Bulan
int thn = now.year(); //Tahun
int hours, minutes; //jam sholat dan menit sholat

long mulai = millis();

set_calc_method(ISNA); //Methode perhitungan mengikuti


ISNA
set_asr_method(Shafii); //Pendapat Imam Syafi'i
set_high_lats_adjust_method(AngleBased);
set_fajr_angle(20); //Sudut Waktu Subuh
set_isha_angle(18); ////Sudut Waktu Isya
get_prayer_times(thn, bln, tgl, lintang, bujur, Z, times);

///jam--besar///
dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
int menit_e = now.minute();
int jame = now.hour();

String xjam = Konversi(jame) ; //tampilan jam

int pjg = xjam.length() + 1;


char sjam[pjg];
//int xjam1 = xjam;
xjam.toCharArray(sjam, pjg);

38
//Serial.print(xjam1);

dmd.drawString(2, 4, sjam, pjg, 0);

/////menit///
String xxjam = Konversi(now.minute()) ; //tampilan menit
int xpjg = xxjam.length() + 1;
char xsjam[xpjg];
xxjam.toCharArray(xsjam, xpjg);
dmd.drawString(19, 4, xsjam, xpjg, 0);

///titik dua :
/////////////////conversi String to Int////////////////////////
int xjam1 = xjam.toInt(); /// jam
int xxjam1 = xxjam.toInt(); /// menit
int lampu = 3;
Serial.print (xjam1);
Serial.print(":");
Serial.println(xxjam1);

4. Program Koneksi Esp8266 to Arduino


// Initialize Wifi connection to the router
const char* ssid = "Eepiswlan"; //// Nama wifi //////
const char* password = "gakadapasswordnya"; //// Password
wifi.//////////

// Initialize your Telegram BOT API


const char BotToken[] =
"657798433:AAHQ78SJOlKK0JtriDxH6qLWhZg_uxWZH9s"; ////
Bot API Telegram

WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);

const int ledPin = 3; // the number of the LED pin

void setup()
{

39
Serial.begin(115200);
while (!Serial) {} //Start running when the serial is open
delay(3000);
// attempt to connect to Wifi network:
Serial.print("Connecting Wifi: ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
bot.begin();
pinMode(ledPin, OUTPUT);
}

void loop()
{
message m = bot.getUpdates(); // Read new messages
if (m.text.equals("On")) //Perintah dari telegram ke
perangkat
{
digitalWrite(ledPin, HIGH);
Serial.println("message received");
bot.sendMessage(m.chat_id, "The Led is now ON");
//Balasan dari perangkat ke Bot Telegram
}
else if (m.text.equals("Off")) //Perintah dari telegram ke
perangkat
{
digitalWrite(ledPin, LOW);
Serial.println("message received");
bot.sendMessage(m.chat_id, "The Led is now OFF");
//Balasan dari perangkat ke Bot Telegram
}
}

5. Program Keseluruhan Sistem


#include <DMD2.h>
//#include <TimerOne.h>

40
#include <Wire.h>
#include <Sodaq_DS3231.h>
#include "PrayerTimes.h"
#include <SystemFont5x7.h>
#include <angka6x13.h>
#include <angka_2.h>
#include <huruf_kecilku.h>

#include <Font3x5.h>

#include <SPI.h>
char weekDay[][7] = {"SENIN" , "SELASA", "RABU", "KAMIS",
"JUM'AT", "SABTU", "AHAD","SENIN" , }; // array hari,
dihitung mulai dari senin, hari senin angka nya =0,
int langkah;
int Teks;
int lama_tampilnya;
boolean Waduh_Setting = false;
String xjam;
///////////////////////////////// Mendifinisikan Pin Tombol
////////////////////////////////////////
#define Jam_bUP A1 // Tombol setting sesuaikan dengan
PIN di arduino anda mana klo ini terhubung dengan PIN 3 Digital
#define tombol_bOK A2 // Tombol OK sesuaikan dengan
PIN di arduino anda mana klo ini terhubung dengan PIN 5 Digital
#define Jam_bDN A3 //tombol setting sesuaikan dengan PIN
di arduino anda mana klo ini terhubung dengan PIN 4 Digital

///////////////////koding ini untuk setting rtc sesuai dengan laptop//// /////


//year, month, date, hour, min, sec and week-day(starts from 0 and
goes to 6)
//writing any non-existent time-data may interfere with normal
operation of the RTC.
//Take care of week-day also.
//DateTime dt(2017, 5, 4, 15, 11, 0, 4);

/*
* PIN YANG DISAMBUNG
* Arduino P-10
* -D6 -> -A
* -D7 -> -B

41
* -D8 -> -SCLK
* -D9 -> -OE
* -D11 -> -DATA
* -D13 -> -CLK
* -GND -> -GND
*/

SoftDMD dmd(1, 1); //untuk mengatur jumlah panel yang kamu


pakai

double times[sizeof(TimeName) / sizeof(char*)];

void ScanDMD()
{
//dmd.scanDisplayBySPI();
}
////////////deklarasi lampu////////////////////
#define lampu 3
#define audio 4
#define kipas 5
#define pompa 10
void setup()
{

//////seting/////
Serial.begin (9600);
////////////////////////////
pinMode (lampu,OUTPUT);
pinMode (audio,OUTPUT);
pinMode (kipas,OUTPUT);
pinMode (pompa,OUTPUT);
pinMode(2, OUTPUT);//----pin 2 untuk alarm adzan maghrib ---
hubungkan dengan buzzer
dmd.setBrightness(255);
langkah = 0;
rtc.begin();
//rtc.setDateTime(dt); //Adjust date-time as defined 'dt' above (ini
untuk setting jam)
Wire.begin();
// Timer1.initialize( 500 );
//Timer1.attachInterrupt( ScanDMD );

42
//dmd.selectFont(SystemFont5x7);
dmd.begin();
dmd.clearScreen( );

pinMode(tombol_bOK, INPUT_PULLUP); //
Mode Pin Sebagai Input dengan Pull Up Internal
pinMode(Jam_bUP, INPUT_PULLUP); //
Mode Pin Sebagai Input dengan Pull Up Internal
pinMode(Jam_bDN, INPUT_PULLUP); //
Mode Pin Sebagai Input dengan Pull Up Internal

attachInterrupt(0, Setting, FALLING);


}
////////// Fungsi Looping/Pengulangan ///////////////////
void loop() {
if (Waduh_Setting) {

MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk


menu setting Manual
}
mulai();
Serial.print (xjam);
Serial.print("");
}

/////////=====Program Jam========//////////////////////

int menite = 1; ///waktu iqomah lamanya


void mulai()
{
dmd.clearScreen( );
long mulai = millis();
while (millis() - mulai < 3000) {

DateTime now = rtc.now();


String Teks;

///================pengaturan koordinat-gunakan gps


android untuk menentukan posisi anda=================

43
//double lintang = -7.0667; //Latitude
//double bujur = 110.4; //Longitude
double lintang = -7.14; // latitude surabaya
double bujur = 112.45; // longitude surabaya
int Z = 7 ; //Zona Waktu GMT WIB biasanya 7

int tgl = now.date(); //Tanggal


int bln = now.month(); //Bulan
int thn = now.year(); //Tahun
int hours, minutes; //jam sholat dan menit sholat

long mulai = millis();

set_calc_method(ISNA); //Methode perhitungan mengikuti


ISNA
set_asr_method(Shafii); //Pendapat Imam Syafi'i
set_high_lats_adjust_method(AngleBased);
set_fajr_angle(20); //Sudut Waktu Subuh
set_isha_angle(18); ////Sudut Waktu Isya
get_prayer_times(thn, bln, tgl, lintang, bujur, Z, times);

///jam--besar///
dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
int menit_e = now.minute();
int jame = now.hour();

String xjam = Konversi(jame) ; //tampilan jam

int pjg = xjam.length() + 1;


char sjam[pjg];
//int xjam1 = xjam;
xjam.toCharArray(sjam, pjg);

//Serial.print(xjam1);

44
dmd.drawString(2, 4, sjam, pjg, 0);

/////menit///
String xxjam = Konversi(now.minute()) ; //tampilan menit
int xpjg = xxjam.length() + 1;
char xsjam[xpjg];
xxjam.toCharArray(xsjam, xpjg);
dmd.drawString(19, 4, xsjam, xpjg, 0);

///titik dua :
/////////////////conversi String to Int////////////////////////
int xjam1 = xjam.toInt(); /// jam
int xxjam1 = xxjam.toInt(); /// menit
// int lampu1 = 3; ///// lampu 1
// int qiro = 4;/////lampu 2
// int kipas = 5;//// lampu 3
// int pompa = 10; /// lampu 4
Serial.print (xjam1);
Serial.print(":");
Serial.println(xxjam1);
//Serial.print (xpjg);
// Serial.print (":");
// Serial.println (xxjam);
////// scadule lampu

///// jam : 16:00 lampu nyala sampai jam 21:00 ////////


//// jam 03:00 nyala sampai jam 06:00 ///////

if (xjam1>=16 && xjam1<=21 ){


digitalWrite (lampu,HIGH );
Serial.print ("lampu1 ON ");
}
if (xjam1>=21 && xjam1<=3 ){
digitalWrite(lampu, LOW);
Serial.print ("lampu1 off ");
}
if (xjam1>=3 && xjam1<=6 ){
digitalWrite (lampu, HIGH);
Serial.print ("lampu1 on");
}
if (xjam1==5 && xxjam1 >=51 && xjam1<=16 ){

45
digitalWrite(lampu,LOW);
Serial.print ("lampu1 off");
}
//////////////////////////////schadule audio////////////////////////////////////////////
if (xjam1==11 && xxjam1==22 ){ ///////// dzuhur
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==11 && xxjam1==37 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1>14 && xxjam1==44 ){ ///////// asar
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==14 && xxjam1==59 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1==17 && xxjam1==15 ){ ///////// Maghrib
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==17 && xxjam1==30 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1==18 && xxjam1==29 ){ ///////// Isya'
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1==18 && xxjam1==44 ){
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
if (xjam1=4 && xxjam1>=8 ){ ///////// Subuh
digitalWrite (audio,HIGH );
Serial.print ("qiro ON ");
}
if (xjam1=4 && xxjam1>=23 ){

46
digitalWrite(audio, LOW);
Serial.print ("qiro off ");
}
/////////////////////////////////////////////////////////////-----------kipas--------------
-///////////////////////////////////////////////////////
if (xjam1==11 && xxjam1==37 ){ ///////// dzuhur
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==12 && xxjam1==07 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==14 && xxjam1==59 ){ ///////// asar
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==15 && xxjam1==29){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==17 && xxjam1==15 ){ ///////// Maghrib
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==17 && xxjam1==30 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1==18 && xxjam1==44 ){ ///////// isya'
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}
if (xjam1==19 && xxjam1>=24 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
if (xjam1=4 && xxjam1>=23 ){ ///////// Subuh
digitalWrite (kipas,HIGH );
Serial.print ("kipas ON ");
}

47
if (xjam1=4 && xxjam1>=53 ){
digitalWrite(kipas, LOW);
Serial.print ("kipas off ");
}
/////////////////////////////////////////////////////////////////////pompa
air////////////////////////////
if (xjam1==10 && xxjam1==00 ){ /////////siang/////////
digitalWrite (pompa,HIGH );
Serial.print ("pompa ON ");
}
if (xjam1==12 && xxjam1>=00 ){
digitalWrite(pompa, LOW);
Serial.print ("pompa off ");
}
///////////////////////////////////////////
if (xjam1>=2 && xxjam1>=00 ){ ///////// pagi////////////
digitalWrite (pompa,HIGH );///KEBALIK
Serial.print ("pompa ON ");
}
if (xjam1=4 && xxjam1>=00 ){
digitalWrite(pompa, LOW);
Serial.print ("pompa off ");
}

///////////////////////////////////////////////////////////////----------------------------
-- -----------------------------//////////////////////////////////////////////////////////

dmd.selectFont(SystemFont5x7);
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

48
/////////////////////
dmd.selectFont(SystemFont5x7);
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
dmd.selectFont(SystemFont5x7);
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
dmd.selectFont(SystemFont5x7);
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );

49
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );
dmd.drawChar( 14, 4, ':', GRAPHICS_OR ); // clock colon
overlay off
delay( 1000 );
dmd.selectFont(SystemFont5x7);
dmd.drawChar( 14, 4, ':', GRAPHICS_NOR ); // clock colon
overlay on
delay( 1000 );

////subuh
dmd.clearScreen( );
get_float_time_parts(times[0], hours, minutes);
Teks = "SUBUH "; //baris atas
char pj = Teks.length() + 1;
char tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(5, -2, tampil, pj, 0); //koordinat tampilan
Teks = Konversi(hours) + ":" + Konversi(minutes); //baris
kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);
/////////
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
////dzuhur
dmd.clearScreen( );
get_float_time_parts(times[2], hours, minutes);
Teks = "DZUHUR "; //baris atas

50
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(Font3x5);
dmd.drawString(4, -2, tampil, pj, 0); //koordinat tampilan
Teks = Konversi(hours) + ":" + Konversi(minutes); //baris
kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);

/////////
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
////Asar
dmd.clearScreen( );
get_float_time_parts(times[3], hours, minutes);
Teks = "ASHAR "; //baris atas
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(Font3x5);
dmd.drawString(5, -2, tampil, pj, 0); //koordinat tampilan
Teks = Konversi(hours) + ":" + Konversi(minutes); //baris
kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);
/////////
///////////////interupsi tombol menu-----------

51
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
////Maghrib
dmd.clearScreen( );
get_float_time_parts(times[4], hours, minutes);
Teks = "MAGHRIB "; //baris atas
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(Font3x5);
dmd.drawString(2, -2, tampil, pj, 0); //koordinat tampilan
Teks = Konversi(hours) + ":" + Konversi(minutes); //baris
kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);
/////////
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
///Isya'
dmd.clearScreen( );
get_float_time_parts(times[6], hours, minutes);
Teks = "ISYA' "; //baris atas
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(Font3x5);
dmd.drawString(7, -2, tampil, pj, 0); //koordinat tampilan

52
Teks = Konversi(hours) + ":" + Konversi(minutes); //baris
kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);
/////////
///////////////interupsi tombol menu-----------
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
//imsak
dmd.clearScreen( );

get_float_time_parts(times[0], hours, minutes);


if (minutes < 11)
{
minutes = 60 - minutes;
hours --;
}
else {
minutes = minutes - 10 ;
}
Teks = "IMSAK "; //baris atas
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);
dmd.selectFont(Font3x5);
dmd.drawString(4, -2, tampil, pj, 0); //koordinat tampilan

Teks = Konversi(hours) + ":" + Konversi(minutes);


//baris kedua
pj = Teks.length() + 1;
tampil[pj];
Teks.toCharArray(tampil, pj);

53
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, tampil, pj, 0); //koordinat tampilan
delay(2000);
///TOMBOL SET JAM//
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual
}

///=============================PROGRAM ADZAN
DAN IQOMAH===================
//jam adzan Subuh----------------------------------------------------------
int hours;
int minutes;
dmd.clearScreen( );
while (millis() - mulai < 2000) {
///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari
///////////////interupsi tombol menu-----------

if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

54
/////////////////////

get_float_time_parts(times[0], hours, minutes);


if ((now.hour() == hours && now.minute() == minutes) ||
(now.hour() == hours && now.minute() == minutes + 1) ||
(now.hour() == hours && now.minute() == minutes + 2)
|| (now.hour() == hours && now.minute() == minutes + 3)
|| (now.hour() == hours && now.minute() == minutes + 4)
|| (now.hour() == hours && now.minute() == minutes + 5)) {

digitalWrite(2, HIGH);//alarm sholat


delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);

dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 0, "ADZAN ", 5, 0); //koordinat tampilan
dmd.selectFont(Font3x5);
dmd.drawString(3, 7, "SUBUH", 5, 0); //koordinat tampilan
delay(150000);

//iqomah----------------------------------
int langkah;
int waktu_iqomah;
int panjang_iqomah;
int iqomah;
dmd.clearScreen( );

dmd.selectFont(Font3x5);
dmd.clearScreen( );
dmd.drawString(3, -2, "IQOMAH", 6, 0); //koordinat tampilan
int tampil;
int detik = 60, menit = 1;
for (detik = 60; detik >= 0; detik--) {

55
delay(1000);
String iqomah = Konversi(menit) + ":" + Konversi(detik);
int panjang_iqomah = iqomah.length() + 1;
char waktu_iqomah[panjang_iqomah];
iqomah.toCharArray(waktu_iqomah, panjang_iqomah);
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 9, waktu_iqomah, panjang_iqomah, 0);
if (detik <= 0) {
detik = 60;
menit = menit - 1;
} if (menit <= 0 && detik <= 1) {
for (tampil = 0; tampil < 300 ; tampil++) {
menit = 0;
detik = 0;
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "SHOLAT", 6, 0); //koordinat
tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
delay (1000);

}
}
}
}
}

56
//jam adzan Dzuhur-------------------WAKTU DZUHUR
MODIFIED--------------------------------------
dmd.clearScreen( );
while (millis() - mulai <29000) {
///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari

///////////////interupsi tombol menu-----------


if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

/////////////////////
int harin_e = now.dayOfWeek();
get_float_time_parts(times[2], hours, minutes);
if ((now.hour() == hours && now.minute() == minutes &&
harin_e != 4 ) || (now.hour() == hours && now.minute() == minutes
+ 1 && harin_e != 4 ) || (now.hour() == hours && now.minute() ==
minutes + 2 && harin_e != 4 )
|| (now.hour() == hours && now.minute() == minutes + 3 &&
harin_e != 4 )
|| (now.hour() == hours && now.minute() == minutes + 4 &&
harin_e != 4 )
|| (now.hour() == hours && now.minute() == minutes + 5 &&
harin_e != 4 )) {

digitalWrite(2, HIGH);//alarm sholat

57
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);

dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 0, "ADZAN ", 5, 0); //koordinat tampilan
dmd.selectFont(Font3x5);
dmd.drawString(2, 6, "DZUHUR", 6, 0); //koordinat tampilan
delay(150000);

//iqomah----------------------------------
int langkah;
int waktu_iqomah;
int panjang_iqomah;
int iqomah;
dmd.clearScreen( );

dmd.selectFont(Font3x5);
dmd.clearScreen( );
dmd.drawString(3, -2, "IQOMAH", 6, 0); //koordinat tampilan
int tampil;
int detik = 00, menit = 05;
for (detik = 60; detik >= 0; detik--) {
delay(1000);
String iqomah = Konversi(menit) + ":" + Konversi(detik);
int panjang_iqomah = iqomah.length() + 1;
char waktu_iqomah[panjang_iqomah];
iqomah.toCharArray(waktu_iqomah, panjang_iqomah);
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 9, waktu_iqomah, panjang_iqomah, 0);
if (detik <= 0) {
detik = 60;
menit = menit - 1;
} if (menit <= 0 && detik <= 1) {

58
for (tampil = 0; tampil < 300 ; tampil++) {
menit = 0;
detik = 0;
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "SHOLAT", 6, 0); //koordinat
tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
///////////////////////
delay (1000);

}
}
}
}
}

//----------------------------------------------------------------------
//jam hari Jum'at----JUM'AT--------JUM'AT--------JUM'AT----
JUM'AT----JUM'AT----JUM'AT----JUM'AT----JUM'AT----
JUM'AT------------------------------------------
dmd.clearScreen( );

while (millis() - mulai < 30000) {


///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;

59
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari

///////////////interupsi tombol menu-----------


if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

/////////////////////
int harin_e = now.dayOfWeek();
get_float_time_parts(times[2], hours, minutes);
if ((now.hour() == hours && now.minute() == minutes &&
harin_e == 4) || (now.hour() == hours && now.minute() == minutes
+ 1 && harin_e == 4) || (now.hour() == hours && now.minute() ==
minutes + 2 && harin_e == 4)
|| (now.hour() == hours && now.minute() == minutes + 3 &&
harin_e == 4)
|| (now.hour() == hours && now.minute() == minutes + 4 &&
harin_e == 4)
|| (now.hour() == hours && now.minute() == minutes + 5 &&
harin_e == 4)) {
int tampil;
dmd.clearScreen( );
for (tampil = 0; tampil < 1550 ; tampil++) {
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "Jum'at", 10, 0); //koordinat tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);

60
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
delay (1000);

////-----AKHIR CODING JIKA HARI JUM'AT-----

//----------------------------------------------------------------------
//jam adzan Asar----------------------------------------------------------
dmd.clearScreen( );
while (millis() - mulai < 31000) {
///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari
/////////////////////
get_float_time_parts(times[3], hours, minutes);
if ((now.hour() == hours && now.minute() == minutes) ||
(now.hour() == hours && now.minute() == minutes + 1) ||
(now.hour() == hours && now.minute() == minutes + 2)
|| (now.hour() == hours && now.minute() == minutes + 3)
|| (now.hour() == hours && now.minute() == minutes + 4)
|| (now.hour() == hours && now.minute() == minutes + 5)) {

61
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);
dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 0, "ADZAN ", 5, 0); //koordinat tampilan
dmd.selectFont(Font3x5);
dmd.drawString(3, 7, "ASHAR", 4, 0); //koordinat tampilan
delay(150000);

//iqomah----------------------------------
int langkah;
int waktu_iqomah;
int panjang_iqomah;
int iqomah;
dmd.clearScreen( );

dmd.selectFont(Font3x5);
dmd.clearScreen( );
dmd.drawString(3, -2, "IQOMAH", 6, 0); //koordinat tampilan
int tampil;
int detik = 00, menit = 05;
for (detik = 60; detik >= 0; detik--) {
delay(1000);
String iqomah = Konversi(menit) + ":" + Konversi(detik);
int panjang_iqomah = iqomah.length() + 1;
char waktu_iqomah[panjang_iqomah];
iqomah.toCharArray(waktu_iqomah, panjang_iqomah);
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 9, waktu_iqomah, panjang_iqomah, 0);
if (detik <= 0) {
detik = 60;
menit = menit - 1;
} if (menit <= 0 && detik <= 1) {

62
for (tampil = 0; tampil < 300 ; tampil++) {
menit = 0;
detik = 0;
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "SHOLAT", 6, 0); //koordinat
tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
///////////////////////
delay (1000);

}
}
}
}
}

//----------------------------------------------------------------------

//jam adzan Maghrib--------------------------------------------------------


--
dmd.clearScreen( );
while (millis() - mulai <32000) {
///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);

63
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari

///////////////interupsi tombol menu-----------


if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

}
/////////////////////
get_float_time_parts(times[4], hours, minutes);
if ((now.hour() == hours && now.minute() == minutes) ||
(now.hour() == hours && now.minute() == minutes + 1) ||
(now.hour() == hours && now.minute() == minutes + 2)
|| (now.hour() == hours && now.minute() == minutes + 3)
|| (now.hour() == hours && now.minute() == minutes + 4)
|| (now.hour() == hours && now.minute() == minutes + 5)) {

digitalWrite(2, HIGH);//alarm sholat


delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);

dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 0, "ADZAN ", 5, 0); //koordinat tampilan
dmd.selectFont(Font3x5);
dmd.drawString(1, 7, "MAGHRIB", 7, 0); //koordinat tampilan
delay(150000);
//iqomah----------------------------------
int langkah;
int waktu_iqomah;
int panjang_iqomah;
int iqomah;

64
dmd.clearScreen( );

dmd.selectFont(Font3x5);
dmd.clearScreen( );
dmd.drawString(3, -2, "IQOMAH", 6, 0); //koordinat tampilan
int tampil;
int detik = 00, menit = 05;
for (detik = 60; detik >= 0; detik--) {
delay(1000);
String iqomah = Konversi(menit) + ":" + Konversi(detik);
int panjang_iqomah = iqomah.length() + 1;
char waktu_iqomah[panjang_iqomah];
iqomah.toCharArray(waktu_iqomah, panjang_iqomah);
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 9, waktu_iqomah, panjang_iqomah, 0);
if (detik <= 0) {
detik = 60;
menit = menit - 1;
} if (menit <= 0 && detik <= 1) {
for (tampil = 0; tampil < 300 ; tampil++) {
menit = 0;
detik = 0;
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "SHOLAT", 6, 0); //koordinat
tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
///////////////////////
delay (1000);

65
}
}
}
}

//jam adzan isya----------------------------------------------------------


dmd.clearScreen( );
while (millis() - mulai < 33000) {
///////////////////////

DateTime now = rtc.now();


String hariku = Konversi(now.date()) + "/" +
Konversi(now.month()) ; //tampilan tanggal
int dowo = hariku.length() + 1;
char detikanku[dowo];
hariku.toCharArray(detikanku, dowo);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 0, detikanku, dowo, 0);
dmd.selectFont(Font3x5);
dmd.drawString(5, 6, (weekDay[now.dayOfWeek()]), 7, 0);
//tampilan hari
///////////////interupsi tombol menu-----------

if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual

/////////////////////
get_float_time_parts(times[6], hours, minutes);
if ((now.hour() == hours && now.minute() == minutes) ||
(now.hour() == hours && now.minute() == minutes + 1) ||
(now.hour() == hours && now.minute() == minutes + 2)
|| (now.hour() == hours && now.minute() == minutes + 3)
|| (now.hour() == hours && now.minute() == minutes + 4)
|| (now.hour() == hours && now.minute() == minutes + 5)) {

digitalWrite(2, HIGH);//alarm sholat


delay(1000);
digitalWrite(2, LOW);//alarm sholat

66
delay(1000);
digitalWrite(2, HIGH);//alarm sholat
delay(1000);
digitalWrite(2, LOW);//alarm sholat
delay(1000);

dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 0, "ADZAN", 5, 0); //koordinat tampilan
dmd.selectFont(Font3x5);
dmd.drawString(5, 7, "ISYA'", 4, 0); //koordinat tampilan
delay(150000);

//iqomah----------------------------------
int langkah;
int waktu_iqomah;
int panjang_iqomah;
int iqomah;
dmd.clearScreen( );

dmd.selectFont(Font3x5);
dmd.clearScreen( );
dmd.drawString(3, -2, "IQOMAH", 6, 0); //koordinat tampilan
int tampil;
int detik = 00, menit = 05;
for (detik = 60; detik >= 0; detik--) {
delay(1000);
String iqomah = Konversi(menit) + ":" + Konversi(detik);
int panjang_iqomah = iqomah.length() + 1;
char waktu_iqomah[panjang_iqomah];
iqomah.toCharArray(waktu_iqomah, panjang_iqomah);
dmd.selectFont(SystemFont5x7);
dmd.drawString(0, 9, waktu_iqomah, panjang_iqomah, 0);
if (detik <= 0) {
detik = 60;
menit = menit - 1;
} if (menit <= 0 && detik <= 1) {

67
for (tampil = 0; tampil < 300 ; tampil++) {
menit = 0;
detik = 0;
dmd.clearScreen( );
dmd.selectFont(Font3x5);
dmd.drawString(1, -2, "SHOLAT", 6, 0); //koordinat
tampilan
///////////////////////
now = rtc.now();
String xjam = Konversi(now.hour()) + ":" +
Konversi(now.minute()) ; //tampilan jam
int pjg = xjam.length() + 1;
char sjam[pjg];
xjam.toCharArray(sjam, pjg);
dmd.selectFont(SystemFont5x7);
dmd.drawString(1, 9, sjam, pjg, 0);

/////////////////////
///////////////////////
delay (1000);

}
}
}
}
}

//----------------------------------------------------------------------
///konversi angka agar ada nol didepannya jika diawah 10

String Konversi(int sInput) {


if (sInput < 10)
{
return"0" + String(sInput);
}
else
{
return String(sInput);
}

68
}

LAMPIRAN 2
Cara Koneksi Internet Ke telegram
1. Komponen yang harus disiapkan
- Esp8266 12-E / NodeMCU
- Smartphone yang terinstal Telegram
- Laptop + Sofware Arduino IDE
- Arduino Mega

2. Pin yang digunakan

Arduino Mega Esp8266 12E Keterangan


3,3V Vin Tegangan input
GND Gnd Ground
Tx Rx Komunikasi Serial
Rx Tx Komunikasi Serial
D3 D0 Output
D4 D1 Output
D5 D2 Output
D12 D3 Output

3. Membuat Bot Telegram


- Mencari BotFather pada telegram “@BotFather”
- Membuat NewBot, seperti yang ditunjukan pada gambar 6.1
dibawah ini :

69
Gambar 6.1 cara membuat Bot baru

4. Melakukan inialisasi pada program (Arduino IDE Telegram Bot)


Yaitu dengan memasukan token API telegram yang
sudah kita dapatkan , serta WiFi yang akan kita koneksikan
dengan Esp8266, seperti gambar 6.2 berikut :

Nama WiFi
Password WiFi

BotToken

Gambar 6.2 Inisialisasi BotToken

5. Upload Program dengan Arduino IDE


- Pastikan Board yang digunakan, NodeMCU 1.0 (ESP 12E) dengan
Serial.begin (115200).

6. Hasil Percobaan
- Ketika indikator menyala atau kondisi High maka akan
mengirimkan notivikasi On
- Ketika indikator Padam atau kondisi LOW maka akan
mengirimkan notivikasi Off

Seperti di tunjukan pada gambar 6.3 berikut ini :

Gambar 6.3 Notifikasi yang diterima

70
Lampiran 3. Biodata Penulis

Nama : M. Qomaruddin Fuad


Tempat/Tanggal Lahir : Bojonegoro, 26 Oktober 1997
Alamat : jl. Patimura Perumahan Pondok Asri
No. 57g Bojonegoro
Telepon/Hp : 082213353953
Hobi : Swimming, badminton, karate,
Diskusi.
Moto : Proses tidak akan Menghianati
Hasil. Yakin Usaha Sampai.

Riwayat Pendidikan :

MI Islamiyah Mulyoagung Tahun 2003 – 2009


SMPN 1 SINGGAHAN Tahun 2009 – 2012
MAN 1 Bojonegoro Tahun 2012 – 2015
Politeknik Elektronika Negeri Surabaya Tahun 2015 – 2018

71

Anda mungkin juga menyukai