rancang bangun alat peringatan deteksi dini bencana...
TRANSCRIPT
RANCANG BANGUN ALAT PERINGATAN DETEKSI DINI
BENCANA BANJIR MENGGUNAKAN WEMOS PADA
SUNGAI BERBASIS INTERNET OF THINGS
TUGAS AKHIR
Program Studi
S1 Teknik Komputer
Oleh:
AHMAD IQBAL REZA FAHMI
15410200041
FAKULTAS TEKNOLOGI DAN INFORMATIKA
INSTITUT BISNIS DAN INFORMATIKA STIKOM SURABAYA 2019
ii
RANCANG BANGUN ALAT PERINGATAN DETEKSI DINI BENCANA
BANJIR MENGGUNAKAN WEMOS PADA SUNGAI BERBASIS
INTERNET OF THINGS
TUGAS AKHIR
Diajukan sebagai salah satu syarat untuk menyelesaikan
Program Sarjana Teknik
Disusun Oleh :
Nama : Ahmad Iqbal Reza Fahmi
NIM : 15410200041
Program : S1 (Strata Satu)
Jurusan : Teknik Komputer
Fakultas : Teknologi dan Informatika
FAKULTAS TEKNOLOGI DAN INFORMATIKA
INSTITUT BISNIS DAN INFORMATIKA STIKOM SURABAYA
2019
iii
“Semua berawal dari NIAT.”
iv
Kupersembahkan Kepada ALLAH SWT
Ibu, Bapak, Adik dan semua keluarga tercinta,
Yang selalu mendukung, memotivasi dan menyisipkan nama saya dalam
doa-doa terbaiknya.
Beserta semua teman yang selalu membantu, mendukung dan memotivasi
agar tetap berusaha menjadi lebih baik
v
TUGAS AKHIR
RANCANG BANGUN ALAT PERINGATAN DETEKSI DINI BENCANA
BANJIR MENGGUNAKAN WEMOS PADA SUNGAI BERBASIS
INTERNET OF THINGS
Dipersiapkan dan disusun oleh
AHMAD IQBAL REZA FAHMI
NIM : 15410200041
Telah diperiksa, diuji dan disetujui oleh Dewan Pembahas
Pada : Agustus 2019
Susunan Dewan Pembimbing dan Pembahas
Pembimbing
I. Harianto, S.Kom., M.Eng.
NIDN. 0722087701
______________________
II. Heri Pratikno, M.T., MTCNA., MTCRE.
NIDN. 0716117302
______________________
Pembahas
I. Pauladie Susanto, S.Kom., M.T.
NIDN. 0729047501
_______________________
Tugas Akhir ini telah diterima sebagai salah satu persyaratan
Untuk memperoleh gelar Sarjana
Dr. Jusak
Dekan Fakultas Teknologi dan Informatika
INSTITUT BISNIS DAN INFORMATIKA STIKOM SURABAYA
vi
SURAT PERNYATAAN
PERSETUJUAN PUBLIKASI DAN KEASLIAN KARYA ILMIAH
Sebagai mahasiswa Institut Bisnis dan Informatika Stikom Surabaya, saya :
Nama : Ahmad Iqbal Reza Fahmi
NIM : 15410200041
Program Studi : S1 Teknik Komputer
Fakultas : Fakultas Teknologi dan Informatika
Jenis Karya : Tugas Akhir
Judul Karya : RANCANG BANGUN ALAT PERINGATAN DETEKSI
DINI BENCANA BANJIR MENGGUNAKAN WEMOS
PADA SUNGAI BERBASIS INTERNET OF THINGS
Menyatakan dengan sesungguhnya bahwa:
1. Demi pengembangan Ilmu Pengetahuan, Teknologi dan Seni, saya menyetujui
memberikan kepada Institut Bisnis dan Informatika Stikom Surabaya Hak Bebas
Royalti Non-Eksklusif (Non-Exclusive Royalti Free Right) atas seluruh isi/ sebagian
karya ilmiah saya tersebut di atas untuk disimpan, dialihmediakan dan dikelola
dalam bentuk pangkalan data (database) untuk selanjutnya didistribusikan atau
dipublikasikan demi kepentingan akademis dengan tetap mencantumkan nama saya
sebagai penulis atau pencipta dan sebagai pemilik Hak Cipta
2. Karya tersebut di atas adalah karya asli saya, bukan plagiat baik sebagian maupun
keseluruhan. Kutipan, karya atau pendapat orang lain yang ada dalam karya ilmiah
ini adalah semata hanya rujukan yang dicantumkan dalam Daftar Pustaka saya
3. Apabila dikemudian hari ditemukan dan terbukti terdapat tindakan plagiat pada
karya ilmiah ini, maka saya bersedia untuk menerima pencabutan terhadap gelar
kesarjanaan yang telah diberikan kepada saya.
Demikian surat pernyataan ini saya buat dengan sebenarnya.
Surabaya, Agustus 2019
Yang menyatakan
Ahmad Iqbal Reza Fahmi
Nim : 15410200041
vii
ABSTRAK
Bencana banjir adalah serangkaian peristiwa terendamnya suatu daerah atau
daratan yang disebabkan oleh beberapa hal seperti membuang sampah disungai,
hujan dengan intensitas tinggi, tidak adanya tanah yang menyerap air hujan, dan
lain-lain yang dapat memicu terjadinya bencana banjir. Banjir merupakan
fenomena alam yang sangat merugikan manusia. Untuk meminimalisir dampak
kerugian banjir, dibutuhkan suatu sistem yang dapat memberikan informasi
peringatan dini kepada masyarakat sebelum bencana tersebut menimpa pada
mereka.
Beberapa metode untuk memberi peringatan dini bencana banjir ini telah
diimplementasikan. Metode yang telah dilakukan berupa alat peringatan dini
menggunakan komunikasi FSK, dan komunikasi via modem GSM. Pada tugas
akhir ini telah dilakukan pembahasan mengenai alat peringatan deteksi dini
menggunakan Wemos berbasis Internet of Things dimana komunikasi
menggunakan internet sehingga tidak ada batasan pada jarak maupun waktu.
Dari hasil pengujian dengan menggunakan sensor ultrasonik tipe HC-SR04
telah berhasil mengukur perubahan jarak antara permukaan air dan sensor dengan
persentase error 5,1% dari hasil pengukuran sebenarnya. Sedangkan respon
sensor yaitu dengan rata-rata 4,20 second untuk perubahan 5 cm dan 6,50 second
untuk perubahan 10cm. Pada Kecepatan perubahan air diperoleh rata-rata error
sebesar 0,1 cm/s.
Kata Kunci: Banjir, Peringatan Dini, Firebase Realtime, Wemos, HC-SR04
viii
KATA PENGANTAR
Segala puji syukur kehadirat ALLAH SWT, karena dengan rahmat dan
hidayah-Nya penulis dapat menyelesaikan penyusunan Laporan Tugas Akhir yang
berjudul “RANCANG BANGUN ALAT PERINGATAN DETEKSI DINI
BENCANA BANJIR MENGGUNAKAN WEMOS PADA SUNGAI BERBASIS
INTERNET OF THINGS”. Laporan Tugas Akhir ini disusun dalam rangka
penulisan laporan untuk memperoleh gelar Sarjana pada program studi S1 Teknik
Komputer Stikom Surabaya.
Mulai dari tahap perencanaan hingga tahap penyelesaian Tugas Akhir ini,
penulis mendapatkan bantuan dari berbagai pihak. Oleh karena itu pada
kesempatan ini penulis mengucapkan terima kasih kepada:
1. Orang Tua dan Saudara-saudara saya tercinta yang telah memberikan
dorongan dan bantuan baik moral maupun materi sehingga penulis dapat
menempuh dan menyelesaikan Tugas Akhir ini.
2. Bapak Dr. Jusak selaku Dekan Fakultas Teknologi dan Informatika (FTI)
Institut Bisnis dan Informatika Stikom Surabaya telah membantu proses
penyelesaian Tugas Akhir yang dibuat oleh penulis dengan Baik.
3. Bapak Pauladie Susanto, S.Kom, M.T., selaku Ketua Program Studi S1
Teknik Komputer Stikom Surabaya, dan selaku Dosen Penguji atas ijin dan
masukkan dalam menyusun Tugas Akhir ini.
4. Bapak Harianto, S.Kom., M.Eng. dan Bapak Heri Pratikno, M.T., MTCNA.,
MTCRE. selaku Dosen Pembimbing yang selalu memberi arahan dan
bimbingan dalam menyelesaikan Tugas Akhir beserta laporan ini.
ix
5. Semua staf dosen yang telah mengajar dan memberikan ilmunya.
6. Teman-teman seperjuangan TK angkatan 2015 dan semua pihak yang terlibat
namun tidak dapat penulis sebutkan satu persatu atas bantuan dan
dukungannya.
7. Serta semua pihak lain yang tidak dapat disebutkan secara satu per satu, yang
telah membantu dalam menyelesaikan Tugas Akhir ini baik secara langsung
maupun tidak langsung.
Penulis menyadari bahwa Laporan Tugas Akhir ini jauh dari kata sempurna,
masih banyak kekurangan dalam menyusun laporan ini. Oleh karena itu dalam
kesempatan ini, penulis meminta maaf apabila dalam laporan Tugas akhir ini
masih banyak kesalahan baik dalam penulisan Bahasa yang digunakan. Penulis
juga memerlukan kritik dan saran dari para pembaca yang sifatnya membangun
untuk kesempurnaan laporan yang telah penulis susun.
Surabaya, Agustus 2019
Penulis
x
2DAFTAR ISI
Halaman
HALAMAN JUDUL ............................................................................................... i
HALAMAN SYARAT ........................................................................................... ii
MOTTO ................................................................................................................. iii
HALAMAN PERSEMBAHAN ............................................................................ iv
HALAMAN PENGESAHAN .................................................................................v
HALAMAN PERNYATAAN ............................................................................... vi
ABSTRAK ............................................................................................................ vii
KATA PENGANTAR ......................................................................................... viii
DAFTAR ISI ............................................................................................................x
DAFTAR GAMBAR ........................................................................................... xiv
DAFTAR TABEL ................................................................................................ xvi
DAFTAR LAMPIRAN ....................................................................................... xvii
BAB I PENDAHULUAN ........................................................................................1
1.1. Latar Belakang ...........................................................................................1
1.2. Perumusan Masalah ...................................................................................3
1.3. Batasan Masalah ........................................................................................3
1.4. Tujuan ........................................................................................................4
1.5. Sistematika Penulisan ................................................................................4
BAB II LANDASAN TEORI ..................................................................................6
2.1. Internet Of Things ......................................................................................6
2.2. Firebase Realtime ......................................................................................7
xi
2.3. Mikrokontroler Wemos..............................................................................8
2.4. Wemos D1 Mini.........................................................................................8
2.4.1. Mikrokontroler Chipset pada Mikrokontroler Wemos ................10
2.4.2. Fitur – fitur Wemos D1 Mini .......................................................11
2.5. Arduino IDE ............................................................................................12
2.6. Sensor Ultrasonik HC-SR04 ....................................................................13
2.7. LCD (Liquid Crystal Display) .................................................................15
2.7.1. Register pada LCD .......................................................................15
2.8. I2C LCD ..................................................................................................17
2.9. Relay ........................................................................................................18
2.10. RTC DS3231 (Real Time Clock) .............................................................19
2.11. Buzzer.......................................................................................................19
BAB III ANALISIS DAN PERANCANGAN SISTEM .......................................21
3.1. Metode Penelitian ....................................................................................21
3.2. Rangkaian Perangkat Keras Otomasi Sistem...........................................24
3.2.1. Rangkaian Perangkat Keras Pada Wemos Pengirim ....................24
3.2.2. Rangkaian Perangkat Keras Pada Wemos Penerima ...................25
3.3. Perancangan Algoritma Sistem ................................................................25
3.4. Flowchart Sistem Program Hardware ......................................................26
3.5. Model Perancangan..................................................................................30
3.5.1. Model Perancangan Simulasi Banjir ............................................30
3.5.2. Model Perancangan Alat Peringatan Dini ....................................32
3.6. Ukuran Dimensi Alat ...............................................................................33
3.7. Struktur Material ......................................................................................33
xii
3.8. Pemrograman Hardware..........................................................................33
3.8.1. Pemrograman Hardware Simulasi Banjir (Pengirim) .................34
3.8.2. Pemrograman Hardware Simulasi Banjir (Penerima) .................46
BAB IV HASIL PENGUJIAN DAN PENGAMATAN ........................................55
4.1. Uji Wemos ...............................................................................................55
4.1.1. Tujuan Uji Wemos .......................................................................55
4.1.2. Alat Yang Digunakan Pada Uji Wemos ......................................55
4.1.3. Prosedur Pengujian Pada Uji Wemos ..........................................56
4.1.4. Hasil Pengujian Pada Uji Wemos ................................................60
4.2. Uji Wifi Wemos Pada Access Point ........................................................61
4.2.1. Tujuan Uji Wifi Wemos Pada Access Point ................................61
4.2.2. Alat Yang Digunakan Pada Pengujian Wifi Wemos Pada Access
Point .............................................................................................62
4.2.3. Prosedur Pengujian Pada Pengujian Wifi Wemos Pada Access
Point .............................................................................................62
4.2.4. Hasil Pengujian Wifi Wemos Pada Access Point ........................64
4.3. Uji Jarak Sensor .......................................................................................64
4.3.1. Tujuan Uji Jarak Sensor ...............................................................64
4.3.2. Alat Yang Digunakan Pada Uji Jarak Sensor ..............................64
4.3.3. Prosedur Pengujian Pada Uji Jarak Sensor ..................................65
4.3.4. Hasil Pengujian Pada Uji Jarak Sensor ........................................66
4.4. Uji Respon Sensor ...................................................................................68
4.4.1. Tujuan Uji Respon Sensor ...........................................................68
4.4.2. Alat Yang Digunakan Pada Uji Respon Sensor ...........................68
4.4.3. Prosedur Pengujian Pada Uji Respon Sensor ...............................68
4.4.4. Hasil Pengujian Pada Uji Respon Sensor ....................................71
xiii
4.5. Uji Kecepatan Perubahan Ketinggian Permukaan Air ............................73
4.5.1. Tujuan Uji Kecepatan Perubahan Ketinggian Permukaan Air ....73
4.5.2. Alat yang Digunakan Pengujian Pada Uji Kecepatan Perubahan
Ketinggian Permukaan Air ...........................................................73
4.5.3. Prosedur Pengujian Uji Kecepatan Perubahan Ketinggian
Permukaan Air .............................................................................73
4.5.4. Hasil Pengujian Pada Uji Kecepatan Perubahan Ketinggian
Permukaan Air .............................................................................76
4.6. Uji Keseluruhan Sistem ...........................................................................77
4.6.1. Tujuan Uji Keseluruhan Sistem ...................................................77
4.6.2. Alat Yang Digunakan Pada Uji Keseluruhan Sistem ...................77
4.6.3. Prosedur Pengujian Pada Uji Keseluruhan Sistem ......................78
4.6.4. Hasil Pengujian Pada Uji Keseluruhan Sistem ............................80
BAB V PENUTUP ................................................................................................81
5.1. Kesimpulan ..............................................................................................81
5.2. Saran ........................................................................................................82
DAFTAR PUSTAKA ............................................................................................83
LAMPIRAN .......................................................................................................... 84
BIODATA PENULIS ..........................................................................................102
xiv
DAFTAR GAMBAR
Halaman
Gambar 2.1 Internet Of Things ................................................................................6
Gambar 2.2 Tampilan Awal Firebase......................................................................7
Gambar 2.3 Wemos D1 Mini ...................................................................................8
Gambar 2.4 Skematik Rangkaian Esp-12s Wemos D1 Mini ...................................8
Gambar 2.5 Software Arduino Ide .........................................................................13
Gambar 2.6 Sensor Ultrasonik Hc-SR04 ...............................................................13
Gambar 2.7 Cara Kerja Sensor Hc-SR04...............................................................14
Gambar 2.8 Diagram Waktu Hc-SR04 ..................................................................15
Gambar 2.9 LCD 20x4 ...........................................................................................16
Gambar 2.10 I2C LCD ...........................................................................................18
Gambar 2.11 Rangkaian I2C LCD .........................................................................18
Gambar 2.12 Relay .................................................................................................19
Gambar 2.13 Modul Rtc Ds3231 ...........................................................................19
Gambar 2.14 Buzzer ...............................................................................................20
Gambar 3.1 Blok Diagram Rancangan Penelitian .................................................21
Gambar 3.2 Rangkaian Perangkat Keras Wemos Pengirim ..................................24
Gambar 3.3 Rangkaian Perangkat Keras Wemos Pengirim ..................................25
Gambar 3.4 (A) Perancangan Algoritma Sistem Bagian Pengirim (B)Perancangan
Algoritma Bagian Penerima ................................................................26
Gambar 3.5 Flowchart Program Pengirim .............................................................27
Gambar 3.6 Flowchart Program Penerima ............................................................29
Gambar 3.7 Desain Simulasi Banjir Pada Sungai ..................................................31
Gambar 3.8 Hasil Desain Simulasi Banjir Pada Sungai ........................................31
xv
Gambar 3.9 Desain Alat Peringatan Dini...............................................................32
Gambar 3.10 Hasil Desain Alat Peringatan Dini ...................................................32
Gambar 4.1 File Preferences ..................................................................................56
Gambar 4.2 Boards Manager .................................................................................57
Gambar 4.3 Mencari Dan Install Boards Wemos ..................................................57
Gambar 4.4 Pengecekan Boards Wemos D1 Mini Sudah Terinstal ......................58
Gambar 4.5 Tampilan Device Manager .................................................................59
Gambar 4.6 Setting Port Wemos ...........................................................................59
Gambar 4.7 Ikon Upload .......................................................................................60
Gambar 4.8 Proses Upload Program Ke Wemos ...................................................60
Gambar 4.9 Upload Program Ke Wemos Sukses ..................................................60
Gambar 4.10 Hasil Dari Upload Program .............................................................61
Gambar 4.11 Ssid Yang Akan Dihubungkan Oleh Wemos ...................................62
Gambar 4.12 Wemos Terhubung Ke Access Point Dan Mendapatkan Alamat Ip
Address .............................................................................................63
Gambar 4.13 Tampilan Nilai Jarak Sensor Pada LCD 16x2 .................................66
Gambar 4.14 Tampilan Nilai Sensor Sebelum Air Dimasukkan Ke Tempat ........70
Gambar 4.15 Cara Memasukkan Air Ke Tempat Pengukuran ..............................71
Gambar 4.16 Tampilan Nilai Sensor Setelah Air Dimasukkan Ke Tempat
Pengukuran .......................................................................................71
Gambar 4.17 Proses Pengisian Wadah Pengukuran Dengan Pompa .....................79
Gambar 4.18 Tampilan LCD 20x4 Pada Bagian Penerima ...................................79
xvi
DAFTAR TABEL
Halaman
Tabel 2.1 Konfigurasi Pin Wemos D1 Mini ............................................................9
Tabel 2.2 Konfigurasi Pin LCD .............................................................................17
Tabel 3.1 Ukuran Dimensi Alat .............................................................................33
Tabel 4.1 Hasil Pengujian Jarak Sensor .................................................................66
Tabel 4.2 Hasil Pengujian Respon Sensor .............................................................72
Tabel 4.3 Hasil Pengujian Kecepatan Sensor ........................................................76
Tabel 4.4 Hasil Pengujian Keseluruhan Sistem .....................................................80
xvii
DAFTAR LAMPIRAN
Halaman
Lampiran 1. Datasheet Sensor Ultrasonik HC-SR04 ............................................84
Lampiran 2. Program Pengirim ..............................................................................85
Lampiran 3. Program Penerima .............................................................................91
Lampiran 4. Scanning Alamat I2C ........................................................................96
Lampiran 5. Program Tes Jarak Sensor .................................................................97
Lampiran 6. Program Tes Respon Sensor ..............................................................98
Lampiran 7. Program Tes Perubahan Air ..............................................................99
Lampiran 8. Program Tes Wemos .......................................................................100
Lampiran 9. Program Tes Koneksi Wemos .........................................................100
1
BAB I
PENDAHULUAN
1.1. Latar Belakang
Banjir adalah peristiwa yang terjadi ketika aliran air yang berlebihan
merendam daratan dan merupakan suatu fenomena alam yang sangat merugikan,
baik dari segi materi maupun kerugian jiwa. Banjir bukan hanya menyebabkan
sawah tergenang dan merusak perumahan atau pemukiman, tetapi banjir juga
merusak fasilitas umum yang dapat menghambat aktivitas sosial dan ekonomi
masyarakat. Banjir disebabkan oleh 3 hal, yaitu kegiatan manusia yang
menyebabkan terjadinya perubahan tata ruang dan berdampak pada perubahan
alam, peristiwa alam seperti curah hujan tinggi dan sebagainya, serta degredasi
alam seperti pendangkalan sungai dan penyempitan alur sungai.
Di daerah–daerah tertentu seperti di pulau Jawa ada daerah yang
mempunyai curah hujan cukup tinggi seperti di kota Bogor misalnya. Kota Bogor
berada didaerah dataran tinggi sehingga curah hujan yang tinggi akan dialirkan
melalui sungai ke daerah yang lebih rendah seperti DKI Jakarta. Biasanya yang
menanggung akibat banjir ini adalah masyarakat yang tinggal di daerah dataran
rendah. Untuk mengatasi permasalahan diatas diperlukan suatu Peringatan Dini
yang bisa memberikan informasi kepada masyarakat sebelum bencana banjir
menimpa pada daerah mereka. (Supriyadi, 2011)
Selama ini pemantauan ketinggian permukaan air pada sungai oleh Badan
Penanggulangan Bencana Daerah (BPBD) masih menggunakan cara konvensional
seperti penggunaan skala ketinggian air yang diletakkan di dinding aliran air atau
2
masih mengukur dengan alat ukur biasa. Hal seperti ini memiliki keterbatasan
pada data yang tidak dapat diambil secara berkala karena keterbatasan waktu, fisik
(petugas) maupun biaya. (Annisa, 2018)
Pada penelitian sebelumnya yang dilakukan oleh (Supriyadi, 2011) dalam
jurnal yang berjudul “Penggunaan Sensor Ultrasonik Sebagai Pendeteksi
Ketinggian Air Sungai Pada Sistem Peringatan Dini Tanggap Darurat Bencana
Banjir” dan (Annisa, 2018) dalam jurnalnya yang berjudul “Rancang Bangun Alat
Peringatan Dini Bencana Banjir Berbasis Mikrokontroler Pada Daerah Aliran
Sungai Musi (Studi Kasus Tusan Kirap Sekayu)”. Pada kedua jurnal tersebut
komunikasi yang digunakan untuk menginformasikan peringatan dini bencana
banjir menggunakan metode yang berbeda. Pada penelitian yang dilakukan oleh
(Supriyadi, 2011) komunikasi yang digunakan adalah pesawat komunikasi seperti
yang biasa digunakan ORARI. Pada pembahasan berikut modulasi yang
digunakan adalah modulator FSK (Frequency Shift Keying) yang berfungsi
mengubah data biner dari hasil pengolahan mikrokontroler menjadi sinyal analog
dalam format FSK. Sedangkan kelemahan dari modulasi FSK ini adalah jarak
maksimum pengiriman data tergantung dari kemampuan jangkauan atau daya
pancar. Selain itu pengaruh noise yang terjadi saat data dikirim juga ikut
berpengaruh terhadap kualitas data yang dikirimkan.
Pada penelitian yang dilakukan oleh (Annisa, 2018) komunikasi yang
digunakan adalah dengan cara pengiriman data melalui SMS dan menggunakan
modem GSM sebagai penghubung sistem kontrol dengan sistem jaringan telepon.
Mikrokontroler mengirim SMS dengan memberikan perintah AT-Command yaitu
Serial.print (“AT+CMGS=087828525285”). Nomor ponsel yang tertera pada
3
perintah AT-Command merupakan nomor ponsel tujuan pesan SMS yang akan
dikirimkan. Pengiriman SMS hanya dikirimkan sesuai pengaturan pada RTC.
Kelemahan yang terdapat pada penelitian ini adalah pengiriman pesan SMS yang
diatur oleh RTC.
Pada Laporan ini, penulis memberikan solusi atas kedua permasalahan pada
penelitian sebelumnya sebagaimana yang telah dibahas tersebut diatas, yaitu
melalui penerapan berbasis Internet of Things agar data dari sensor dapat
dimonitoring pada jarak jauh secara realtime untuk memberi informasi tingkatan
status siaga banjir.
1.2. Perumusan Masalah
Berdasarkan latar belakang yang telah diuraikan diatas, diperoleh rumusan
permasalahan sebagai berikut :
1. Bagaimana cara merancang dan membangun alat peringatan deteksi dini
bencana banjir ?
2. Bagaimana cara merancang dan membangun komunikasi berbasis Internet
Of Things ?
3. Bagaimana cara mendeteksi jarak antara permukaan air dan daratan
menggunakan sensor ultrasonik ?
1.3. Batasan Masalah
Dalam sistem ini, agar tidak menyimpang dari tujuan yang nantinya akan
dicapai maka pembahasan masalah dibatasi pada hal – hal sebagai berikut:
1. Perancangan dilakukan menggunakan prototype.
2. Komunikasi yang digunakan memerlukan koneksi internet.
4
3. Menggunakan Sensor Ultrasonik untuk mendeteksi jarak antara sensor dan
permukaan air.
4. Menggunakan Wemos sebagai mikrokontroler.
5. Server yang digunakan yaitu Firebase Realtime.
6. Jarak sensor maksimal 4 meter.
7. Menggunakan Lampu dan Buzzer sebagai indikator peringatan.
1.4. Tujuan
Tujuan dari tugas akhir ini adalah sebagai berikut:
1. Merancang dan membangun alat peringatan deteksi dini bencana banjir
2. Merancang dan membangun komunikasi berbasis Internet of Things
3. Dapat mendeteksi jarak antara permukaan air dan daratan menggunakan
sensor ultrasonik
1.5. Sistematika Penulisan
Untuk memudahkan pembaca dalam memahami persoalan dan
pembahasannya, maka penulisan laporan tugas akhir ini dibuat dengan sistematika
sebagai berikut.
BAB I PENDAHULUAN
Pada bab I membahas tentang latar belakang masalah dan penjelasan
permasalahan secara umum, perumusan masalah serta batasan masalah yang
dibuat, tujuan dari pembuatan tugas akhir dan sistematika penulisan buku.
5
BAB II LANDASAN TEORI
Pada bab II membahas teori – teori yang berhubungan dan mendukung
dalam pembuatan tugas akhir seperti firebase, sensor ultrasonik, Wemos D1
Mini, dan literatur yang menunjang dalam pembuatan Tugas Akhir ini.
BAB III ANALISIS DAN PERANCANGAN SISTEM
Pada bab III membahas tentang perancangan sistem baik pada bagian
perangkat keras, maupun perangkat lunak pada alat peringatan dini ini.
BAB IV PENGUJIAN
Pada bab IV menjelaskan tentang hasil pengujian alat. Pengujian yang
dilakukan yaitu uji Wemos, wifi Wemos, jarak sensor, respon sensor,
kecepatan perubahan ketinggian permukaan air dan juga uji keseluruhan
sistem.
BAB V PENUTUP
Pada bab V menjelaskan tentang kesimpulan dan saran. Kesimpulan akan
dijelaskan berdasarkan dari hasil pengujian alat tugas akhir ini, serta saran –
saran untuk pengembangan.
6
BAB II
LANDASAN TEORI
2.1. Internet Of Things
Internet of Things merupakan segala aktifitas yang pelakunya saling
berinteraksi dan dilakukan dengan memanfaatkan internet. Dalam penggunaan
nya Internet of Things banyak ditemui dalam berbagai aktifitas, contohnya alat
alat untuk membantu dibidang tertentu seperti remote temperature sensor, GPS
tracking, dan sebagainya yang menggunakan internet atau jaringan sebagai media
untuk melakukannya.
Gambar 2.1 Internet of Things
(http://metaltechalley.com/what-is-the-internet-of-things-iot-anyways/)
Perkembangan Internet of Things, semua peralatan yang kita gunakan dalam
kehidupan kita sehari hari dapat dikendalikan dan dipantau menggunakan IoT.
Mayoritas proses dilakukan dengan bantuan sensor di IoT. Sensor ditempatkan di
posisi tertentu dan sensor ini mengkonversi data fisik mentah menjadi sinyal
digital dan mengirimkan mereka ke pusat kontrol. Dengan cara ini kita bisa
7
memonitor perubahan lingkungan jarak jauh dari setiap bagian dunia melalui
internet. (Junaidi, 2015)
2.2. Firebase Realtime
Firebase Realtime Database adalah sebuah Cloud-Hosted database yang
dapat menyimpan dan melakukan sinkronisasi data secara realtime untuk setiap
client yang terhubung. Setiap kali pengguna memperbarui data, itu akan
menyimpannya pada cloud dan sekaligus memberitahu ke semua client yang
terhubung dan secara otomatis menerima pembaruan dengan data terbaru.
Gambar 2.2 Tampilan Awal Firebase
(Sumber:https://firebase.google.com/)
Firebase Realtime Database merupakan sebuah NoSQL database sehingga
memiliki fungsi dan optimasi yang berbeda dibanding dengan relational database.
Pada Realtime Database, data disimpan sebagai JSON objects, sehingga struktur
data yang disimpan pada database ini berupa JSON tree.
Tidak seperti SQL database yang terdapat table-table atau records. Ketika
data ditambahkan ke JSON tree, itu akan menjadi sebuah node didalam struktur
JSON yang ada dengan sebuah associated key. Associated key dapat berupa user
id, semantic names, atau dapat dibuat secara otomatis dengan push().
8
2.3. Mikrokontroler Wemos
Wemos merupakan salah satu modul board yang dapat berfungsi dengan
Arduino khususnya untuk projek yang mengusung konsep IoT. Wemos dapat
running stand-alone karena sudah terdapat CPU yang dapat diprogram melalui
serial port atau via OTA serta transfer program secara wireless. (Putri, 2017).
Gambar 2.3 Wemos D1 Mini
(Sumber:https://www.majju.com/product/nodemcu-lua-wemos-d1-mini-wifi-
development-board/)
2.4. Wemos D1 Mini
Wemos D1 Mini merupakan module development board yang berbasis WiFi
dari keluarga ESP8266 yang dimana dapat diprogram menggunakan software IDE
Arduino seperti halnya NodeMCU.
Gambar 2.4 Skematik Rangkaian ESP-12S Wemos D1 Mini
(Sumber:https://telinks.wordpress.com/2017/04/27/wemos-d1-lm35dz-
eksperimen-monitoring-suhu-dengan-koneksi-wi-fi/)
9
Berikut adalah spesifikasi dari Wemos D1 Mini :
1) Beroperasi pada tegangan operasional 3,3 V
2) Memiliki 11 pin digital I/O termasuk didalamnya spesial pin untuk
fungsi I2C, one-wire, PWM, SPI, Interrupt.
3) Memiliki 1 pin analog input atau ADC
4) Berbasis micro USB untuk fungsi pemrogramannya
5) Memory Flash : 4Mbyte
6) Dimensi module : 34,2 mm x 25,6 mm
7) Clock Speed : 80MHz
8) Menggunakan IC CH340G untuk komunikasinya.
Tabel 2.1 Konfigurasi Pin Wemos D1 Mini
(Sumber:https://wiki.wemos.cc/products:d1:d1_mini)
Pin Fungsi ESP-8266
Pin
TX TXD TXD
RX RXD RXD
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull-up GPIO0
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull-down, SS GPIO15
G Ground GND
5V 5V -
3V3 3.3V 3.3V
RST Reset RST
10
Dari Tabel 2.1 diketahui fungsi dari masing – masing pin pada
Wemos D1 Mini beserta fungsinya seperti dapat dilihat pada Gambar 2.4.
2.4.1. Mikrokontroler Chipset pada Mikrokontroler Wemos
Pada Mikrokontroler Wemos memiliki 2 buah chipset yang digunakan
sebagai otak kerja platform tersebut. Beberapa chipset pada Mikrokontroler ini
adalah :
a) Chipset ESP8266
ESP8266 adalah sebuah chip mikrokontroler yang memiliki fitur Wi-Fi
yang mendukung stack TCP / IP. Diproduksi oleh produsen Cina yang berbasis di
Shanghai, Espressif. Pada Agustus 2014 AI-Thinker membuat modul ESP-01
dengan menggunakan lisensi oleh Espressif. Modul kecil ini memungkinkan
mikrokontroler untuk terhubung dengan jaringan WiFi dan membuat koneksi TCP
/ IP hanya dengan menggunakan command yang sederhana seperti Hayes-gaya.
Harga yang sangat rendah dan sangat sedikit komponen eksternal pada modul ini
mengakibatkan sangat murahnya harga sebuah chip ini. Dengan clock 80 MHz
chip ini dibekali dengan 4MB Eksternal RAM, mendukung format IEEE 802.11
b/g/n sehingga tidak menyebabkan Interference bagi yang lain. Mendukung
enkripsi WEP, WPA sehingga menjadikan chipset ini sangat aman digunakan.
Chipset ini memiliki 16 GPIO pin yang berkerja pada 3.3 Volt, 1 pin ADC
dengan resolusi 10 bit.
b) Chipset CH340
Chipset CH340 adalah sebuah chip yang berfungsi untuk mengubah USB
menjadi serial interface. Sebagai contohnya adalah aplikasi USB converter IrDA
atau USB converter to printer. Dalam mode serial interface, chip ini digunakan
11
untuk memperbesar sinyal asynchronous serial interface komputer atau mengubah
perangkat serial interface umum untuk berhubungan dengan bus USB langsung.
2.4.2. Fitur – fitur Wemos D1 Mini
Ada beberapa fitur-fitur perangkat keras yang dapat ditemukan pada
modul mikrokontroler Wemos antara lain sebagai berikut :
a) Pin Analog
Mikrokontroler Wemos hanya mempunyai 1 buah pin analog yang dapat
digunakan sebagai input untuk ADC yang memiliki 10 bit resolusi dengan nilai
tegangan maksimal 3.2 Volt. Pin ini juga dapat digunakan sebagai pin digital
input output. Selain itu pin ini juga memiliki resistor namun untuk menggunakan
pullup ini cukup membuat repot karena ada beberapa aturan yang harus dilakukan
terlebih dahulu.
b) Pin Digital
Mikrokontroler Wemos secara fisik mempunyai pin digital berjumlah 9 pin
yang dimulai dari d0 – d8. Namun secara program mempunyai 16 pin digital yang
beberapa pin didefinisikan menjadi 2 alamat I/O. Pin digital ini dapat digunakan
menjadi input maupun output sama fungsinya dengan pin digital input output pada
Arduino maupun mikrokontroler yang lain. Selain itu pin digital pada
microcontoller Wemos sudah dapat digunakan untuk PWM (Pulse Width
Modulator).
12
c) Memori
Ada 3 jenis memori yang digunakan dalam mikrokontroler Wemos ini,
antara lain :
1) RAM untuk menyimpan memori instruksi sebesar 64KB
2) RAM untuk menyimpan data sebesar 96KB
3) External QSPI flash untuk menimpa listing program sebesar 4MB
d) I2C
Mikrokontroler Wemos ini didukung dengan I2C yang berada pada D4
sebagai serial data dan D5 sebagai serial clock. Yang akan lebih memudahkan
untuk perangkat ini mengendalikan hardware lain yang mendukung I2C pula.
2.5. Arduino IDE
Software Arduino ini dapat di-install di berbagai operating system (OS)
seperti: LINUX, Mac OS, Windows. Arduino tidak hanya sekedar sebuah alat
pengembangan, tetapi kombinasi dari hardware, bahasa pemrograman dan
Integrated Development Environment (IDE) yang canggih. IDE adalah sebuah
software yang sangat berperan untuk menulis program, meng-compile menjadi
kode biner dan meng-upload ke dalam memori mikrokontroler (Arifin, Zulita, &
Hermansyah, 2016). Software Arduino IDE terdiri dari 3 (tiga) bagian :
a) Editor program, untuk menulis dan mengedit program dalam bahasa
processing. Listing program pada Arduino disebut sketch.
b) Compiler, modul yang berfungsi mengubah bahasa processing (kode
program) kedalam kode biner karena kode biner adalah satu–satunya bahasa
program yang dipahami oleh mikrokontroler.
13
c) Uploader, modul yang berfungsi memasukkan kode biner kedalam memori
mikrokontroller
Gambar 2.5 Software Arduino IDE (Arifin, Zulita, & Hermansyah, 2016)
2.6. Sensor Ultrasonik HC-SR04
Sensor ultrasonik HC-SR04 menggunakan sonar untuk menghitung jarak
suatu objek. Sensor ini menawarkan deteksi jarak tanpa sentuhan langsung dengan
akurasi yang tinggi dan pembacaan yang stabil. Pembacaan mulai dari 2 cm
sampai 400 cm. (Annisa, 2018)
Gambar 2.6 Sensor Ultrasonik HC-SR04
(Sumber:http://riyansblog.blogspot.com/2015/10/menggunakan-sensor-
ultrasonik-hc-sr04.html)
14
Berikut adalah karakteristik Sensor HC-SR04 :
1) Tegangan sumber operasi tunggal 5.0V
2) Konsumsi arus 15 mA
3) Frekuensi operasi 40 KHz
4) Minimum pendeteksi jarak 0.02m (2cm)
5) Maksimum pendeteksi jarak 4 meter
6) Sudut pantul gelombang pengukuran 15 derajat
7) Minimum waktu penyulutan 10 mikrodetik dengan pulsa berlevel TTL
8) Pulsa deteksi berlevel TTL dengan durasi yang bersesuaian dengan jarak
deteksi
9) Dimensi 45 x 20 x 15 mm
HC-SR04 memiliki 2 komponen utama sebagai penyusunnya yaitu
ultrasonic transmitter dan ultrasonic receiver. Fungsi dari ultrasonic transmitter
adalah memancarkan gelombang ultrasonik dengan frekuensi 40 KHz kemudian
ultrasonic receiver menangkap hasil pantulan gelombang ultrasonik yang
mengenai suatu objek. Waktu tempuh gelombang ultrasonik dari pemancar hingga
sampai ke penerima sebanding dengan 2 kali jarak antara sensor dan bidang
pantul seperti yang diperlihatkan Gambar 2.7.
Gambar 2.7 Cara Kerja Sensor HC-SR04
(Sumber:https://www.elangsakti.com)
15
HC-SR04 memerlukan sinyal logika ‘1’ pada pin Trig dengan durasi waktu
10 mikrodetik (us) untuk mengaktifkan rentetan (burst) 8x40 KHZ gelombang
ultrasonik pada elemen pembangkitnya. Selanjutnya pin Echo akan berlogika ‘1’
setelah rentetan 8x40 KHz tadi, dan otomatis akan berlogika ‘0’ saat gelombang
pantulan diterima oleh elemen pendeteksi gelombang ultrasonik.
Gambar 2.8 Diagram Waktu HC-SR04
(Sumber:https://www.elangsakti.com)
2.7. LCD (Liquid Crystal Display)
LCD (Liquid Crystal Display) adalah salah satu komponen elektronika yang
berfungsi sebagai tampilan suatu data hasil olahan dari mikrokontroller. LCD
mempunyai pin data, kontrol catu daya, dan pengatur kontras tampilan. Pada
pengembangan sistem embedded, LCD mutlak diperlukan sebagai sumber
pemberi informasi utama, misalnya alat pengukur kadar air, penampil waktu,
penampil data sensor, dan lain-lain.
2.7.1. Register pada LCD
Register yang terdapat pada LCD adalah sebagai berikut :
16
a) IR (Intruction Register)
Digunakan untuk menentukan fungsi yang harus dikerjakan oleh LCD
serta pengalamatan DDRAM atau CGRAM
b) DR (Data Register)
Digunakan sebagai tempat data DDRAM atau CGRAM yang akan
ditulis atau dibaca oleh komputer atau sistem minimum. Saat dibaca,
DR menyimpan data DDRAM atau CGRAM, setelah itu data
alamatnya secara otomatis masuk ke DR.
c) DDRAM (Display Data Random Access Memory)
Digunakan sebagai tempat penyimpanan data yang sebesar 80 byte
atau 80 karakter. AC menunjukan alamat karakter yang sedang
ditampilkan.
d) CGROM (Character Generator Read Only Memory)
Pada LCD terdapat ROM untuk menyimpan karakter-karakter ASCII
(American Standart Code for Interchage Intruction), sehingga cukup
memasukan kode ASCII untuk menampilkanya.
e) CGRAM (Character Generator Random Access Memory)
Sebagai data storage untuk merancang karakter yang dikehendaki.
Untuk CGRAM terdapat kode ASCII dari 00h sampai 0Fh, tetapi
hanya 8 karakter yang disediakan.
Gambar 2.9 LCD 20x4
17
Berikut adalah modul LCD 20x4 karakter yang akan digunakan dalam
Tugas Akhir ini. Salah satu alasan mengapa modul LCD dipakai dalam Tugas
Akhir ini adalah untuk menunjukkan tingkatan status banjir, nilai jarak, nilai
perubahan kecepatan dan waktu jam antara pengirim dan penerima. Untuk
mengakses LCD 20x4 harus melakukan konfigurasi pin dari LCD dengan pin I/O
mikrokontroler. Berikut tabel konfigurasi pin pada LCD :
Tabel 2.2 Konfigurasi Pin LCD
(Sumber:https://mikrokontrolerindonesia.wordpress.com/2014/08/19/data-pin-
pinout-LCD-16x2-dengan-konfigurasinya/)
2.8. I2C LCD
I2C LCD adalah modul LCD yang dikendalikan secara serial sinkron
dengan protokol I2C/IIC (Inter Intergrated Circuit) atau TWI (Two Wire
Interface). Normalnya, modul LCD dikendalikan secara paralel baik untuk jalur
data maupun kontrolnya. Namun, jalur paralel akan memakan banyak pin di sisi
PIN SIMBOL NILAI FUNGSI
1 Vss – Power supply 0 volt (ground)
2 Vdd/Vcc – Power supply Vcc
3 Vee – Seting kontras
4 RS 0/1 0: intruksi input / 1: data input
5 R/W 0/1 0: tulis ke LCD / 1: membaca dari LCD
6 E 0–>1 Mengaktifkan sinyal
7 DB0 0/1 Data pin 0
8 DB1 0/1 Data pin 1
9 DB2 0/1 Data pin 2
10 DB3 0/1 Data pin 3
11 DB4 0/1 Data pin 4
12 DB5 0/1 Data pin 5
13 DB6 0/1 Data pin 6
14 DB7 0/1 Data pin 7
15 VB+ – Power 5 Volt (Vcc) Lampu latar (jika ada)
16 VB- – Power 0 Volt (ground) Lampu latar (jika ada)
18
kontrol (misal Arduino, Android, Komputer, dan sebagainya). Setidaknya akan
membutuhkan 6 atau 7 pin untuk mengendalikan sebuah modul LCD.
Gambar 2.10 I2C LCD
Modul I2C converter ini menggunakan chip PCF8574 produk dari NXP
sebagai kontrollernya. IC ini adalah sebuah 8 bit I/O expander for I2C bus yang
pada dasarnya adalah sebuah shift register. Untuk alur komunikasi datanya
ditunjukkan pada Gambar 2.11
Gambar 2.11 Rangkaian I2C LCD
(Sumber:http://saptaji.com/2016/06/27/bekerja-dengan-I2C-LCD-dan-arduino/)
2.9. Relay
Relay adalah sebuah saklar yang dikendalikan oleh arus. Relay memiliki
sebuah kumparan tegangan rendah yang dililitkan pada sebuah inti. Terdapat
sebuah armatur besi yang akan tertarik menuju inti apabila arus mengalir
19
melewati kumparan. Armatur ini terpasang pada sebuah tuas berpegas. Ketika
armatur tertarik menuju ini, kontak jalur bersama akan berubah posisinya dari
kontak normal-tertutup ke kontak normal-terbuka. (Turang, 2015)
Gambar 2.12 Relay
2.10. RTC DS3231 (Real Time Clock)
RTC (Real Time Clock) merupakan jam elektronik berupa chip yag dapat
menghitung waktu mulai detik, menit, jam, tanggal, hari, bulan hingga tahun
dengan akurat, dan menjaga serta menyimpan data waktu tersebut secara real
time. Terdapat berbagai jenis RTC diantaranya DS3231 yang merupakan salah
salah satu produk Dallas Semiconductor.
Gambar 2.13 Modul RTC DS3231
2.11. Buzzer
Buzzer adalah sebuah komponen elektronika yang berfungsi untuk
mengubah getaran listrik menjadi getaran suara. Pada dasarnya prinsip kerja
20
buzzer hampir sama dengan loud speaker. Jadi buzzer juga terdiri dari kumparan
yang terpasang pada diafragma dan kemudian kumparan tersebut dialiri arus
sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau
keluar, tergantung dari arah arus dan polaritas magnetnya, karena kumparan
dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan
diafragma secara bolak–balik sehingga membuat udara bergetar yang akan
menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah
selesai atau terjadi suatu kesalahan pada sebuah alat (alarm).
Gambar 2.14 Buzzer
21
BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1. Metode Penelitian
Pada bab 3 ini akan dijelaskan mengenai perancangan keseluruhan sistem.
Pada Tugas Akhir ini sistem terdiri dari sisi pengirim dan sisi penerima, dimana
sisi pengirim merupakan bagian utama untuk mendeteksi jarak antara sensor
dengan permukaan air sungai, sedangkan sisi penerima merupakan bagian
indikator yang berfungsi memberi suatu peringatan kepada masyarakat. Nilai dari
sisi pengirim akan dikirim ke sisi penerima melalui jaringan internet.
Gambar 3.1 Blok Diagram Rancangan Penelitian
22
Tiap-tiap bagian dari Diagram Blok Sistem pada Gambar 3.1 dapat
dijelaskan sebagai berikut:
1. Input
a) Sensor Ultrasonik : Untuk mendapatkan nilai jarak antara sensor dan
permukaan air
b) RTC : Untuk mengetahui berapa delay waktu selama data terkirim dan
diterima antar Wemos.
2. Proses Pengolahan Data
a) Pada Blok Diagram diatas dibagi menjadi 2 Wemos yaitu
1. Wemos Sebagai Pengirim : pada Wemos ini memiliki fungsi
mengirimkan dan mengolah nilai dari inputan sensor beserta
data RTC.
2. Wemos Sebagai Penerima : pada Wemos ini memiliki fungsi
untuk menerima serta mengolah data yang diterima dari Wemos
yang berperan sebagai pengirim.
3. Output
a) LCD 16x2 & 20x4 : pada LCD penerima memiliki fungsi untuk
menampilkan tingkatan status banjir, nilai jarak, dan nilai kecepatan
perubahan ketinggian air.
b) Modul Relay : Relay memiliki fungsi sebagai saklar on/off untuk
indikator lampu yang diatur oleh mikrokontroler.
c) Lampu : digunakan sebagai indikator tingkatan status banjir yang
memiliki 4 warna yaitu :
1. Status Aman : Lampu Putih Menyala
23
2. Status Siaga III : Lampu Hijau Menyala
3. Status Siaga II : Lampu Kuning Menyala
4. Status Siaga I : Lampu Merah Menyala
d) Buzzer : digunakan sebagai indikator tingkatan status banjir, dan
memiliki perbedaan bunyi setiap status.
1. Status Aman : buzzer Tidak Menyala
2. Status Siaga III : buzzer menyala 2 detik dan mati 3 detik
3. Status Siaga II : buzzer menyala 1 detik dan mati 1 detik
4. Status Siaga I : buzzer menyala terus
4. Penghubung ke Internet
Mifi (Hotspot Portable) : memiliki fungsi untuk menghubungkan
Wemos ke jaringan internet.
5. Server
Firebase Realtime : memiliki fungsi sebagai server yang digunakan
untuk mengirim dan menerima data secara realtime.
Metode penelitian yang digunakan dalam pengerjaan tugas akhir ini adalah
rancang bangun yang merupakan rancang bangun hardware berupa sensor
ultrasonik mengirimkan nilai jarak ke Wemos yang berperan sebagai pengirim,
kemudian data diolah beserta inputan dari data RTC, dan akan diteruskan ke
jaringan internet melalui mifi / portable hotspot. Server yang berperan disini
adalah firebase realtime, data yang sudah terupload ke firebase realtime,
kemudian akan didownload oleh Wemos yang berperan sebagai penerima, Wemos
yang berperan sebagai penerima akan mengolah data tersebut dan akan
dikeluarkan ke beberapa outputan seperti lampu, LCD, dan buzzer. Selain itu data
24
dari modul RTC (Real Time Clock) yang ada pada Wemos yang berperan sebagai
penerima akan dibandingkan dengan data rtc yang telah dikirim oleh Wemos yang
berperan sebagai pengirim untuk dilakukan pengujian waktu delay.
3.2. Rangkaian Perangkat Keras Otomasi Sistem
Pada rangkaian perangkat keras otomasi sistem dibagi menjadi 2 yaitu pada
Wemos yang berperan sebagai pengirim dan Wemos yang berperan sebagai
penerima.
3.2.1. Rangkaian Perangkat Keras Pada Wemos Pengirim
Rangkaian Perangkat keras Wemos pengirim pada Gambar 3.2 terdiri dari
Wemos, RTC, sensor ultrasonik, dan LCD I2C 16x2. Dimana pin triger dan echo
ultrasonik terhubung pada GPIO D5 dan D0. Pada RTC serta LCD pin SCL dan
SDA terhubung pada pin GPIO D1 dan D2.
Gambar 3.2 Rangkaian Perangkat Keras Wemos Pengirim
25
3.2.2. Rangkaian Perangkat Keras Pada Wemos Penerima
Rangkaian Perangkat keras Wemos pengirim pada Gambar 3.3 terdiri dari
Wemos, RTC, LCD I2C 20x4, modul relay 6 channel, lampu bohlam warna, dan
buzzer. Dimana pin SCL dan SDA pada RTC dan LCD terhubung pada pin
Wemos GPIO D1 dan D2. Dan dimana masing masing channel relay terhubung
pada GPIO D0, D5, D6, D7, dan D8 pada Wemos.
Gambar 3.3 Rangkaian Perangkat Keras Wemos Pengirim
3.3. Perancangan Algoritma Sistem
Perancangan algoritma sistem adalah untuk mempermudah pemahaman dari
cara kerja alat peringatan dini bencana banjir berbasis Internet of Things.
Perancangan Algoritma Sistem ditunjukkan pada Gambar 3.4
26
(a) (b)
Gambar 3.4 (a) Perancangan Algoritma Sistem Bagian Pengirim (b)Perancangan
Algoritma Bagian Penerima
Perancangan algoritma sistem diawali dengan pembacaan nilai sensor yang
kemudian akan melakukan proses pengolahan data pada wemos. Jika hasil proses
tersebut sesuai dengan kondisi level status siaga maka nilai jarak, kecepatan, dan
juga status tingkatan level siaga akan dikirimkan ke bagian penerima melalui
firebase. Pada bagian penerima, data yang telah diambil dari firebase akan diolah
menjadi beberapa indikator berdasarkan kondisi tingkatan status siaga.
3.4. Flowchart Sistem Program Hardware
Untuk dapat menuju pada sistem Program Hardware diperlukan beberapa
tahapan, pada flowchart sistem program dibagi menjadi 2 flowchart yaitu pada
Wemos yang berperan sebagai pengirim dan Wemos yang berperan sebagai
penerima seperti yang terlihat pada Gambar 3.4 dan Gambar 3.5.
27
Gambar 3.5 Flowchart Program Pengirim
Berikut adalah penjelasan dari Gambar 3.5 Flowchart program pengirim :
1. Inisialisasi variabel Status digunakan untuk status dari tingkatan siaga
banjir, variabel Jarak digunakan untuk nilai sensor, variabel Min digunakan
28
untuk nilai jarak terdekat antara daratan dengan permukaan air, variabel
Med digunakan untuk nilai antara jarak terdekat dan jarak terjauh, variabel
Max digunakan untuk nilai jarak terjauh antara daratan dengan permukaan
air, variabel Kecepatan digunakan untuk hasil perhitungan kecepatan
perubahan ketinggian air, pada variabel BtsKec digunakan untuk batas nilai
kecepatan perubahan ketinggian air, sedangkan variabel DatRTC1
digunakan untuk menyimpan waktu dari RTC.
2. Proses mendeteksi jarak dan perhitungan kecepatan perubahan ketinggian
permukaan air.
3. Sensor mengukur jarak kemudian nilai jarak tersebut dibandingkan seusai
dengan nilai Min, Med, Max tadi.
4. Jika kondisi true maka akan menampilkan status banjir, nilai jarak dan
Kecepatan perubahan ketinggian air.
5. Jika Kondisi Salah maka akan ke kondisi selanjutnya.
6. Jika kondisi berada pada (Min>Jarak && Jarak <=Med) dan kondisi
tersebut adalah true, maka akan ke kondisi (kecepatan<=BtsKec), dimana
kondisi tersebut adalah kondisi batas waktu tercepat dalam perubahan
ketinggian air, ketika kondisi true maka, status menjadi Siaga I, jika kondisi
false, maka status Siaga II, begitupun kondisi selanjutnya.
7. Data yang sudah berupa status banjir, jarak, dan kecepatan selanjutnya akan
dikirim bersamaan juga dengan data dari RTC
29
Gambar 3.6 Flowchart Program Penerima
30
Berikut adalah penjelasan dari Gambar 3.6 Flowchart program penerima :
1. Inisialisasi variabel Jarak digunakan untuk nilai sensor yang berasal dari
pengirim, variabel Status digunakan untuk tingkatan status banjir yang
berasal dari pengirim, variabel Kecepatan digunakan untuk nilai dari
kecepatan yang berasal dari pengirim, variabel DatRTC1 merupakan data
dari RTC pengirim dan DatRTC2 merupakan data dari RTC penerima.
2. Wemos (penerima) membaca data RTC
3. Wemos (penerima) menerima data yang telah dikirimkan oleh Wemos
(pengirim).
4. Data tersebut dibuat kondisi dimana kondisi tersebut berupa status tingkatan
banjir yang telah dikirim dari Wemos (pengirim).
5. Jika kondisi true maka akan menampilkan data dari Wemos (pengirim) serta
peringatan berupa indikator buzzer dan lampu
6. Jika kondisi false maka akan ke kondisi selanjutnya.
3.5. Model Perancangan
3.5.1. Model Perancangan Simulasi Banjir
Pada Gambar 3.7 adalah desain simulasi banjir pada sungai, dengan desain
yang minimalis harapannya alat tersebut bisa mengukur jarak sesuai pada sungai
aslinya.
31
Gambar 3.7 Desain Simulasi Banjir pada Sungai
Gambar 3.8 Hasil Desain Simulasi Banjir pada Sungai
32
3.5.2. Model Perancangan Alat Peringatan Dini
Pada Gambar 3.9 adalah desain peringatan dini yang berfungsi untuk
memberikan informasi yang berupa indikator seperti lampu bohlam warna serta
LCD 20x4 yang berfungsi menampikan tingkatan status banjir, nilai jarak,
kecepatan perubahan dan waktu antara pengirim dan penerima.
Gambar 3.9 Desain Alat Peringatan Dini
Gambar 3.10 Hasil Desain Alat Peringatan Dini
33
3.6. Ukuran Dimensi Alat
Pada saat setelah pemasangan komponen telah dilakukan maka dihasilkan
dimensi dari rancang bangun, berikut ukuran tersebut :
Tabel 3.1 Ukuran Dimensi Alat
Jenis Alat Tinggi
Alat(cm)
Lebar
Alat(cm)
Panjang
Alat(cm)
Tandon Simulasi 100 20 40
Tempat Sensor dan
Pompa 14 20 40
Alat Peringatan 30 8 21
3.7. Struktur Material
Dalam Tugas Akhir ini bahan material yang digunakan sebagai berikut :
a) Akrilik
b) Mur dan Baut
c) Kabel Jumper
d) Spacer
e) Alfaboard
f) Kaca
g) Selang
h) Pitting Lampu
3.8. Pemrograman Hardware
Pemrograman dilakukan setelah hardware selesai dibuat. Seluruh perangkat
keras diuji apakah sudah dapat berjalan dan sesuai yang diinginkan atau tidak.
Kemudian memasukkan program bahasa C ke dalam Wemos menggunakan
34
aplikasi Arduino IDE. Pemrograman hardware terbagi menjadi dua, yang pertama
pada sisi pengirim dan yang kedua pada sisi penerima.
3.8.1. Pemrograman Hardware Simulasi Banjir (Pengirim)
Pada program yang pertama adalah inisialisasi global dimana terdapat
library–library dan variabel yang digunakan. Disini penulis memisahkan kode
program dalam sebuah tab. Dimana tab tersebut adalah pengirim, LCD_init.h,
RTC_init.h, Sensor_init.h, WIFI_FIREBASE_init.h, variabel.h. Pada tab
pengirim merupakan tab utama untuk menjalankan program, untuk memanggil
tab – tab yang dipisahkan tadi yaitu menggunakan sintak pemanggilan library
seperti listing program berikut:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP8266WiFi.h>
#include <RtcDS3231.h>
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include "variabel.h"
#include "LCD_init.h"
#include "WIFI_FIREBASE_init.h"
#include "RTC_init.h"
#include "Sensor_init.h"
Fungsi tab pada program Arduino disini hanya untuk mempermudah
dalam pembacaan program dan agar tersusun lebih rapi. Tab – tab tersebut dapat
dijelaskan sebagai berikut :
a. Tab Variabel.h
Pada tab variabel.h berisi kumpulan variabel – variabel yang bersifat global
dan untuk menyimpan suatu nilai tertentu dimana nilai tersebut dapat berubah –
ubah. Berikut listing program Tab Variabel:
35
//========== Variabel LCD ==========
LiquidCrystal_I2C LCD(0x3F, 16, 2);
int a = 0;
//========== Variabel RTC ==========
RtcDS3231<TwoWire> Rtc(Wire);
#define countof(a) (sizeof(a) / sizeof(a[0]))
String waktupengirim;
String waktuLCD;
//========== Variabel Firebase&Wifi ==========
#define FIREBASE_HOST "tugas-akhir-b037c.firebaseio.com"
#define FIREBASE_AUTH
"0mavT14OZpB4IfBuZ9pJa8Yfd4et2CPKHUCyyAMb"
#define WIFI_SSID "LULUS2019"
#define WIFI_PASSWORD "PASTIBISA"
//========== Variabel Sensor ==========
const int trigPin = D5;
const int echoPin = D6;
long durasi;
float jarak;
float kecepatan;
int statuss;
int Min = 20;
int Med = 50;
int Max = 80;
int wsebelum = 0;
int logika = 0;
float j[2];
float jj1, jj2;
b. Tab LCD init.h
Pada tab LCD_init.h berisi fungsi–fungsi yang digunakan untuk
menampilkan sebuah karakter ke LCD dimana kodingan tersebut berisi tampilan
ketika koneksi wifi terhubung dan juga menampilkan nilai dari sensor. Pada LCD
yang digunakan pada sisi pengirim menggunakan LCD 16x2 yang dimana hanya
berisi nilai jarak dan kecepatan perubahan air serta menampilkan status tingkatan
siaga pada LCD 16x2.
1. Fungsi Tampilan Koneksi Wifi
Digunakan untuk menampilkan kata “Menghubungkan” dan kata tersebut
akan terulang hingga wifi terhubung kemudian akan menampilkan kata
36
“Terhubung” dan juga menampilkan alamat IP yang didapat. Berikut listing
program pada fungsi tampilan koneksi wifi:
void tampilankonekwifi()
{
Serial.print("Menyambungkan");
LCD.setCursor(0,0);
LCD.print("Menyambungkan");
delay(100);
while (WiFi.status() != WL_CONNECTED)
{
LCD.print(".");
Serial.print(".");
delay(500);
if (a == 3){
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Menyambungkan");
a=0;
}a++;
}
delay(1000);
LCD.clear();
LCD.setCursor(0,0);
LCD.print("Terhubung");
LCD.setCursor(0,1);
LCD.print(WiFi.localIP());
Serial.println();
Serial.print("Terhubung");
Serial.println(WiFi.localIP());
delay(2000);
LCD.clear();
}
2. Fungsi Tampilan di LCD
Digunakan untuk menampilkan status tingkatan siaga, nilai jarak, dan juga
nilai kecepatan perubahan air. Status tingkatan siaga diperoleh dari fungsi
namastatus() sedangkan nilai jarak dan nilai kecepatan perubahan air didapat dari
fungsi sensor. Berikut listing program dari fungsi tampilan LCD:
void tampilanLCD(){
namastatus();
LCD.setCursor(0,1);
LCD.print("J:");
LCD.setCursor(2,1);
LCD.print(jarak);
37
LCD.setCursor(8,1);
LCD.print("K:");
LCD.setCursor(10,1);
LCD.print(kecepatan);
}
3. Fungsi Nama Status Tingkatan
Fungsi ini digunakan untuk menampilkan status tingkatan siaga sesuai
dengan ketentuan jarak antara air dan sensor. Kondisi 1 dibuat untuk siaga I,
kondisi 2 untuk status Siaga II, kondisi 3 untuk status Siaga III, dan kondisi 3
untuk status Siaga IV. Dimana kondisi kondisi tersebut didapat dari fungsi sensor
yang akan memberikan kondisi sesuai tingkatan yang telah ditentukan pada fungsi
sensor_init.h. Berikut listing program dari fungsi nama status:
void namastatus()
{
if (statuss == 1)
{
LCD.clear();
Serial.print("SiagaI");
LCD.setCursor(5,0);
LCD.print("SiagaI");
}
else if (statuss == 2)
{
LCD.clear();
Serial.print("SiagaII");
LCD.setCursor(4,0);
LCD.print("SiagaII");
}
else if (statuss == 3)
{
LCD.clear();
Serial.print("SiagaIII");
LCD.setCursor(4,0);
LCD.print("SiagaIII");
}
else if (statuss == 4)
{
LCD.clear();
Serial.print("Aman");
LCD.setCursor(6,0);
LCD.print("Aman");
}
}
38
c. Tab Wifi Firebase init.h
Fungsi yang ada pada tab Wifi_firebase_init.h berisi fungsi-fungsi yang
digunakan untuk menghubungkan wifi dan juga menghubungkan wemos serta
mengupload data pada firebase.
1. Fungsi Setup Wifi
Pada fungsi ini digunakan untuk menghubungkan SSID wifi serta password
Wifi sesuai dengan deklarasi yang dibuat pada fungsi variabel. Berikut listing
program dari fungsi setup wifi:
void setupWIFI()
{
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
}
2. Fungsi Setup Firebase
Digunakan untuk menghubungkan host firebase yang telah di definisi
sebelumnya pada tab variabel.h. Berikut listing program dari fungsi setup
firebase:
void setupFIREBASE()
{
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
3. Fungsi Update Data
Fungsi ini digunakan untuk mengupload data dari sensor yang berupa
status, jarak, kecepatan, dan waktu pada pengirim. Berikut listing program dari
fungsi update data:
void updatedata(){
//=====Update Nilai ke Firebase=====
Firebase.setInt("Status", statuss);
Firebase.setFloat("Jarak", jarak);
Firebase.setFloat("Kecepatan", kecepatan);
Firebase.setString("Waktu", waktupengirim);
//=====Jika Gagal Terhubung ke Firebase=====
if (Firebase.failed()) {
39
Serial.print("Koneksi Firebase Gagal");
Serial.println(Firebase.error()); }
}
Penjelasan dari listing program dari fungsi update data adalah nilai dari kondisi
status yang mempunyai tipe data integer, nilai jarak dan kecepatan yang
mempunyai tipe data float, dan waktu pengirim yang mempunyai tipe data string,
akan dikirim ke firebase. Jika koneksi terputus maka akan ke kondisi setelahnya
dan akan menampilkan “Koneksi Firebase Gagal”.
d. Tab RTC init.h
Pada Tab ini berisi fungsi – fungsi untuk mengatur waktu dari modul RTC,
dimana waktu tersebut disinkronkan dengan waktu pada PC, waktu akan di set
pada saat proses upload program ke wemos.
1. Fungsi Setup RTC
Fungsi setupRTC disini untuk menginisialisasi variabel dan memulai
menggunakan library. Fungsi pengaturan hanya akan berjalan sekali, yaitu setiap
powerup atau restart board wemos. Berikut listing program dari fungsi Setup
RTC:
void setupRTC()
{
Rtc.Begin();
RtcDateTime compiled = RtcDateTime(__DATE__, __TIME__);
Serial.println();
if (!Rtc.IsDateTimeValid())
{
if (Rtc.LastError() != 0)
{
Serial.print("RTC communications error = ");
Serial.println(Rtc.LastError());
}
else
{
Serial.println("RTC lost confidence in the
40
DateTime!");
Rtc.SetDateTime(compiled);
}
}
if (!Rtc.GetIsRunning())
{
Serial.println("RTC was not actively running,
starting now");
Rtc.SetIsRunning(true);
}
RtcDateTime now = Rtc.GetDateTime();
if (now < compiled)
{
Serial.println("RTC is older than compile time!
(Updating DateTime)");
Rtc.SetDateTime(compiled);
}
else if (now > compiled)
{
Serial.println("RTC is newer than compile time.
(this is expected)");
}
else if (now == compiled)
{
Serial.println("RTC is the same as compile time!
(not expected but all is fine)");
}
Rtc.Enable32kHzPin(false);
Rtc.SetSquareWavePin(DS3231SquareWavePin_ModeNone);
}
2. Fungsi Cek RTC
Berguna untuk mengecek apakah RTC terhubung pada wemos atau tidak.
Jika ada permasalahan pada RTC, maka akan ada peringatan pada serial monitor.
Berikut listing program dari fungsi cek RTC:
void cekrtc()
{
if (!Rtc.IsDateTimeValid())
{
if (Rtc.LastError() != 0)
{
Serial.print("RTC communications error = ");
Serial.println(Rtc.LastError());
}
else
{
41
Serial.println("RTC lost confidence in the
DateTime!");
}
}
}
3. Fungsi Tampil Waktu Pengirim
Fungsi ini berguna untuk menyimpan data waktu RTC terbaru pada variabel
waktupengirim. Berikut listing program dari fungsi tampil waktu pengirim:
void tampilwaktupengirim()
{
RtcDateTime now = Rtc.GetDateTime();
char waktuu[20];
snprintf_P(waktuu,
countof(waktuu),
PSTR("%02u:%02u:%02u"),
now.Hour(),
now.Minute(),
now.Second() );
waktupengirim = waktuu;
}
e. Tab Sensor init.h
Tab ini berisi fungsi–fungsi yang digunakan untuk mengatur nilai jarak,
nilai kecepatan perubahan air, serta yang berhubungan dengan modul sensor
ultrasonik.
1. Fungsi Setup Sensor
Pada fungsi ini sama seperti fungsi setup lainnya yaitu untuk
menginisialisasi variabel dan memulai menggunakan library. Fungsi pengaturan
hanya akan berjalan sekali, yaitu setiap powerup atau restart board wemos.
Berikut listing program dari fungsi setup sensor:
void setupsensor()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
42
2. Fungsi Proses Sensor
Di fungsi ini berguna untuk memproses modul sensor ultrasonik. Pada
fungsi ini terdapat hitungan jarak antara sensor dengan permukaan air, nilai jarak
didapat dari rumus sebagai berikut :
S = v . (t/2) (1)
Dimana :
S = Jarak sumber suara terhadap benda
v= kecepatan suara (340 m/s)
t = Selisih waktu pengiriman dan penerimaan gelombang (us)
Satuan yang digunakan untuk mengukur jarak dapat berupa satuan milimeter,
centimeter, meter, dan satuan lainnya. Pada tugas akhir ini, menggunakan
centimeter sebagai satuan dari jarak. Pada persamaan (1) selisih waktu pengiriman
dan penerimaan gelombang (t) memiliki satuan us yang didapatkan dari datasheet
sensor ultrasonik HC-SR04. Jika kecepatan suara adalah 340 m/s dan pada tugas
akhir ini satuan jarak yang digunakan adalah centimeter, maka satuan dari
kecepatan suara dikonversi menjadi 0,034 cm/µs. Maka listing program sebagai
berikut:
void prosessensor()
{
//=====Proses Sensor=====
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
durasi = pulseIn(echoPin, HIGH);
//=====Menghitung Jarak=====
jarak = 0.034*(durasi/2) ;
43
Selain proses menghitung jarak, pada fungsi ini dilakukan juga proses
kecepatan perubahan air. Proses menghitung kecepatan perubahan air dihitung
setiap satu detik sekali, pengambilan nilai jarak setiap satu detik sekali
menggunakan fungsi milis. Milis pada Arduino adalah menghitung waktu secara
terpisah setiap mili seconds (atau 1/1000 detik). Jadi fungsi milis disini hampir
sama seperti delay, hanya saja milis seperti sebuah multitasking yang dapat
berjalan bersamaan disaat program lainnya jalan. Nilai kecepatan perubahan air
dihitung dengan mengambil nilai awal lalu dibuat delay selama 1 detik kemudian
nilai terakhir setelah delay diambil lagi. Rumus yang digunakan sebagai berikut:
𝑲𝒆𝒄𝒆𝒑𝒂𝒕𝒂𝒏 = 𝑱𝒂𝒓𝒂𝒌
𝑾𝒂𝒌𝒕𝒖 (2)
Berikut listing program dari fungsi proses sensor untuk menghitung kecepatan:
//=====Menghitung Kecepatan Perubahan=====
unsigned long wsekarang = millis();
if((wsekarang - wsebelum) >= 1000){
wsebelum = wsekarang;
if (logika == 0){
j[0]=jarak;
logika = 1;
}
else {
j[1]=jarak;
logika = 0;
}
}
jj1 = j[0];
jj2 = j[1];
kecepatan = ((jj2-jj1)/1);
if (kecepatan <0){
kecepatan = kecepatan *-1;
}
}
44
3. Fungsi Tingkatan Status
Berguna untuk menentukan tingkatan status sesuai jarak yang telah
ditentukan. Nilai jarak disini dibandingkan dengan variabel Min, Med, Max. Nilai
variabel–variabel tersebut sudah dientukan di tab variabel. Selain membandingkan
kondisi jarak, disini juga membandingkan kondisi kecepatan perubahan air. Jika
kondisi tersebut terpenuhi maka variabel “statuss” diberi nilai 1 sampai 4. Nilai
tersebut digunakan untuk menampilkan karakter Siaga I sampai Siaga IV pada
LCD. Berikut listing program dari fungsi tingkatan status:
void tingkatanstatus()
{
//=====Tingkatan Status=====
if (jarak <= Min) //SiagaI
{
if (kecepatan > 10){
statuss = 1;
}
else{
statuss = 1;
}
}
else if (jarak>Min && jarak<=Med) //SiagaII
{
if (kecepatan > 10){
statuss = 1;
}
else{
statuss = 2;
}
}
else if (jarak>Med && jarak<=Max) //SiagaIII
{
if (kecepatan > 10){
statuss = 1;
}
else{
statuss = 3;
}
}
else if (jarak>Max) //Aman
{
if (kecepatan > 10){
statuss = 1;
}
else{
45
statuss = 4;
}
}
}
f. Tab Pengirim (Tab Utama)
Pada Tab Pengirim ini adalah program utama yang meng-compile fungsi
dari tab yang telah dipisah dan akan digabungkan menjadi satu.
1. Fungsi Setup
Fungsi setup pada tab pengirim ini adalah mendeklarasikan fungsi – fungsi
setup dari tab yang dipisahkan sebelumnya. Fungsi setup disini yaitu dengan cara
memanggil fungsi setup dari setiap tab. Berikut listing program dari fungsi setup:
void setup()
{
Serial.begin(9600);
setupRTC();
setupLCD();
setupWIFI();
tampilankonekwifi();
setupFIREBASE();
setupsensor();
}
2. Fungsi Loop
Pada Fungsi Loop digunakan untuk program perulangan utama yang akan
jalan terus menerus. Dan kode program yang digunakan adalah dengan cara
memanggil fungsi fungsi dari tab secara berurutan sesuai dengan urutannya.
Berikut listing program dari fungsi loop:
void loop()
{
cekrtc();
tampilwaktupengirim();
prosessensor();
tingkatanstatus();
46
tampilanLCD();
updatedata();
}
3.8.2. Pemrograman Hardware Simulasi Banjir (Penerima)
Pemrograman Hardware Simulasi Banjir pada sisi penerima ada beberapa
fungsi atau kode program yang hampir sama dengan pemrograman yang ada pada
sisi pengirim. Perbedaan terdapat pada variabel, cara kerja program, serta library
yang digunakan. Berikut listing program pada pemanggilan Tab:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <ESP8266WiFi.h>
#include <RtcDS3231.h>
#include <ESP8266WiFi.h>
#include <FirebaseArduino.h>
#include <Ticker.h>
#include "variabel.h"
#include "LCD_init.h"
#include "WIFI_FIREBASE_init.h"
#include "RTC_init.h"
#include "indikator_init.h"
Fungsi tab pada program Arduino di sisi penerima ini sama dengan di sisi
pengirim yaitu hanya untuk mempermudah dalam pembacaan program dan agar
tersusun lebih rapi. Tab–tab tersebut dapat dijelaskan sebagai berikut :
a. Tab Variabel.h
Pada tab variabel.h berisi kumpulan variabel–variabel yang bersifat global
dan untuk menyimpan suatu nilai tertentu dimana nilai tersebut dapat
berubah-ubah. Berikut listing program dari tab variabel:
//========== Variabel Interupt ==========
Ticker tik;
int count = 0;
//========== Variabel LCD ==========
LiquidCrystal_I2C LCD(0x27, 20, 4);
int a = 0;
//========== Variabel RTC ==========
RtcDS3231<TwoWire> Rtc(Wire);
47
#define countof(a) (sizeof(a) / sizeof(a[0]))
String waktupenerima;
String waktuLCD;
//========== Variabel Firebase&Wifi ==========
#define FIREBASE_HOST "tugas-akhir-b037c.firebaseio.com"
#define FIREBASE_AUTH
"0mavT14OZpB4IfBuZ9pJa8Yfd4et2CPKHUCyyAMb"
#define WIFI_SSID "LULUS"
#define WIFI_PASSWORD "PASTIBISA"
float jarak;
float kecepatan;
int statuss;
String waktupengirim;
//========== Variabel Indikator ==========
const int Merah = D0;
const int Kuning = D5;
const int Hijau = D6;
const int Putih = D7;
const int Sirine = D3;
int st[2];
int s1, s2;
int logika = 0;
int wsebelum = 0;
int kode;
b. Tab LCD Init.h
Di tab LCD_init.h yang ada pada program penerima memiliki fungsi untuk
menampilkan data yang berupa status tingkatan siaga, nilai jarak, nilai kecepatan
perubahan air, dan waktu dari sisi pengirim dan penerima. LCD yang digunakan
disini yaitu LCD 20x4 berbeda dengan LCD yang ada pada sisi pengirim.
1. Fungsi Tampilan Koneksi Wifi
Pada fungsi ini kode program yang digunakan sama seperti pada kode
program yang ada pada sisi pengirim.
2. Fungsi Tampilan di LCD
Digunakan untuk menampilkan data berupa status tingkatan siaga, nilai
jarak, nilai kecepatan dan waktu dari pengirim dan penerima. Perbedaan kode
48
program dari pengirim yaitu hanya tata letak, karena LCD yang digunakan adalah
LCD 20x4. Berikut listing program dari fungsi tampilan LCD:
void tampilanLCD()
{
//=====Tampilan di LCD=====
//LCD.setCursor(0,0);
//LCD.print("Status: ");
tingkatanstatus();
LCD.setCursor(0,1);
LCD.print("JARAK:");
LCD.setCursor(7,1);
LCD.print(jarak);
LCD.setCursor(16,1);
LCD.print("CM");
LCD.setCursor(0,2);
LCD.print("KCPTNDBIT:");
LCD.setCursor(11,2);
LCD.print(kecepatan);
LCD.setCursor(16,2);
LCD.print("CM/s");
LCD.setCursor(0,3);
LCD.print(waktupengirim);
LCD.setCursor(12,3);
LCD.print(waktupenerima);
}
3. Fungsi Nama Status Tingkatan
Fungsi ini sama persis dengan kode program yang ada pada sisi pengirim,
hanya nilai yang didapat diperoleh dari sisi pengirim. Sehingga kondisi dari
masing masing status akan berjalan sesuai dengan yang dikirimkan oleh sisi
pengirim. Berikut listing program dari fungsi tingkatan status:
void tingkatanstatus(){
if (statuss == 1)
{
LCD.clear();
Serial.print("SiagaI");
LCD.setCursor(7,0);
LCD.print("SiagaI");
}
else if (statuss == 2)
{
LCD.clear();
Serial.print("SiagaII");
LCD.setCursor(6,0);
LCD.print("SiagaII");
49
}
else if (statuss == 3)
{
LCD.clear();
Serial.print("SiagaIII");
LCD.setCursor(6,0);
LCD.print("SiagaIII");
}
else if (statuss == 4)
{
LCD.clear();
Serial.print("Aman");
LCD.setCursor(8,0);
LCD.print("Aman");
}
}
c. Tab Wifi Firebase Init.h
Di tab Wifi_Firebase_init.h ini kode program yang digunakan juga sama
dengan fungsi yang ada pada sisi pengirim. Hanya di sisi penerima perintah
yang digunakan untuk mengambil data dari firebase adalah ‘tipe data + get’.
Sedangkan pada sisi pengirim kode program untuk mengirimkan data ke
firebase menggunakan perintah ‘tipe data + set’.
1. Fungsi Setup Wifi dan Fungsi Setup Firebase
Kode program yang digunakan pada Fungsi Setup Wifi dan fungsi
setupFirebase() sama seperti pada kode program yang ada pada sisi pengirim.
Pada fungsi setup wifi digunakan untuk mendeklarasikan SSID dan Password dari
wifi yang sudah dideklarasikan di tab variabel.h. sedangkan fungsi setup Firebase
digunakan untuk mendeklarasikan Host dan kode autentikasi Firebase yang juga
sudah dideklarasikan di tab variabel.h.
50
2. Fungsi Ambil Data
Kode program yang digunakan pada fungsi ini berbeda dengan kode
program yang ada di sisi pengieim. Pada sisi pengirim menggunakan fungsi
update data yang digunakan untuk mengupload data ke firebase. Sedangkan
pada sisi penerima ini menggunakan fungsi ambil data, dimana proses
penguploadan data dan pengambilan data menggunakan perintah yang
dijelaskan pada tab wifi firebase. Berikut listing program dari fungsi ambil
data:
void ambildata()
{
statuss = (Firebase.getInt("Status"));
jarak = (Firebase.getFloat("Jarak"));
kecepatan = (Firebase.getFloat("Kecepatan"));
waktupengirim = (Firebase.getString("Waktu"));
if (Firebase.failed())
{
Serial.print("Koneksi Firebase Gagal");
Serial.println(Firebase.error());
}
}
d. Tab RTC init.h
Di tab RTC_init.h memiliki beberapa fungsi yang sama dengan fungsi –
fungsi yang ada pada sisi pengirim.
1. Fungsi Setup RTC dan Fungsi Cek RTC
Kegunaan dan kode program yang digunakan pada fungsi ini sama persis
dengan yang ada pada sisi pengirim. Pada fungsi setup RTC digunakan untuk
menginisialisasi variabel dan library yang akan digunakan pada RTC. Sedangkan
fungsi cek RTC digunakan untuk mengetahui apakah RTC terhubung pada wemos
dan melihat apakah waktu yang di-set sudah sesuai atau belum.
51
2. Fungsi Tampil Waktu Penerima
Kode Program yang digunakan pada fungsi ini memiliki fungsi untuk
menyimpan data waktu ke variabel waktupenerima. Berikut listing program dari
fungsi tampil waktu penerima:
void tampilwaktupenerima()
{
RtcDateTime now = Rtc.GetDateTime();
char waktuu[20];
snprintf_P(waktuu,
countof(waktuu),
PSTR("%02u:%02u:%02u"),
now.Hour(),
now.Minute(),
now.Second() );
waktupenerima = waktuu;
}
e. Tab Indikator init.h
Pada tab ini berisi fungsi – fungsi yang digunakan untuk memberikan
proses peringatan berupa lampu maupun buzzer.
1. Fungsi Setup Indikator
Pada fungsi ini berisi kode program yang digunakan untuk menginisialisasi
variabel terhadap pin wemos. Adapun warna lampu indikator yang digunakan
untuk variabel yaitu merah, kuning, hijau, putih. Berikut listing program dari
fungsi setup indikator:
void setupindikator(){
pinMode(Merah,OUTPUT);
pinMode(Kuning,OUTPUT);
pinMode(Hijau,OUTPUT);
pinMode(Putih,OUTPUT);
pinMode(Sirine, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
52
2. Fungsi Proses Indikator
Fungsi Proses Indikator berguna untuk memberi peringatan melalui lampu
indikator maupun suara berupa sirine. Lampu akan menyala sesuai dengan kondisi
yang diambil dari firebase. Pada kondisi status Siaga 1 maka lampu merah akan
menyala, pada kondisi status Siaga 2 lampu kuning akan menyala, status dalam
kondisi Siaga 3 lampu hijau akan menyala, dan jika kondisi status Siaga 4 maka
lampu Putih akan menyala. Berikut listing program dari fungsi proses indikator:
void prosesindikator(){
if (statuss == 1)
{
digitalWrite(Merah, LOW);
digitalWrite(Kuning, HIGH);
digitalWrite(Hijau, HIGH);
digitalWrite(Putih, HIGH);
kode = 1;
}
else if (statuss == 2)
{
digitalWrite(Merah, HIGH);
digitalWrite(Kuning, LOW);
digitalWrite(Hijau, HIGH);
digitalWrite(Putih, HIGH);
kode = 2;
}
else if (statuss == 3)
{
digitalWrite(Merah, HIGH);
digitalWrite(Kuning, HIGH);
digitalWrite(Hijau, LOW);
digitalWrite(Putih, HIGH);
kode = 3;
}
else if (statuss == 4)
{
digitalWrite(Merah, HIGH);
digitalWrite(Kuning, HIGH);
digitalWrite(Hijau, HIGH);
digitalWrite(Putih, LOW);
kode = 4;
}
}
53
f. Tab Penerima (Tab Utama)
Pada Tab Penerima ini adalah program utama yang akan meng-compile
fungsi – fungsi dari tab – tab yang telah dipisah dan akan digabungkan menjadi
satu.
1. Fungsi Setup ()
Fungsi setup disini hampir sama dengan fungsi setup lainnya. Hanya saja
program ini jalan dengan cara memanggil fungsi setup, misalnya setupRTC(),
setupLCD, dan lainnya. Berikut listing program dari fungsi setup pada tab utama
penerima:
void setup()
{
Serial.begin(9600);
setupRTC();
setupLCD();
setupWIFI();
tampilankonekwifi();
setupFIREBASE();
setupindikator();
tik.attach(1,pengindikatoran);
}
2. Fungsi Loop ()
Fungsi Loop digunakan untuk perogram perulangan utama yang akan jalan
terus menerus. Cara kerja kode program yang digunakan sama dengan kode
program loop di sisi pengirim. Yaitu dengan memanggil fungsi secara tersusun
sesuai dengan susunannya. Berikut listing program dari fungsi loop pada tab
utama penerima:
void loop() {
cekrtc();
ambildata();
tampilwaktupenerima();
tampilanLCD();
prosesindikator();
}
54
3. Fungsi Pengindikatoran ()
Pada fungsi Pengindikatoran ini berfungsi untuk menghidupkan sirine
sesuai jeda waktu yang ditentukan. Jadi kode program disini berjalan secara
interupt. Kode program akan jalan terus menerus tanpa gangguan dari program
utama. Berikut listing program dari fungsi pengindikatoran pada tab utama
penerima:
void pengindikatoran()
{
if (kode == 1)
{
digitalWrite(Sirine, HIGH);
}
else if (kode == 2)
{
count++;
if(count<2){
digitalWrite(Sirine, LOW);
}
else{
digitalWrite(Sirine, HIGH);
count = 0;
}
}
else if (kode == 3)
{
count++;
if(count<3)
{
digitalWrite(Sirine, LOW);
}
else if (count >= 3){
if (count < 7){
digitalWrite(Sirine, HIGH);
count = 0;
}
}
}
else if (kode == 4)
{
digitalWrite(Sirine, LOW);
}
}
55
BAB IV
HASIL PENGUJIAN DAN PENGAMATAN
Dalam bab ini penulis akan menguraikan dan menjelaskan beberapa hasil
pengujian dan hasil penelitian Tugas Akhir ini. Tujuan dari bab ini adalah untuk
mengetahui tingkat keberhasilan terhadap perancangan sistem yang telah diajukan
dan dikerjakan. Pengujian yang dilakukan meliputi uji jarak sensor ultrasonik, uji
kecepatan perubahan ketinggian air dan uji waktu pengiriman data.
4.1. Uji Wemos
4.1.1. Tujuan Uji Wemos
Pengujian ini dilakukan untuk memastikan Wemos masih berfungsi dengan
baik dan tidak dalam keadaan rusak.
4.1.2. Alat Yang Digunakan Pada Uji Wemos
Untuk melakukan percobaan ini maka diperlukan beberapa alat sebagai
berikut:
1. Power Supply 5V
2. Kabel data USB mikro
3. Wemos D1 Mini
4. Laptop
5. Software Arduino IDE
56
4.1.3. Prosedur Pengujian Pada Uji Wemos
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adalah
sebagai berikut:
1. Menyalakan laptop yang akan digunakan untuk menguji Wemos.
2. Membuka software Arduino IDE
3. Melakukan instalasi library Wemos pada Arduino IDE
a. Untuk mengatur download boards Wemos D1 Mini masuk pada
menu file lalu meng-klik preferences, memasukkan alamat url
berikut:
http://arduino.esp8266.com/stable/package_esp8266com_index.
json kedalam kolom Additional Boards Manager Urls lalu
meng-klik OK. Perhatikan Gambar 4.1
Gambar 4.1 File Preferences
57
b. Setelah selesai memasukkan URL kemudian membuka tools
pilih board lalu meng-klik board manager. Seperti Gambar 4.2
Gambar 4.2 Boards Manager
c. Setelah muncul window board manager, menuliskan pada
kolom “esp8266” lalu menekan tombol enter, setelah pencarian
selesai meng-klik tombol install, lalu tunggu hingga proses
download dan install selesai. Perhatikan Gambar 4.4
Gambar 4.3 Mencari Dan Install Boards Wemos
58
d. Setelah installasi selesai silahkan cek pada menu tools pilih
board lalu cari Wemos D1 Mini, bila Arduino IDE sudah
support Wemos dan memiliki library board-nya. Perhatikan
Gambar 4.4
Gambar 4.4 Pengecekan Boards Wemos D1 Mini Sudah Terinstal
3. Memasangkan kabel data USB mikro pada Wemos D1 Mini dan sisi
USB dihubungkan kepada USB laptop
4. Menyalin Source code dengan judul “pengujian Wemos mengunakan
led blink” pada lampiran.
5. Membuka device manager pada laptop, periksa COM port Wemos
berada di COM nomor berapa. Seperti pada Gambar 4.5.
59
Gambar 4.5 Tampilan Device Manager
Dari Gambar 4.5 dapat dilihat bahwa Wemos berada di COM 5 pada
laptop penulis.
6. Menyesuaikan port Wemos pada Arduino IDE dengan device
manager. Perhatikan Gambar 4.6
Gambar 4.6 Setting Port Wemos
60
Dari Gambar 4.6 dapat dilihat bahwa pada Arduino IDE sudah di-
setting port komunikasi Wemos berada di COM5.
7. Meng-upload program yang telah dibuat menuju ke Wemos dengan
meng-klik tombol upload yang bergambar panah ke kanan di bawah
menu. Perhatikan Gambar 4.7.
Gambar 4.7 Ikon Upload
Pada Gambar 4.7 dapat dilihat bahwa setelah ikon upload di-klik
maka Arduino IDE melakukan proses upload program menuju ke
Wemos melewati port komunikasi.
Gambar 4.8 Proses Upload Program Ke Wemos
4.1.4. Hasil Pengujian Pada Uji Wemos
Setelah melakukan pengujian kepada Wemos didapatkan hasil seperti pada
Gambar 4.9 dan Gambar 4.10
Gambar 4.9 Upload Program Ke Wemos Sukses
61
Pada Gambar 4.9 menunjukan bahwa program yang telah di-upload menuju
Wemos berhasil sampai 100%, hal ini menunjukkan Wemos dalam keadaan sudah
dapat dimasuki program.
Gambar 4.10 Hasil Dari Upload Program
Pada Gambar 4.10 menunjukkan bahwa program yang telah dibuat dapat
berjalan sesuai yang diinginkan, ditunjukkan dengan menyalanya lampu led yang
berada di Wemos. Ini menunjukkan bahwa Wemos dapat berjalan sesuai dengan
mestinya, juga dapat disimpulkan bahwa Wemos dalam keadaan baik dan siap
digunakan.
4.2. Uji Wifi Wemos Pada Access Point
4.2.1. Tujuan Uji Wifi Wemos Pada Access Point
Pengujian ini dilakukan untuk memastikan Wemos dapat menghubungkan
diri kepada access point yang ditentukan serta dapat berkomunikasi di jaringan
yang dibuat oleh access point dan dapat terhubung dengan firebase.
62
4.2.2. Alat Yang Digunakan Pada Pengujian Wifi Wemos Pada Access Point
Untuk melakukan percobaan ini maka diperlukan beberapa alat sebagai
berikut:
1. Wemos D1 Mini
2. Access Point / Hotspot Portable
3. Software Arduino IDE
4. Laptop
5. Kabel data mikro USB
4.2.3. Prosedur Pengujian Pada Pengujian Wifi Wemos Pada Access Point
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adalah
sebagai berikut:
1. Nyalakan Access Point / Hotspot Portable
2. Nyalakan Laptop dan lihat SSID Wifi yang akan dihubungkan pada
laptop. Perhatikan Gambar 4.11.
Gambar 4.11 SSID Yang Akan Dihubungkan Oleh Wemos
63
3. Menuliskan kode program dan menuliskan SSID Wifi dan password
menggunakan aplikasi Arduino IDE Berikut listing program pada
pengujian koneksi wemos:
#include <ESP8266WiFi.h>
#define WIFI_SSID "LULUS2019"
#define WIFI_PASSWORD "PASTIBISA"
void setup() {
Serial.begin(9600);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Menyambungkan");
delay(100);
while (WiFi.status() != WL_CONNECTED)
{
Serial.print(".");
delay(500);
}
delay(1000);
Serial.println();
Serial.print("Terhubung");
Serial.println(WiFi.localIP());
delay(2000);
}
void loop() {
// put your main code here, to run repeatedly:
}
4. Melakukan transfer program ke Wemos D1 Mini
5. Membuka Serial Monitor pada Arduino IDE jika berhasil maka akan
tampil IP Address pada Serial Monitor. Perhatikan Gambar 4.12.
Gambar 4.12 Wemos Terhubung ke Access Point dan Mendapatkan Alamat IP
Address
64
4.2.4. Hasil Pengujian Wifi Wemos Pada Access Point
Dilihat dari Gambar 4.12 dapat disimpulkan bahwa Wemos dapat terhubung
ke jaringan WLAN yang dibuat oleh access point dan mendapatkan alamat IP
Address dari access point, ini menunjukkan Wifi Wemos dalam keadaan baik dan
dapat digunakan untuk komunikasi.
4.3. Uji Jarak Sensor
4.3.1. Tujuan Uji Jarak Sensor
Pengujian ini digunakan untuk mengetahui perbedaan nilai jarak
sesungguhnya dengan nilai jarak yang dibaca oleh sensor. Dengan diketahuinya
perbedaan nilai jarak tersebut dapat ditentukan sebagai nilai untuk
membandingkan antara sensor dengan jarak sesungguhnya. Pada pengujian sensor
ultrasonik diletakkan didalam pipa berdiameter 8 cm dengan ketinggian 100 cm.
4.3.2. Alat Yang Digunakan Pada Uji Jarak Sensor
Peralatan yang dibutuhkan untuk pengujian ini adalah sebagai berikut:
1. Sensor Ultrasonik
2. Laptop
3. Wemos D1 Mini
4. LCD 16x2
5. Program Arduino IDE
6. Pipa
7. Akuarium Tinggi 1 meter
8. Pompa DC
9. Alat Ukur Meteran
65
4.3.3. Prosedur Pengujian Pada Uji Jarak Sensor
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adalah sebagai
berikut:
1. Menghubungkan Wemos dengan sensor ultrasonik dengan kabel
untuk memindahkan data hasil sensor ke Wemos.
2. Menuliskan kode program pada Arduino IDE seperti listing program
berikut:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x3F, 16, 2);
const int trigPin = D5;
const int echoPin = D6;
long durasi;
float jarak;
void setup() {
LCD.begin();
LCD.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
//=====Proses Sensor=====
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
durasi = pulseIn(echoPin, HIGH);
//=====Menghitung Jarak=====
jarak = (0.034*(durasi/2)) ;
LCD.setCursor(0,0);
LCD.print("TES PENGUKURAN");
LCD.setCursor(0,1);
LCD.print("JARAK:");
LCD.setCursor(6,1);
LCD.print(jarak);
LCD.setCursor(12,1);
LCD.print("CM");
delay(1000);
LCD.clear();
}
3. Melakukan transfer program dari laptop ke Wemos D1 Mini.
66
4. Meletakkan sensor ultrasonik pada ujung pipa.
5. Mengamati nilai sensor ultrasonik pada LCD16x2. Perhatikan Gambar
4.13.
Gambar 4.13 Tampilan Nilai Jarak Sensor Pada LCD 16x2
6. Mengukur ketinggian sebenarnya dengan menggunakan meteran
7. Membandingkan nilai sensor dengan nilai meteran.
4.3.4. Hasil Pengujian Pada Uji Jarak Sensor
Pada pengujian jarak sensor, sensor langsung membaca saat Wemos
dinyalakan dan ketika sensor mengenai target maka sensor melakukan
pembacaan. Pada tabel 4.1 menunjukkan hasil uji sensor.
Tabel 4.1 Hasil Pengujian Jarak Sensor
No. Sensor
(cm)
Alat
Ukur
(cm)
Selisih
Error
Persentase
Error (%)
1 11,6 9 2,6 29,2
2 12,9 10 2,9 28,9
3 13,1 11 2,1 18,7
4 13,4 12 1,4 11,3
5 16,3 15 1,3 8,6
6 18,3 17 1,3 7,6
7 24,0 23 1,0 4,5
8 27,3 26 1,3 5,0
9 30,3 29 1,3 4,3
10 34,8 33 1,8 5,3
11 38,4 37 1,4 3,6
12 41,6 40 1,6 3,9
13 43,0 42 1,0 2,3
67
No. Sensor
(cm)
Alat
Ukur
(cm)
Selisih
Error
Persentase
Error (%)
14 45,0 44 1,0 2,2
15 48,8 48 0,8 1,7
16 51,9 51 0,9 1,8
17 53,7 53 0,7 1,4
18 55,8 55 0,8 1,5
19 64,2 64 0,2 0,2
20 66,8 66 0,8 1,2
21 70,7 70 0,7 1,0
22 73,7 73 0,7 0,9
23 76,7 76 0,7 0,9
24 79,6 79 0,6 0,7
25 81,9 81 0,9 1,1
26 83,7 83 0,7 0,8
27 88,4 88 0,4 0,4
28 91,8 92 0,2 0,3
29 93,4 94 0,6 0,6
30 95,2 97 1,8 1,9
Rata-Rata Persentase Error 5,1
Pada Tabel 4.1 pengujian sensor ultrasonik dilakukan percobaan sebanyak
30 kali. Pada kolom sensor data diperoleh dari sensor ultrasonik. Sedangkan pada
kolom alat ukur data diperoleh dari alat ukur meteran. Sedangkan Persentase error
di dapatkan dari persamaan (3)
𝑃𝑒𝑟𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝐸𝑟𝑟𝑜𝑟 = 𝑆𝑒𝑙𝑖𝑠𝑖ℎ 𝑆𝑒𝑛𝑠𝑜𝑟 𝑑𝑒𝑛𝑔𝑎𝑛 𝐴𝑙𝑎𝑡 𝑈𝑘𝑢𝑟
𝐴𝑙𝑎𝑡 𝑈𝑘𝑢𝑟 𝑥 100%
(3)
Pada Tabel 4.1 pengujian sensor ultrasonik mampu mendapatkan hasil yang
baik dengan tingkat Rata-rata Persentase error sebesar 5,1%, yang didapatkan dari
persamaan (4).
𝑅𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 𝑃𝑒𝑟𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝐸𝑟𝑟𝑜𝑟 = 𝐽𝑢𝑚𝑙𝑎ℎ 𝑝𝑒𝑟𝑠𝑒𝑛𝑡𝑎𝑠𝑒 𝑒𝑟𝑟𝑜𝑟
𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎 (4)
68
4.4. Uji Respon Sensor
4.4.1. Tujuan Uji Respon Sensor
Pengujian ini digunakan untuk mengetahui berapa lama sensor dapat
merespon perubahan jarak. Dengan mengetahui seberapa cepat sensor merespon
perubahan, maka membuat kondisi menjadi lebih akurat.
4.4.2. Alat Yang Digunakan Pada Uji Respon Sensor
Peralatan yang dibutuhkan untuk pengujian adalah sebagai berikut:
1. Sensor Ultrasonik
2. Laptop
3. Wemos D1 Mini
4. LCD 16x2
5. Program Arduino IDE
6. Pipa
7. Akuarium Tinggi 1 Meter
8. Alat Ukur Meteran
4.4.3. Prosedur Pengujian Pada Uji Respon Sensor
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adalah sebagai
berikut:
1. Menghubungkan Wemos dengan sensor ultrasonik dengan kabel
untuk memindahkan data hasil sensor ke Wemos.
2. Menuliskan kode program pada Arduino IDE seperti listing program
berikut:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x3F, 16, 2);
69
const int trigPin = D5;
const int echoPin = D6;
long durasi;
int jarak;
int wsebelum = 0;
int a,detikakhir;
float aray[1];
void setup() {
Serial.begin(9600);
LCD.begin();
LCD.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
//=====Proses Sensor=====
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
durasi = pulseIn(echoPin, HIGH);
//=====Menghitung Jarak=====
jarak = (0.034*(durasi/2)) ;
unsigned long wsekarang = millis();
if((wsekarang - wsebelum) >= 1000){
wsebelum = wsekarang;
a = a+1;
if (a==15){
a=0;
}
Serial.print(a);
Serial.println(" ");
}
if(jarak==45){
aray[0]=a;
detikakhir=aray[0];
Serial.print(detikakhir);
LCD.setCursor(0,0);
LCD.print("J Terakhir:");
LCD.setCursor(11,0);
LCD.print(jarak);
LCD.setCursor(14,0);
LCD.print("CM");
LCD.setCursor(0,1);
LCD.print("Respon:");
LCD.setCursor(7,1);
LCD.print(detikakhir);
LCD.setCursor(9,1);
LCD.print("Detik");
delay(5000);
70
a=0;
LCD.clear();
}
LCD.setCursor(0,0);
LCD.print("Jarak:");
LCD.setCursor(6,0);
LCD.print(jarak);
LCD.setCursor(11,0);
LCD.print("CM");
LCD.setCursor(0,1);
LCD.print("Waktu:");
LCD.setCursor(6,1);
LCD.print(a);
LCD.setCursor(11,1);
LCD.print("Detik");
delay(1000);
LCD.clear();
}
3. Melakukan transfer program dari laptop ke Wemos D1 Mini.
4. Mengamati nilai sensor ultrasonik yang telah diolah Wemos D1 Mini.
Perhatikan Gambar 4.14.
Gambar 4.14 Tampilan Nilai Sensor Sebelum Air Dimasukkan Ke Tempat
Pengukuran.
5. Ambil air pada tempat pengukuran sesuai dengan tampilan di LCD
16x2 menggunakan pompa.
6. Setelah air tertampung pada wadah, masukkan lagi ke dalam tempat
pengukuran secara langsung tanpa pompa. Perhatikan Gambar 4.15.
Sebelum memasukkan kembali perhatikan nilai jarak dan waktu pada
LCD 16x2.
71
Gambar 4.15 Cara Memasukkan Air Ke Tempat Pengukuran
7. Lihat jarak terakhir dan waktu respon pada LCD 16x2. Perhatikan
Gambar 4.16.
Gambar 4.16 Tampilan Nilai Sensor Setelah Air Dimasukkan Ke Tempat
Pengukuran
4.4.4. Hasil Pengujian Pada Uji Respon Sensor
Pada pengujian respon sensor ini, sensor yang telah diolah di Wemos akan
menghasilkan nilai jarak serta waktu respon yang akan ditampilkan pada LCD
16x2. Pengujian ini dilakukan dengan perubahan air sebesar 5 cm dan 10 cm.
Pada Tabel 4.2 menunjukkan hasil uji respon sensor.
72
Tabel 4.2 Hasil Pengujian Respon Sensor
Percobaan
ke - Jarak - s/d - (cm)
Waktu
Respon (s)
Perubahan 5 cm
1 15 s/d 10
4
2 3
3 25 s/d 20
3
4 5
5 45 s/d 40
4
6 4
7 65 s/d 60
4
8 4
9 85 s/d 80
6
10 5
Perubahan 10 cm
1 20 s/d 10
5
2 5
3 30 s/d 20
6
4 5
5 50 s/d 40
7
6 7
7 70 s/d 60
6
8 6
9 90 s/d 80
8
10 10
Rata - Rata Waktu Respon 5 cm 4,20
Rata - Rata Waktu Respon 10 cm 6,50
Pada Tabel 4.2 Hasil Pengujian Respon Sensor dilakukan percobaan
dengan perubahan 5 cm dan 10 cm dan masing masing sebanyak 10 kali. Pada
kolom jarak yaitu jarak berubahnya sensor sebesar 5 cm dan 10 cm. nilai tersebut
merupakan nilai dari sensor bukan dari alat ukur. Pada kolom waktu respon yaitu
waktu yang dibutuhkan sensor untuk merespon perubahan air dalam perubahan
yang cepat. Rata-rata respon waktu yang dibutuhkan pada perubahan 5cm sebesar
4,20 detik. Dan rata-rata respon waktu yang dibutuhkan pada perubahan 10 cm
sebesar 6,50 detik.
73
4.5. Uji Kecepatan Perubahan Ketinggian Permukaan Air
4.5.1. Tujuan Uji Kecepatan Perubahan Ketinggian Permukaan Air
Pengujian Kecepatan Perubahan Ketinggian Permukaan Air berfungsi untuk
mengetahui kecepatan perubahan dari benda yang dipantulkan oleh sensor
ultrasonik. Pada pengujian ini kecepatan perubahan air dihitung dalam satuan
cm/s dimana perubahan tersebut akan menghitung setiap 1 detik sekali.
4.5.2. Alat yang Digunakan Pengujian Pada Uji Kecepatan Perubahan
Ketinggian Permukaan Air
Peralatan yang dibutuhkan untuk pengujian ini adalah sebagai berikut:
1. Sensor Ultrasonik
2. Laptop
3. Wemos D1 Mini
4. LCD 16x2
5. Program Arduino IDE
6. Pipa
7. Akuarium tinggi 1 meter
8. Pompa DC
9. Alat Ukur Meteran
10. Modul Relay
4.5.3. Prosedur Pengujian Uji Kecepatan Perubahan Ketinggian
Permukaan Air
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adakah sebagai
berikut:
74
1. Menghubungkan Wemos dengan sensor ultrasonik dengan kabel
untuk memindahkan data hasil sensor ke Wemos.
2. Menghubungkan modul relay ke pin D8 pada Wemos.
3. Menuliskan Program pada Arduino IDE untuk pengujian kecepatan
perubahan air seperti listing program berikut:
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C LCD(0x3F, 16, 2);
const int trigPin = D5;
const int echoPin = D6;
long durasi;
int jarak;
int wsebelum = 0;
int a,detikakhir;
float aray[1];
void setup() {
Serial.begin(9600);
LCD.begin();
LCD.backlight();
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
//=====Proses Sensor=====
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
durasi = pulseIn(echoPin, HIGH);
//=====Menghitung Jarak=====
jarak = (0.034*(durasi/2)) ;
unsigned long wsekarang = millis();
if((wsekarang - wsebelum) >= 1000){
wsebelum = wsekarang;
a = a+1;
if (a==15){
a=0;
}
Serial.print(a);
Serial.println(" ");
}
if(jarak==45){
aray[0]=a;
detikakhir=aray[0];
Serial.print(detikakhir);
75
LCD.setCursor(0,0);
LCD.print("J Terakhir:");
LCD.setCursor(11,0);
LCD.print(jarak);
LCD.setCursor(14,0);
LCD.print("CM");
LCD.setCursor(0,1);
LCD.print("Respon:");
LCD.setCursor(7,1);
LCD.print(detikakhir);
LCD.setCursor(9,1);
LCD.print("Detik");
delay(5000);
a=0;
LCD.clear();
}
LCD.setCursor(0,0);
LCD.print("Jarak:");
LCD.setCursor(6,0);
LCD.print(jarak);
LCD.setCursor(11,0);
LCD.print("CM");
LCD.setCursor(0,1);
LCD.print("Waktu:");
LCD.setCursor(6,1);
LCD.print(a);
LCD.setCursor(11,1);
LCD.print("Detik");
delay(1000);
LCD.clear();
}
4. Melakukan transfer program dari laptop ke Wemos D1 Mini
5. Meletakkan sensor ultrasonik pada ujung pipa dan memasang pompa
pada modul relay.
6. Perhatikan nilai jarak pada alat ukur dan LCD sebelum pompa
menyala otomatis selama 1 detik.
7. Setelah pompa menyala dan kemudian mati, perhatikan lagi nilai jarak
pada alat ukur. Pada tampilan di LCD perhatikan nilai kecepatan dan
jarak saat pompa menyala selama 1 detik.
76
4.5.4. Hasil Pengujian Pada Uji Kecepatan Perubahan Ketinggian
Permukaan Air
Pada pengujian kecepatan perubahan ketinggian permukaan air, nilai dari
sensor ultrasonik akan diolah Wemos dan akan menghitung sesuai dengan rumus
kecepatan. Pada Tabel 4.3 menunjukkan hasil uji kecepatan sensor.
Tabel 4.3 Hasil Pengujian Kecepatan Sensor
No
Alat Ukur Sensor Ultrasonik
Error
(cm/s) Jarak
Awal
(cm)
Jarak
Akhir
(cm)
Waktu
(s)
Kecepatan
(cm/s)
Jarak
Awal
(cm)
Jarak
Akhir
(cm)
Waktu
(s)
Kecepatan
(cm/s)
1 28,2 27,9
1
0,3 28,9 28,3
1
0,2 0,1
2 28,3 28,2 0,1 29,9 28,9 0,4 0,3
3 28,6 28,3 0,3 30,2 29,9 0,3 0
4 28,8 28,6 0,2 30,4 30,2 0,1 0,1
5 29,0 28,8 0,2 30,6 30,4 0,1 0,1
6 42,9 42,7 0,2 42,8 42,6 0,2 0
7 43,0 42,9 0,1 43,0 42,8 0,2 0,1
8 43,3 43,0 0,3 43,2 43,0 0,3 0
9 43,6 43,3 0,3 43,5 43,2 0,3 0
10 44,0 43,6 0,4 44,1 43,5 0,3 0,1
11 52,2 52,0 0,2 52,6 52,0 0,4 0,2
12 52,4 52,2 0,2 52,4 52,6 0,3 0,1
13 52,6 52,4 0,2 53,0 52,4 0,2 0
14 52,8 52,6 0,2 53,2 53,0 0,3 0,1
15 53,0 52,8 0,2 53,8 53,2 0,2 0
16 61,2 61,0 0,1 61,6 61,0 0,3 0,2
17 61,5 61,2 0,3 61,8 61,6 0,3 0
18 61,8 61,5 0,3 61,8 61,8 0,4 0,1
19 61,9 61,8 0,1 61,9 61,8 0,3 0,2
20 62,0 61,9 0,1 62,5 61,9 0,1 0
21 77,9 77,7 0,2 77,0 76,8 0,5 0,3
22 78,1 77,9 0,2 77,2 77,0 0,4 0,2
23 78,3 78,1 0,2 77,5 77,2 0,3 0,1
24 78,7 78,3 0,4 78,2 77,7 0,3 0,1
25 79,0 78,8 0,2 78,4 78,2 0,3 0,1
26 97,0 96,7 0,3 95,3 95,1 0,3 0
27 97,1 97,0 0,1 95,5 95,3 0,5 0,4
28 97,4 97,1 0,3 95,8 95,5 0,4 0,1
29 97,5 97,4 0,1 95,9 95,8 0,3 0,2
30 97,8 97,5 0,3 96,2 95,9 0,3 0
Rata - Rata Error 0,1
77
Pada Tabel 4.3 pengujian perubahan air dilakukan percobaan sebanyak 30
kali. Pada kolom kecepatan pada alat ukur maupun sensor, didapatkan dari
persamaan (5).
𝐾𝑒𝑐𝑒𝑝𝑎𝑡𝑎𝑛 = 𝐽𝑎𝑟𝑎𝑘 𝐴𝑤𝑎𝑙 − 𝐽𝑎𝑟𝑎𝑘 𝐴𝑘ℎ𝑖𝑟
1 𝐷𝑒𝑡𝑖𝑘
(5)
Hanya saja cara pengambilan nilai nya berbeda, pada alat ukur nilai jarak
diambil secara manual menggunakan alat ukur meteran, sedangkan pada sensor
diambil nilai dari sensor ultrasonik lalu diolah oleh Wemos. Pada Tabel 4.3
Pengujian Perubahan Air mampu mendapatkan hasil yang baik dengan tingkat
rata rata error sebesar 0,1 cm/s, yang didapatkan dari rumus:
𝑅𝑎𝑡𝑎 − 𝑟𝑎𝑡𝑎 𝐸𝑟𝑟𝑜𝑟 = 𝐽𝑢𝑚𝑙𝑎ℎ 𝐸𝑟𝑟𝑜𝑟
𝐽𝑢𝑚𝑙𝑎ℎ 𝑑𝑎𝑡𝑎
(6)
4.6. Uji Keseluruhan Sistem
4.6.1. Tujuan Uji Keseluruhan Sistem
Pengujian ini digunakan untuk mengetahui hasil keseluruhan sistem. Dari
awal sensor mendeteksi jarak hingga diolah dan dikirim ke wemos penerima
apakah data tersebut sesuai dengan apa yang dikirim oleh wemos pengirim, dan
pada sisi penerima apakah indikator lampu dan buzzer menyala dengan sesuai.
4.6.2. Alat Yang Digunakan Pada Uji Keseluruhan Sistem
Untuk melakukan percobaan ini maka diperlukan beberapa alat sebagai
berikut:
1. 2 buah Wemos D1 Mini
2. Software Arduino IDE
78
3. 6 Channel Module Relay
4. LCD 16x2 dan LCD 20x4
5. Access Point
6. Lampu dan Sirine
7. Sensor Ultrasonik
8. 2 buah RTC DS3231
9. Pompa DC
4.6.3. Prosedur Pengujian Pada Uji Keseluruhan Sistem
Langkah-langkah yang dilakukan dalam melakukan pengujian ini adalah
sebagai berikut:
1. Menghubungkan Wemos dengan RTC DS3231 dan Sensor Ultrasonik
dengan kabel untuk memindahkan data RTC dan Sensor ke Wemos
Pengirim.
2. Menghubungkan Wemos dengan RTC dan Modul Relay dengan kabel
pada Wemos Penerima
3. Hubungkan kedua Wemos dengan Access Point yang berbeda dan
dapat terhubung dengan internet.
4. Melakukan transfer program ke kedua Wemos dengan program
pengirim dan penerima yang ada pada lampiran.
5. Mengisi air dengan pompa DC ke dalam wadah pengukuran seperti
Gambar 4.17
79
Gambar 4.17 Proses Pengisian Wadah Pengukuran Dengan Pompa
6. Perhatikan nilai jarak dan tingkatan status siaga pada LCD 16x2 yang
ada pada bagian pengirim.
7. Bandingkan dengan data yang ada pada bagian penerima pada LCD
20x4 atau serial Arduino IDE. Perhatikan Gambar 4.18
Gambar 4.18 Tampilan LCD 20x4 pada Bagian Penerima
8. Selisih waktu antara waktu pengirim (pojok kiri bawah) dan waktu
penerima (pojok kanan bawah) merupakan waktu delay pengiriman.
9. Lampu indikator dan buzzer akan menyala sesuai dengan tingkatan
status siaga yang tampil pada LCD.
80
4.6.4. Hasil Pengujian Pada Uji Keseluruhan Sistem
Pada pengujian keseluruhan sistem, alat akan diuji secara keseluruhan mulai dari
sensor mendeteksi jarak hingga data terkirim ke bagian penerima dan akan di proses
menjadi beberapa indikator. Pada pembahasan kali ini terdapat beberapa pengujian yang
akan di uji seperti jarak komunikasi antara wemos, jarak sensor, kekuatan sinyal provider,
delay pengiriman, status di penerima, serta indikator lampu dan buzzer. Tabel 4.4
merupakan hasil pengujian dari keseluruhan sistem.
Tabel 4.4 Hasil Pengujian Keseluruhan Sistem
No Jarak Sensor
(cm)
Status di
Penerima
Indikator
Lampu Indikator Buzzer Keterangan
1 20,2 Siaga I Merah Menyala Terus Sesuai
2 38 Siaga II Kuning Menyala 1s, Mati 2s Sesuai
3 51,9 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
4 38,4 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
5 41,6 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
6 77,0 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
7 45,0 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
8 87,6 Siaga IV Putih Mati Sesuai
9 51,9 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
10 66,8 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
11 70,7 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
12 64,7 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
13 33,4 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
14 21,4 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
15 44,7 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
16 83,7 Siaga IV Putih Mati Sesuai
17 65,3 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
18 91,8 Siaga IV Putih Mati Sesuai
19 93,4 Siaga IV Putih Mati Sesuai
20 57,1 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
21 25,4 Siaga II Kuning Mrnyala 1s, Mati 1s Sesuai
22 30,6 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
23 19,2 Siaga I Merah Menyala Terus Sesuai
24 90,3 Siaga IV Putih Mati Sesuai
25 55,9 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
26 43 Siaga II Kuning Menyala 1s, Mati 1s Sesuai
27 78,3 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
28 13,5 Siaga I Merah Menyala Terus Sesuai
29 58,7 Siaga III Hijau Menyala 2s, Mati 3s Sesuai
30 84 Siaga IV Putih Mati Sesuai
81
BAB V
PENUTUP
Dalam bab ini berisi tentang kesimpulan dan saran yang berdasar pada hasil
dari pengujian yang telah dilakukan pada Tugas Akhir ini, maka dapat diperoleh
beberapa kesimpulan dan saran untuk pengembangan sistem berikutnya.
5.1. Kesimpulan
Berdasarkan hasil perancangan Alat Peringatan Deteksi Dini Bencana
Banjir Menggunakan Wemos Pada Sungai Berbasis Internet of Things. Maka
dapat diambil beberapa kesimpulan sebagai berikut :
1. Alat yang telah dirancang dapat memberikan hasil jarak ketinggian
permukaan air secara otomatis namun tingkat rata-rata persentase error
sensor ultrasonik tersebut adalah 5,1%. Persentase error tersebut merupakan
persentase pengukuran jarak sensor terhadap permukaan air.
2. Waktu respon sensor sebesar 4,2 second dari perubahan ketinggian
permukaan air sebesar 5 cm, dan 6,5 second dari perubahan ketinggian
permukaan air sebesar 10 cm.
3. Kecepatan perubahan ketinggian permukaan air antara permukaan air
dengan sensor memiliki rata-rata error sekitar 0,1 cm/s.
4. Secara keseluruhan alat yang akan mengirimkan dan menerima data sangat
bergantung pada koneksi internet
82
5.2. Saran
Saran yang diberikan oleh penulis pada pengembangan penelitian ini
selanjutnya adalah sebagai berikut:
1. Peringatan deteksi dini bencana banjir menggunakan Wemos perlu
dikembangkan dari segi komunikasi karena masih menggunakan web
hosting gratis yang dimana apabila penelitian selanjutnya menggunakan
web hosting pribadi atau koneksi lain secara lokal dan dapat dipantau secara
jauh, maka dapat memperkecil delay yang dihasilkan, sehingga sistem dapat
memberikan respon yang lebih cepat.
2. Pada sensor, sensor masih menggunakan sensor ultrasonik HC-SR04,
dimana sensor tersebut masih memiliki tingkat akurat yang belum
sepenuhnya sempurna dan masih memiliki batasan jarak.
3. Dikarenakan alat ini masih berupa prototype, agar kedepannya dapat dibuat
alat secara real dan dapat digunakan langsung.
83
DAFTAR PUSTAKA
Annisa, R. (2018). Rancang Bangun Alat Peringatan Dini Bencana BanjirBerbasis
Mikrokontroler Pada Daerah Aliran Sungai Musi (Studi Kasus Tusan
Kirap Sekayu). Jurnal Teknologi Informasi dan Komputer Politeknik
Sekayu, 23-37.
Arifin, J., Zulita, L. N., & Hermansyah. (2016). Perancangan Murottal Otomatis
Menggunakan Mikrokontroller Arduino Mega 2560. Jurnal Media
Infotama, 91.
Junaidi, A. (2015). Internet Of Things, Sejarah, Teknologi dan Penerapannya.
Jurnal Ilmiah Teknologi Informasi Terapan, 63-64.
P.Marian. (2015). HC-SR04 Datasheet. Diambil kembali dari
www.electroschematics.com:
https://www.electroschematics.com/8902/hc-sr04-datasheet/
Putri, D. M. (2017, Februari 23). Mengenal Wemos D1 Mini Dalam Dunia IoT.
Diambil kembali dari ilmuti.org: http://ilmuti.org/2017/02/23/mengenal-
wemos-d1-mini-dalam-dunia-iot/
Supriyadi, T. (2011). Penggunaan Sensor Ultrasonik Sebagai Pendeteksi
Ketinggian Air Sungai Pada Sistem Peringatan Dini Tanggap Darurat
Bencana Banjir. Industrial Research Workshop and National Seminar,
143.
Turang, D. A. (2015). Pengembangan Sistem Relay Pengendalian Dan
Penghematan Pemakaian Lampu Berbasis Mobile. Seminar Nasional
Informatika, 78.