Post on 19-Oct-2020
67
BAB III
PEMBAHASAN
3.1. Tinjauan Umum Alat
Alat peringatan dini bencana banjir dengan sistem sms menggunakan
mikrokontroler arduino ini merupakan alat yang berfungsi sebagai peringatan dini
adanya bencana banjir dengan menggunakan sensor ultrasonik HC-SR04 sebagai
pengukur atau pendeteksi ketinggian permukaan air disuatu tempat dan SMS
sebagai pemberi informasi.
Cara kerja alat ini yaitu sensor ultrasonik memancarkan gelombang ultrasonik
untuk mendeteksi ketinggian permukaan air yang diperintahkan oleh
mikrokontroler arduino. Hasil perhitungan jarak dari pembacaan sensor ultrasonik
nantinya akan ditampilkan pada modul LCD 16x2 dengan satuan sentimeter (CM).
Dan pada alat ini juga terdapat pengaturan ketinggian level air yang berguna sebagai
tolak ukur yang nantinya berguna bagi masyarakat sekitar untuk kesiapan dalam
menghadapi bencana banjir. Ada 4 level ketinggian yang diatur berdasarkan batas
atas sensor ultrasonik yaitu level Siaga 4, Siaga 3, Siaga 2, dan Siaga 1. Terdapat
indikator LED di setiap level dengan berbeda warna yaitu Siaga 4 dengan warna
hijau, Siaga 3 dengan warna biru, Siaga 2 dengan warna kuning, dan Siaga 1 dengan
warna merah. Semakin tinggi kenaikan permukaan air maka semakin kecil jarak
antara permukaan air dan batas atas sensor ultrasonik dan semakin tinggi level
airnya. Fungsi Short Message Servise (SMS) pada alat ini yang dikerjakan oleh
modul SIM800L yaitu pada saat alat ini diaktifkan akan mengirimkan notifikasi
kesiapan alat dan fungsi SMS. Tidak hanya itu, disetiap level ketinggian air alat ini
68 juga mengirimkan SMS dengan format berbeda ke nomorhandphone (hp) yang
telah terdaftar pada alat ini. Dan sebagai peringatan pada level Siaga 1 banjir
arduino juga memerintahkan buzzer untuk bekerja.
3.2. Blok Rangkaian Alat
Berikut ini blok rangkaian dari alat sebagai berikut:
Sumber: Dokumen Pribadi
Gambar III.1
Blok Rangkaian Alat
Penjelasan blok rangkaian alat sebagai berikut:
1. Input
Komponen input ini merupakan komponen masukan yang akan diproses.
Komponen input ini terdiri dari :
a. Catu daya merupakan masukan tegangan 12 Volt kedalam rangkaian
mikrokontroler arduino. Dan tegangan 3,9 Volt untuk masukan ke modul SIM
800L.
69
b. Sensor Ultrasonik HC-SR04 berfungsi untuk mendeteksi ketinggian
permukaan air dengan range pengukuran 2 cm~400 cm.
2. Proses
Proses merupakan komponen utama yang berfungsi sebagai pengelola data yang
diterima dari masukan atau input yang kemudian akan menghasilkan output.
Dalam proses ini penulis menggunakan mikrokontroler Arduino berbasiskan
ATMega 328P.
3. Output
Output merupakan keluaran dari semua proses yang telah dijalankan. Output
yang dihasilkan yaitu:
a. Buzzer berfungsi sebagai indikasi hasil input yang menghasilkan bunyi
seperti alarm.
b. LED berfungsi sebagai indikator hasil input agar mempermudah melihat level
ketinggian air dari sensor yang telah terdeteksi dan diproses.
c. Modul LCD 16x2 berfungsi sebagai interface atau antarmuka antara
mikrokontroler dan pengguna yang menampilkan karakter ataupun text dari
hasil input yang diproses sehingga mempermudah penggunaan alat.
d. Modul SIM800L berfungsi sebagai pengirim SMS yang dalam alat ini berupa
pemberitahuan kesiapaan alat dan kondisi level ketinggian air.
3.3. Skema Rangkaian
Berikut ini skema rangkaian secara keseluruhan dan penjelasan secara umum
rangkaian alat.
70
Sumber: Dokumen pribadi
Gambar III. 2
Skema rangkaian keseluruhan.
Perancangan rangkaian ini adalah Arduino yang menggunakan mikrokontroller
ATMega 328p sebagai pusat pemroses data dan rangkaian elektronika lain sebagai
pendukung system. Terdapat beberapa blok rangkaian dari skema diatas antara lain
catu daya, shield, led dan mikrokontroler arduino itu sendiri. Selain dari rangkaian
71
diatas terdapat modul sensor ultrasonik HC-SR04, LCD/I2C 16x2, SIM800L, dan
buzzer.
3.3.1 Rangkaian Mikrokontroler Atmega 328p
Sumber : Dokumen Pribadi
Gambar III.3
Skema rangkaian Mikrokontroler Atmega 328p
Penjelasan Skema rangkaian sebagai berikut:
Rangkaian diatasadalah Arduino yang menggunakan mikrokontroller ATMega
328p sebagai pusat pemroses data dan rangkaian elektronika lain sebagai
pendukung system. Untuk mengaktifkan sistem, hubungkan sistem dengan catu
daya 12 VDC, jika LED pada Arduino hidup maka alat tersebut siap bekerja, namun
jika LED pada Arduino mati maka periksa tegangan pada catu daya dan cek
rangkaian alat.
72
Pada system Arduino ini terdapat rangkaian converter USB ke Serial dengan
menggunakan IC FTDI FT232RL. Komponen ini berfungsi untuk pengisian
program ke mikrokontroller ATMega 328p secara serial melalui komputer dengan
software Arduino IDE. Interface atau antar muka yang digunakan untuk
berkomunikasi dengan komputer adalah USB type B dimana sering dijumpai
penggunaannya pada mesin cetak atau printer. Dilengkapi dengan sekring otomatis
reset (resettable fuse) 500mA, untuk mengantisipasi terjadinya hubung singkat di
dalam system. Apabila terjadi hubung singkat maka arus yang masuk akan terputus.
Pin 2 USB (data min) terhubung ke pin 16 IC FT232RL dan pin 3 USB (data plus)
terhubung ke pin 15 IC FT232RL. Pin 1 (VCC) dan pin 4 (GND) USB dihubungkan
secara seri dengan kapasitor 100nF untuk meredam noise yang dihasilkan IC
FT232RL.
Terdapat pula IC Op-Amp (LM358) yang berfungsi sebagai pemilih tegangan
otomatis. IC Op-Amp yang ditetapkan sebagai komparator akan memonitor
tegangan pada pin VIN (tegangan DC eksternal) dan jika berada di atas jumlah
minimum, akan mematikan sakelar MOSFET (AO3401) yang mengisolasi daya
USB dari papan Arduino. Jika kedua daya USB dan eksternal tersedia, sirkuit
menggunakan daya eksternal untuk menghidupkan papan Arduino melalui
regulator tegangan +5VDC bawaan yang dinyalakan melalui daya DC eksternal.
Pin 1 (TXD) IC FT232RL terhubung ke pin 2 (RXD) IC ATMega 328p melalui
Resistor 1kΩ untuk membatasi arus yang masuk. Berlaku juga untuk pin 5 (RXD)
IC FT232RL terhubung ke pin 3 (TXD) IC ATMega 328p melalui Resistor 1kΩ
untuk membatasi arus yang masuk. Dilengkapi dengan fitur auto-reset (otomatis
reset) untuk menghindari menekan tombol Reset secara terus menerus saat akan
73
dan sedang melakukan pengisian program. Fitur ini didapat dari pin 2 (DTR#) dan
pin 3 (RST#) pada IC FT232RL dihubungkan dengan kapasitor 100nF yang
terhubung ke Reset IC ATMega 328p.
Pada bagian regulator tegangan menggunakan seri 78M05 dimana menurut
datasheet dapat mensuplai arus hingga 500mA. Yang dalam hal ini berfungsi
sebagai penyuplai tegangan teregulasi sebesar 5VDC untuk mikrokontroler
arduino.
ATMega 328p membutuhkan suplai tegangan kerja (VCC) sebesar 5VDC dan
akan bekerja pada frekuensi oscillator yang dipakai. Mikrokontroller ini memiliki
internal oscillator yang dapat digunakan sebagai penghasil clock untuk
menggerakkan CPU sebesar 8MHz. Pada system ini akan dipakai oscillator crystal
eksternal dengan frekuensi 16MHz dan memakai dua buah kapasitor 22pF yang
dihubungkan dengan pin 9 (XTAL1) dan pin 10 (XTAL2) IC ATMega 328p.
Pemilihan crystal dengan frekuensi ini dikarenakan system Arduino membutuhkan
eksekusi program yang cepat.
Arduino juga dilengkapi dengan konektor ICSP (In Circuit System
Programming) melalui pin header male untuk mengatur fuse bit, mem-burning
bootloader, atau mengisi program menggunakan bantuan downloader AVR. Pin
yang terdapat pada konektor ICSP adalah MOSI, MISO, SCK, Reset, VCC, dan
GND.
Mikrokontroller ATMega 328p memiliki saluran reset aktif rendah (low) sehingga
reset ini harus dijaga agar tetap berada pada kondisi tinggi (high). Pin RESET
digunakan untuk me-reset program (mulai dari awal) dengan memberikan sinyal
low pada pin RESET. Namun digunakan sebuah resistor pull-up dengan nilai 10kΩ
74
yang dihubungkan ke VCC agar pin RESET tidak berada pada kondisi
mengambang (floating) atau kondisi pin RESET berlogika 0 (low). Penggunaan
port atau pin mikrokontroler pada alat ini terdapat di tabel berikut ini:
Tabel III.1 Penggunaan port pada Mikrokontroler Atmega 328p
PIN Mikrokontroler
Port Mikrokontroler
Pin Arduino
Penggunaan Pin
1 Reset Reset Tombol Reset
2 PD0 Digital Pin 0(RXD) Pin TX FT232RL
3 PD1 Digital Pin 1(TXD) Pin RX FT232RL
6 PD4 Digital Pin 4 Pin RXD SIM800L
8 GND GND GND Shield
9 PB6 - XTAL1
10 PB7 - XTAL2
11 PD5 Digital Pin 5 Pin TXD SIM800L
12 PD6 Digital Pin 6 Pin ECHO HC-SR04
13 PD7 Digital Pin 7 Pin Trigger HC-SR04
14 PB0 Digital Pin 8 Pin LED 1
15 PB1 Digital Pin 9 Pin LED 2
16 PB2 Digital Pin 10 Pin LED 3
17 PB3 Digital Pin 11 Pin LED 4
18 PB4 Digital Pin 12 Pin Buzzer
27 PC4 Analog Pin 4 Pin SDA I2C LCD
28 PC5 Analog Pin 5 Pin SCL I2C LCD Sumber: Dokumen Pribadi.
75
3.3.2 Rangkaian Arduino Shield
Sumber: Dokumen Pribadi
Gambar III. 4
Arduino Shield
Arduino Shield adalah papan susunan rangkaian yang dipasang langsung ke pin-
pin Arduino tanpa membutuhkan kabel tambahan, shield umumnya berbentuk sama
dengan papan Arduino itu sendiri. Perancangan arduino shield dirancang sesuai
keinginan pembuat alat dengan susunan paling ringkas dan termudah. Penggunaan
shield pada alat ini sangatlah penting untuk penempatan sensor ultrasonik HC-SR04
sebagai input sedangkan buzzer, modul SIM800L, modul I2C/LCD dan LED
indicator sebagai output. Dengan memanfaatkan pin header female agar
pemasangan menjadi lebih ringkas serta meminimalisir penggunaan kabel.
Kelebihan dari penggunaan shield juga dapat menghindari kesalahan pemasangan
sensor dan modul, karena pada shield terdapat marking (tanda) pemasangan.
Fitur pada shield ini juga cukup banyak selain sebagai tempat sensor dan modul
dipasang, penulis juga menempatkan kapasitor elco masing-masing 560uF/10V dan
10uF/50V sebelum tegangan masuk yang berguna untuk penstabil dan filter
tegangan. Terdapat juga indikator tegangan VDC 5V dan 3,8V berupa masing-
masing satu buah LED yang dirangkai seri dengan resistor 100Ω yang berguna
sebagai indikator bahwa terdapat tegangan. Fungsi lain juga dari shield arduino ini
76
yaitu penyalur tegangan dari power supply ke sensor dan modul agar tidak
membebani power regulator pada arduino sehingga arduino berjalan stabil.
3.3.3 Rangkain LED
Sumber: Dokumen Pribadi
Gambar III.5 Rangkaian LED
Pada perancangan alat ini indikator lain sebagai pendeteksi level ketinggian air
digunakan rangkaian LED. Pada rangkaian LED diatas terdapat 4 buah led 5mm
dan 4 buah resistor 100Ω yang masing-masing dirangkai seri. Yang masing-masing
LED pada kutub positif dihubungkan ke pin arduino dan semua kutub negatif LED
dirangkai paralel dan terhubung ke ground arduino. Masing-masing LED berbeda
warna yaitu hijau untuk level Siaga 4, biru untuk level Siaga 3, kuning untuk level
Siaga 2, dan merah untuk level Siaga 1.
3.3.4 Rangkaian Catu Daya
Sumber: Dokumen Pribadi
Gambar III. 6
Rangkaian Catu Daya
77
Pada rangkaian diatas catu daya berfungsi untuk menurunkan tegangan AC 220V
(arus bolak-balik) ke 12VAC dan merubah ke tegangan DC 12~15V. Catu daya
berfungsi untuk mensuplai tegangan ke mikrokontroler arduino dan komponen lain
didalam alat. Catu daya yang dibuat menggunakan Trafo Step Down CT, sekering,
saklar, dioda bridge, kapasitor Elco, resistor, LED, IC Regulator L7812, L7805 dan
LM317T. Dalam catu daya ini menghasilkan tiga output tegangan yaitu 12VDC,
5VDC dan 3,8VDC.
3.3.5 Modul GSM SIM800L
Sumber: Dokumen Pribadi
Gambar III. 7
Koneksi modul SIM800L
Merupakan salah satu jenis module GSM/GPRS Serial yang paling popular.
Digunakan untuk berbagai keperluan pengendalian jarak jauh. Untuk saat
ini, terdapat beberapa tipe dari Breakout Board, tetapi yang paling banyak
dijual di Indonesia yaitu versi mini dengan kartu GSM jenis Micro SIM.
Modul pada alat ini menggunakan power supply dengan tegangan 3,8V yang
disuplai dari power supply yang merujuk dari datasheet modul SIM800L
78
yaitu 3,7V~4,2 VDC. Terdapat indikator sinyal pada SIM800L yaitu jika
telah mendapatkan sinyal, led akan kedip lambat berarti sudah mendapatkan
sinyal sedangkan jika berkedip cepat berarti belum mendapatkan sinyal,
yang tentunya sudah terisi kartu SIM aktif. Dan pada rangkaian diatas yaitu
untuk koneksi data pin TXD modul terhubung ke pin 5 digital, sedangkan
pin RXD modul terhubung ke pin 4 digital.
3.3.6 Modul LCD/I2C 16x2
Sumber: Dokumen Pribadi
Gambar III. 8
Koneksi modul LCD/I2C 16x2
Pada rangkaian diatas perancangan alat menggunakan LCD 16x2 yang sudah
terintegrasi dengan modul I2C dimana bertujuan untuk meminimalkan penggunaan
pin sehingga untuk pengoperasiannya cukup memerlukan 2 pin data saja untuk
dapat bekerja, yaitu pin SDA yang terkoneksi ke pin 4 analog arduino dan pin SCL
yang terkoneksi ke pin 5 analog arduino. Modul ini nantinya akan menampilkan
informasi kesiapan alat dan menampilkan secara realtime ketinggian air setiap
levelnya.
79
3.3.7 Modul Ultrasonik HC-SR04
Modul ultrasonik pada alat ini berfungsi sebagai input sistem selain power
supply. Yaitu untuk mendeteksi ketinggian permukaan air, sensor akan memberikan
sinyal keluaran yang kemudian akan diolah menjadi data ketinggian permukaan air
oleh mikrokontroler arduino. Untuk konfigurasi pin sendiri dari sensor ini yaitu pin
Trig sensor terkoneksi ke pin 7 digital arduino dan pin Echo sensor terkoneksi ke
pin 6 arduino. Sedangkan pin ground dan VCC terhubung ke powersupply seperti
gambar dibawah ini.
Sumber: Dokumen Pribadi
Gambar III. 9
Koneksi modul Ultrasonik HC-SR04
3.4 Cara Kerja Alat
Berikut ini adalah proses cara kerja alat secara keseluruhan:
a. Catu Daya
Dari skema rangkaian catu daya cara kerjanya yaitu catu daya diberi tegangan AC
220 Volt yang didapat dari stop kontak listrik masuk ke pin AC 220V pada
rangkaian, selanjutnya melalui sekering 2A dan melalui saklar, sebelum masuk ke
transformator CT step down, kemudian tegangan AC yang masih tinggi tersebut
masuk ke lilitan primer trafo (step down) menimbulkan fluks magnet yang idealnya
80
semua bersambung dengan lilitan sekunder, kemudian terjadi induksi
elektromagnetik yang menginduksi lilitan sekunder sehingga tegangan listrik
menjadi rendah. Tegangan listrik yang keluar dari trafo masih berjenis AC, pada
system ini digunakan keluaran 12V dan penggunaan pin CT sebagai ground
rangkaian. Selanjutnya tegangan AC 12V disearahkan oleh Dioda 1N4004, arus
bergerak dari kaki Anoda menuju Katoda.Di dalam catu daya terdapat LED untuk
indikator bahwa catu daya bekerja dengan baik, resistor yang terhubung dengan
LED berfungsi untuk mengurangi arus yang masuk ke kaki LED agar LED tidak
rusak. Setelah melewati dioda, tegangan masuk kedalam kapasitor elco, kapasitor
ini berfungsi sebagai penyaring agar noise pada tegangan bisa berkurang, kemudian
tegangan DC yang belum sepenuhnya disaring masuk pin input ke tiga IC regulator
yaitu IC regulator L7812 yang nantinya menghasilkan tegangan DC12V teregulasi,
kemudian IC regulator L7805 menghasilkan DC5V teregulasi, dan IC LM317T
yang di padukan dengan kombinasi resistor 680Ω dan 330Ω secara paralel
menghasilkan DC 3,8V teregulasi. Sebelum tegangan output tadi disuplai, masing-
masing tegangan tersebut masuk ke kapasitor elco 470uF/16V untuk difilter
kembali dan menjadi lebih stabil.
b. Mikrokontroler Arduino
Mikrokontroler arduino yang telah menerima tegangan dari power supply sebesar
12V masuk ke regulator 78M05 untuk kebutuhan tegangan kerja sebesar 5V.
Setelah mendapatkan tegangan yang sesuai, Arduino akan aktif yang ditandai
dengan menyalanya LED power. Arduino juga menyediakan tegangan sebesar 5V
dan 3,3V dengan arus maksimal 500mA untuk modul dan rangkaian lain, namun
81
pada alat ini power untuk modul dan rangkaian lain diambil dari power supply agar
tidak membebani Arduino.
Setelah semua komponen elektronik mendapatkan tegangan kerja dari
powersupply, selanjutnya Arduino akan menginisialisasi sensor ultrasonik HC-
SR04, dimana sensor ini digunakan untuk membaca jarak permukaan benda dan
pada alat ini untuk membaca permukaan air, setelah mendapatkan hasil tertentu
akan dirubah menjadi satuan sentimeter menggunakan rumus. Sensor ultrasonik
akan selalu memancarkan gelombang secara realtime, sehingga pembacaan jarak
sesuai naik turunnya ketinggian permukaan air. Kemudian hasil pembacaan jarak
ditampilkan di LCD 16x2. Didalam arduino sudah diatur batas level ketinggian air
dan setiap batasan yang telah diatur arduino akan memerintahkan modul SIM800L
untuk mengirimkan SMS ke nomor yang telah didaftarkan. Dan pada level tertinggi,
selain mengirim SMS arduino akan memerintahkan buzzer untuk bekerja
mengeluarkan sinyal bunyi sebagai tambahan peringatan dini banjir.
c. LED
Berdasarkan hasil penghitungan jarak dari sensor ultrasonik yang diolah Arduino
terdapat batas level ketinggian air yang diatur Arduino yaitu Siaga 4, Siaga 3, Siaga
2 dan Siaga 1. Pada level Siaga 4 yaitu jarak 30 cm keatas, Arduino akan
memerintahkan LED1 dengan warna hijau untuk menyala, pada level Siaga 3 yaitu
jarak antara 25 cm sampai kurang dari 30 cm, arduino akan memerintahkan LED2
dengan warna biru untuk menyala, pada level Siaga2 yaitu jarak antara lebih dari
15 cm sampai kurang dari 25 cm, arduino akan memerintahkan LED3 warna kuning
untuk menyala, sedangkan pada level Siaga 1 yaitu jarak 15 cm sampai 1 cm,
82
arduino akan memerintahkan LED4 dengan warna merah untuk menyala.
Begitupun selanjutnya mengikuti perhitungan jarak dari sensor.
d. Modul SIM800L
Cara kerja modul SIM800L pada alat ini yaitu berdasarkan data dari sensor
ultrasonik yang telah diproses di arduino. Data yang dikirimkan berupa SMS yang
berisi pesan yang berbeda berdasarkan ketinggian level air dan dikirim ke nomor
yang telah didaftarkan. Pada awal sistem diaktifkan, sistem akan menginisialisasi
SIM800L, selanjutnya jika inisialisasi berhasil, SIM800L akan mengirimkan pesan
“SIM SMS dan Sistem Siap”
e. Modul Ultrasonik HC-SR04
Cara kerja modul ultrasonik pada alat ini yaitu setelah ultrasonik mendapatkan
tegangan dari powersupply dan arduino menginisialisasi pin ultrasonik. Arduino
akan memerintahkan pin trigger aktif high selama 10 mikrodetik itu menandakan
sensor ultrasonik akan memancarkan gelombang 40 Khz sebanyak 8 kali dan diikuti
oleh pin Echo yang akan high setelah sinyal ultrasonik dipancarkan. Sinyal
ultrasonik tadi akan dipantulkan oleh benda terdekat yang menghalangi sinyal
tersebut, dalam hal ini adalah permukaan air dan akan kembali ke receiver pada
modul HC-SR04. Setelah receiver menerima sinyal ultrasonik, pin Echo akan low.
Jarak antara sensor dengan benda terdekat akan dihitung berdasarkan lama waktu
pin Echo berada dalam kondisi high.
f. Modul LCD/I2C 16x2
Setelah rangkaian mendapatkan supply tegangan dan alat bekerja maka tampilan
pertama LCD adalah “Bissmillah” untuk memulai program. Selanjutnya yaitu
proses inisialisasi program dan modul SIM dengan tampilan “SIM DAN SISTEM
83
TELAH SIAP”, kemudian sebelum masuk ke program terdapat tampilan LCD
“Pengukuran Level Ketinggian Air”, setelah itu LCD menampilkan “Detecting....”
untuk kesiapan sensor ultrasonik dalam pendeteksian permukaan air, kemudian
masuk ke program utama LCD menampilkan ketinggian air sesuai pembacaan
sensor ultrasonik yaitu “Ketinggian Air Saat Ini 25 CM” Sebagai contoh pada saat
ultrasonik mendeteksi ketinggian air 25 cm.
3.5 Flowchart Program
Berikut ini flowchart program dari alat yang kami buat:
Sumber: Dokumen Pribadi
Gambar III.10
Flowchart Program
84
Berikut ini subrutin dari flowchart program diatas:
Sumber: Dokumen Pribadi
Gambar III.11
Subrutin Flowchart Program
3.6 Kontruksi Sistem Coding
Berikut ini dijelaskan tentang konstruksi sistem program secara detail, meliputi:
Inisialisasi program, Pembacaan input, pemrosessan dan pengendalian output
program.
3.6.1 Inisialisasi Program
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <gprs.h>
#include <sim800.h>
#include <SoftwareSerial.h>
Merupakan librari untuk komunikasi antara mikrokontroler arduino dan software
Arduino IDE
85
Penjelasan coding inisialisasi diatas yaitu:
LiquidCrystal_I2C.h merupakan librari untuk mengontrol fungsi LCD yang
digunakan oleh modul LCD/I2C 16x2 diantaranya yaitu “lcd.print(“Hallo”);” untuk
mencetak tulisan Hallo di LCD 16x2, kemudian librari Wire.h yaitu untuk
komunikasi antara Mikrokontroler dengan modul LCD/I2C 16x2 yang melalui pin
SDA dan SCL, librari gprs.h yaitu librari yang berisi kumpulan perintah AT-
COMMAND yang disederhanakan menjadi perintah yang lebih mudah dimengerti.
Librari sim800.h yaitu librari yang berisi perintah untuk mengontrol modul
SIM800L. Sedangkan librari SoftwareSerial.h adalah librari yang berfungsi untuk
komunikasi antara mikrokontroler arduino dan software Arduino IDE.
#define trigPin 7
#define echoPin 6
#define led1 8
#define led2 9
#define led3 10
#define led4 11
#define buzzer 12
Listingcoding diatas yaitu inisialisasi dari pin yang digunakan penjelasannya
sebagai berikut:
Define trigPin 7 yaitu pin trig ultrasonik ke port 7 digital arduino, define echoPin 6
yaitu pin echo ultrasonikke port 6 digital arduino, define led1 8 yaitu pin positif
led1 ke port 8 digital arduino,define led2 9 yaitu pin positif led2 ke port 9 digital
arduino, define led3 10 yaitu pin positif led3 ke port 10 digital arduino, define led4
86
11 yaitu pin positif led4 ke port 11 digital arduino, sedangkan define buzzer 12 yaitu
pin positif buzzer ke port 12 digital arduino.
LiquidCrystal_I2C lcd(0x3f,16,2);
int b;
int i;
long duration, distance;
GPRS gprs;
const int maxNoHp = 2;
char* hp[maxNoHp]="089633688277","089652750271";
bool smsSiaga4 = true, smsSiaga3 = true, smsSiaga2 = true, smsSiaga1 = true,
firstBoot = true;
Keterangan:
LiquidCrystal_I2C lcd(0x3f,16,2); menginisaialisasi alamat dari modul LCD dan
jumlah karakter LCD.
Int b,i; untuk membuat variabel b dan i bertipe integer.
long duration, distance; untuk membuat variabel duration dan distance bertipe long.
GPRS gprs; untuk mengubah fungsi library gprs menjadi GPRS.
const int maxNoHp = 2; untuk membatasi banyaknya nomor hp yang terdaftar.
char* hp[maxNoHp]="089633688277","089652750271"; untuk memasukkan
daftar no hp yang akan dikirim SMS.
bool smsSiaga4 =true, smsSiaga3=true, smsSiaga2=true, smsSiaga1 =true,
firstBoot = true; untuk memberikan nilai true pada variabel smsSiaga4, smsSiaga3,
smsSiaga2, smsSiaga1 dan juga firstboot.
87
pinMode(buzzer,OUTPUT);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
Penjelasan coding diatas yaitu mengatur mode pin, echoPin yaitu pin echo
ultrasonik sebagai input dan yang lain seperti buzzer, trigPin, led1, led2, led3, led4
sebagai output.
3.6.2 Input
digitalWrite(trigPin,LOW);//Sensor Ultrasonik mendeteksi permukaan air/benda
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;//Perhitungan untuk mendapatkan jarak sentimeter
Keterangan :
Coding program diatas adalah proses input dari sensor ultrasonik yang nantinya
menghasilkan jarak ketinggian permukaan air. Berikut penjelasannya:
digitalWrite(trigPin,LOW); untuk mengeset pin trig menjadi off(low).
delayMicroseconds(10); memberikan waktu pin trigoff selama 10 mikrodetik
88
digitalWrite(trigPin,HIGH); untuk mengeset pin trig menjadi on/high.
(10); memberikan waktu pin trig high selama 10 mikrodetik yang bertujuan
delayMicroseconds untuk memberikan gelombang ultrasonik sebanyak 8 kali.
digitalWrite(trigPin,LOW); untuk mengeset pin trig menjadi off (low).
delayMicroseconds(10); untuk memberikan jeda waktu trig pin selama 10
mikrodetik yang nantinya berguna untuk pin echo menerima gelombang yang
dipancarkan oleh pin trigger.
duration = pulseIn(echoPin, HIGH);
variabel duration diberikan fungsi pulseIn pada echoPin (pulseIn akan menunggu
rentang waktu echoPin dari LOW menjadi HIGH, waktu tunggu tersebut akan
terstore ke dalam memory). Sehingga arduino dapat mengetahui waktu yang
dibutuhkan untuk perjalanan suara dari trigger dan kembali ke echo karena pantulan
benda.
distance = (duration/2) / 29.1;
Untuk mengetahui jarak, rumusnya adalah kecepatan * waktu yang dibutuhkan.
Karena duration adalah waktu bolak-balik (sensor-benda-sensor), maka perlu
dibagi 2 untuk mendapatkan jarak dari sensor ke benda.
3.6.3 Main Program
void setup()
lcd.begin();
lcd.clear();
lcd.setCursor(0,2);
lcd.print("Bissmillah");
89
pinMode(buzzer,OUTPUT);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
lcd.clear();
Serial.begin(9600);
while(!Serial);
Serial.println("Persiapan SIM800L untuk Sistem");
gprs.preInit();
delay(1000);
while(0 != gprs.init())
delay(200);
Serial.println("init error\r\n"); //pesan di Serial Monitor jika proses init module
GPRS Gagal
Serial.println("Init succes..."); //pesan di Serial Monitor jika proses init module
GPRS Sukses
delay(1000);
90
kirimSMS("SIM SMS dan Sistem Siap");//pemberitahuan SMS ke nomor HP
bahwa SIM dan Sistem siap
delay(3000);
lcd.begin();
lcd.setCursor(0,0);
lcd.print("SIM DAN SISTEM");//Tampilan di LCD bahwa SIM siap
lcd.setCursor(3,1);
lcd.print("TELAH SIAP");
delay(2000);
digitalWrite(12,HIGH);
delay(500);
digitalWrite(12,LOW);//Tes buzzer dan penanda sistem siap
delay(500);
lcd.begin();
lcd.setCursor(0,0);
lcd.print("Pengukuran Level");
lcd.setCursor(0,1);
lcd.print("Ketinggian Air");
delay(2000);
lcd.clear();
3.6.3 Output
void Siaga4 ()//Void untuk level Siaga4
91
kirimSMS("Ketinggian Air Siaga 4");
smsSiaga4 = false;
smsSiaga3 = true;
smsSiaga2 = true;
smsSiaga1 = true;
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4,LOW);
Pada saat ketinggian air Siaga4 maka alat akan kirim sms dengan format Ketinggian
Air Siaga 4. Dan nilai smsSiaga4 menjadi false. Diikuti led1 hidup.
void Siaga3()//Void untuk level Siaga3
kirimSMS("Ketinggian Air Siaga 3");
smsSiaga4 = true;
smsSiaga3= false;
smsSiaga2= true;
smsSiaga1 = true;
digitalWrite(led1,LOW);
digitalWrite(led2, HIGH);
digitalWrite(led3, LOW);
digitalWrite(led4,LOW);
92
Pada saat ketinggian air Siaga 3 maka alat akan kirim sms dengan format
Ketinggian Air Siaga 3. Dan nilai smsSiaga3 menjadi false. Diikuti led2 hidup.
void Siaga2()//Void untuk level Siaga2
kirimSMS("Ketinggian Air Siaga 2");
smsSiaga4 = true;
smsSiaga3= true;
smsSiaga2= false;
smsSiaga1= true;
digitalWrite(led1,LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, HIGH);
digitalWrite(led4,LOW);
Pada saat ketinggian air Siaga 2 maka alat akan kirim sms dengan format
Ketinggian Air Siaga 2. Dan nilai smsSiaga2 menjadi false. Diikuti led 3 hidup dan
buzzer.
void Siaga1()//Void untuk level siaga1
kirimSMS("Ketinggian Air Siaga 1");
smsSiaga4 = true;
smsSiaga3 = true;
smsSiaga2 = true;
smsSiaga1 = false;
93
digitalWrite(led1,LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
Pada saat ketinggian air Siaga 1 maka alat akan kirim sms dengan format
Ketinggian Siaga 1. Dan nilai smsSiaga1 menjadi false. Diikuti led4 hidup dan
buzzer berbunyi.
3.7 Hasil Percobaan
Berikut ini hasil percobaan yang kami lakukan tentang pembuatan alat
peringatan dini bencana banjir dengan sistem sms menggunakan mikrokontroler
arduino, terdapat tiga bagian yaitu:
3.7.1 Hasil Input
Tabel III.1
Hasil Uji Deteksi Jarak Sensor Ultrasonik HC-SR04
No Jarak terukur dengan mistar
(cm) Jarak terukur Ultrasonik
Tampilan LCD 1 <15 <15 2 15 15 3 25 25 4 30 30
Sumber: Dokumen Pribadi
Pada hasil percobaan diatas dapat disimpulkan bahwa sensor ultrasonik
dalam kinerja optimal dan tinggi sensifitas dalam membaca jarak benda. Dalam hal
ini kenaikan dan penurunan ketinggian permukaan air masih dalam range atau
jangkauan pembacaan sensor.
94
3.7.2 Hasil Output
Dari hasil percobaan output dapat disimpulkan bahwa sensor ultrasonik bekerja
dengan baik yang terbukti dari tampilan LCD yang menampilkan jarak permukaan
air secara real time begitupun LED menyala sesuai dengan kondisi level air yang
telah ditentukan, selanjutnya untuk pengiriman SMS oleh SIM800L pun berjalan
normal dan sesuai yang diharapkan tak lepas dari peranan perolehan sinyal yang
bagus. Dan untuk peringatan tambahan yaitu buzzer berjalan dengan normal.
3.7.3 Hasil Percobaan Keseluruhan
Dari percobaan keseluruhan alat yang kami buat untuk peralatan yang kami
gunakan termasuk dalam kategori mudah didapat. Dan untuk kontruksi alat masih
dalam taraf menengah. Untuk tata letak komponen dan rangkaian cukup mudah
diatur karena kotak alat memiliki ruang yang cukup lebar.
Tabel III.2 Hasil Uji Alat
No Jarak(cm) SMS LED Buzzer Status
1 >30 (Siaga 4) Terkirim Menyala - OK
2 >=25 dan <30 (Siaga 3) Terkirim Menyala - OK
3 >15 dan <25 (Siaga 2) Terkirim Menyala - OK
4 <=15 (Siaga 1) Terkirim Menyala Berbunyi OK
Sumber: Dokumen Pribadi