DAFTAR PUSTAKA
[1] Tanpa Nama. Tanpa Tahun. “Banjir
Diakses. 10 Januari 2017
[2] Setyaningsih, Emy dkk. 2015. “Sistem Informasi Monitoring Kereta Api Berbasis WebServer MenggunakanLayanan GPRS”. Jurnal Momentum Vol.17 No.2. Agustus 2015
[3] Mcrobets, Michael. 2013. “Beginning Arduino”. New York : Springer Science+Business Media.
[4] Studiawan, Hudan dkk. 2013. “Sistem Pendeteksi Dini Banjir Menggunakan Sensor Kecepatan Air dan Sensor Ketinggian Air pada Mikrokontroler Arduino”. JURNAL TEKNIK POMITS Vol. 2, No. 1, (2013)
[5] Eka Mulyana dan Rindi Kharisman, " Perancangan Alat Peringatan Dini Bahaya Banjir dengan Mikrokontroler Arduino Uno R3," Citec Journal, Vol. 1, No. 3, Mei 2014 – Juli 2014.
[6] Artanto, Dian. 2012. Interaksi Arduino dan LabVIEW. Jakarta : PT. Elex Media Komputindo.
[8] Connoly Randy,Ricardo 2015. Fundamental of Web Programming. New Jersey : Pearson Education, INC.
LAMPIRAN
Lampiran A: Program Arduino #include <SoftwareSerial.h> SoftwareSerial gprsSerial(7,8);
byte sensorInterrupt =0;
volatile int NbTopsFan; //mengukur jumlah pulah pulsa float Calc;
int hallsensor = 2; //Pin digunakan untuk sensor air float height; // Tinggi
const int trigPin = 4; //Pin Trigger const int echoPin =5; // Pin Echo float wkt =0; float dist;
int sm ;
void setup() {
gprsSerial.begin(19200);//Mulai komunikasi GGPRS
pinMode(hallsensor, INPUT); //initializes digital pin 2 as an input Serial.begin(19200); // Mulai komunikasi serial monitor
void loop() {
delay(2000); //delay 2s
senseHigh(); // Ukur ketinggian senseFlow(); //Ukur kecepatan
if (height >0.8 && sm == 0) { // tinggi > 0.8 & sm =0 ? sm = 1; //status message =1 startGPRS(); //activekan GPRS sendtoweb(); // kirim ke web sendSMS(); // send sms }
else if (height >0.8 && sm == 1) { // tinggi > 0.8 & sm =1 ? startGPRS(); //activekan gprs sendtoweb(); //kirim ke web }
else
{ // jika tidak
delay(120000); // tunggu 2 menit }
void senseHigh() {
digitalWrite(trigPin, LOW); delayMicroseconds(2);
digitalWrite(trigPin, HIGH); //pancarkan gelombang delayMicroseconds(10); // ultrasonik selama digitalWrite(trigPin, LOW); // 10uS lalu matikan
wkt = pulseIn(echoPin,HIGH); // hitung waktu berapa lama pin echo menerima pulsa berlogika High ?
dist = ((wkt/1000000)*340)/2; //hitung jarak
if (dist>=5 || dist <=0 ){ // jarak > 5m atau < 0 ?
Serial.println("Out of Range"); }
else {
Serial.println("m");
Serial.print(" Ketinggian air = "); Serial.print(height);
Serial.println("m"); delay(3000); }
}
void rpm () //Fungsi memanggil interupsi {
NbTopsFan++; //Menghitung jumlah pulsa }
void toSerial() // fungsi untuk menampilkan { // hasil respon GPRS ke serial monitor while(gprsSerial.available()!=0)
{
Serial.write(gprsSerial.read()); }
}
void startGPRS() // fungsi untuk mengaktifkan GPRS {
gprsSerial.begin(19200);
delay(1000);
Serial.println("Done"); gprsSerial.flush(); Serial.flush();
gprsSerial.println("AT+CGATT?");// periksa GPRS delay(2000);
toSerial();
// atur parameter bearer
gprsSerial.println("AT+SAPBR=3,1, \"CONTYPE\", \"GPRS\""); delay(2000);
toSerial();
gprsSerial.println("AT+SAPBR=3,1, \"APN\",\"taif\""); delay(2000);
toSerial();
gprsSerial.println("AT+SAPBR=1,1"); delay(2000);
toSerial(); }
void sendtoweb() { // initialisasi http service
delay(2000); toSerial();
// set http param value
gprsSerial.print("AT+HTTPPARA=\"URL\",\"sisteminformasibanjir.pe.hu/simpan.ph p?");
gprsSerial.print("sensor1="); gprsSerial.print(height); gprsSerial.print("&sensor2="); gprsSerial.print(Calc, DEC); gprsSerial.println("\""); delay(2000);
toSerial();
// set http action type 0 = GET, 1 = POST, 2 = HEAD gprsSerial.println("AT+HTTPACTION=0");
delay(6000); toSerial();
// read server respon
gprsSerial.println("AT+HTTPREAD"); delay(1000);
toSerial();
//akhiri
gprsSerial.println("AT+HTTPTERM"); toSerial();
delay(300);
gprsSerial.println(""); delay(10000);
}
void sendSMS() {
gprsSerial.print("AT+CMGF=1\r"); // Mode mengirim sms dalam bentuk tesk delay(100);
gprsSerial.println("AT + CMGS = \"+085261541277\""); //Mengirim pesan delay(100);
gprsSerial.println(" Peringatan!. Kemungkinan akan terjadi banjir di daerah sungai deli");
delay(100);
gprsSerial.println((char)26); //kode ASCI ctrl+z adalah 26 delay(100);
gprsSerial.println(); }
attachInterrupt(sensorInterrupt, rpm, RISING); // pasang interupsi delay(1000);
detachInterrupt(sensorInterrupt); // lepaskan interupsi
Calc = (NbTopsFan * 60 *0.000157522*3.6); // rumus yang digunakan Serial.print (Calc); //print nilai yang terhitung
Serial.print (" km/jam\r\n"); //print km/jam NbTopsFan =0;
}
Lampiran B : Program Web Index.php <!DOCTYPE html>
<html> <head>
<title> Informasi Ketinggian dan Kecepatan Air Sungai </title> <link
href="https://fonts.googleapis.com/css?family=Covered+By+Your+Grace|Raleway:1 00,500,600,800" rel="stylesheet">
<link rel="stylesheet" type="text/css" href="style.css"> </head>
<body> <div class="header">
<h1>Sistem Peringatan dini Banjir</h1> </div>
<br>
<img src="unnamed.jpg" alt="Sungai Deli Juanda" style="width:400px;height:300px;" border="2">
<table class="box" width="500" border="3" cellspacing="2" cellpadding="5"><tr> <td><b>date/time</b></td>
<td><b>Ketinggian air sungai (m di atas permukaan normal)</b></td>
<td><b>Kecepatan arus sungai (Km/jam)</b></td> <td><b>Status </b></td>
</tr> <tr> <?php
include("koneksi.php");
$result = mysql_query("select * from tabel ORDER BY id DESC LIMIT 10");
while($linha = mysql_fetch_array($result)) {
echo '<tr>';
echo '<td>'.$linha["waktu"].'</td>'; echo '<td>'.$linha["ketinggian"].'</td>'; echo '<td>'.$linha["arus"].'</td>'; echo '<td>'.$linha["status"].'</td>';
} ?> </tr>
</table> </body> </html>
Lampiran C : Program Web koneksi.php
<?php
error_reporting(E_ALL ^ E_DEPRECATED); $username = "u634004439_gian";
$password = "7919945";
$host = "mysql.idhostinger.com";
$konek = mysql_connect($host,$username,$password); $select = mysql_select_db('u634004439_data',$konek); ?>
Lampiran D : Program Web simpan.php <?php
date_default_timezone_set('Asia/Jakarta'); echo date('Y-m-d H:i:s');
$sensor1 = $_GET['sensor1']; $sensor2 = $_GET['sensor2'];
if ( $sensor1 > 0.8 ) {
$status = "Siaga"; }
else {
$status = "Aman"; }
$sql_insert = "insert into tabel (waktu,ketinggian,arus,status) values ('$waktu','$sensor1','$sensor2','$status')"
mysql_query($sql_insert); if($sql_insert) {
echo"data tersimpan"; }
else{
echo "gagal"; }
?>
background-color:#F5F5DC; width:50%;
height:300px;
font-family: arial, sans-serif; border-collapse: collapse;
/* margin-left:-100px; half of width */ /* margin-top:-100px; half of height */ position:static;
top: 30%;
}
.header {
background-image:
url("http://www.aimesoft.com/templates/aimesoft/images/banner1.png"); height:100px;
background-position: left center; text-align:center;
padding-top: 10px; background-size: cover
body {
/* Old browsers */ background: #87CEFA padding: 5px;
margin: 5px;
}
img{
align : middle; padding-top: 5px; padding-right: 5px; padding-bottom: 5px; padding-left: 5px; }
h1 {
color: #F5FFFA;
font-family: 'Playfair Display', sans-serif; font-size: 50px;
h2 {
border-bottom: 2px solid rgba(0, 0, 0, 0.4); color: black
font-family: 'Roboto', sans-serif; font-weight: 100;
font-size: 30px; line-height: 25px; text-align: left; width: 50%; padding:2px
}
.prop {
border: 1px solid #FFF; padding: 40px 0px; margin: 5px 0px; }
p {
color: #87CEFA; font-size: 20px;
font-family: 'Roboto', sans-serif; font-weight: 100;
line-height: 34px; text-align: left; width: 50%; margin: 20px;
}
.byline {
color: rgba(255, 255, 255, 0.5); float: left;
font-family: 'Roboto', sans-serif; font-weight: 100;
font-size: 14px; padding-left: 10px;