BAB III
ANALISIS DAN PERANCANGAN SISTEM
3.1 ANALISIS DAN PERANANGAN SISTEM
Dalam tugas akhir ini dibuat suatu sistem pembacaan suhu pada sistem kontrol suhu dan pakan ikan pada miniatur aquaponik menggunakan Arduino sebagai akses pengontrol suhu. Untuk kenyamanan maka terdapat sistem identifikasi agar suhu bisa dibaca terlebih dahulu dan disesuaikan suhu berapa yang ingin dicapai, sehingga dapat dimasukan inputan nilai suhu yang diinginkan untuk jenis dan varietas tanaman yang bisa dikembang biakan pada suhu yang sama. selain itu terdapat pakan otomatis yang memudahkan pemilik perikanan maupun perkebunan tersebut memberimakan rutin dan memantau kebersihan kolam tersebut. Karena pada dasarnya aquaponik adalah sistem tanpa penggunaan
filter dalam pembersihan kolamnya hanya perlu penyikatan lumut-lumut atau penggantian air saja yang perlu dilakukan sendiri.
Gambar 3.1Kontrol Suhu dan Pakan Ikan Pada Miniatur Aquaponik Berasis Arduino
Pada alat tersebut didukung oleh pakan otomatis dimana dengan memasukan berapa timer atau delay yang diinginkan maka secara otomatis ikan akan mendapat pakan sesuai waktu yang ditentukan sebelumnya. Dengan menggunakan servo stepper dapat dengan mudah kita menentukan sudut besar dan kecil yang ingin diinputkan.
3.1.1 Blok Diagram
Gambar 3.2 Blok Diagram
Penjelasan diagram blok Gambar 3.2 diatas adalah sebagai berikut :
1. Sensor water proof mengambil data pada suhu air kolam ikan, lalu datanya diambil untuk di proses dan dimasukan pada arduino.
2. Timer yang diperhitungkan dalam sehari ikan mendapat makan 2x1 dalam sehari maka di set menggunakan delay sekon untuk meneruskan ke Mikrokontroller dengan menggunakan bahasa C++.
Suhu Push Button 1 Arduino UNO Motor Driver LCD Kipas DC
INPUT PROSES OUTPUT
Servo Timer Push Button 2 Push Button 3 Push Button 4 Push Button 5
3. Push Button sebagai tombol untuk mengeset data inputan, ingin mencapai waktu berapa untuk pakan dalam waktu dan suhu berapa dalam kolam ikan tersebut.
4. Arduino UNO melakukan proses pembacaan data yang dikirim oleh sensor dan mencocokkan dengan kinerja kipas yang tersimpan di dalam program lalu arduino juga mencocokan pemilihan tugas bekerja atau tidak bekerjanya kipas sesuai dengan penekanan tombol atau hasil identifikasi sensor dan mengirimkan perintah ke motor DC untuk menggerakkan kipas yang sebelumnya ditampilkan pada display LCD. 5. Motor driver merupakan pengendali motor penggerak yang digunakan
untuk menggerakkan kipas dc dan sevo kapan ia diperintah arduino uno untuk menjalankan tugasnya.
6. Kipas DC yang bertegangan 12V diharapkan dengan menggunakan satu kipas dapat menjalankan kinerja mendinginkan air dengan sangat baik, walaupun tidak menggunakan heater sekalipun mengingat suhu air rata rata sekisar 29-30 0C sehingga pengaruh dari led dan suhu lingkungan Indonesia yang beriklim tropis tidak terlalu mengganggu sehingga cukup kipas saja yang dihadirkan didalamnya. Mengingat siklus air yang terus berputar dan terdapat pompa oksigen dalam kolam dapat menyehatkan sirkulasi air didalamnya .
7. Servo disini digunakan untuk melakukan putaran dari sudut 00 ke sudut 1800 sehingga sistem ember tumpah dapat dipergunakan disini dan
berjalan dengan baik dalam menampung jumlah pakan ikan yang diinginkan serta pemberian pakan yang sesuai.
8. LCD sebagai pemberi informasi tentang keadaan suhu di kolam, status suhu, penampil data pengguna ketika teridentifikasi oleh sensor suhu.
3.2 Perancangan Mekanik
Dalam perancangan ini menggunakan akrilik berwarna bening sebagai rangka utama pada kolam ikan, lalu sterofom sebagai wadah pakan ikan yang mudah utuk dirancang dan lemari aluminium agar mudah dibawa dan digeser ketempat yang diinginkan. Serta dalam wadah tanaman hidroponik menggunakan toples atau bisa dibuat dari bahan apapun yang bisa menahan air. Bahan bahan tersebut dipilih karna mudah didapat diberbagai toko.
3.2.1 Perancangan Mekanik Pendukung
Setelah rangka dasar alat selesai, penambahan komponen mekanik pendukung dapat dipasangkan pada rangka dasar. Pemasangan mekanik pendukung tersebut berupa :
3.2.1.1 Pemasangan Sistem Pembaca Suhu
Aquarium akrilik sebagai kolam ikan lalu dimasukkan sensor water proof didalam air tersebut dimana sensor tersebut sudah terhubung ke arduino pada pin nomor 2. Dimana elektrikal komplit terdapat pada rak kedua dan terdapat didalam toples agar terhindar dari cipratan air yang dapat merusak komponen yang ada. Pada bagian dasar dibuat pijakan terbuat dari alumunium yang diberi roda bebas agar mudah untuk dibawa atau digeser.
Gambar 3.3 Sensor Suhu Pada Arduino
3.2.1.2 Pemasangan Kipas DC
Kipas DC yang digunakan dalam perancangan ini berukuran 4x9 cm dan bertegangan 12V dihubungkan dengan sebuah motor driver. Penghubung antara Kipas DC dengan Arduino adalah motor driver seperti pada Gambar 3.4.
Gambar 3.4 Pemasangan Penghubung Kipas DC dengan Arduino Uno.
3.2.1.3 Pemasangan Pakan Ikan Otomatis
Terdapat servo sebagai penggerak wadah pakan ikan yang sesuai takaran dan dalam penyetingan waktu tertentu. Servo ini memiliki fungsi sebagai pemutar rotasi berapa derajat agar pakanan dapat dikeluarkan dan ditampung pada wadah tanpa tumpah kemana-mana. Pemasangan Servo terlihat pada Gambar 3.5 dibawah ini.
3.3 Perancangan Elektrik
Perancangnan elektrik pada alat bantu yang sedang dirancang tidak rumit, karena pada perancangan secara keseluruhan menggunakan kit dan shield dari Arduino, LCD Karakter Arduino, Motor Driver, Servo, serta Sensor Water Proof. Secara keseluruhan rangakaian electronik yang digunakan pada perancangan meliputi : a. Arduino Uno R3 b. LCD Karakter Arduino. c. Motor Shield L298 d. Power Supply e. Kipas DC f. Servo
3.3.1 Penyambungan Rangkaian Arduino Dengan Motor Shield L298
Arduino selain terdapat open source program, juga terdapat kit yang plug n-play, yang artinya dapat digunakan secara langsung dengan cara menyambungkan kit dengan arduino. Pada perancangan alat ini kit yang digunakn adalah motor shield L298 yang mempunyai keluaran arus sebesar 2 A dan mempunyai kontrol keluaran sebanyak 2 keluaran. Pin yang digunakan adalah pin 4 dan pin 7 sebagai direction atau arah putaran dari keluaran serta pin 5 dan pin 6 sebagai enable atau masukan PWM (pulse width modulation).
Gambar 3.7 Penyambungan Aduino dengan motor shield L298
3.3.2 Penyambungan Arduino dan Modul LCD Keypad Shield
Modul LCD Keypad Shield (male pin konektor) untuk memprogram ke arduino ia memiliki lcd 16x2 dengan layar biru dan dilengkapi 6 push button dari
sebelah kiri ke kanan yaitu untuk Memilih, Kiri, Atas, Bawah, Kanan dan Mengulang ke mode awal. Shield LCD ini tinggal di koneksikan pada papan shield yang tinggal memasukan antara kaki-kakinya yang terhubung secara tidak langsung pada pin 5,6,7,8,dan 9. Memiliki LCD4Bit setiap Interfacenya. Digital IO untuk menghemat sumber daya sehingga anat muka tombol hanyha menggunakan satu kanal ADC. Nilai kunci membaca 5 tahap resistor pembagi. Ketika tombol ditekan, ADC membaca nilai tegangan dan melalui pembagi tegangan maka nilai disimpan dalam array untuk mengidentifikasi tombol yang ditekan. Dalam pengoperasian LCD ini memakai 5VDC. Pada dimensi tubuh 80X58X22mm dan berat 52 gram.
Gambar 3.8 Modul LCD Keypad Shield
3.3.3 Perancangan Power Supply dan Penurun Tegangan
Power supply yang digunakan pada penelitian ini memiliki tegangan output 5 dan 12 VDC. Tegangan 5 VDC digunakan untuk rangkaian rangkaian
sederhana seperti arduino dan prangkat lainnya yang menyertai didalamnya. Selanjutnya pada 12 VDC untuk digunakan pada Kipas DC karena kipas tersebut memerlukan tegangan tersebut agar motornya dapat menggerakan baling-baling pada kipas tersebut. Pada rangkaian penurun tegangan. Bentuk dari power supply terlihat pada Gambar 3.9.
Gambar 3.9 Penurun dan Penyarah Tegangan
Rangkaian penurun tegangan menurunkan tegangan 220VAC menjadi 5 VDC menggunakan dua buah IC yakni IC 7812 untuk menurunkan tegangan ke 12 VDC dan IC 7805 untuk menurunkan tegangan ke 5 VDC. Skematik dari rangkaian penurun tegangan terlihat pada Gambar 3.10 dan realisasi dari rangkaian penurun tegangan terlihat pada Gambar 3.11.
Gambar 3.10 Skematik Rangkaian Penurun Tegangan 5VDC dan pada 12VDC tinggal mengubah ICnya saja menjadi IC 7812.
3.3.4 Perancangan Pengairan Pada Lahan Tanam
Perancangan pengairan pada lahan tanam ini menggunakan sistem unlock water dengan mmenggunakan pipa. Sistemnya sanngat sederhana yaitu ketika air mengggenangi lahan tanam lalu akan masuk pada pipa pembuangan air dan terkunci lalu menyedot air secara keseluruhan untuk seluruh air terbuang ke dalam pipa pembuangan air tersebut dan diteruskan kembali masuk pada kolam ikan. Lebih jelasnya digambarkan sebagai berikut;
Air yang terdapat pada kolam ikan dipompa untuk dialirkan ke atas tanaman dan memenuhi media tanam hingga pada titik tertentu.
Gambar 3.12 Air Terkunci Pada Pipa
Dimana air sudah pada puncak ruang penyimpanan pada media tanam lalu masuk kedalam pipa dan terkunci uuntuk terus air yang ada memenuhi pipa tersebut lalu diteruskan ke pembuangan air yaitu kolam ikan, dan jadilah air yang siap pakai untuk kolam ikan dimana air sudah tersaring pada media tanam dan siap digunakan untuk ikan tumbuh.
Gambar 3.14 Hasil Akhir Sebelum Kembali Pada Kondisi Awal
Kembali mengulang tahapan pengairan dari awal dan terus menjadi siklus.
3.4 Perancangan Program
Setelah rangkaian dipasang pada kerangka, langkah selanjutnya adalah membuat program pada Software Arduino. Program arduino berisikan flow code program mekanisme kerja aquaponik berbasis Arduino Uno. Cara kerja pada penelitian ini yakni kondisi air standby sesuai aslinya jika tejadi perubahan suhu maka secara otomatis terbaca pada sensor suhu dan dikelola pada arduino untuk mengkondisikan kipas menurunkan kenaikan suhu menjadi suhu yang diinginkan. Jika suhu sesuai dengan pengaturan ada database maka akan muncul suhu yang sudah siap dan waktu pemberian makan ikan. Jika ada pengoprasi yang menekan tombol pada LCD tersebut maka akan secara otomatis suhu yang diprogram akan
sesuai dengan keinginan sang pengoprasi, namun degan syarat suhu yang ingin dicapai idak melebihi 300C. Penggunaan pin pada arduino tertera pada Tabel 3.1.
Tabel 3.1 Penggunaan Pin Pada Arduino
No Pin Arduino Kegunaan
1 1 Motor Kipas
2 2 Sensor Water Proof
3 3 Motor Kipas 4 4 LCD Pada D4 5 5 LCD Pada D5 6 6 LCD Pada D6 7 7 LCD Pada D7 8 8 LCD Pada RS
9 9 LCD Pada E 10 10 - 11 11 - 12 12 - 13 13 - 14 A0 Button 6 15 A1 Button 1 16 A2 Button 2 17 A3 Button 3
18 A4 Button 4 & Servo Stepper
Tabel 3.2 Keterangan Pin LCD Ke Arduino
3.4.1 Pemrograman Sensor Suhu
Dalam pemrograman sensor suhu DS18S20 memiliki library one wire dimana library adalah sebuah hasil dari sebuah program untuk sensor suhu DS18S20. Program ini sebagai perintah yang akan di jalankan oleh sebuah DS18S20 ketika mendapatkan suatu sinyal data yang di terima oleh LM35 lalu diteruskan pada kabel data berwarna kuning dimana antara VCC 5VDC dan resistor 4,7KΩ dihubungkan terlebih dahulu baru diteruskan dan jadi inputan kedalam arduino uno. Dimana data yang didapatkan akan menjadi sebuah analog nilai yang terbaca pada LCD maupun serial monitor sebagai hasil pembacaan suhu yang ada pada lingkungn air. Pemrograman DS18S20 dalam library terdapat pada Gambar 3.12
Gambar 3.15 Program library Sensor Suhu
Berikut adalah program library one wire namun dalam penerapannya perlu meng import add library terlebih dahulu.
Gambar 3.17 Program library Sensor Suhu Open Zip
Contoh program sensor suhu tipe DS18S20 water proof ;
#include <OneWire.h>
int DS18S20_Pin = 2; //DS18S20 Signal pin on digital 2
//Temperature chip i/o
OneWire ds(DS18S20_Pin); // on digital pin 2
void setup(void) {
Serial.begin(9600);
void loop(void) {
float temperature = getTemp();
Serial.println(temperature);
delay(100); //just here to slow down the output so it is easier to read
}
float getTemp(){
//returns the temperature from one DS18S20 in DEG Celsius
byte data[12];
byte addr[8];
if ( !ds.search(addr)) {
//no more sensors on chain, reset search
ds.reset_search();
return -1000;
}
Serial.println("CRC is not valid!");
return -1000;
}
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Device is not recognized");
return -1000;
}
ds.reset();
ds.select(addr);
ds.write(0x44,1); // start conversion, with parasite power on at the end
byte present = ds.reset();
ds.select(addr);
ds.write(0xBE); // Read Scratchpad
for (int i = 0; i < 9; i++) { // we need 9 bytes
}
ds.reset_search();
byte MSB = data[1];
byte LSB = data[0];
float tempRead = ((MSB << 8) | LSB); //using two's compliment
float TemperatureSum = tempRead / 16;
3.4.2 Pemrograman Sevo Stepper
Gambar 3.18 Program servo stepper
Dalam pemrograman servo stepper perlu dikenalkan terlebih dahulu pada include dan dihubungkan pada pin A4. Karena servo ini sudah ada pada sketch lalu dikembangkan lebih lagi dan diedit sesuai program yang kita inginkan
Gambar3.19 Lanjutan Program Servo Stepper
Pada gambar tersebut jika aksi yang ingin kita panggil dan dapatkan tinggal ubah pada program yang terdapat di void loop, dimana void loop merupakan aksi setelah perkenalan yang dilakukkan include dan disalurkan pada komunikasi yang ada di program void setup. Berikut contoh program servo;
#include <Servo.h>
Servo myservo; // create servo object to control a servo
int pos = 0; // variable to store the servo position
{
myservo.attach(A4); // attaches the servo on pin 9 to the servo object
}
void loop()
{
for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
}
for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees
{
myservo.write(pos); // tell servo to go to position in variable 'pos'
delay(15); // waits 15ms for the servo to reach the position
3.5 Flowchart
Pengambilan Titik Sampel / Pembacaan Suhu Hold ...oC Setting LCD Pakan Ikan Suhu < Hold Fan On Delay ...second Servo On 350 Delay 0,5 second Kombinasikan Dengan Settingan Suhu Suhu > Hold Fan OFF Servo Off 00 Delay 10 second Tampil Pada LCD Y N Start