Sistem Pemantauan & Peringatan Banjir Yang Terintegrasi Dengan Website Melalui Teknologi GPRS
DAFTAR PUSTAKA
[1]
Tanpa Nama. Tanpa Tahun. “Banjir ”.https://id.wikipedia.org/wiki/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.
[7]
Bramer, Max. 2015. Web Programming with PHP and MySQL. London:
Springer International Publishing
45
Universitas Sumatera Utara
[8]
Connoly Randy,Ricardo 2015. Fundamental of Web Programming. New
Jersey : Pearson Education, INC.
LAMPIRAN
Lampiran A: Program Arduino
#include
SoftwareSerial gprsSerial(7,8);
byte sensorInterrupt =0;
volatile int NbTopsFan; //mengukur jumlah pulah pulsa
float Calc;
int hallsensor = 2;
float height;
//Pin digunakan untuk sensor air
// 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
pinMode(trigPin,OUTPUT); // Set pin 4 jadi Output
pinMode(echoPin,INPUT); // Set pin 5 jadi input
}
46
Universitas Sumatera Utara
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
sm =0; // status message =0
startGPRS(); // activekan GPRS
sendtoweb(); // kirim ke web
}
47
Universitas Sumatera Utara
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 5m atau < 0 ?
Serial.println("Out of Range");
}
else
{
height = 1.55 - dist; // Rumus menghitung kenaikan air sungai
//adalah ketinggian normal air sungai - jarak
48
Universitas Sumatera Utara
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);
Serial.println("Config SIM900 . . .");
49
Universitas Sumatera Utara
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
gprsSerial.println("AT+HTTPINIT");
50
Universitas Sumatera Utara
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("");
51
Universitas Sumatera Utara
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();
}
void senseFlow()
{
52
Universitas Sumatera Utara
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
Informasi Ketinggian dan Kecepatan Air Sungai
Sistem Peringatan dini Banjir
Informasi Ketinggian (m) dan Debit Air Sungai (km/Jam)
53
Universitas Sumatera Utara
Lampiran C : Program Web koneksi.php
Lampiran D : Program Web simpan.php
[1]
Tanpa Nama. Tanpa Tahun. “Banjir ”.https://id.wikipedia.org/wiki/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.
[7]
Bramer, Max. 2015. Web Programming with PHP and MySQL. London:
Springer International Publishing
45
Universitas Sumatera Utara
[8]
Connoly Randy,Ricardo 2015. Fundamental of Web Programming. New
Jersey : Pearson Education, INC.
LAMPIRAN
Lampiran A: Program Arduino
#include
SoftwareSerial gprsSerial(7,8);
byte sensorInterrupt =0;
volatile int NbTopsFan; //mengukur jumlah pulah pulsa
float Calc;
int hallsensor = 2;
float height;
//Pin digunakan untuk sensor air
// 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
pinMode(trigPin,OUTPUT); // Set pin 4 jadi Output
pinMode(echoPin,INPUT); // Set pin 5 jadi input
}
46
Universitas Sumatera Utara
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
sm =0; // status message =0
startGPRS(); // activekan GPRS
sendtoweb(); // kirim ke web
}
47
Universitas Sumatera Utara
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 5m atau < 0 ?
Serial.println("Out of Range");
}
else
{
height = 1.55 - dist; // Rumus menghitung kenaikan air sungai
//adalah ketinggian normal air sungai - jarak
48
Universitas Sumatera Utara
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);
Serial.println("Config SIM900 . . .");
49
Universitas Sumatera Utara
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
gprsSerial.println("AT+HTTPINIT");
50
Universitas Sumatera Utara
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("");
51
Universitas Sumatera Utara
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();
}
void senseFlow()
{
52
Universitas Sumatera Utara
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
Informasi Ketinggian dan Kecepatan Air Sungai
Sistem Peringatan dini Banjir
Informasi Ketinggian (m) dan Debit Air Sungai (km/Jam)
53
Universitas Sumatera Utara
Lampiran C : Program Web koneksi.php
Lampiran D : Program Web simpan.php