xvii
DAFTAR PUSTAKA
[1] COMTECH EFDATA, 2014, “CDM-570/L & CDM-570/L-IP Satellite Modems”, Arizona – Amerika Serikat, http://www.efdata.com diakses 1 November 2014.
[2] COMTECH EFDATA, 2009, “Manual CDM-570 70/140 MHz Satellite Modem, CDM-570L L-Band Satellite Modem, CDMR-570L Reduced Chassis Depth L-Band Satellite Modem”.
[3] Maxim Intergrated Product, 2006, “+5V-Powered, Multichannel RS-232 Drivers/Receivers, 19-4323; Rev 15; 1/06”, Sunnyvale, Amerika Serikat
[4] Arduino, “Arduino Uno”, 2014,
http://arduino.cc/en/Main/ArduinoBoardUno, diakses 20 November 2014
[5] Arduino, 2014, “Language Reference”,
xviii
[6] Seedstudio Wiki, 2014, “Tutorial Product GPRS Shield 2.0 – Wiki”, http://www.seeedstudio.com/wiki/GPRS_Shield_V2.0, diakses 20 November 2014.
[7] SIMCom Wireless Solution Ltd, 2010, “SIM900 AT Command Set, SIM900_ATC_V1.00”, Shanghai..
[8] Nagois Enterprises, 2009-2014, “Nagios Overview”, http://www.nagios.org/about/overview/ diakses 20 November 2014
[9] Solarwinds, 2003-2014, “Network Performance Monitor”, http://www.solarwinds.com/network-performance-monitor.aspx diakses 20 November 2014
[10] Monitor.Us, 2006-2014, “Monitor Everything Spend Nothing”, http://www.monitor.us/en/website-monitoring diakses tanggal 20 November 2014
[11] Arduino, 2014, “Download the Arduino Software”, http://arduino.cc/en/Main/Software diakses 20 November 2014
xix
[12] H. Hyat, William, E. Kemmerly, Jack, M, Durbin, Steven, 2006, Rangkaian Listrik, Jilid 1, Edisi 6, diterjemahan oleh : Wiwit Kastawan, Editor oleh : Wibi Handani, Jakarta: Erlangga.
[13] J. Sarik and I. Kymissis, 2010, “Lab kits using the arduino
prototypingplatform,” IEEE, [Online]
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=5673417 diakses 1 Januari 2015.
[14] bin Mohd Shuhaimi, dkk, 2011, "The new services in Nagios: Network bandwidth utility, email notification and sms alert in improving the network
performance", IEEE, [Online]
http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=6122800 diakses 1 Januari 2015
[15] Pervilä, Mikko A.T., 2007, "Using Nagios to monitor faults in a self-healing environment", Department of Computer Science, Helsinki University FINLAND, [Online] http://www.cs.helsinki.fi/u/pervila/ngs/paper6.pdf diakses 1 Januari 2015
[16] Simon Monk, 2010, "30 Arduino Projects for The Evil Genius", Mc Graw Hill
xx
[17] A., Parvathy, Gudivada, Venkata Rohit Raj, dkk, 2011, "RFID Based Exam Hall Maintenance System", in IJCA Special Issue on “Artificial Intelligence Techniques - Novel Approaches & Practical Applications” Sastra University.
[18] Adivarekar, Jaiee Sitaram dkk, 2013, "Patient Monitoring System Using GSM Technology", International Journal Of Mathematics And Computer Research [Volume 1 issue 2 March 2013]Page No.73-78 ISSN :2320-7167
xxi
LAMPIRAN
Listing Program
#include <SoftwareSerial.h> //menggunakan Serial Software SoftwareSerial GPRSsms(7,8); //rx,tx GSM Shield
SoftwareSerial Monitor(2,3); //rx,tx PC via TTL to RS-232 Converter
//membuat persamaan antara pin satelit Modem Comtech CDM-570 dengan Arduino #define rx8nc 4 #define rx15no 5 #define tx14nc 6 #define tx6no 10 #define unit5nc 11 #define unit12no 12 #define led 13 #define GPRSpwr 9 //variabel GPRS String catatan=("");
int tiktok, sms, uptime, downtime, sambung, taksambung, dimatikan, dihidupkan, upRX,
downRX, upTX, downTX, upUNIT, downUNIT;
xxii
void setup() // Setup hanya dijalankan 1 kali pada saat inisialisasi. { // begin void setup
//mengatur fungsi INPUT/OUTPUT dari pin Arduino pinMode(rx8nc, INPUT); pinMode(rx15no, INPUT); pinMode(tx14nc, INPUT); pinMode(tx6no, INPUT); pinMode(unit5nc, INPUT); pinMode(unit12no,INPUT); pinMode(led ,OUTPUT);
//menghidupkan hardwareserial dan softwareserial Serial.begin(9600);
Monitor.begin(9600); GPRSsms.begin(19200); //setting nilai awal; tiktok=0; sms=0; upRX=0; downRX=0; upTX=0; downTX-0; upUNIT=0; downUNIT=0;
xxiii //aktivasi GPRS Shield
digitalWrite(GPRSpwr, LOW);delay(100); //softpower ON untuk GPRS Shield digitalWrite(GPRSpwr, HIGH);delay(500);
digitalWrite(GPRSpwr, LOW);
delay(10000); // menunggu GPRS Shield aktif. } // end void setup.
void perkenalan() {
//Perkenalan program lewat serial COM port PC & usb port Arduino tulisln("");tulisln("");
tulisln("
======================================================"); tulisln(" Alat monitoring Satelit Modem Comtech CDM-570/CDM-570L"); tulisln(" Oleh Ronny La Ode Aksah - 41410120073 ");
tulisln("
======================================================\n\n \n");
//kirim sms perdana
catatan="Monitoring Satelit Modem diaktifkan";
if ((digitalRead(unit5nc)==0 && digitalRead(unit12no)==1) ||
(digitalRead(unit5nc)==1 && digitalRead(unit12no)==0)) SMSstatus(); }
xxiv void SMSstatus() //mengirim sms
{ sms++;
if (sms>32700) sms=0;
GPRSsms.print("AT+CMGF=1\r"); delay(100); //Mengirim sms dalam mode text mode
GPRSsms.println("AT + CMGS = \"+62811912900\""); delay(100);//Nomor handphone
GPRSsms.print("SMS ke-"); GPRSsms.println(sms); //nomor logg berdasarkan clock tiktok
GPRSsms.print("LOG No."); GPRSsms.println(tiktok); //nomor logg berdasarkan clock tiktok
GPRSsms.println(CID); delay(100); //Isi SMS yang dikirim GPRSsms.print("\nRX="); if (digitalRead(rx8nc)==1)
GPRSsms.println("PROBLEM");
else GPRSsms.println("OK"); delay(100); //Isi SMS yang dikirim
GPRSsms.print("TX="); if (digitalRead(tx14nc)==1) GPRSsms.println("PROBLEM");
else GPRSsms.println("OK"); delay(100); //Isi SMS yang dikirim
GPRSsms.print("UNIT="); if (digitalRead(unit5nc)==1) GPRSsms.println("PROBLEM");
xxv
else GPRSsms.println("OK"); delay(100); //Isi SMS yang dikirim
GPRSsms.print("CATATAN=");GPRSsms.print(catatan);
GPRSsms.println((char)26);delay(100);//Kode ASCII dari ctrl+z adalah 26 if (tiktok!=0) //mencegah tulisan SMS terkirim pada saat mulai
{
Monitor.print(tiktok);Monitor.print(" : ");
Monitor.println("SMS terkirim"); // menulis di port monitoring Serial.print(tiktok);Serial.print(" : ");
Serial.println("SMS terkirim"); // menulis di port serial USB }
delay(5000); //memberikan kesempatan GPRS Shield menyelesaikan mengirim SMS.
}
void tulis(String teks) {
Serial.print(teks); Monitor.print(teks); }
void tulisln(String teks) {
Serial.println(teks); Monitor.println(teks);
xxvi } void checkRX() { // awal check RX if (digitalRead(rx8nc)==1) { //RXdown downRX++; if (downRX>32700) downRX=10; if (downRX==5) { upRX=0;
catatan="AlarmRX"; //terjadi jika prolem RX
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } if (digitalRead(rx15no)==1) { //RXup upRX++; if (upRX>32700) upRX=35; if (upRX==30) {
xxvii downRX=0;
catatan="AlarmRX Pulih"; //terjadi jika problem RX pulih
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus();
} }
xxviii void checkTX() { //awal CheckTX if (digitalRead(tx14nc)==1) { //TXup downTX++; if (downTX>32700) downTX=10; if (downTX==5) { upTX=0;
catatan="AlarmTX"; //terjadi jika problem TX
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } if (digitalRead(tx6no)==1) { //TXdown upTX++; if (upTX>32700) upTX=35; if (upTX==30) { downTX=0;
xxix
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } } //akhir CheckTX void checkUNIT() { //awal CheckUNIT if (digitalRead(unit5nc)==1) { //unit down downUNIT++; if (downUNIT>32700) downUNIT=10; if (downUNIT==5) { upUNIT=0;
catatan="AlarmUNIT"; //terjadi jika problem Unit
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus();
} }
xxx if (digitalRead(unit12no)==1) { //unit up upUNIT++; if (upUNIT>32700) upUNIT=35; if (upUNIT==30) { downUNIT=0;
catatan="AlarmUNIT Pulih"; //terjadi jika problem UNIT pulih Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } } // akhir CheckUNIT void Kelip() {
digitalWrite(led, HIGH); delay(100); digitalWrite(led, LOW); delay(400); }
xxxi void Blink()
{
digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
void loop()
{ //awal loop utama
if (tiktok==0) perkenalan(); tiktok++; //logging
if (tiktok>32700) tiktok=1;
// jika pin unit5nc saja atau pin unit12no saja berlogika satu, maka jalankan program dalam loop1, jika tidak jalankan loop2. Ini memastikan bahwa kabel Alarm sudah terpasang antara satelit modem comtech cdm-570 dengan perangkat monitoring.
if ((digitalRead(unit5nc)==0 && digitalRead(unit12no)==1) || (digitalRead(unit5nc)==1 && digitalRead(unit12no)==0)) { //mulai loop1, kabel terpasang
sambung++;
if (sambung>32700) sambung=8;
if (sambung==3) // check apakah kabel terpasang {
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println("Kabel Alarm terpasang");
Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB taksambung=0;
xxxii }
Kelip();
if (digitalRead(rx8nc)==1 && digitalRead(tx14nc)==1 &&
digitalRead(unit5nc)==1) //check apakah satelit modem mati atau hidup { //awal loop satelit modem dimatikan
dimatikan++;
if (dimatikan>327000) dimatikan=6; if (dimatikan==1)
{
dihidupkan=0;
catatan="Satelit Modem dimatikan";
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus();
}
} //akhir loop satelit modem dimatikan else
{ //awal prosedure satelit modem dihidupkankan dihidupkan++;
if (dihidupkan>32700) dihidupkan=6; if (dihidupkan==1)
{
xxxiii catatan="Satelit Modem dihidupkan";
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan); Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } checkRX(); checkTX(); checkUNIT();
if ((downRX!=0) || (downTX!=0) || (downUNIT!=0)) { downtime++; if (downtime>32700) downtime=10; if (downtime==5) { //mulai downtime uptime=0; } } else { //mulai uptime uptime++; if (uptime>32700) uptime=40;
xxxiv if (uptime==60)
{
downtime=0;
catatan="Tidak ada alarm";
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println(catatan);
Serial.print(tiktok);Serial.print(" : ");
Serial.println(catatan); // menulis di port serial USB SMSstatus(); } } } //akhir loop1 else {
//mulai loop kabel tidak terpasang Blink();
digitalWrite(led,LOW); taksambung++;
if (taksambung>32700) taksambung=8;
if (taksambung==3) //satu kali saya memberikan logg {
Monitor.print(tiktok);Monitor.print(" : ");Monitor.println("Kabel Alarm tidak terpasang");
Serial.print(tiktok);Serial.print(" : ");Serial.println("Kabel Alarm tidak terpasang");
xxxv sambung=0;
}
//akhir loop kabel tidak terpasang }