HIDROPONIK KONTROLER Rachmat
description
Transcript of HIDROPONIK KONTROLER Rachmat
-
Hidroponik 1
HIDROPONIK KONTROLER
Ringkasan:
Alat ini adalah pengontrol on/off pompa air yg dibedakan lama hidup dan matinya antara
siang dan malam hari. Tetapi bila sensor air (elektrode) mendeteksi tidak ada air dalam
bak, maka secara otomatis kontrol pompa air tidak bekerja (off). DHT 11, LM 35 berfungsi
untuk monitoring saja
Cara kerja sbb:
Mikro ini menggunakan Desy mega
Sistem ini mengontrol hidup matinya pompa air (melalui Relay 1), berdasarkan waktu yang
dibagi menjadi 2 yaitu siang dan malam hari. Rinciannya seperti ini mas,
Siang, dimulai dari Jam 6 pagi hingga jam 6 sore (jam 18:00 waktu mikrokontroler). Siang hari pompa hidup (ON) selama 5 menit dan 15 menit mati (OFF), secara bergantian hingga pukul 18:00. Malam, dimulai dari jam 18:01 (jam 6 sore) sampai jam 5:59. pada waktu malam pompa
hidup (ON) selama 5 menit dan 25 menit mati (OFF), secara bergantian hingga pukul 5.59
pagi.
Elektrode, digunakan untuk mendeteksi ada atau tidaknya air dalam bak, bila air dalam bak
kosong (B=K) Relay 2 akan aktif. Pada layar LCD ditampilkan sebagai B= A (bila ADA airnya),
dan B=K (bila tidak ada airnya alias KOSONG). Pompa (Relay 1) tidak akan bekerja (OFF) bila
bak air kosong.
Sensor LM 35, digunakan untuk memonitor suhu air. Pada layar LCD ditampilkan sebagai T=x xC
Sensor DHT 11, digunakan untuk memonitor kelembaban udara di sekitar tanaman
hidroponik. Pada layar LCD ditampilkan sebagai RH:xx%
Penunjuk waktu ditampilkan pada layar LCD sebagai : hh:mm (Jam dan Menit), menggunakan
sistem 24 jam.
Saat Relay 1 aktif (ON) maka pada LCD akan tampil tulisan sbb: Pump = ON (hidup),
sebaliknya bila tidak aktif (OFF) akan ada tulisan Pump = OFF (mati)
-
Hidroponik 2
Urutan tampilan:
Tampilan awal (20 detik).
Contoh Tampilan : (pompa aktif)
Contoh Tampilan: (pompa tidak aktif)
Contoh tampilan pompa tidak aktif karena air dalam bak kosong (walaupun menurut jadwal
relay 1 seharusnya Aktif menghidupkan pompa):
T=xxC RH=xx% B=A/K
hh:mm Pump=ON/OFF
RTC DHT 11 LM 35
ELEKTRODE
RELAY 1 RELAY 2
HIDROPONIK
KONTROLER
T=29C RH=78% B=A
07:02 Pump=ON
T=30C RH=89% B=A
19:16 Pump=OFF
-
Hidroponik 3
Skematik
R14.7K
Y2
16MHZ
U1
ATMega16
9
181920
29
30
31
40
12345678 21
22232425262728
10
11
12
13
14151617
39383736353433
32
RST
(OC1B)PD4(OCB1A)PD5
(ICP1)PD6
(TOSC2)PC7
AVCC
GN
D
PA0(ADC0)
PB0(XCK/T0)PB1(T1)PB2(INT2/AIN0)PB3(OC0/AIN1)PB4(SS)PB5(MOSI)PB6(MISO)PB7(SCK) (OC2)PD7
(SCL)PC0(SDA)PC1
PC2PC3PC4PC5
(TOSC1)PC6
VC
CG
ND
XTAL2
XTAL1
(RXD)PD0(TXD)PD1
(INT0)PD2(INT1)PD3
PA1(ADC1)PA2(ADC2)PA3(ADC3)PA4(ADC4)PA5(ADC5)PA6(ADC6)PA7(ADC7)
AREFF
5 V
PD.7
LM35
1 2
3
VS+ VOUT
GN
D
C510nF
D15
1A
JP6
12
PB.1
VCC
VCC
U2
DS13074
7
5 12
6
3
8G
NDSQW/OUT
SDA X1X2
SCLK
VBAT
VC
C
R1547
D15
1A
VCC
VCC
VCC
C51uF
VR1
50K
13
2
PB.2
PA.0 (ADC0)
Y2
32,768 KHz
HIDROPONIK
A4
1 1Tuesday , February 10, 2015
Title
Size Document Number Rev
Date: Sheet of
C322pF
DHT11
RESET
R3
3K
R2
3K
R2
1K
Q12N2222A
3
2
1
R2
1KPB.0
PD.6
VCC
5V
JP4
12
VCC
3V
BATTERY
VCC
K4
RELAY 1
35
412
LCD 2x16
1 (
GN
D)
2 (
VC
C)
3 (
VE
E)
4 (
RS
)5
(R
W)
6 (
E)
7 (
D0
)8
(D
1)
9 (
D2
)1
0 (
D3
)1
1 (
D4
)1
2 (
D5
)1
3 (
D6
)1
4 (
D7
)1
5 (
A)
16
(K
)
C422pF
Q12N2222A
3
2
1
K4
RELAY 2
35
412
T=28C RH=75% B:K
20:02 Pump=OFF
-
Hidroponik 4
'----------------------------------------------------- ' HIDROPONIK ' SENSOR KELEMBABAN, TEMPERATURE + RTC ' Chip : ATmega16 ' Clock : 16 MHz ' 9-2-2015 ' '----------------------------------------------------- $regfile = "m16def.dat" $crystal = 16000000 Dim Suhu As Byte , Humi As Byte , Cnt As Byte , Hasil As Byte Dim A As Integer , Geser As Byte , B As Byte Dim Suhu_lm35 As Single , Volt As Word , Data_adc As Word Dim Cntl As Byte , Cnth As Byte Dim Suhu1 As Word , Suhu2 As Word , K As Byte Dim Bak As String * 1 , Pump As String * 4 Declare Sub Read_sensor_rh() Declare Sub Read_sensor_temp() Declare Sub Calc_th() '----- Config Sda = Portd.7 Config Scl = Portd.6 Const Ds1307w = &HD0 ' Const Ds1307r = &HD1 Config Clock = User Dim Weekday As Byte Config Adc = Single , Prescaler = Auto , Reference = Avcc Ddrd.0 = 0 Portd.0 = 1 Ddrd.1 = 1 Portd.1 = 0 Ddrb.1 = 1 Ddrb.2 = 1 '--------------- 'jam : menit : detik 'Time$ = "13:38:10" 'bulan-tanggal-tahun 'Date$ = "2-10-15" '------- konfigurasi LCD Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.2 , Db4 = Portc.4 , Config Lcdpin = Pin , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 Config Lcd = 16 * 2 Cursor Off Cls Lcd " HIDROPONIK " Lowerline Lcd " KONTROLER " Wait 20 Cls
-
Hidroponik 5
Start Adc Do Gosub Getdatetime Read_sensor_temp Read_sensor_rh If Pind.0 = 0 Then Bak = "K" Portb.2 = 1 'RL2 ON Elseif Pind.0 = 1 Then Bak = "A" Portb.2 = 0 'RL2 OFF End If '----kontrol siang If _hour >= 6 And _hour < 18 Then If _min >= 0 And _min < 5 Then Portb.1 = 1 'RL1 ON Pump = "ON " Elseif _min >= 5 And _min < 20 Then Portb.1 = 0 'RL1 OFF Pump = "OFF" Elseif _min >= 20 And _min < 25 Then Portb.1 = 1 'RL1 ON Pump = "ON " Elseif _min >= 25 And _min < 40 Then Portb.1 = 0 'RL1 OFF Pump = "OFF" Elseif _min >= 40 And _min < 45 Then Portb.1 = 1 'RL1 ON Pump = "ON " Elseif _min >= 45 Then Portb.1 = 0 'RL1 OFF Pump = "OFF" End If '----kontrol malam Elseif _hour >= 18 Or _hour < 6 Then If _min >= 0 And _min < 5 Then Portb.1 = 1 'RL1 ON Pump = "ON " Elseif _min >= 5 And _min < 30 Then Portb.1 = 0 'RL1 OFF Pump = "OFF" Elseif _min >= 30 And _min < 35 Then Portb.1 = 1 'RL1 ON Pump = "ON " Elseif _min >= 35 Then Portb.1 = 0 'RL1 OFF Pump = "OFF" End If End If Locate 1 , 1 Lcd "T=" ; Suhu1 ; "C RH=" ; Humi ; "% B:" ; Bak Locate 2 , 1 Lcd _hour ; ":" ; _min ; " Pump=" ; Pump Wait 1 Loop
-
Hidroponik 6
'==================Baca sensor LM35==== Sub Read_sensor_temp() Data_adc = Getadc(0) Volt = Data_adc * 5 Suhu1 = Volt / 10 End Sub '==================Baca sensor DHT11==== Sub Read_sensor_rh() Suhu = 0 Humi = 0 Cnt = 0 Ddrb.0 = 1 Waitms 250 Portb.0 = 0 Waitms 18 Portb.0 = 1 Waitus 40 Ddrb.0 = 0 Cntl = 0 Cnth = 0 '//tunggu response dari DHT11 Bitwait Pinb.0 , Reset While Cntl < 100 $asm Nop $end Asm Incr Cntl If Pinb.0 = 1 Then Exit While Wend Cnt = 0 While Cnth < 100 $asm Nop $end Asm Incr Cnth If Pinb.0 = 0 Then Exit While Wend 'humi=calc_TH(); Gosub Calc_th Humi = Hasil 'kosong=calc_TH(); Gosub Calc_th 'suhu=calc_TH(); Gosub Calc_th Suhu = Hasil 'Kosong = Calc_th(); Gosub Calc_th End Sub Sub Calc_th()
-
Hidroponik 7
Cnt = 0 Hasil = 0 For A = 8 To 1 Step -1 While Cnt < 100 Waitus 1 Incr Cnt If Pinb.0 = 1 Then Exit While Wend Cnt = 0 While Cnt < 100 Waitus 1 Incr Cnt If Pinb.0 = 0 Then Exit While Wend If Cnt > 20 Then '//HIGH B = A - 1 Geser = 1 Shift Geser , Left , B Hasil = Hasil + Geser End If Cnt = 0 Next End Sub '************************** RTC ***************************************** Getdatetime: I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cstart I2cwbyte Ds1307r I2crbyte _sec , Ack I2crbyte _min , Ack I2crbyte _hour , Ack I2crbyte Weekday , Ack I2crbyte _day , Ack I2crbyte _month , Ack I2crbyte _year , Nack I2cstop _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour) _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year) Return Setdate: _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year) I2cstart I2cwbyte Ds1307w I2cwbyte 4 7 I2cwbyte _day I2cwbyte _month I2cwbyte _year I2cstop
-
Hidroponik 8
Return Settime: _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) I2cstart I2cwbyte Ds1307w I2cwbyte 0 I2cwbyte _sec I2cwbyte _min I2cwbyte _hour I2cstop Return