Tugas UAS Mikro





Aplikasi Kontrol Kebun

1. Komponen  [kembali]

1. Arduino

Arduino adalah kit elektronik atau papan rangkaian elektronik open source yang di dalamnya terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun perangkat lain. 


2. LED





Light Emitting Diode atau sering disingkat dengan LED adalah komponen elektronika yang dapat memancarkan cahaya monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat elektronik lainnya.

3. LM35



Sensor suhu LM35 adalah komponen elektronika yang memiliki fungsi untuk mengubah besaran suhu menjadi besaran listrik dalam bentuk tegangan.Sensor Suhu LM35 yang dipakai dalam penelitian ini berupa komponen elektronika elektronika yang diproduksi oleh National Semiconductor. LM35 memiliki keakuratan tinggi dan kemudahan perancangan jika dibandingkan dengan sensor suhu yang lain, LM35 juga mempunyai keluaran impedansi yang rendah dan linieritas yang tinggi sehingga dapat dengan mudah dihubungkan dengan rangkaian kendali khusus serta tidak memerlukan penyetelan lanjutan.


4. Potensiometer


Potensiometer adalah resistor tiga terminal dengan sambungan geser yang membentuk pembagi tegangan dapat disetel. Jika hanya dua terminal yang digunakan (salah satu terminal tetap dan terminal geser), potensiometer berperan sebagai resistor variabel atau Rheostat. Potensiometer biasanya digunakan untuk mengendalikan peranti elektronik seperti pengendali suara pada penguat.

5. Motor DC

Motor Listrik DC atau DC Motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan (motion). Motor DC ini juga dapat disebut sebagai Motor Arus Searah. Seperti namanya, DC Motor memiliki dua terminal dan memerlukan tegangan arus searah atau DC (Direct Current) untuk dapat menggerakannya. Motor Listrik DC ini biasanya digunakan pada perangkat-perangkat Elektronik dan listrik yang menggunakan sumber listrik DC seperti Vibrator Ponsel, Kipas DC dan Bor Listrik DC.


6. Sensor Kelembaman Tanah

 

Soil Moisture Sensor adalah suatu modul yang berfungsi untuk mendeteksi tingkat kelembaban tanah dan juga dapat digunakan untuk menentukan apakah ada kandungan air di tanah/ sekitar sensor.Cara penggunaan modul ini cukup mudah, yakni dengan memasukkan sensor ke dalam tanah dan setting potensiometer untuk mengatur sensitifitas dari sensor. Keluaran dari sensor akan bernilai 1 / 0 ketika kelembaban tanah menjadi tinggi/ rendah yang dapat di treshold dengan potensiometer. Spesifikasi dari sensor ini adalah :

1)      Comparator menggunakan LM393

2)      Hanya menggunakan 2 plat kecil sebagai sensor

3)      Supply Tegangan 3.3-5 VDC

4)       Digital output D0 dapat secara langsung dikoneksikan dengan MCU dengan mudah




6. Resistor


Pada dasarnya Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik dalam suatu rangkaian Elektronika. Resistor atau dalam bahasa Indonesia sering disebut dengan Hambatan atau Tahanan dan biasanya disingkat dengan Huruf “R”. Satuan Hambatan atau Resistansi Resistor adalah OHM (Ω). Sebutan “OHM” ini diambil dari nama penemunya yaitu Georg Simon Ohm yang juga merupakan seorang Fisikawan Jerman.

7. Relay

Relay adalah Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch). Relay menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A.


8. LCD 16 X 2


Liquid Crystal Display (LCD) adalah sebuah peralatan elektronik yang berfungsi untuk menampilkan output sebuah sistem dengan cara membentuk suatu citra atau gambaran pada sebuah layar.

Secara garis besar komponen penyusun LCD terdiri dari kristal cair (liquid crystal) yang diapit oleh 2 buah elektroda transparan dan 2 buah filter polarisasi (polarizing filter).

9. Sensor sentuh



Touch Sensor atau Sensor Sentuh adalah sensor elektronik yang dapat mendeteksi sentuhan. Sensor Sentuh ini pada dasarnya beroperasi sebagai sakelar apabila disentuh, seperti sakelar pada lampu, layar sentuh ponsel dan lain sebagainya. Sensor Sentuh ini dikenal juga sebagai Sensor Taktil (Tactile Sensor). Seiring dengan perkembangan teknologi, sensor sentuh ini semakin banyak digunakan dan telah menggeser peranan sakelar mekanik pada perangkat-perangkat elektronik.

Sensor sentuh merupakan sebuah saklar yang cara penggunaanya dengan cara disentuh menggunakan jari. Ketika sensor ini disentuh maka sensor akan bernilai HIGH, hal ini karena tubuh manusia terdapat aliran listrik sehingga sensor ini dapat bekerja. Sensor ini dapat kita gunakan untuk menyalakan lampu, motor, membuka pintu dan masih banyak lainnya. Untuk jenis sensor sentuh yang banyak di pasaran terdapat jenis TTP223B (warna biru) dan TTP233 (warna merah)

Sensor ini mempunya 3 buah pin yaitu pin SIG (signal/data), GND dan VCC. Pada pembahasan kali ini, akan mengupas penggunaan sensor sentuh yang digunakan untuk menyalakan sebuah LED, untuk lebih lengkapnya langsung saja berikut ini.


Konfigurasi pin :

  1. Sensor sentuh : SIG/DATA dihubungkan ke pin 7; VCC dihubungkan ke 5V; GND dihubungkan ke GND
  2. LED : (+) dihubungkan dengan resistor 220 Ohm dan ke pin 2; (-) dihubungkan ke GND


2. Flowchart   [kembali]






3. Listing Program   [kembali]

MASTER

//MASTER

#include <LiquidCrystal.h>                    //Deklarasi library LCD
#define LM35 A0                               //Deklarasi pin A0 untuk LM35
#define SOIL A1
LiquidCrystal lcd(8,9,10,11,12,13);               //Deklarasi pin 2-7 untuk LCD

int nilaiSuhu;                                //Deklarasi variabel nilaiSuhu
int nilaiSOIL;
int LED[] = {2,3,4};

void setup()     //Semua kode dalam fungsi ini dieksekusi sekali
{
pinMode(A0, INPUT);                           //Deklarasi pin A0 sebagai OUTPUT
pinMode(A1, INPUT);
lcd.begin(16,2);                              //Dimensi LCD yang digunakan
for (int i =0; i<=3;i++){
pinMode (LED[i],OUTPUT);

}

  Serial.begin(9600); //Set baud rate 9600
}

void loop()   //Semua kode dalam fungsi ini dieksekusi berulang
{
nilaiSuhu=((5*analogRead(LM35)*100.00)/1024); //Mencari nilai Suhu  

  if(nilaiSuhu > 0 && nilaiSuhu <25)
    { 
    nilaiSOIL = analogRead(SOIL);
       
    if( nilaiSOIL>=350 && nilaiSOIL<=700){
    digitalWrite(2,HIGH);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    Serial.print("2");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Normal");           //Menampilkan text pada LCD
    delay(100);
    }
    
    else if(nilaiSOIL >700){
    digitalWrite(2,HIGH);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    Serial.print("1");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Kering");           //Menampilkan text pada LCD
    delay(100);
    }

   
    else {
    digitalWrite(2,HIGH);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    Serial.print("3");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Basah");           //Menampilkan text pada LCD
    delay(100);
    }
    }


else if (nilaiSuhu > 24 && nilaiSuhu <31) 
{          
  nilaiSOIL = analogRead(SOIL);
       
    if( nilaiSOIL>=350 && nilaiSOIL<=700){
    digitalWrite(2,LOW);
    digitalWrite(3,HIGH);
    digitalWrite(4,LOW);
    Serial.print("2");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Normal");           //Menampilkan text pada LCD
    delay(100);
    }
    
    else if(nilaiSOIL >700){
    digitalWrite(2,LOW);
    digitalWrite(3,HIGH);
    digitalWrite(4,LOW);
    Serial.print("1");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Kering");           //Menampilkan text pada LCD
    delay(100);
    }

   
    else {
    digitalWrite(2,LOW);
    digitalWrite(3,HIGH);
    digitalWrite(4,LOW);
    Serial.print("3");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Basah");           //Menampilkan text pada LCD
    delay(100);
    }

}     

      else if(nilaiSuhu>30){
    
     
      nilaiSOIL = analogRead(SOIL);
       
    if( nilaiSOIL>=350 && nilaiSOIL<=700){
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,HIGH);
    Serial.print("2");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Normal");           //Menampilkan text pada LCD
    delay(100);
    }
    
    else if(nilaiSOIL >700){
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,HIGH);
    Serial.print("1");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Kering");           //Menampilkan text pada LCD
    delay(100);
    }

   
    else {
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,HIGH);
    Serial.print("3");
    
    lcd.clear();                             //Menghapus layar LCD
    lcd.setCursor(0,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Suhu : ");           //Menampilkan text pada LCD
    lcd.setCursor(8,0);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print(nilaiSuhu);                    //Menampilkan nilaiSuhu pada LCD
    lcd.setCursor(0,1);                      //Menentukan posisi kursor pada awal penulisan
    lcd.print("Kondisi : Basah");           //Menampilkan text pada LCD
    delay(100);
    }
      
}
}



SLAVE

//SLAVE

void setup()   //Semua kode dalam fungsi ini dieksekusi sekali
{
 
  pinMode(7,OUTPUT);   //Deklarasi LED sebagai output
  Serial.begin(9600);            //Set baud rate 9600
}

void loop()                         //Semua program dalam fungsi ini dieksekusi berulang
{
  if(Serial.available()>0)
  {
    int data = Serial.read();
      if(data=='1')  //Jika data yang dikirimkan berlogika
        {
   
          digitalWrite(7,HIGH);  
          delay (2000);
 
          digitalWrite(7,LOW);  
          delay (5000);
        } 
      else
        {

          digitalWrite(7,LOW); 
        }
        
  }
}


4. Rangkaian Simulasi    [kembali]

Gambar 2.1 Gambar Rangkaian Ketika Off

Gambar 2.1 Gambar Rangkaian Ketika On


5. Kondisi  [kembali]

Analisa rangkaian :


                Pada rangkaian penyiram tanaman otomatis ini, bertujuan untuk memudahkan pemiliki tanaman dalam menyiram tanamannya, secara otomatis. Alat ini menggunakan dua buah sensor yaitu sensor LM35 dan sensor Kelembaman tanah. Sensor LM35 digunakan untuk mengukur suhu lingkungan sekitar, kemudian output dari suhu akan dihubungkan ke LED sebagai indicator kondisi suhu. Ketika suhu rendah 0 - 24c maka akan hidup LED hijau, ketika suhu sedang 25 - 30c maka akan hidup LED kuning, dan ketika suhu tinggi >30 maka akan hidup LED merah. Kemudian, kegunaan dari sensor kelembaman suhu berfungsi untuk mencek kelembaman dari tanah pada pot bunga. Ada tiga kondisi, yaitu kondisi basah, normal dan kering. Ketika sensor mendeteksi kondisi pot basah dan normal, motor pompa tidak akan bergerak. Motor akan bergerak ketika nanti sensor kelembaman mendeteksi tanah dalam kondisi kering. Putaran dari motor ini ditetapkan selama 1 detik, kemudian motor akan berhenti selama 1 detik, selama kondisi berhenti 1 detik itu, sensor kembali mencek kondisi tanah, jika masih kering, maka akan disiram kembali, jika sudah cukup kelembamannya, maka motor akan berhenti. Jika touch sensor mendeteksi adanya sentuhan maka akan menyalakan motor secara otomatis lalu delay selama satu detik lalu akan mati selama satu detik. Begitulah kerja dari rangkaian ini secara berulang.




6. Video   [kembali]




Video Penjelasan Rangkaian Percobaan 
Penjelasan Rangkaian :

Prinsip kerja rangkaian ini adalah menggunakan 2 buah sensor sebagai input yaitu sensor kelembaman dan sensor LM35. Sensor LM35 berperan untuk mendeteksi suhu sekitar tanah yang nanti nya akan di hubungkan ke LED indikator, LED indikator ini terpasang di master, ketika suhu 0-24°C yang tergolong suhu dingin maka LED yang hidup bewarna hijau, ketika suhu 25-30°C yang tergolong suhu sedang maka LED yang hidupberwarna kuning dan jika mencapai 31°C keatas maka LED yang hidup bewarna merah. Kemudian untuk nilai suhu akan ditampilkan di LCD dan untuk sensor kelembaman akan digunakan sebagai penentu motorakan  menyiram atau tidak, output nya akan diarahkan ke motor DC sebagai pompa.

Jadi ada 3 keadaan saat sensor bekerja, ketika terkena air maka tidak akan mengeluarkan tegangan dan jika kering akan mengeluarkan tegangan. Itu artinya jika kondisi basah maka tegangan rendah (0-350) sehingga motor tidak akan bergerak, sementara jika 350-700 itu tergolong normal dan kelembaman nya pas akan tetapi motor tidak akan bergerak dan jika diatas 700 itu tergolong kering dan motor akan bergerak.

Kata-kata normal, basah dan kering nanti nya akan ditampilkan di LCD pada baris kedua dibawah penampilan nilai suhu, ketika kelembaman nya kering (diatas 700) motor bergerak menandakan bahwa tanaman sedang disiram nanti kita akan menentukan lama waktu menyiram (1 detik) untuk di program dan setelah 1 detik motor akan delay selama 1 detik jadi nanti kita akan melihat apakah kelembaman nya masih sama atau tidak jika kelembaman nya masih sama maka setelah 1 detik dia akan menyiram lagi selama 1 detik kemudian delay lagi selama 1 detik begitu seterusnya hingga kelembaman normal atau basah maka motor akan berhenti.

Jika touch sensor mendeteksi adanya sentuhan maka akan menyalakan motor secara otomatis lalu delay selama satu detik lalu akan mati selama satu detik.




7. Link Download [kembali]

File library Arduino Proteus - Download
File library Soil sensor - Download
File datasheet Sensor sentuh      Download
File datasheet lcd - Download
File datasheet Soil sensor - 
File datasheet LM35 - Download
File datasheet Motor DC - Download
File Flowchart Master - Download
File Flowchart Slave - Download
File Program Master - Download
File Program Slave - Download
File HTML - Download
File rangkaian - Download
File video - Download

Tidak ada komentar:

Posting Komentar