bab iii perancangan alat - repository.uksw.edu

40
17 BAB III PERANCANGAN ALAT Pada bab 3 ini akan dibahas mengenai perancangan alat yang meliputi skematis dan wiring, diagram blok, flowchart, tata letak alat pada ruangan, dan analisa kode pada alat yang digunakan. 3.1 Skematis dan Wiring Alat 2 1 3 4 5 6 7 8 9 10 11 12 14 13 15

Upload: others

Post on 02-Oct-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB III PERANCANGAN ALAT - repository.uksw.edu

17

BAB III

PERANCANGAN ALAT

Pada bab 3 ini akan dibahas mengenai perancangan alat yang meliputi skematis dan

wiring, diagram blok, flowchart, tata letak alat pada ruangan, dan analisa kode pada alat

yang digunakan.

3.1 Skematis dan Wiring Alat

2

1

3

4

5

6

7

8

9

10

11

12

14

13

15

Page 2: BAB III PERANCANGAN ALAT - repository.uksw.edu

18

Gambar 3.1 Skematis rangkaian

Gambar 3.1 adalah skematik dari sistem automasi greenhouse berbasis kebutuhan

iklim mikro tanaman. Pada skema di atas air cooler dan fog machine dimisalkan

kipas dc karena di aplikasi fritzing tidak ada simbol dari kedua alat tersebut.

Tegangan 220V dimisalkan konektor karena di aplikasi fritzing tidak ada simbol dari

alat tersebut. Adaptor 24 V dimisalkan baterai 9 V karena di aplikasi fritzing tidak

ada simbol dari alat tersebut

Keterangan pada Gambar 3.1:

1. Keypad 4×4

2. 2 Kipas DC 24V

3. LCD 20×4

4. Adaptor 24 V

5. Modul I2C

6. Sensor GY302-BH1750

7. Sensor DHT11

8. Halogen Reflector Bulb 300 Watt

9. 4 Lampu led sorot 100 Watt

10. Air cooler

11. Mesin kabut

12. Tegangan 220V

13. Driver motor L298N

14. Arduino Mega 2560

15. 2 Relay Module 4 Channels 5V

Tabel 3.1 Wiring dari modul I2C lcd 20×4, DHT11, GY302-BH1750, relay, L298 dan

keypad ke arduino mega 2560

I2C Arduino mega 2560

SCL SCL

SDA SDA

VCC 5V

Page 3: BAB III PERANCANGAN ALAT - repository.uksw.edu

19

Tabel 3.1 (lanjutan) Wiring dari modul I2C lcd 20×4, DHT11, GY302-BH1750, relay,

L298 dan keypad ke arduino mega 2560

GND GND

DHT 11

VCC 5 V

DATA D11

NULL -

GND GND

GY302-BH1750

SCL SCL

SDA SDA

VCC 5 V

NULL -

GND GND

Relay

In 1 D38

In 2 D40

In 3 D42

In 4 D44

In 5 D46

In 6 D48

In 7 D50

VCC 5 V

GND GND

L298N

In 1 D4

In 2 D5

ENA D10

Page 4: BAB III PERANCANGAN ALAT - repository.uksw.edu

20

Tabel 3.1 (lanjutan) Wiring dari modul I2C lcd 20×4, DHT11, GY302-BH1750, relay,

L298 dan keypad ke arduino mega 2560

In 3 D6

In 4 D7

ENB D9

VCC 6-35V POWER SUPPLY 24V

GND GND

VCC 5V -

M1-01 MOTOR DC 24V

M1-02 MOTOR DC 24V

M2-01 MOTOR DC 24V

M2-02 MOTOR DC 24V

Keypad

col 1 D22

col 2 D24

col 3 D26

col 4 D28

row 1 D30

Row 2 D32

Row 3 D34

Row 4 D36

Tabel 2 adalah wiring dari modul I2C lcd 20×4, DHT11, GY302-BH1750,

L298N, keypad dan relay arduino mega 2560. Wiring modul I2C lcd 20×4 ke

arduino. SCL dan SDA dari arduino terletak di kaki D21 dan D20. Kaki VCC dan

GND modul I2C disambungkan ke 5V dan GND arduino.

Wiring DHT11 ke arduino. VCC dan GND dari DHT 11 sambungkan ke 5V dan

GND arduino pin data dari DHT 11 disambungkan ke kaki D11. Wiring GY302-

Page 5: BAB III PERANCANGAN ALAT - repository.uksw.edu

21

BH1750 ke arduino. SCL dan SDA GY302-BH1750 disambungkan ke D21 dan

D20 arduino. Kaki VCC dan GND GY302-BH1750 disambungkan ke 5V dan

GND arduino.

Wiring relay ke arduino. In 1 sampai In 4 disambungkan ke pwm mikrokontroler.

Hal ini dilakukan agar kita dapat mengatur alat yang akan dikendalikan. Kabel

dari catu daya 220V dipasang seri dengan lampu led sorot 100 Watt. Kemudian

salah satu kaki dari catu daya yang tidak terhubung dengan led dimasukan ke kaki

relay yang tengah sedangkan kaki led yang tidak terhubung dengan kaki catu daya

220V masuk ke kaki relay yang lainnya. Wiring yang sama dilakukan ke alat yang

terhubung dengan catu daya 220V.

Wiring L298N ke arduino mega 2560. ENA dan ENB berfungsi untuk

mengaktifkan bagian output motor 1 dan motor 2. In 1, in 2, in 3 dan in 4

berfungsi sebagai kendali perputaran dan kecepatan motor. Wiring keypad 4×4 ke

arduino. Col 1 sampai dengan col 4 dihubungkan ke pin D22, D24, D26, D30 dan

row 1 sampai dengan row 4 dihubungkan ke D30, D32, D34, D36.

3.2 Diagram blok

Relay Modul I2C L298N

Motor

DC 24V

Arduino mega 2560

LCD 20×4

led Bulb Air

Cooler

Mesin

kabut

Keypad

DHT 11 GY302 BH1750

Page 6: BAB III PERANCANGAN ALAT - repository.uksw.edu

22

Gambar 3.2 Diagram blok dari sistem automasi greenhouse berbasis

kebutuhan iklim mikro tanaman

Gambar 3.2 adalah diagram proses dari sistem automasi greenhouse berbasis

kebutuhan iklim mikro tanaman. Sensor DHT 11 dan GY302-BH1750 akan

mengirimkan data hasil pembacaan sensor ke arduino. Kemudian arduino akan

memproses data yang telah kirim oleh kedua sensor tersebut. Data yang telah

diproses akan digunakan untuk mengendalikan alat yang digunakan. Data yang

telah diproses juga akan ditampilkan di LCD 20×4 . Selain digunakan untuk

memantau data, LCD 20×4 juga dapat mengendalikan alat yang ada dengan

mengirim data yang diinginkan ke arduino menggunakan keypad.

3.3 Flowchart

Mulai

1. Sensor DHT 11 dan GY302-BH1750

membaca kondisi ruangan suhu,

kelembaban serta intensitas cahaya

dan mengirimkan hasil pembacaan

sensor ke mikrokontroler.

3. Mengolah data

masukan.

4. Perintah

ditampilkan

di LCD.

2. Keypad digunakan untuk

mengatur data.

5. Menyalakan LED sesuai besar

intensitas cahaya serta lama penyinaran

sesuai data yang diinginkan user.

Page 7: BAB III PERANCANGAN ALAT - repository.uksw.edu

23

6. Apakah

suhu

ruangan di

atas atau

bawah

suhu yang

diinginkan?

9. Apakah

kelembaban

ruangan di

atas atau

bawah

kelembaban

yang

diinginkan?

A

A

Di atas

Di bawah Di bawah

Di atas

Selesai

7. Menyalakan

pemanas

ruangan.

10. Menyalakan

mesin kabut.

8. Menyalakan

air cooler.

11. Menyalakan

kipas DC.

Page 8: BAB III PERANCANGAN ALAT - repository.uksw.edu

24

Gambar 3.3 Flowchart dari sistem telah dibuat

Gambar 3.3 adalah flowchart dari sistem telah dibuat. Berikut cara kerja dari sistem

automasi greenhouse berbasis kebutuhan iklim mikro tanaman. Pada proses yang

pertama sensor DHT 11 akan membaca suhu serta kelembaban ruangan sedangkan

Sensor GY302-BH1750 membaca intensitas cahaya dalam ruangan. Data dari kedua

sensor akan di kirim ke mikrokontroler. Data yang diperoleh dari kedua sensor

selanjutnya akan diolah oleh mikrokontroler. Selanjutnya pada proses kedua pemilik

greenhouse memberikan masukan yang berupa data yang diinginkan melalui tombol

keypad 4×4. Pada proses ketiga data yang telah diperoleh dari masukan penguna

greenhouse melalui tombol keypad 4×4 dan hasil pembacaan sensor, selanjutnya

akan diproses oleh mikrokontroler. Pada proses keempat pemilik greenhouse dapat

memilih tampilan menu yang diinginkan yang nantinya akan ditampilkan di layar

LCD 20×4. Pada menu 1 penguna greenhouse dapat mengetahui hasil pembacaan

sensor yang berupa besarnya suhu, kelembaban, intensitas cahaya serta lama

penyinaran. Pada menu 2 pemilik greenhouse dapat mengatur iklim mikro yang ada

di dalam greenhouse. Sedangkan menu 3 pengguna greenhouse dapat mengetahui

data yang sudah diatur pada menu 2.

Selanjutnya pada proses kelima mikrokontoler akan menyalakan lampu led sorot 100

Watt untuk mengatur intensitas cahaya dan lama penyinaran sesuai masukan yang

telah diberikan. Proses keenam mikrokontroler membandingkan apakah suhu yang

dibaca sensor lebih besar atau lebih kecil dari masukan yang diberikan penguna

greenhouse. Pada proses ketujuh apabila suhu yang dibaca sensor dibawah suhu yang

diingingkan maka mikrokontroler akan menaikkan suhu ruangan menggunakan

lampu halogen reflector bulb 300 Watt yang telah terhubung dengan relay secara

otomatis. Udara panas yang dihasilkan oleh lampu halogen reflector bulb 300 Watt

akan diatur dengan sistem kendali on/off dari mikrokontroler. Apabila suhunya sudah

sampai pada yang diinginkan maka lampu halogen reflector bulb 300 Watt otomatis

mati. Sedangkan pada proses kedelapan apabila suhu yang dibaca sensor diatas suhu

yang diingingkan maka mikrokontroler menurunkan suhu menggunakan air cooler

Page 9: BAB III PERANCANGAN ALAT - repository.uksw.edu

25

yang terhubung dengan relay. Apabila suhunya terlalu panas maka air cooler akan

otomatis menyala dan bila suhunya sudah sampai pada yang diinginkan maka air

cooler otomatis mati. Pada proses kesembilan mikrokontroler membandingkan

apabila kelembaban udara yang dibaca sensor lebih besar atau lebih kecil dari

masukan yang diberikan penguna greenhouse. Pada proses kesepuluh apabila

kelembaban yang dibaca sensor di bawah kelembaban yang diingingkan maka

mikrokontroler akan menaikkan kelembaban ruangan dengan menghidupkan mesin

kabut dan bila kelembabannya sudah sampai pada yang diinginkan maka mesin kabut

otomatis mati. Pada proses kesebelas apabila kelembaban yang dibaca sensor di atas

kelembaban yang diingingkan maka mikrokontroler akan nurunkan kelembaban

ruangan dengan menghidupkan 2 kipas dc 24V untuk membuang kelembaban udara

yang ada. Nyala dari 2 kipas dc 24V akan dikendalikan oleh sistem on/off dari

mikrokontroler. Bila kelembaban sudah sampai pada yang diinginkan maka kipas dc

24V otomatis mati.

3.4 Tata Letak Alat pada Ruangan

Gambar 3.4 Foto alat dalam ruangan greenhouse(1)

1 2

3 4

Page 10: BAB III PERANCANGAN ALAT - repository.uksw.edu

26

Gambar 3.5 Foto alat dalam ruangan greenhouse(2)

Gambar 3.4 dan Gambar 3.5 adalah tata peletakan alat dalam ruangan greenhouse

yang berukuran 3,5×3,5×2,5 meter. Kotak pengendali diletakkan di atas meja agar

memudahkan pengguna greenhouse untuk memantau ataupun mengatur iklim

mikronya. Kotak pemanas diletakkan di atas meja dan menghadap ke arah tanaman

agar pernyebaran panas lebih cepat dirasakan oleh tanaman. 4 lampu led 100 watt

diletakkan mengantung di tengah ruangan. Gantungan untuk lampu sengaja dibuat

mudah untuk dilepas dan dipasang agar dapat menyesuaikan tinggi tanaman. Sensor

GY302-BH1750 diletakan 15 cm dibawah kerangka penopang 4 lampu led 100 Watt.

Mesin pelembab ruangan diletakan di samping tanaman agar kelembaban yang

dihasilkan oleh mesin dapat dengan cepat dirasakan oleh tanaman. 2 kipas DC 24 V

diletakkan di atas mesin pelembab agar apabila kelembaban yang dihasilkan oleh

mesin pelembab berlebihan, dapat langsung dibuang oleh kipas DC 24 V. Air cooler

mengarah langsung ke tanaman agar penyebaran dingin lebih cepat dirasakan oleh

tanaman.

Keterangan pada Gambar 3.4 dan Gambar 3.5 :

1. Kotak pengendali

2. Kotak pemanas

3. Lampu led

4. Mesin kabut

5

6

Page 11: BAB III PERANCANGAN ALAT - repository.uksw.edu

27

5. Kipas DC 24 V

6. Air cooler

3.5 Analisa Kode

Koding di atas merupakan library yang akan dipakai untuk masing-masing

modul.

Menetapkan alamat I2C untuk LCD yaitu di 0×3F dan menetapkan tampilan

LCD untuk 20 karakter dan 4 baris.

#include <LiquidCrystal_I2C.h>

#include <Keypad.h>

#include <Wire.h>

#include <BH1750.h>

#include <dht.h>

#include<PWM.h>

LiquidCrystal_I2C lcd(0X3F,20,4);

dht DHT;

BH1750 lightMeter(0x23);

#define DHT11_PIN 11

Page 12: BAB III PERANCANGAN ALAT - repository.uksw.edu

28

Membuat variable bernama DHT dan mendeklarasikan output sensor DHT11 ke

pin digital 11 arduino mega. Menetapkan alamat I2C untuk sensor GY302-

BH1750 yaitu di 0×23.

Membuat variable matriks 4×4, membuat isi matriks 4×4, menghubungkan

pinouts row dan column ke pin digital arduino, mendeklarasikan variabel

ROWS san COLS sebagai rowPins dan colPins yang terdapat di library

keypads arduino

const byte ROWS = 4; //four rows

const byte COLS = 4; //four columns

char keys[ROWS][COLS] = {

{'1','2','3','A'},

{'4','5','6','B'},

{'7','8','9','C'},

{'*','0','#','D'}

};

byte rowPins[ROWS] = {36, 34, 32, 30}; //connect

to the row pinouts of the keypad

byte colPins[COLS] = {28, 26, 24, 22}; //connect

to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins,

colPins, ROWS, COLS );

int SH[]={48,48};

int HD[]={48,48};

int IN[]={48};

int PD[]={48,48};

Page 13: BAB III PERANCANGAN ALAT - repository.uksw.edu

29

Membuat variabel dan memberi nilai awal 0 untuk suhu, kelembaban,

intensitas cahaya serta lama penyinaran. Tipe data keypads berupa string dan

untuk keperluan perhitungan rumus yang nantinya digunakan maka harus

dikonversi terlebih dahulu menjadi tipe data interger.

int IN1=38;//Pin PhotoPeriod and Intensitas 1

int IN2=40;//Pin PhotoPeriod and Intensitas 2

int IN3=42;//Pin PhotoPeriod and Intensitas 3

int IN4=44;//Pin PhotoPeriod and Intensitas 4

int SH1=46;//Pin Bohlam

int SH2=48;//Pin AC

int HD1=50;//Pin Fog

int ENA=10;//Pengatur kecepatan putar motor A

int INA=4;

int INB=5;

int ENB=9;//Pengatur kecepatan putar motor B

int INC=6;

int IND=7;

Page 14: BAB III PERANCANGAN ALAT - repository.uksw.edu

30

Mendeklarasikan pinouts yang ada pada modul relay dan driver motor L298N

ke pin digital arduino. Peletakan pinouts ini tidak boleh terbalik-balik saat

disambungkan di arduino ataupun modulnya karena harus sesuai yang

dideklarasikan di program arduino. Apabila pinouts terbalik-balik maka alat

tidak akan berkerja sesuai yang diharapkan.

void setup()

{

lcd.init();

lcd.backlight();

Wire.begin();

lightMeter.begin();

pinMode(IN1, OUTPUT);

pinMode(IN2, OUTPUT);

pinMode(IN3, OUTPUT);

pinMode(IN4, OUTPUT);

pinMode(SH1, OUTPUT);

pinMode(SH2, OUTPUT);

pinMode(HD1, OUTPUT);

pinMode(ENA, OUTPUT);

pinMode(INA, OUTPUT);

pinMode(INB, OUTPUT);

pinMode(ENB, OUTPUT);

pinMode(INC, OUTPUT);

pinMode(IND, OUTPUT);

Page 15: BAB III PERANCANGAN ALAT - repository.uksw.edu

31

Menginisialisasi LCD modul untuk segera digunakan, menyalakan lampu

backlight pada LCD dan menginisialisasi variabel lightMeter untuk segera

digunakan. Mendeklarasikan variabel IN1, IN2, IN3, IN4, SH1, SH2, HD1,

ENA, INA, INB, ENB, INC, IND sebagai keluaran dari dari proses yang ada

diprogram arduino.

Membuat tampilan pembuka saat memasuki sistem. Tampilan pembukaan ini

akan ditampilkan di LCD 20×4 selama 3 detik.

lcd.setCursor(7,0);

lcd.print("WELCOME");

lcd.setCursor(9,1);

lcd.print("TO");

lcd.setCursor(8,2);

lcd.print("YOUR");

lcd.setCursor(5,3);

lcd.print("GREENHOUSE");

delay(3000);

}

void loop()

{

char key = keypad.getKey();

uint16_t lux = lightMeter.readLightLevel();

Page 16: BAB III PERANCANGAN ALAT - repository.uksw.edu

32

Membuat variabel key untuk membaca inputan dari keypads 4×4 dan variable

lux untuk membaca masukan dari sensor GY302-BH1750.

lcd.clear();

lcd.setCursor(7,0);

lcd.print("MENU :");

lcd.setCursor(0,1);

lcd.print("1. MONITORING");

lcd.setCursor(0,2);

lcd.print("2. SETTING");

lcd.setCursor(0,3);

lcd.print("3. CHECK DATA");

if(key=='1')

{

menu1(PD,lux);

}

if(key=='2')

{

menu2(SH,HD,IN,PD);

}

if(key=='3')

{

menu3(SH,HD,IN,PD);

}

Page 17: BAB III PERANCANGAN ALAT - repository.uksw.edu

33

Menghapus tampilan yang ada di layar LCD 20×4 dan menampilkan tulisan

MENU pada baris pertama, 1. MONITORING pada baris kedua, 2. SETTING

pada baris ketiga, 3. CHECK DATA pada baris keempat. Selain menampilkan

tulisan pada layar LCD. Mikrokontroler juga menunggu masukan dari

keypads. Apabila pengunna menekan tombol 1 maka sistem akan memanggil

fungsi “menu1” dan menggirim data besarnya variabel lama penyinaran yang

sudah diatur dan besarnya intensitas cahaya dari hasil pembacaan sensor. Jika

menekan tombol 2 maka sistem akan memanggil fungsi “menu2” dan

mengirim data variabel suhu, kelembaban, intensitas cahaya dan lama

penyinaran yang nantinya akan diatur oleh pemilik greenhouse. Apabila

pengguna menekan tombol 3 maka sistem akan memanggil fungsi “menu3”

dan dan mengirim data variabel suhu, kelembaban, intensitas cahaya dan

lama penyinaran yang nantinya akan ditampilkan di layar LCD 20×4. Setelah

variabel suhu, kelembaban, intensitas cahaya serta lama penyinaran diatur

maka selanjutnya akan dikirim di fungsi “sistem” untuk diproses.

sistem(SH,HD,IN,PD);

delay(500);

}

void menu1(int PD[],uint16_t lux)

{

lcd.clear();

int PHOTO;

float baca = DHT.read11(DHT11_PIN);

Page 18: BAB III PERANCANGAN ALAT - repository.uksw.edu

34

Masuk ke fungsi “menu1” dan menerima data lama penyinaran yang diatur

serta data besarnya intensitas cahaya hasil pembacaan sensor GY302-

BH1750. Menghapus tampilan di layar LCD, membuat variabel “PHOTO”

untuk pengolahan data. Membuat variabel “baca” untuk membaca hasil

pembacaan sensor DHT11 yang berupa suhu dan kelembaban.

lcd.setCursor(0,0);

lcd.print("TEMPERATURE: C");

lcd.setCursor(18,0);

lcd.print((char)223);

lcd.setCursor(12,0);

lcd.print(DHT.temperature,1);

lcd.setCursor(0,1);

lcd.print("HUMIDITY : %");

lcd.setCursor(12,1);

lcd.print(DHT.humidity,1);

lcd.setCursor(0,2);

lcd.print("INTENSITY : lux");

lcd.setCursor(12,2);

lcd.print(lux);

Page 19: BAB III PERANCANGAN ALAT - repository.uksw.edu

35

Mengatur letak tulisan TEMPERATURE , HUMIDITY dan INTENSITY serta

menampilkan hasil pembacaan suhu dan kelembaban dari sensor DHT11 dan

besarnya intensitas cahaya dari sensor GY302-BH1750 di layar LCD 20×4.

Mengatur letak tulisan PHOTOPERIOD serta menampilkan hasil perhitungan

dari “PHOTO” untuk menggetahui lama penyinaran yang dimasukan penguna

greenhouse melalui tomboh keypads.

Masuk ke fungsi “menu2” dan menerima data suhu, kelembaban, intensitas

cahaya dan lama penyinaran untuk diatur serta membuat variabel “SUHU,

lcd.setCursor(0,3);

lcd.print("PHOTOPERIOD: HOUR");

PHOTO=(PD[0]-48)*10+(PD[1]-48);

lcd.setCursor(12,3);

lcd.print(PHOTO);

delay(5000);}

void menu2(int SH[],int HD[],int IN[],int PD[])

{

int SUHU,KELEM,INTENSI,PHO;

lcd.clear();

int i1,i2,i3,i4=0;

Page 20: BAB III PERANCANGAN ALAT - repository.uksw.edu

36

KELEM, INTENSI, PHO” untuk perhitungan. Memberi nilai awalan 0 untuk

i1, i2, i3, i4.

lcd.setCursor(4,0);

lcd.print("SETTING YOUR");

lcd.setCursor(2,1);

lcd.print("TEMPERATURE:");

lcd.setCursor(2,2);

lcd.print("MAXIMAL :30 C");

lcd.setCursor(16,2);

lcd.print((char)223);

lcd.setCursor(2,3);

lcd.print("MINIMAL :20 C");

lcd.setCursor(16,3);

lcd.print((char)223);

lcd.setCursor(16,1);

lcd.print((char)223);

lcd.setCursor(17,1);

lcd.print("C");

lcd.setCursor(14,1);

Page 21: BAB III PERANCANGAN ALAT - repository.uksw.edu

37

Mengatur tampilan di menu SETTING pada bagian pertama. Pada bagian ini

pemilik greenhouse dapat mengatur berapa suhu yang mau diatur serta akan

ditampilkan batas minimal dan maksimal suhu yang bisa dimasukan di layar

LCD 20×4.

while(i1<2)

{

char key1=keypad.getKey();

if(key1)

{

SH[i1++]=key1;

lcd.print(key1);

}

}

delay(1000);

SUHU=(SH[0]-48)*10+(SH[1]-48);

if(SUHU<20||SUHU>30)

{

salahinputsuhu1();

}

Page 22: BAB III PERANCANGAN ALAT - repository.uksw.edu

38

Memasukan input dari tombol keypad ke dalam array “SH” kemudian array

yang sudah terisi data suhu yang diinginkan akan dimasukan ke dalam rumus

“SUHU” untuk diubah menjadi tipe data integer. Apabila hasil perhitungan

tersebut kurang dari 20 atau lebih dari 30 maka akan masuk ke fungsi

”salahinputsuhu1” tapi kalu hasil perhitungannya antara 20 sampai 30 maka

akan lanjut ke menu SETTING pada bagian kedua.

Mengatur tampilan di menu SETTING pada bagian kedua. Pada bagian ini

pemilik greenhouse dapat mengatur berapa kelembaban yang mau diatur serta

akan ditampilkan batas minimal dan maksimal kelembaban yang bisa

dimasukan di layar LCD 20×4.

lcd.clear();

lcd.setCursor(4,0);

lcd.print("SETTING YOUR");

lcd.setCursor(4,1);

lcd.print("HUMIDITY:");

lcd.setCursor(4,2);

lcd.print("MAXIMAL :90%");

lcd.setCursor(4,3);

lcd.print("MINIMAL :50%");

lcd.setCursor(15,1);

lcd.print("%");

lcd.setCursor(13,1);

while(i2<2)

{

char key2=keypad.getKey();

Page 23: BAB III PERANCANGAN ALAT - repository.uksw.edu

39

Memasukan input dari tombol keypad ke dalam array “HD” kemudian array

yang sudah terisi data kelembaban yang diinginkan akan dimasukan kedalam

rumus “KELEM” untuk diubah menjadi tipe data integer. Apabila hasil

perhitungan tersebut kurang dari 50 atau lebih dari 90 maka akan masuk ke

fungsi ”salahinputkelem1” tapi kalau hasil perhitungannya antara 50 sampai

90 maka akan lanjut ke menu SETTING pada bagian ketiga.

HD[i2++]=key2;

lcd.print(key2);

}

}

delay(1000);

KELEM=(HD[0]-48)*10+(HD[1]-48);

if(KELEM<50||KELEM>90)

{

salahinputkelem1();

}

lcd.clear();

lcd.setCursor(1,0);

lcd.print("SETTING YOUR LIGHT");

lcd.setCursor(1,1);

Page 24: BAB III PERANCANGAN ALAT - repository.uksw.edu

40

Mengatur tampilan di menu SETTING pada bagian ketiga. Pada bagian ini

akan ditampilkan berapa intensitas cahaya yang mau diatur oleh pemilik

greenhouse serta batas minimal dan maksimal intensitas cahaya yang bisa

dimasukan.

lcd.setCursor(0,2);

lcd.print("4)26804 (lx) 5)31161");

lcd.setCursor(0,3);

lcd.print("INPUT:1 TO 5|INPUT:");

lcd.setCursor(19,3);

while(i3<1)

{

char key3=keypad.getKey();

if(key3)

{

IN[i3++]=key3;

lcd.print(key3);

}

}

delay(1000);

Page 25: BAB III PERANCANGAN ALAT - repository.uksw.edu

41

Memasukan input dari tombol keypad ke dalam array “IN” kemudian array

yang sudah terisi data intensitas cahaya yang diinginkan akan dimasukan

kedalam rumus “INTENSI” untuk diubah menjadi tipe data integer. Apabila

hasil perhitungan tersebut kurang dari 1 atau lebih dari 5 maka akan masuk ke

fungsi ”salahinputinten1” tapi kalau hasil perhitungannya antara 1 sampai 5

maka akan lanjut ke menu SETTING pada bagian keempat.

if(INTENSI<1||INTENSI>5)

{

salahinputinten1();

}

lcd.clear();

lcd.setCursor(4,0);

lcd.print("SETTING YOUR");

lcd.setCursor(0,1);

lcd.print("PHOTOPERIOD:");

lcd.setCursor(16,1);

lcd.print("HOUR");

lcd.setCursor(0,2);

lcd.print("MAXIMAL : 24 HOUR");

lcd.setCursor(0,3);

Page 26: BAB III PERANCANGAN ALAT - repository.uksw.edu

42

Mengatur tampilan di menu SETTING pada bagian keempat. Pada bagian ini

pemilik greenhouse dapat mengatur berapa lama penyinaran yang mau diatur

serta akan ditampilkan batas minimal dan maksimal lama penyinaran yang

bisa dimasukan di layar LCD 20×4.

while(i4<2)

{

char key4=keypad.getKey();

if(key4)

{

PD[i4++]=key4;

lcd.print(key4);

}

}

PHO=(PD[0]-48)*10+(PD[1]-48);

if(PHO<0||PHO>24)

{

salahinputphoto1();

}

delay(1000);

}

Page 27: BAB III PERANCANGAN ALAT - repository.uksw.edu

43

Memasukan input dari tombol keypad ke dalam array “PD” kemudian array

yang sudah terisi data lama penyinaran yang diinginkan akan dimasukan

kedalam rumus “PHO” untuk diubah menjadi tipe data integer. Apabila hasil

perhitungan tersebut kurang dari 0 atau lebih dari 24 maka akan masuk ke

fungsi ”salahinputphoto1” tapi kalu hasil perhitungannya antara 0 sampai 24

maka akan lanjut ke fungsi “sistem”.

void menu3(int SH[],int HD[],int IN[],int PD[])

{

lcd.clear();

int TEMPE,HUMID,INTEN,PHOTO;

lcd.setCursor(0,0);

lcd.print("TEMPERATURE: C");

lcd.setCursor(18,0);

lcd.print((char)223);

TEMPE=(SH[0]-48)*10+(SH[1]-48);

lcd.setCursor(12,0);

lcd.print(TEMPE);

lcd.setCursor(0,1);

lcd.print("HUMIDITY : %");

HUMID=(HD[0]-48)*10+(HD[1]-48);

lcd.setCursor(12,1);

lcd.print(HUMID);

Page 28: BAB III PERANCANGAN ALAT - repository.uksw.edu

44

Masuk ke fungsi “menu3” dan menerima data suhu, kelembaban, intensitas

cahaya dan lama penyinaran untuk ditampilkan serta membuat variabel “

TEMPE, HUMID, INTEN, PHOTO ” untuk perhitungan. Mengatur tampilan

TEMPERATURE dan HUMIDITY pada layar LCD serta menghitung

“TEMPE” dan “HUMID” untuk ditampilkan hasil konversi dari tipe data

string ke tipe data interger di layar LCD sebagai suhu dan kelembaban yang

diharapkan pemilik greenhouse.

lcd.setCursor(0,2);

lcd.print("INTENSITY : lux");

INTEN=(IN[0]-48);

if(INTEN==1)

{

lcd.setCursor(12,2);

lcd.print("0");

}

if(INTEN==2)

{

lcd.setCursor(12,2);

lcd.print("11315");

}

if(INTEN==2)

{

lcd.setCursor(12,2);

Page 29: BAB III PERANCANGAN ALAT - repository.uksw.edu

45

Mengatur tampilan INTENSITY pada layar LCD serta menghitung “INTEN”

untuk ditampilkan hasil konversi dari tipe data string ke tipe data interger.

if(INTEN==3)

{

lcd.setCursor(12,2);

lcd.print("19306");

}

if(INTEN==4)

{

lcd.setCursor(12,2);

lcd.print("26804");

}

if(INTEN==5)

{

lcd.setCursor(12,2);

lcd.print("31161");

}

Page 30: BAB III PERANCANGAN ALAT - repository.uksw.edu

46

Hasil konversi ini akan digunakan untuk menentukan besarnya intensitas

cahaya yang diharapkan pemilik greenhouse dan hasil konversi akan

ditampilkan di layar LCD. Jika hasil konversinya 1 maka yang besarnya

intesitas cahaya yang ditampilkan adalah 0 lux, kalau hasil konversinya 2

maka yang besarnya intesitas cahaya yang ditampilkan adalah 11315 lux, jika

hasil konversinya 3 maka yang besarnya intesitas cahaya yang ditampilkan

adalah 19306 lux, jika hasil konversinya 4 maka yang besarnya intesitas

cahaya yang ditampilkan adalah 26804 lux, dan apabila hasil konversinya 5

maka yang besarnya intesitas cahaya yang ditampilkan adalah 31161 lux.

Mengatur tampilan PHOTOPERIOD pada layar LCD serta menghitung

“PHOTO” untuk ditampilkan hasil konversi dari tipe data string ke tipe data

interger di layar LCD sebagai lama penyinaran yang diharapkan pemilik

greenhouse. Tampilan pada “menu3” akan menyala selama 10 detik.

lcd.setCursor(0,3);

lcd.print("PHOTOPERIOD: HOUR");

PHOTO=(PD[0]-48)*10+(PD[1]-48);

lcd.setCursor(12,3);

lcd.print(PHOTO);

delay(10000);}

void sistem(int SH[],int HD[],int IN[],int PD[])

{

int INTEN1, TEMPE1, HUMID1;

INTEN1=(IN[0]-48);

TEMPE1=(SH[0]-48)*10+(SH[1]-48);

HUMID1=(HD[0]-48)*10+(HD[1]-48);

Page 31: BAB III PERANCANGAN ALAT - repository.uksw.edu

47

Masuk ke fungsi “sistem” dan menerima data suhu, kelembaban, intensitas

cahaya dan lama penyinaran yang telah diatur serta membuat variabel “

TEMPE1, HUMID1, INTEN1” untuk perhitungan. Menghitung “TEMPE1”,

“INTEN1” dan “HUMID1” untuk dikonversi dari tipe data string ke tipe data

interger sebagai suhu, intensitas cahaya dan kelembaban yang diharapkan

pemilik greenhouse.

// TEMPERATURE

float baca2 = DHT.read11(DHT11_PIN);

if(DHT.temperature>TEMPE1)

{

digitalWrite(SH1,HIGH);// BOHLAM OFF

digitalWrite(SH2,LOW);// AC ON

}

else if(DHT.temperature<TEMPE1)

{

digitalWrite(SH1,LOW);// BOHLAM ON

digitalWrite(SH2,HIGH);// AC OFF

}

else

{

digitalWrite(SH1,HIGH);// BOHLAM OFF

digitalWrite(SH2,HIGH);// AC OFF

}

Page 32: BAB III PERANCANGAN ALAT - repository.uksw.edu

48

Membaca keadaan suhu dan kelembaban ruangan. Jika suhu yang dibaca

lebih besar dari yang dimasukkan pengguna greenhouse maka mikrokontroler

akan mematikan pemanas dan menyalakan air cooler. Apabila suhu yang

dibaca lebih kecil dari yang dimasukkan pengguna greenhouse maka

mikrokontroler akan menyalakan pemanas dan akan mematikan air cooler.

Apabila suhu yang sama dengan yang dimasukkan pengguna greenhouse

maka mikrokontroler akan mematikan pemanas dan mematikan air cooler.

// HUMIDITY

if(DHT.humidity>HUMID1)

{

// FAN 1 ON

digitalWrite(INA,HIGH);

digitalWrite(INB,LOW);

analogWrite(ENA,255);

// FAN 2 ON

digitalWrite(INC,HIGH);

digitalWrite(IND,LOW);

analogWrite(ENB,255);

digitalWrite(HD1,HIGH);// FOG OFF

}

else if(DHT.humidity<HUMID1)

{

// FAN 1 OFF

digitalWrite(INA,LOW);

Page 33: BAB III PERANCANGAN ALAT - repository.uksw.edu

49

Jika kelembaban yang dibaca lebih besar dari yang dimasukkan pengguna

greenhouse maka mikrokontroler akan menghidupkan kipas DC 24 V dan

mematikan mesin kabut. Apabila suhu yang dibaca lebih kecil dari yang

dimasukkan pengguna greenhouse maka mikrokontroler akan mematikan

kipas DC 24 V dan akan menyalakan mesin kabut. Apabila suhu yang sama

dengan yang dimasukkan pengguna greenhouse maka mikrokontroler akan

mematikan kipas DC 24 V dan mematikan mesin kabut.

// FAN 2 OFF

digitalWrite(INC,LOW);

digitalWrite(IND,LOW);

digitalWrite(HD1,HIGH);// FOG OFF

}

// Photoperiod and Intensity

int PHOTO1,PHOTO2;

PHOTO1=((PD[0]-48)*10+(PD[1]-48))*3600000;

//DURATION LED ON

PHOTO2=86400000-(((PD[0]-48)*10+(PD[1]-

48))*3600000); // DURATION LED OFF

Page 34: BAB III PERANCANGAN ALAT - repository.uksw.edu

50

Membuat variabel “ PHOTO1 ” dan “ PHOTO2” untuk perhitungan.

Menghitung “ PHOTO1 ” dan “ PHOTO2 ” untuk dikonversi dari tipe data

string ke tipe data interger sebagai lama penyinaran yang diharapkan pemilik

greenhouse.

if(INTEN1==1)

{

digitalWrite(IN1,HIGH);

digitalWrite(IN2,HIGH);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

}

if(INTEN1==2)

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,HIGH);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

delay(PHOTO1);

digitalWrite(IN1,HIGH);

digitalWrite(IN2,HIGH);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

delay(PHOTO2);

}

Page 35: BAB III PERANCANGAN ALAT - repository.uksw.edu

51

if(INTEN1==3)

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

delay(PHOTO1);

digitalWrite(IN1,HIGH);

digitalWrite(IN2,HIGH);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

delay(PHOTO2);

}

if(INTEN1==4)

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW);

digitalWrite(IN3,LOW);

digitalWrite(IN4,HIGH);

delay(PHOTO1);

Page 36: BAB III PERANCANGAN ALAT - repository.uksw.edu

52

Jika pemilik greenhouse memilih nomor 1 pada menu SETTING intensitas

cahaya maka mikrokontroler akan mematikan semua led. Jika pemilik

greenhouse memilih nomor 2 pada menu SETTING intensitas cahaya maka

digitalWrite(IN1,HIGH);

digitalWrite(IN2,HIGH);

digitalWrite(IN3,HIGH);

digitalWrite(IN4,HIGH);

delay(PHOTO2);

}

if(INTEN1==5)

{

digitalWrite(IN1,LOW);

digitalWrite(IN2,LOW);

digitalWrite(IN3,LOW);

digitalWrite(IN4,LOW);

}

}

Page 37: BAB III PERANCANGAN ALAT - repository.uksw.edu

53

mikrokontroler akan menghidupkan 1 led dan mematikan 3 led selama waktu

yang dikehendaki pemilik greenhouse. Jika pemilik greenhouse memilih

nomor 3 pada menu SETTING intensitas cahaya maka mikrokontroler akan

menghidupkan 2 led dan mematikan 2 led selama waktu yang dikehendaki

pemilik greenhouse. Jika pemilik greenhouse memilih nomor 4 pada menu

SETTING intensitas cahaya maka mikrokontroler akan menghidupkan 3 led

dan mematikan 1 led selama waktu yang dikehendaki pemilik greenhouse.

Jika pemilik greenhouse memilih nomor 1 pada menu SETTING intensitas

cahaya maka mikrokontroler akan menghidupkan semua led.

void salahinputsuhu1()

{

lcd.clear();

lcd.setCursor(2,0);

lcd.print("YOU CAN SETTING");

lcd.setCursor(2,1);

lcd.print("YOUR TEMPERATURE");

lcd.setCursor(4,2);

lcd.print("MAXIMAL:30 C");

lcd.setCursor(14,2);

lcd.print((char)223);

lcd.setCursor(4,3);

lcd.print("MINIMAL:20 C");

lcd.setCursor(14,3);

lcd.print((char)223);

delay(3000);

menu2(SH,HD,IN,PD);

}

Page 38: BAB III PERANCANGAN ALAT - repository.uksw.edu

54

Masuk ke fungsi “salahinputsuhu1” dan menampilkan batas maksimal dan

minimal suhu yang bisa diatur selama 3 detik kemudian kembali ke fungsi

“menu2”.

void salahinputkelem1()

{

lcd.clear();

lcd.setCursor(2,0);

lcd.print("YOU CAN SETTING");

lcd.setCursor(3,1);

lcd.print("YOUR HUMIDITY");

lcd.setCursor(4,2);

lcd.print("MAXIMAL:90%");

lcd.setCursor(4,3);

lcd.print("MINIMAL:50%");

delay(3000);

menu2(SH,HD,IN,PD);

}

Page 39: BAB III PERANCANGAN ALAT - repository.uksw.edu

55

Masuk ke fungsi “salahinputkelem1” dan menampilkan batas maksimal dan

minimal kelembaban yang bisa diatur selama 3 detik kemudian kembali ke

fungsi “menu2”.

Masuk ke fungsi “salahinputinten1” dan menampilkan batas maksimal dan

minimal nomor yang bisa dipilih selama 3 detik kemudian kembali ke fungsi

“menu2”.

void salahinputinten1()

{

lcd.clear();

lcd.setCursor(3,0);

lcd.print("YOU CAN CHO0SE");

lcd.setCursor(3,1);

lcd.print("YOUR INTENSITAS");

lcd.setCursor(2,2);

lcd.print("FROM THE NUMBER 1");

lcd.setCursor(1,3);

lcd.print("UNTIL THE NUMBER 5");

delay(3000);

menu2(SH,HD,IN,PD);

}

Page 40: BAB III PERANCANGAN ALAT - repository.uksw.edu

56

Masuk ke fungsi “salahinputphoto1” dan menampilkan batas maksimal dan

minimal lama penyinaran yang bisa diatur selama 3 detik kemudian kembali

ke fungsi “menu2”.

void salahinputphoto1()

{

lcd.clear();

lcd.setCursor(2,0);

lcd.print("YOU CAN SETTING");

lcd.setCursor(2,1);

lcd.print("YOUR PHOTOPERIOD");

lcd.setCursor(3,2);

lcd.print("MAXIMAL:24 HOUR");

lcd.setCursor(3,3);

lcd.print("MINIMAL:0 HOUR");

delay(3000);

menu2(SH,HD,IN,PD);

}