BAB III PERANCANGAN ALAT
3.1 Gambaran Umum Rancang Bangun Sistem Pengairan Tanaman Menggunakan Sensor Kelembaban Tanah ini terdiri dari dua perancangan, yaitu perancangan perangkat keras meliputi perancangan alat dan perancangan source code Arduino. Secara garis besar alat ini berfungsi sebagai sistem otomatis penyiraman tanaman berdasarkan kelembaban tanah dan pendeteksi kekosongan tangki air tempat menampung air yang digunakan untuk menyiram tanaman. 3.2 Diagram Blok Pada perancangan alat sistem pengairan tanaman ini menggunakan 2 buah sensor, yaitu sensor ultrasonik dan sensor kelembaban tanah. Gambar 3.1 menunjukkan diagram blok sistem. Sensor Ultrasonik Sensor Kelembaban Tanah
Buzzer
Arduino Uno
Relay
Solenoid Valve
Led Matrix
Gambar 3.1. Diagram Blog Sistem Fungsi dari tiap blok dalam diagram adalah sebagai berikut : 1. Sensor kelembaban tanah : sensor yang akan membaca kelembaban tanah pada tanaman. 2. Sensor ultrasonik : sensor yang akan mendeteksi isi air pada tangki. 3. Arduino uno : pusat pengolahan data yang menghubungkan input sensor dengan Arduino.
24 http://digilib.mercubuana.ac.id/
25
4. Buzzer : akan aktif jika tangki dalam keadaan kosong. 5. Led matrix : akan memberikan tanda keadaan tanah lembab atau kering. 6. Modul Relay 2 Amphere : sakelar yang membuka dan menutupnya ( open dan closenya) dengan tenaga listrik melalui coil relay yang terdapat di dalamnya. Kerja relay tergantung dari perintah yang diberikan Arduino 7. Solenoid valve 220V : katup yang digerakan oleh energi listrik melalui solenoida, mempunyai kumparan sebagai penggeraknya yang berfungsi untuk menggerakan piston yang dapat digerakan oleh arus AC. 8. Tanaman : objek untuk penyiraman serta objek input dari sensor kelembaban tanah. 3.3 Perancangan Hardware Perancangan Sistem Hardware Pengairan Tanaman Menggunakan Sensor Kelembaban ini menggunakan beberapa modul. Pertama adalah menghubungkan Arduino Uno dengan sensor. Sensor yang digunakan adalah Soil Moisture Sensor.
Gambar 3.2 Menghubungkan Sensor dengan Arduino Pada Gambar 3.2 terlihat bahwa sensor yang digunakan merupakan sensor analog, sehingga pin analog output sensor dihubungkan ke pin analog Arduino. Pin Ground sensor dihubungkan ke Ground Arduino, begitu juga dengan pin Vin sensor dihubungkan dengan pin VCC 5 Volt pada Arduino.
http://digilib.mercubuana.ac.id/
26
Selanjutnya adalah menghubungkan modul relay pada Arduino. Modul relay memiliki 3 pin input dan 3 pin output. Pin input terdiri dari input data dan input power tegangan 12V dan ground. Pin output terdiri dari pin COM, pin NO, dan pin NC. Pin output yang digunakan adalah pin COM dan pin NO.
Gambar 3.3 Relay Terhubung dengan Arduino Uno Dari Gambar 3.3 input data relay dihubungkan ke pin 3 Arduino. Tegangan 12V menggunakan adaptor. Output COM relay akan dihubungkan dengan tegangan AC 220V, sedangkan output NO terhubung dengan solenoid valve. Setelah menghubungkan sensor kelembaban tanah dan relay ke Arduino, selanjutnya adalah menghubungkan Arduino dengan modul led matrix. Gambar 3.4 menunjukkan pin-pin yang dihubungkan ke modul led matrix.
http://digilib.mercubuana.ac.id/
27
Gambar 3.4 Modul Led Matrix Dihubungkan ke Arduino Pada modul led matrix, terdapat 5 kaki yaitu kaki Vcc, Ground, data input, clock (CLK), dan load (CS). Kaki Vcc dihubungkan ke kaki 5V pada Arduino, kaki ground dihubungkan ke pin GND Arduino, data input dihubungkan ke pin 12, clock (CLK) dihubungkan ke pin 11, dan load (CS) dihubungkan ke pin 10. Selanjutnya adalah memasang sensor ultrasonik dan buzzer. Sensor ultrasonik akan mendeteksi ketinggian air berdasarkan jarak antara letak sensor dengan permukaan air. Gambar 3.5 menunjukkan Arduino dihubungkan ke sensor ultrasonik dan buzzer.
http://digilib.mercubuana.ac.id/
28
Gambar 3.5 Menghubungkan Arduino dengan Sensor Ultrasonik dan Buzzer Pada sensor ultrasonik terdapat 4 kaki, yaitu kaki Vcc, trigger, echo, dan ground. Kaki Vcc akan dihubungkan ke Vcc pada Arduino, ground dihubungkan ke pin GND pada Arduino, kaki triger dihubungkan ke pin 7 arduino, dan kaki echo dihubungkan ke pin 6 arduino. Posisi sensor akan berada di atas tangki. sensor akan mendeteksi kekosongan tangki, yang berarti air di dalam tangki kosong. Maka didapat jarak yang dijadikan parameter sebagai penanda kosongnya air adalah jarak dari sensor ke dasar tangki. Buzzer memiliki 2 kaki, yaitu Vcc dan ground. Kaki ground buzzer dihubungkan dengan resistor 220Ω dan dihubungkan ke pin GND Arduino. Kaki Vcc buzzer dihubungkan dengan kaki Vcc Arduino.
http://digilib.mercubuana.ac.id/
29
3.4 Perancangan Program Arduino Setelah melakukan perancangan hardware, selanjutnya adalah melakukan perancangan software. Pemrograman software menggunakan aplikasi IDE (Integrated Development Environment) arduino 1.6.9. Berikut ini adalah flowchart dari pemrograman Rancang Bangun Sistem Pengairan Tanaman Menggunakan Sensor Kelembaban Tanah. Mulai
Tidak
Sensor kelembaban membaca kelembaban tanah
Sensor ultrasonik membaca ketinggian air
Tanah dalam keadaan kering
Tangki dalam keadaan kosong?
Ya
Ya
Led matrix memberi tanda tanah kering Tidak
Tidak
Buzzer aktif
Relay close
IyaAir pada tangki diisi
Sensor kelembaban membaca kelembaban tanah
Sensor ultrasonik membaca ketinggian air
Tanah sudah lembab Tangki sudah diisi air Ya Ya
Led matrix memberi tanda tanah lembab
Buzzer nonaktif
Relay open
Solenoid valve menutup Selesai
Gambar 3.6 Flowchart Pemrograman
http://digilib.mercubuana.ac.id/
Tidak
30
Sistem ini menggunakan led matrix sebagai indikator. Led matrix dikontrol menggunakan IC MAX7219 melalui library dari Arduino, sehingga program harus ditambahkan dengan library yang sudah tersedia, yaitu LedControl.h. program untuk memasukkan library led tersebut adalah #include "LedControl.h". Sensor ultrasonik menggunakan 2 pin digital Arduino, yaitu pin 7 sebagai triger, dan pin 6 sebagai echo. Inisialisasi pin tersebut adalah “#define trigPin 7” dan “#define echoPin 6”. Buzzer menggunakan 1 pin digital, yaitu pin 2. Inisialisasi pin tersebut adalah “#define buzzer 2”. Selanjutnya adalah menentukkan pin Arduino yang akan digunakan untuk led matrix. Pin yang akan digunakan adalah pin 12 sebagai data input, pin 11 sebagai clock (CLK), dan pin 10 sebagai load (CS). Bentuk programnya adalah “LedControl lc = LedControl(12, 11, 10, 1);”. Inisialisasi pin digital pada modul relay. Pin digital yang digunakan adalah pin 3, sehingga programnya adalah “int relay = 3;”. Selanjutnya membuat program awal yang berisi inisialisasi output Arduino. Terdapat 4 buah output yaitu sensor ultrasonik, buzzer, relay dan led matrix. Program dapat ditulis sebagai berikut: void setup(){ pinMode(trigPin, OUTPUT);//sensor ultrasonik pinMode(echoPin, INPUT); pinMode(buzzer, OUTPUT);
http://digilib.mercubuana.ac.id/
31
lc.shutdown(0, false); lc.setIntensity(0, 5); //mengatur intensitas led matrix lc.clearDisplay(0); //mengosongkan display led matrix pinMode(relay,OUTPUT); // output triger relay } Pada sensor kelembaban tanah ada 3 keadaan tanah, yaitu kering, lembab, dan basah. Saat keadaan tanah kering, led matrix akan memberikan indikator frown. Program untuk menampilkan indikator tersebut adalah sebagai berikut: void frown() { //membuat array untuk 8 bytes byte frown[8] = { //membuat pola pada dot matrix B00000000, B01100110, B01100110, B00000000, B00000000, B00111100, B01000010, B00000000, }; //menyalakan semua baris led lc.setRow(0, 0, frown[0]);
http://digilib.mercubuana.ac.id/
32
lc.setRow(0, 1, frown[1]); lc.setRow(0, 2, frown[2]); lc.setRow(0, 3, frown[3]); lc.setRow(0, 4, frown[4]); lc.setRow(0, 5, frown[5]); lc.setRow(0, 6, frown[6]); lc.setRow(0, 7, frown[7]);
delay(5000); } Sedangkan pada saat tanah lembab dan basah, maka led matrix akan memberikan indikator smile. Program untuk menampilkan indikator tersebut adalah sebagai berikut: void smile() { //membuat array untuk 8 bytes byte smile[8] = { //B adalah format biner //membuat pola pada dot matrix B00000000, B01100110, B01100110, B00000000, B00000000,
http://digilib.mercubuana.ac.id/
33
B01000010, B00111100, B00000000, }; //menyalakan semua baris led lc.setRow(0, 0, smile[0]); lc.setRow(0, 1, smile[1]); lc.setRow(0, 2, smile[2]); lc.setRow(0, 3, smile[3]); lc.setRow(0, 4, smile[4]); lc.setRow(0, 5, smile[5]); lc.setRow(0, 6, smile[6]); lc.setRow(0, 7, smile[7]);
delay(5000); } Pada saat keadaan kering, relay bekerja, maka solenoid valve membuka dan melakukan penyiraman. Led matrix menunjukkan indikator frown selama tanah terdeteksi kering. Programnya adalah sebagai berikut: void kering(int waktu){ digitalWrite(relay, HIGH); frown(); delay(waktu);
http://digilib.mercubuana.ac.id/
34
} Sebaliknya pada saat tanah dalam keadaan basah, relay berhenti bekerja dan solenoid valve akan berhenti melakukan penyiraman. Led matrix diinginkan menunjukkan indikator smile jika tanah dinilai cukup lembab. Programnya adalah sebagai berikut: void basah(int waktu){ digitalWrite(relay, LOW); smile(); delay(waktu); } Sistem diinginkan bekerja pada saat tanah kering, arduino akan mentriger relay sehingga solenoid valve membuka dan melakukan penyiraman. Maka dibuat dua buah keadaan yaitu saat tanah kering dan basah. Penyiraman akan dilakukan jika sensor mendeteksi nilai kelembaban tanah di bawah 400. Pada saat keadaan tanah lembab, dan memasuki nilai 400 ke atas, maka penyiraman akan berhenti. Programnya dapat ditulis sebagai berikut: void loop(){ int sensorValue = analogRead(A0); if(sensorValue<400) kering(1000); else basah(1000); }
http://digilib.mercubuana.ac.id/
35
Sensor ultrasonik akan mengaktifkan buzzer jika air dan sensor berjarak 15cm. sensor ultrasonik membaca jarak dengan objek tertentu berdasarkan lebar pulsa, untuk mengkonversi lebar pulsa tersebut menjadi bentuk satuan cm, maka digunakan rumus sebagai berikut: 𝑙𝑒𝑏𝑎𝑟 𝑝𝑢𝑙𝑠𝑎⁄ 29,03 𝑢𝑠 𝑗𝑎𝑟𝑎𝑘 (𝑐𝑚) = 2 Rumus tersebut dimasukan ke dalam program, sehingga pengukuran jarak dilakukan berdasarkan satuan centimeter (cm). Programnya adalah sebagai berikut: long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = (duration/2) / 29.1; if (distance > 10 || distance <= 0){ digitalWrite(buzzer, LOW); } else { digitalWrite(buzzer, HIGH); }
http://digilib.mercubuana.ac.id/