ABAYA
Oleh:
M. Qomaruddin Fuad
NRP. 1103151060
Dosen Pembimbing :
Oleh:
M. Qomaruddin Fuad
NRP. 1103151060
Dosen Pembimbing :
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.
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
Oleh :
Dosen Penguji Proyek Akhir: Dosen Pembimbing:
Mengetahui,
Ketua Program Studi D3 Teknik Elektronik
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.
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.
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.
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.
viii
PERSETUJUAN PUBLIKASI TERBATAS
Surabaya,
Penulis
M. Qomaruddin Fuad
ix
Daftar Isi
BAB I. PENDAHULUAN
1.1 Latar Belakang ................................................. 1
1.2 Tujuan ............................................................. 2
1.3 Permasalahan ................................................... 2
1.4 Manfaat .......................................................... 2
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
xi
DAFTAR GAMBAR
Gambar Halaman
xii
DAFTAR TABEL
Tabel Halaman
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
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.
6
sebagai saklarnya) untuk menghantarkan listrik 220V 2A. Gambar 3.2.
menunjukan koneksi antara pin modul relay dengan Arduino, seperti
berikut :
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 :
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 :
9
3.4. Perancangan Perangkat Lunak
3.4.1. Program Jam Sholat
10
3.4.3. Program Komunikasi ESP8266 12E dengan Arduino Mega
11
3.4.4. Pedoman Jam Sholat Wilayah Surabaya
(Sumber : https://www.jadwalsholat.org/adzan/monthly.php?id=265):
12
BAB 4
PENGUJIAN DAN ANALISA
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
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.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
17
Gambar 4.4. hasil pengujian dengan indikator lampu
Pada pengujian On/Off ini diperoleh hasil yang sesuai dengan apa yang
dinginkan.
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
API
Relay Lampu
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 :
Nama WiFi
Password WiFi
API Telegram
Gambar. 4.7 setting program Bot Token
20
Gambar 4.7. Pemantauan Lampu pada telegram
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
Internet HandPhone
API Module
ESP8266 12E
Jam sholat
abadi ArduinoMega Modu l p10
Module Relay
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.
16.01 – 21.00 ON
Lampu
21:01 – 03:00 OFF
03:04 - 05:50 ON
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’)
11:00 ON
12:00 OFF
Pompa Air
03.04 ON
04.04 OFF
Tabel 4.4. Schadule kelistrikan pada Masjid
kipas
lampu audio
pompa
24
Jam 04:23 kipas menyala audio mati
kipas
pompa
lampu audio
audio kipas
lampu pompa
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,
𝐩𝐞𝐫𝐜𝐨𝐛𝐚𝐚𝐧−𝐫𝐞𝐚𝐥 𝐭𝐢𝐦𝐞
% Error = ×100%
𝐩𝐞𝐫𝐜𝐨𝐛𝐚𝐚𝐧
= 0%
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%
04.54−04.54
% Error = ×100%
04.54
= 0%
05.51−05.51
% Error = ×100%
05.51
= 0%
= 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%
Kondisi on
23.28−23.29
% Error = 23.28 ×100%
= 0.0004 x 100%
= 0.04%
28
BAB 5
PENUTUP
5.1. Kesimpulan
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
void setup()
{
// Setup Serial connection
Serial.begin(9600);
// Uncomment the next line if you are using an Arduino Leonardo
//while (!Serial) {}
// 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);
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 ");
}
37
DateTime now = rtc.now();
String Teks;
///jam--besar///
dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
int menit_e = now.minute();
int jame = now.hour();
38
//Serial.print(xjam1);
/////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);
WiFiClientSecure net_ssl;
TelegramBot bot (BotToken, net_ssl);
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
}
}
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
/*
* PIN YANG DISAMBUNG
* Arduino P-10
* -D6 -> -A
* -D7 -> -B
41
* -D8 -> -SCLK
* -D9 -> -OE
* -D11 -> -DATA
* -D13 -> -CLK
* -GND -> -GND
*/
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
/////////=====Program Jam========//////////////////////
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
///jam--besar///
dmd.clearScreen( );
dmd.selectFont(SystemFont5x7);
int menit_e = now.minute();
int jame = now.hour();
//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
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( );
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) {
///////////////////////
if (digitalRead(tombol_bOK) == LOW) {
MenuSetting(); // Jika Tombol OK/Interrupt ditekan maka masuk
menu setting Manual
54
/////////////////////
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) {
///////////////////////
/////////////////////
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 )) {
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( );
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
/////////////////////
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);
//----------------------------------------------------------------------
//jam adzan Asar----------------------------------------------------------
dmd.clearScreen( );
while (millis() - mulai < 31000) {
///////////////////////
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);
}
}
}
}
}
//----------------------------------------------------------------------
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
}
/////////////////////
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)) {
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
}
}
}
}
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)) {
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
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
69
Gambar 6.1 cara membuat Bot baru
Nama WiFi
Password WiFi
BotToken
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
70
Lampiran 3. Biodata Penulis
Riwayat Pendidikan :
71