PENGENDALIAN PH PADA SISTEM PEMUPUKAN TANAMAN
HIDROPONIK BERBASIS MIKROKONTROLER AVR ATMEGA16
Disusun Oleh :
Nama : Adi Christ Tamba Tua
Nrp
: 0422024
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha,
Jl. Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia.
Email : adichrist77@gmail.com
ABSTRAK
Semakin sempitnya lahan pertanian, sehingga manusia mulai mencari cara
yang lebih efisien dalam mengembangkan bidang pertanian dengan lahan yang
terbatas. Metode baru pada pertanian yang dikenal dengan budidaya sistem
hidroponik menjadi solusi bagi para petani untuk bercocok tanam pada lahan yang
sempit.
Pada tugas akhir ini telah direalisasikan sebuah perangkat dengan
menggunakan mikrokontroler ATMega16 sebagai pengendali utama yang dapat
melakukan pengendalian PH pada sistem pemupukan tanaman hidroponik dengan
frekuensi waktu yang tetap. Waktu acuan berdasarkan data waktu dari RTC(
Real
Time Clock
). Sensor PH digunakan untuk membaca nilai PH.
Solenoid Valve
digunakan untuk mengatur masukan larutan asam dan basa pada tangki
penampungan larutan nutrisi.
Dari hasil uji coba, perangkat pengendali dapat menjalankan tugasnya
dengan melakukan pemupukan secara teratur dan menjaga PH larutan nutrisi pada
batas yang diinginkan, yaitu 5,5-6,5.
PH CONTROL FOR HYDROPONIC PLANTS FERTILIZATION
SYSTEM BASED ON AVR ATMEGA16 MICROCONTROLLER
Composed By :
Name : Adi Christ Tamba Tua
Nrp
: 0422024
Electrical Engineering, Faculty of Engineering, Kristen Maranatha University,
Prof. drg. Suria Sumantri, MPH Street, No. 65th, Bandung, Indonesia.
Email : adichrist77@gmail.com
ABSTRACT
The limited of agricultural land, so that people start looking for more
efficient ways to develop agriculture with limited land. New methods in
agriculture known as hydroponic cultivation system be the solution for farmers to
grow crops on land that is narrow.
In this final project has been realized a device using ATMega16
microcontroller as the main controller to perform PH control in hydroponic
fertilization systems with frequency fixed time. PH sensor is use to read the PH
value. Solenoid Valve is use to regulate the input of acid solution and alkaline
solution in the nutrient solution holding tank.
From the test results, the controller can do its job by conducting regular
fertilizing and keeping the PH of the nutrient solution at the desired limit, is
5.5-6.5.
DAFTAR ISI
Halaman
ABSTRAK ...
i
ABSTRACT ...
ii
KATA PENGANTAR ...
iii
DAFTAR ISI ...
v
DAFTAR TABEL ...
vii
DAFTAR GAMBAR ...
viii
BAB I PENDAHULUAN
1.1 Latar Belakang Masalah ...
1
1.2 Perumusan Masalah ...
2
1.3 Tujuan ...
2
1.4 Pembatasan Masalah ...
2
1.5 Spesifikasi Alat Yang Digunakan ...
2
1.6 Sistematika Penulisan ...
3
BAB II LANDASAN TEORI
2.1 Pengantar Hidroponik ...
4
2.1.1 Kelebihan dan kekurangan Hidroponik ...
4
2.1.2 Teknik Penanaman Hidroponik...
5
2.1.3 Faktor Lingkungan Pada Budaya Hidroponik ...
7
2.1.4 Kondisi Larutan Pupuk Hidroponik ...
8
2.1.5 Unsur Hara Pupuk Hidroponik ...
8
2.2 Mikrokontroler AVR ATMEGA16 ...
9
2.2.1 Uraian-uraian Pin ...
10
2.2.2 Pilihan-pilihan
Clock
(
Clock
) ...
14
2.2.3 Timer atau Counters ...
15
2.3 Bahasa C ...
18
2.4 PH Meter...
19
2.5
Solenoid Valve
...
21
2.6 Teori Dasar
PH
...
24
2.6.1 Dasar Pengukuran Derajat Keasaman ...
24
BAB III PERANCANGAN DAN REALISASI
3.1 Perancangan Perangkat Keras
(Hardware)
...
26
3.1.1 Dimensi
Plant
...
27
3.1.2 Rangkaian Mikrokontroler ATMEGA16 ...
28
3.1.3 Perancangan Relay Driver Pada Pompa ...
30
3.1.4 Skematik Mikrokontroler ...
31
3.2 Perancangan Software ...
32
3.2.1 Mikrokontroler ...
32
3.2.2 Setting Waktu ...
34
3.2.3 Setting Jadwal ...
39
3.3 Cara Kerja Pengendali dan Alat Keseluruhan ...
41
3.4 Realisasi
Plant
...
42
BAB IV DATA PENGAMATAN DAN ANALISIS
4.1 Pengamatan Kondisi Larutan Pada Plant Tanaman...
43
4.2
Pengamatan Terhadap Kondisi Air pada Hari Kedua
... 44
4.3 Pengamatan Terhadap Kondisi Tanaman ...
45
BAB V SIMPULAN DAN SARAN
5.1 Simpulan ...
47
5.2 Saran ...
47
DAFTAR PUSTAKA ...
48
LAMPIRAN A KODE PROGRAM
LAMPIRAN B TAMPILAN REALISASI PLANT
DAFTAR TABEL
Halaman
Tabel 3.1 Penggunaan
Port
Pada Mikrokontroler ATMEGA16 ...
28
Tabel 4.1 Tabel Perubahan PH Hari Pertama ...
43
Tabel 4.2 Tabel Perubahan PH Pada Hari Kedua... ...
44
DAFTAR GAMBAR
Halaman
Gambar 2.1 Teknik Hidroponik
NFT
...
5
Gambar 2.2 Teknik
Hydroponic Raft System
...
6
Gambar 2.3 Teknik
Drip System
...
7
Gambar 2.4 Diagram Blok ATMEGA16 ...
12
Gambar 2.5 Konfigurasi Pin ATMEGA16 ...
13
Gambar 2.6
Clock Eksternal
...
14
Gambar 2.7 Diagram Blok
Timer/Counter0
...
17
Gambar 2.8 PH meter YK-2005WA dan Probe ...
20
Gambar 2.9 PH Probe PE-03 ...
20
Gambar 2.10 Kabel Serial RS-232 ...
21
Gambar 2.11
Solenoid Valve
...
22
Gambar 2.12 Struktur Fungsi
Solenoid Valve
...
23
Gambar 3.1 Diagram Blok Sistem ...
26
Gambar 3.2 Dimensi
Plant
. ...
27
Gambar 3.3 Rangkaian Pengendali Mikro ...
29
Gambar 3.4 Relay Driver Pada Pompa ...
30
Gambar 3.5 Skematik pada Mikrokontroler ...
31
Gambar 3.6 Flowchart Utama pada Mikrokontroler ...
33
Gambar 3.7
Fitur I2C Bus dan Koneksi pada RTC DS1307
...
34
Gambar 3.8
Flowchart Setting Waktu
...
38
Gambar 3.9
Flowchart Setting Jadwal
...
40
Gambar 3.10 Plant keseluruhan dilihat dari samping ...
42
LAMPIRAN A
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Standard
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 3/22/2013
Author : Adi Christ
Company : maranatha
Comments:
Chip type : ATmega16
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 256
*****************************************************/
#include <mega16.h>
#include <delay.h>
#include <stdio.h>
// I2C Bus functions
#asm
.equ __i2c_port=0x18 ;PORTB
.equ __sda_bit=0
.equ __scl_bit=1
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
unsigned char jm, mn, dt, tg, bl, th, bstr[16],test;
unsigned int jam,menit,detik;
unsigned char ph[16],lcd[32],;
unsigned int x,y,a,b,c,d,e,f,time[6],z,g,time_jdwl[2],jdwl,run,ph_new,update,new_jm,new_mn,new_dt;
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>
#define RXB8 1
#define TXB8 0
#define UPE 2
#define OVR 3
#define FE 4
#define UDRE 5
#define RXC 7
#define FRAMING_ERROR (1<<FE)
#define PARITY_ERROR (1<<UPE)
#define DATA_OVERRUN (1<<OVR)
#define DATA_REGISTER_EMPTY (1<<UDRE)
#define RX_COMPLETE (1<<RXC)
// USART Receiver buffer
char rx_buffer[RX_BUFFER_SIZE];
#if RX_BUFFER_SIZE<256
unsigned char rx_wr_index,rx_rd_index,rx_counter;
#else
unsigned int rx_wr_index,rx_rd_index,rx_counter;
#endif
// This flag is set on USART Receiver buffer overflow
bit rx_buffer_overflow;
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
{
rx_buffer[rx_wr_index]=data;
if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
if (++rx_counter == RX_BUFFER_SIZE)
{
rx_counter=0;
rx_buffer_overflow=1;
};
};
test=data;
{
x=0;
y=1;
}
if(y==1)
{
ph[x]=data;
x++;
if(x==15){ y=0;}
}
}
#ifndef _DEBUG_TERMINAL_IO_
// Get a character from the USART Receiver buffer
#define _ALTERNATE_GETCHAR_
#pragma used+
char getchar(void)
{
char data;
while (rx_counter==0);
data=rx_buffer[rx_rd_index];
if (++rx_rd_index == RX_BUFFER_SIZE) rx_rd_index=0;
#asm("cli")
--rx_counter;
#asm("sei")
return data;
}
#pragma used-
// Standard Input/Output functions
#include <stdio.h>
// Declare your global variables here
unsigned char key;
unsigned char keypad()
{
PORTA=0b11111110;
if(PINA.4==0) return ('*');
if(PINA.5==0) return ('2');
if(PINA.6==0) return ('3');
if(PINA.7==0) return ('A');
PORTA=0b11111101;
if(PINA.4==0) return ('1');
if(PINA.5==0) return ('5');
if(PINA.6==0) return ('6');
if(PINA.7==0) return ('B');
PORTA=0b11111011;
if(PINA.4==0) return ('4');
if(PINA.5==0) return ('8');
if(PINA.6==0) return ('9');
if(PINA.7==0) return ('C');
if(PINA.4==0) return ('7');
if(PINA.5==0) return ('0');
if(PINA.6==0) return ('#');
if(PINA.7==0) return ('D');
PORTA=0b11111111;
}
void main(void)
{
// Declare your local variables here
// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=Out Func1=Out Func0=Out
// State7=P State6=P State5=P State4=P State3=0 State2=0 State1=0 State0=0
PORTA=0xF0;
DDRA=0x0F;
// Port B initialization
// Func7=Out Func6=Out Func5=In Func4=In Func3=In Func2=Out Func1=In Func0=In
// State7=0 State6=0 State5=T State4=T State3=T State2=0 State1=T State0=T
PORTB=0x00;
DDRB=0xC4;
// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=Out Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=1 State2=T State1=T State0=T
PORTC=0x08;
DDRC=0x08;
// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
PORTD=0x00;
DDRD=0x00;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer 1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer 1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;
// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer 2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;
// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;
// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: On
// USART Transmitter: Off
// USART Mode: Asynchronous
// USART Baud rate: 9600
UCSRA=0x00;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x47;
// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;
// I2C Bus initialization
i2c_init();
// LCD module initialization
lcd_init(16);
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: Off
// SQW/OUT pin state: 0
rtc_init(0,0,0);
// LCD module initialization
lcd_init(20);
/*****setup time and date*****/
// jm=15;mn=15;dt=00;
// rtc_set_time(jm,mn,dt);
// delay_ms(500);
// tg=05;bl=04;th=13;
// delay_ms(500);
/*****************************/
// Global enable interrupts
#asm("sei")
//printf("DATA %i %d %d %d",ph[0],ph[11],ph[12],ph[13]);
update=1;
while (1)
{
key=keypad();
if(ph[2]=='1')
{
a=ph[12];
b=ph[13];
c=ph[14];
}
if(ph[2]=='2')
{
d=ph[12];
e=ph[13];
f=ph[14];
}
//main progam
if(run==1)
{
lcd_clear();
sprintf(lcd,"PH=%c%c%c,SUHU=%c%c.%c",a,b,c,d,e,f);
lcd_puts(lcd);
rtc_get_time(&jm,&mn,&dt);
rtc_get_date(&tg,&bl,&th);
lcd_gotoxy(0,1);
sprintf(bstr,"Time %02d:%02d:%02d",jm,mn,dt);
lcd_puts(bstr);
delay_ms(200);
//---cek ph
ph_new= ((a-48)*100)+((b-48)*10)+(c-48);//proses mengubah data ph dari char ke int
if(ph_new<=550)
{
//alirkan larutan cuka selama 2 detik
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"PH=%d",ph_new);
lcd_puts(lcd);
PORTB.6=1;
delay_ms(2000);
PORTB.6=0;
}
else if (ph_new>= 750)
{
//alirkan larutan KOH selama 2 detik
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"PH=%d",ph_new);
lcd_puts(lcd);
delay_ms(2000);
PORTB.7=0;
}
//==================cek rtc
if(update == 1)
{
new_jm=jm;
new_mn=mn;
new_dt=dt;
update=0;
lcd_clear();
lcd_gotoxy(0,1);
sprintf(bstr,"set %02d:%02d:%02d",new_jm,new_mn,new_dt);
lcd_puts(bstr);
delay_ms(5000);
}
menit= new_mn+jdwl;
if( menit >= 60 ) menit= 60- (new_mn +jdwl);
if( mn == menit)
{
PORTB.2=1;
lcd_clear();
lcd_gotoxy(0,1);
sprintf(bstr,"POMPA ON");
lcd_puts(bstr);
delay_ms(10000);
PORTB.2=0;
update=1;
}
else
{
lcd_clear();
rtc_get_time(&jm,&mn,&dt);
rtc_get_date(&tg,&bl,&th);
lcd_gotoxy(0,0);
sprintf(bstr,"Time %02d:%02d:%02d",jm,mn,dt);
lcd_puts(bstr);
lcd_gotoxy(0,1);
sprintf(lcd," 3=run A=stop");
lcd_puts(lcd);
delay_ms(500);
lcd_gotoxy(0,1);
sprintf(lcd," 1=jam 2=jdwl ");
lcd_puts(lcd);
delay_ms(500);
}
if(key=='1')
//setting waktu
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"format data");
lcd_gotoxy(0,1);
sprintf(lcd,"jm:mn:dt");
lcd_puts(lcd);
delay_ms(2000);
z=0;
//ambil data;
while (z<6)
{
key=keypad();
if(key=='0') {time[z]=0;z=z+1;};
if(key=='1') {time[z]=1;z=z+1;};
if(key=='2') {time[z]=2;z=z+1;};
if(key=='3') {time[z]=3;z=z+1;};
if(key=='4') {time[z]=4;z=z+1;};
if(key=='5') {time[z]=5;z=z+1;};
if(key=='6') {time[z]=6;z=z+1;};
// if(key=='7') {time[z]=7;z=z+1;};
// if(key=='8') {time[z]=8;z=z+1;};
// if(key=='9') {time[z]=9;z=z+1;};
jm=time[0]*10+time[1];
mn=time[2]*10+time[3];
dt=time[4]*10+time[5];
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"%2d:%2d:%2d ",jm,mn,dt);
lcd_puts(lcd);
delay_ms(200);
}
rtc_set_time(jm,mn,dt);
lcd_gotoxy(0,0);
sprintf(lcd,"set time ok!");
lcd_puts(lcd);
delay_ms(500);
//tg=05;bl=04;th=13;
//rtc_set_date(tg,bl,th);
}
if(key=='2')
//setting jadwal
{
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"jadwal= __menit");
lcd_puts(lcd);
delay_ms(2000);
g=0;
//ambil data;
while (g<2)
{
key=keypad();
if(key=='0') {time_jdwl[g]=0;g=g+1;};
if(key=='1') {time_jdwl[g]=1;g=g+1;};
if(key=='2') {time_jdwl[g]=2;g=g+1;};
if(key=='3') {time_jdwl[g]=3;g=g+1;};
if(key=='4') {time_jdwl[g]=4;g=g+1;};
if(key=='5') {time_jdwl[g]=5;g=g+1;};
if(key=='6') {time_jdwl[g]=6;g=g+1;};
// if(key=='7') {time[z]=7;z=z+1;};
// if(key=='9') {time[z]=9;z=z+1;};
jdwl=time_jdwl[0]*10+time_jdwl[1];
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"jadwal= %1d%1dmenit",time_jdwl[0],time_jdwl[1]);
lcd_puts(lcd);
delay_ms(200);
}
time_jdwl[0]=0;
time_jdwl[1]=0;
lcd_clear();
lcd_gotoxy(0,0);
sprintf(lcd,"set jadwal ok!");
lcd_puts(lcd);
delay_ms(500);
}
if(key=='3')
//run
{
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("RUN!!");
run=1;
}
if(key=='A')
//stop
{
lcd_clear();
lcd_gotoxy(0,0);
run=0;
}
// key=keypad();
// if(key=='1')
// {
//
// rtc_get_time(&jm,&mn,&dt);
// rtc_get_date(&tg,&bl,&th);
//
// lcd_gotoxy(0,0);
// sprintf(bstr,"Time %02d:%02d:%02d",jm,mn,dt);
//
// lcd_puts(bstr);
//
// sprintf(bstr,"Date %02d-%02d-%02d",tg,bl,th);
// lcd_gotoxy(0,1);
// lcd_puts(bstr);
// delay_ms(100);
// }
// if(key=='2')
// {
// lcd_gotoxy(0,0);
// sprintf(lcd,"PH=%c%c%c",a,b,c);
// lcd_puts(lcd);
//
// lcd_gotoxy(0,1);
// sprintf(lcd,"SUHU=%c%c.%c",d,e,f);
// lcd_puts(lcd);
// delay_ms(200);
// if(key=='3')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=3 ON");
// PORTB.2=1;
// }
// if(key=='4')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=4");
//
// }
// if(key=='5')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=5");
// }
// if(key=='6')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=6");
// }
// if(key=='7')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// }
// if(key=='8')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=8");
// }
// if(key=='9')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=9");
// }
// if(key=='*')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=*");
// }
// if(key=='#')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=#");
// }
// if(key=='0')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=0");
// if(key=='A')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=A OFF");
// PORTB.2=0;
// }
// if(key=='B')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=B");
// }
// if(key=='C')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=C");
// }
// if(key=='D')
// {
// lcd_clear();
// lcd_gotoxy(0,0);
// lcd_putsf("keypad=D");
// }
// delay_ms(200);
};
LAMPIRAN B
Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1
Latar Belakang
Dewasa ini perkembangan teknologi sangat maju dengan pesat.
Salah satu perkembangan teknologi yang sangat pesat adalah elektronika.
Salah satunya adalah dengan otomatisasi alat bantu manusia yang sudah
ada sekarang dapat bekerja lebih efisien dan efektif dalam meringankan
pekerjaan manusia.
Bukan hanya pada elektronika, bidang pertanian sekarang pun
sudah menjadi sangat berkembang. Hal ini dapat disebabkan karena
semakin sempitnya lahan pertanian, sehingga manusia mulai mencari cara
yang lebih efisien dalam mengembangkan bidang pertanian walaupun
lahannya semakin sempit. Perkembangan ini dapat dilihat dengan adanya
metode pertanian yang baru, salah satunya yang dikenal sebagai budi daya
sistem hidroponik.
Hidroponik berasal dari kata
hidro
yang berarti air dan
ponus
yang
berarti daya. Dengan demikian, hidroponik dapat berarti memberdayakan
air, yaitu kegunaan air sebagai dasar pembangunan tubuh tanaman dan
berperan dalam proses fisiologi tanaman. Berbeda dengan cara penanaman
biasa, bila pada penanaman biasa yang digunakan adalah media tanah,
pada tanaman hidroponik media yang digunakan bukanlah media tanah,
tetapi dapat berupa batu apung, air, arang sekam dan pasir. Keuntungan
yang diperoleh pun cukup berlimpah, diantaranya adalah tanaman menjadi
lebih bersih, tidak membutuhkan tempat yang luas, dan lain
–
lain.
Setiap tanaman memiliki karakteristik yang berbeda. Kebutuhan
masing-masing tanaman akan air dan pupuk (unsur hara) juga berbeda.
Pada tugas akhir ini akan dirancang suatu alat yang dapat melakukan
penyiraman dan pemberian pupuk secara otomatis sesuai dengan waktu
BAB I PENDAHULUAN
2
Universitas Kristen Maranatha
1.2
Perumusan Masalah
Perumusan masalah Tugas Akhir ini adalah bagaimana merancang
suatu sistem yang dapat melakukan pengendalian PH pada sistem
pemupukan tanaman hidroponik secara otomatis?
1.3
Tujuan
Tujuan Tugas Akhir ini adalah untuk merancang dan
merealisasikan alat yang dapat melakukan pengendalian PH pada sistem
pemupukan tanaman hidroponik secara otomatis, supaya nilai PH dapat
terjaga pada batas yang diinginkan.
1.4
Pembatasan Masalah
Untuk tidak memperluas pokok permasalahan, maka penulis
membatasi masalah sebagai berikut :
1.
Tanaman yang digunakan adalah tanaman yang dapat dibudidayakan
dengan metode hidroponik, yaitu tanaman selada.
2.
Penggunaan Mikrokontroler AVR ATMega16 sebagai pengontrol
otomatis.
3.
Pupuk yang digunakan adalah jenis pupuk khusus untuk tanaman
Hidroponik yaitu pupuk
AB Mix.
4.
Pemupukan dilakukan berdasarkan jadwal yang sudah ditentukan pada alat
pengendali.
5.
Nilai PH yang diinginkan yaitu 5,5 sampai dengan 6,5.
1.5
Spesifikasi Alat Yang Digunakan
Alat yang digunakan memiliki spesifikasi sebagai berikut :
1.
Menggunakan mikrokontroler AVR ATMega16.
2.
Menggunakan tampilan
Liquid Cristal Display
(LCD)
3.
Menggunakan1 buah pompa air.
4.
Menggunakan Relay untuk mendrive pompa
5.
Solenoide Valve
2 buah.
6.
Menggunakan RTC DS1307.
BAB I PENDAHULUAN
3
Universitas Kristen Maranatha
1.6
Sistematika Penulisan
BAB I
: PENDAHULUAN
Bab ini membahas mengenai latar belakang permasalahan,
perumusan masalah, tujuan penulisan, metode penyelesaian
masalah serta sistematika penulisan pada Tugas Akhir ini.
BAB II : LANDASAN TEORI
Bab ini membahas mengenai teori-teori penunjang yang
diperlukan dalam merealisasikan tugas akhir yaitu berupa
teori tentang cara menanam hidroponik, pengontrol mikro,
PH meter.
BAB III : PERANCANGAN DAN REALISASI
Pada bab ini diuraikan tentang perancangan sistem
otomatisasi pemupukan pada tanaman hidroponik. Diagram
blok, cara kerja alat, perangkat keras (ATMega16 dan sensor
pH) serta perangkat lunak yang dilengkapi dengan diagram
alir.
BAB IV : DATA PENGAMATAN DAN ANALISA
Bab ini menguraikan hasil dan analisa dari realisasi alat yang
telah dibuat.
BAB V : SIMPULAN DAN SARAN
47 Universitas Kristen Maranatha
BAB V
SIMPULAN DAN SARAN
V.1 Simpulan
Berdasarkan hasil pengujian pada tugas akhir ini maka dapat disimpulkan :
1.
Pengendalian PH pada sistem pemupukan tanaman dengan menggunakan
mikrokontroler ATMega16 dapat direalisasikan.
2.
Dengan menggunakan otomatisasi pengendalian PH, tingkat keasaman
atau kebasaan larutan nutrisi dapat terjaga dengan baik.
V.2
Saran
Berikut adalah saran-saran penulis untuk siapa saja yang ingin merevisi
dan mengembangkan sistem ini.
1.
Untuk pengembangan berikutnya disarankan untuk menambahkan
parameter lain seperti suhu, intensitas cahaya, kelembaban dapat
diperhatikan juga.
2.
Perlunya penambahan sensor untuk melihat kandungan nutrisi atau unsur
hara pada tanaman.
48
DAFTAR PUSTAKA
1.
Andrianto, Heri. 2008. Pemrograman Mikrokontroler AVR Atmega 16.
Bandung : INFORMATIKA Bandung.
2.
Hadian Satria Utama, Sani M.Isa, Arie Indra Gunawan, Perancangan dan
Implementasi Sistem Otomatisasi Pemeliharaan Tanaman Hidroponik,
Jurnal Teknik Elektro TESLA Vol.8 No. 1, 1-4, Maret 2006.
3.
Lutron manual book YK-2005WA.
4.
Nicholls, Richard C.
Beginning Hydroponics Soilles Gardening, Edisi
Revisi,
Semarang : Effhar Offset, 2003.
5.
http://www.avrfreaks.net/modules/FreaksFiles/files/4553/Farm_Automatio
n_report.pdf
,
Akses: 20 Oktober 2012
6.
http://en.wikipedia.org/wiki/Ph_meter.
Akses : 1 April 2013
7.
http://www.youtube.com/results?search_type=&search_query=hydroponic&aq
=f. Mei 2008.