July 6, 2018

Implementasi dan Pengujian Kontol Mesin Air otomatis Berbasis Arduino



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.22 Rangkaian 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 Arduino Gambar 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 àUpload atau 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:



 
  Gambar 4.27 blog Diagram Pengujian Modul GSM900A

4.3.3             Hasil Pengujian Rangkaian Relay
hasil pengujian rangkaian Relay dilakukan dengan memutus aliran listrik pada mesin pompa air.

 
 Gambar 4.28 blog Diagram Pengujian Relay


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:

 
  Gambar 4.29 Blog Diagram Pengujian Sensor

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.      GSM SIM900A
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 àUpload atau Ctrl + U. Dapat dilihat pada gambar 4.32 di bawah ini :

Gambar 4.32 Proses Uploading Program Dari Komputer Ke Arduino




 PROGRAM ARDUINO IDE

#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();
}






Continue reading Implementasi dan Pengujian Kontol Mesin Air otomatis Berbasis Arduino