IMPLEMENTASI DAN PENGUJIAN
Pada bab ini akan dibahas tentang pengujian berdasarkan perancangan dari sistem yang telah dibuat. Pengujian ini dilakukan untuk mengetahui kemampuan dari sistem dan untuk mengetahui apakah sistem sudah berjalan dengan perencanaan.
4.1 Kebutuhan Sistem
Adapun beberapa peralatan yang digunakan dalam penelitian ini adalah sebagai berikut :
1. Perangkat Keras
a. Laptop atau Personal Computer (PC)
b. Arduino Uno 1.6.5
c. Modem GSM SIM900A.
d. Kabel Data untuk Arduino
e. LCD Karakter 16x2
f. Mur dan Baut
g. Kabel Pelangi
2. Perangkat Lunak
a. Arduino IDE 1.6.5
b. Proteus Versi 8.1
4.2 Implementasi Sistem
Setelah semua kebutuhan sistem yang telah disiapkan sudah terpenuhi, maka tahapan selanjutnya adalah menerapkan dan membangun sistem yang akan dibuat.
4.2.1 Rangkaian Arduino Uno 1.6.5
Arduino Uno 1.6.5 pada perancangan alat ini merupakan bagian utama sebagai sistem kendali keseluruhan input dan output yang terhubung ke Arduino.
Gambar 4.20 Rangkaian Arduino Uno 1.6.5
Pada Gambar 4.20 terlihat bahwa sistem minimum Arduino Uno terhubung dengan bagian-bagian yang lain seperti LCD 16x2, rangkaian transistor sebagai driver lampu LED dan GSM modul. Pada sistem minimum Arduino Uno, terdapat lampu indikator yang difungsikan untuk mengetahui apakah rangkaian sedang bekerja atau tidak.
4.2.2Rangkaian LCD Karakter 16x2
Rangkaian LCD pada pembuatan alat ini digunakan untuk menampilkan data input bluetooth dan SMS Gateway yang dikirim oleh smartphone androidyang kemudian diproses oleh rangkaian Arduino uno 1.6.5
Gambar 4.21 Rangkaian LCD Karakter 16x2
4.2.3 Rangkaian Modem GSM SIM900A
Rangkaian GSM pada alat ini berfungsi untuk komunikasi antara Smartphone dengan alat yaitu melalui media komunikasi SMS. GSM dapat mengirim dan menerima pesan SMS melalui Sim Card.
Gambar 4.22Rangkaian Modem GSM SIM900A
4.3 Pengujian Rangkaian
Pengujian dilakukan untuk mengetahui fungsi dan kinerja dari keseluruhan sistem. Program pengujian disimulasikan di suatu sistem yang sesuai. Pengujian ini dilaksanakan untuk mengetahui kehandalan dari sistem dan untuk mengetahui apakah sudah sesuai dengan perencanaan atau belum. Pengujian pertama-tama dilakukan secara terpisah, dan kemudian dilakukan ke dalam sistem yang telah terintegrasi.
Pengujian yang dilakukan pada bab ini antara lain:
1. Pengujian Minimum Sistem Arduino Uno 1.6.5 dengan LCD.
2. Pengujian Rangkaian Sistem Arduino Uno 1.6.5 dengan GSM 900A
3. Pengujian Alat secara keseluruhan.
4.3.1 Pengujian Minimum Sistem Arduino Uno dengan LCD
Rangkaian LCD pada penelitian ini berfungsi untuk menampilkan informasi berupa tulisan yang dikirimkan oleh aplikasi pada smartphone android. Untuk mengetahui apakah rangkaian LCD yang telah dibuat dapat bekerja sesuai yang diinginkan maka dilakukan pengujian rangkaian LCD yang dihubungkan dengan minimum sistem Arduino Uno 1.6.5.
Peralatan yang dibutuhkan untuk melakukan pengujian ini yaitu :
1. Minimum Sistem Arduino Uno 1.6.5.
2. Kabel data Arduino Uno 1.6.5.
3. Rangkaian LCD 16 x 2.
4. Software Arduino IDE.
Blok diagram pengujian rangkaian LCD dengan ArduinoGambar 4.4:
Gambar 4.23 Blok Diagram Pengujian Rangkaian LCD dengan Arduino Uno
Langkah-langkah melakukan pengujian rangkaian LCD :
1. Buka aplikasi Arduino IDE
2. Selanjutnya akan muncul tampilan awal “sketch_xxxxxx” secara otomatis seperti pada langkah sebelumnya.
3. Mengetikkan listing program untuk pengujian rangkaian LCD seperti pada gambar 4.24.
Gambar 4.24 Listing Program Pengujian LCD
4. Klik Sketchà Verify. Kemudian akan muncul kotak dialog untuk menyimpanfile project yang baru dibuat. Dapat dilihat pada Gambar 4.25.
Gambar 4.25 Kotak Dialog menyimpan Program
5. Kalau sudah tidak ada error, maka klik ikon à Uploadatau Ctrl + U. Dapat dilihat pada gambar 4.26 di bawah :
Gambar 4.26 Proses Uploading Program Dari Komputer Ke Arduino
4.3.2 Pengujian Rangkaian modul GSM SIM900A
Hasil pengujian modul GSM SIM900A dilakukan dengan mengirim pesan singkat kepada pemilik pompa air bahwa penampungan air sudah penuh. Pemilik akan menghidupkan pompa air kembali dengan menghidupkan dengan mengirim pesan #POMPA ON@. Proses pengiriman dan menerima pesan dapat digambarkan sebagai berikut:
4.3.3 Hasil Pengujian Rangkaian Relay
hasil pengujian rangkaian Relay dilakukan dengan memutus aliran listrik pada mesin pompa air.
4.3.4 Hasil Pengujian Rangkaian Sensor Gerak
Hasil pengujian rangkaian sensor gerak dilakukan dengan mengitung nilai pembacaan sensor gerak yang telah dikaliberasi dengan nilai referensi internal
yang disediakan oleh board Arduino uno. Pengukuran nilai gerak akan dipampilkan di LCD 16x2. Digambarkan sebagai berikut:
4.3.5 Pengujian Alat Secara Keseluruhan
Pengujian alat secara keseluruhan ini merupakan gabungan dari pengujian-pengujian tiap bagian input dan output yang telah dilakukan sebelumnya. Peralatan yang dibutuhkan untuk melakukan pengujian ini yaitu :
1. Minimum Sistem Arduino Uno 1.6.5.
2. Kabel data Arduino Uno IDE.
3. GSMSIM900A
4. Rangkaian LCD.
5. Software Arduino IDE.
Blok diagram pengujian Alat secara Keseluruhan seperti ditunjukkan pada Gambar 4.30 berikut ini:
Gambar 4.30 Blok Diagram Pengujian Rangkaian Keseluruhan
Langkah-langkah melakukan pengujian Alat secara Keseluruhan :
1. Buka aplikasi Arduino IDE
2. Selanjutnya akan muncul tampilan awal “sketch_xxxxxx” secara otomatis seperti pada langkah sebelumnya.
3. Mengetikkan listing program untuk pengujian rangkaian Keseluruhan.
4. Klik Sketchà Verify. Kemudian akan muncul kotak dialog untuk menyimpan file project yang baru dibuat. Dapat dilihat pada Gambar 4.12 di bawah ini.
Gambar 4.31 Kotak Dialog menyimpan Program
5. Kalau sudah tidak ada error, maka klik ikon à Uploadatau Ctrl + U. Dapat dilihat pada gambar 4.32 di bawah ini :
Gambar 4.32 Proses Uploading Program Dari Komputer Ke Arduino
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <GSM.h>
#define PINNUMBER ""
// initialize the library instance
GSM gsmAccess;
GSM_SMS sms;
LiquidCrystal_I2C lcd(0x3F,16,2); // set the LCD address to 0x27 for a 20 chars and 4 line display
#define level_1 A3
#define level_2 A2
#define level_3 A1
#define level_4 A0
#define buzzer 12
#define selenoid 6
#define pompa 7.
int i,j;
char isi_SMS[13],c;
char senderNumber[20];
char pompa_on[13]="#POMPA ON@";
int level1, level2, level3, level4;
boolean flag_sms,flag_level1,flag_level4,pump_on;
void setup() {
lcd.backlight(); lcd.init();
Serial.begin(9600);
// put your setup code here, to run once:
pinMode(level_1,INPUT); digitalWrite(level_1,HIGH);
pinMode(level_2,INPUT); digitalWrite(level_2,HIGH);
pinMode(level_3,INPUT); digitalWrite(level_3,HIGH);
pinMode(level_4,INPUT); digitalWrite(level_4,HIGH);
pinMode(buzzer,OUTPUT);
pinMode(pompa,OUTPUT); digitalWrite(pompa,HIGH);
pinMode(selenoid,OUTPUT); digitalWrite(selenoid,HIGH);
lcd.setCursor(0,0); lcd.print("READING GSM ");
boolean notConnected = true;
while (notConnected)
{ if (gsmAccess.begin(PINNUMBER) == GSM_READY)
notConnected = false;
else
{ lcd.setCursor(0,0); lcd.print("GSM Not READY ");
Serial.println("GSM Not connected");
delay(1000);
}
}
lcd.setCursor(0,0); lcd.print("GSM READY..... ");
Serial.println("GSM initialized");
delay(2000);
lcd.setCursor(0,0); lcd.print(" PRESENTED By : ");
lcd.setCursor(0,1); lcd.print("--LUNGGUK A.S.--");
delay(2000); lcd.clear();
}
void baca_sensor() {
level1=analogRead(level_1);
level2=analogRead(level_2);
level3=analogRead(level_3);
level4=analogRead(level_4);
}
void loop() {
// put your main code here, to run repeatedly:
if(sms.available())
{ //Serial.println("Message received from:");
sms.remoteNumber(senderNumber, 20);
lcd.setCursor(0,0); lcd.print(senderNumber);
i=0;
while (c = sms.read()) {
isi_SMS[i]=c;
if(isi_SMS[i]=='@') goto lompat;
//Serial.print(c);
i++;
if(i>120) {sms.flush(); goto selesai;}
}
lompat:
lcd.setCursor(0,1); lcd.print(isi_SMS);
sms.flush();
delay(100);
pump_on=0;
for(j=0;j<i;j++)
{ if(pompa_on[j]!=isi_SMS[j]) pump_on=1; }
i=0;
lcd.clear();
lcd.setCursor(0,0); lcd.print("PERINTAH-->");
if(pump_on==0) {
digitalWrite(selenoid,LOW);
digitalWrite(pompa,LOW);
lcd.setCursor(0,0); lcd.print("SMS DIVERIFIKASI");
lcd.setCursor(0,1); lcd.print("-POMPA AIR AKTIF-");
delay(3000);
}
else{lcd.setCursor(0,1); lcd.print("Format SMS SALAH"); kirim_sms_salah(); delay(3000); }
selesai:
for(j=0;j<12;j++) { isi_SMS[j]=' '; }
//'''''''''''''''''''''''''''''''''''''''''''''
sms.flush();
delay(100);
//("\nEND OF MESSAGE");
sms.flush(); // Delete message from modem memory
}
baca_sensor();
if(level1>700 && level2>700 && level3>700 && level4>700) {
lcd.setCursor(0,0); lcd.print("--Level Air 0--");
if(flag_level1==0) { flag_level1=1; kirim_SMS_Level_1(); }
}
else if(level1<700 && level2>700 && level3>700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air 1--"); flag_level4=0; }
else if(level1<700 && level2<700 && level3>700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air 2--"); flag_level1=0; flag_level4=0; }
else if(level1<700 && level2<700 && level3<700 && level4>700) { lcd.setCursor(0,0); lcd.print("--Level Air 3--"); flag_level1=0; }
else if(level1<700 && level2<700 && level3<700 && level4<700) {
lcd.setCursor(0,0); lcd.print("--Level Air 4--");
flag_level1=0;
digitalWrite(selenoid,HIGH);
digitalWrite(pompa,HIGH);
digitalWrite(buzzer,HIGH); delay(100);
digitalWrite(buzzer,LOW); delay(100);
if(flag_level4==0) { flag_level4=1; kirim_SMS_Level_4(); }
}
}
void kirim_SMS_Level_1() {
// send the message
sms.beginSMS("082304063142");
sms.print("Bak Air Kosong. Balas \"#POMPA ON@\" Untuk Mengisi Bak Air...");
sms.endSMS();
lcd.setCursor(0,1); lcd.print("--MENGIRIM SMS--");
delay(2000);
}
void kirim_SMS_Level_4() {
// send the message
sms.beginSMS("082304063142");
sms.print("Bak Air Sudah Penuh. Proses Pengisian Air Selesai...");
sms.endSMS();
}
void kirim_sms_salah() {
// send the message
sms.beginSMS("082304063142");
sms.print("Format SMS Salah Booos");
sms.endSMS();
}