1. Tujuan Perancangan[kembali]
Sistem kontrol rumah kaca ini bertujuan untuk :
1
Melakukan penyiraman otomatis pada tanaman rumah kaca dengan variabel
kelembapan tanah dan suhu pada rumah kaca.
2
Menjaga suhu ruangan pada rumah kaca.
2. Daftar Komponen[kembali]
a.
Arduino Uno
b.
Sensor Soil Moisture
c.
Sensor DHT11
d.
LCD
e.
LED
f.
Buzzer
g.
Relay
h.
Pompa Air
i.
Kipas DC
j.
Resistor
k.
Breadboard
l.
Jumper
m.
Potensiometer
n.
Kabel USB
3. Dasar Teori[kembali]
a.
Komunikasi UART
UART atau
Universal Asynchronous Receiver-Transmitter adalah bagian perangkat keras
komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial.
UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi
serial pada komputer atau port serial perangkat periperal. UART sekarang ini
termasuk di dalam beberapa mikrokontroler, contohnya PIC16F628.
UART
(Universal Asynchronous Receiver-Transmitter) adalah bagian perangkat keras
komputer yang menerjemahkan antara bit-bit paralel data dan bit-bit serial.
UART biasanya berupa sirkuit terintegrasi yang digunakan untuk komunikasi
serial pada komputer atau port serial perangkat periperal.
Data dikirimkan
secara paralel dari data bus ke UART1. Pada UART1 ditambahkan start bit, parity
bit, dan stop bit kemudian dimuat dalam satu paket data. Paket data
ditransmisikan secara serial dari Tx UART1 ke Rx UART2. UART2 mengkonversikan
data dan menghapus bit tambahan, kemudia di transfer secara parallel ke data
bus penerima.
b.
Arduino Uno
Arduino adalah
kit elektronik atau papan rangkaian elektronik open source yang di dalamnya
terdapat komponen utama yaitu sebuah chip mikrokontroler dengan jenis AVR dari perusahaan
Atmel. Arduino yang kita gunakan dalam praktikum ini adalah Arduino Uno yang
menggunakan chip AVR ATmega 328P. Dalam memprogram Arduino, kita bisa menggunakan
komunikasi serial agar Arduino dapat berhubungan dengan komputer ataupun
perangkat lain.
Adapun spesifikasi dari Arduino Uno ini adalah sebagai berikut :
Bagian-bagian Arduino
UNO :
1
Power USB
Digunakan
untuk menghubungkan Papan Arduino dengan komputer lewat koneksi USB.
2
Power Jack
Supply atau
sumber listrik untuk Arduino dengan tipe Jack. Input DC 5 - 12 V.
3
Crystal
Oscillator
Kristal ini
digunakan sebagai layaknya detak jantung pada Arduino.
Jumlah cetak menunjukkan 16000 atau 16000 kHz, atau 16 MHz.
4
Reset
Digunakan
untuk mengulang program Arduino dari awal atau Reset.
5
Digital Pins I
/ O
Papan Arduino
UNO memiliki 14 Digital Pin. Berfungsi untuk memberikan nilai logika (0 atau 1).
Pin berlabel " ~ " adalah pin-pin PWM (Pulse Width Modulation) yang dapat digunakan untuk
menghasilkan PWM.
6
Analog Pins
Papan Arduino
UNO memiliki 6 pin analog A0 sampai A5. Digunakan untuk membaca sinyal atau
sensor analog seperti sensor jarak, suhu dsb, dan mengubahnya menjadi nilai
digital.
7
LED Power Indicator
Lampu ini akan
menyala dan menandakan Papan Arduino mendapatkan supply listrik dengan baik.
c.
Sensor Soil Moisture
Soil Moisture Sensor merupakan suatu modul yang berfungsi untuk mendeteksi
tingkat kelembapan tanah menggunakan mikrokontroler seperti arduino. Sensor kelembapan tanah ini dapat dimanfaatkan pada sistem pertanian,
perkebunan, maupun sistem hidroponik menggunakan hidroton.
Cara penggunaan modul ini cukup mudah, yakni dengan memasukkan sensor ke
dalam tanah dan setting potensiometer untuk mengatur sensitifitas dari sensor.
Keluaran dari sensor akan bernilai 1 / 0 ketika kelembapan tanah menjadi
tinggi/ rendah yang dapat di treshold dengan potensiometer.
Spesifikasi dari sensor ini adalah :
1.
Comparator
menggunakan LM393
2.
Hanya
menggunakan 2 plat kecil sebagai sensor
3.
Supply
Tegangan 3.3-5 VDC
4.
Digital output
D0 dapat secara langsung dikoneksikan dengan MCU dengan mudah
d.
Sensor DHT11
Sensor
DHT11 adalah module sensor yang berfungsi untuk mensensing objek suhu dan kelembaban yang memiliki output
tegangan analog yang dapat diolah lebih lanjut
menggunakan mikrokontroler. Module sensor ini tergolong kedalam
elemen resistif seperti
perangkat pengukur suhu seperti contohnya yaitu NTC.
Kelebihan dari module sensor
ini dibanding module
sensor lainnya yaitu dari segi kualitas
pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal sensing objek suhu dan kelembaban, dan
data yang terbaca tidak mudah terinterverensi.
Sensor DHT11 pada umumya memiliki
fitur kalibrasi nilai pembacaan suhu dan kelembaban yang cukup akurat.
Penyimpanan data kalibrasi tersebut
terdapat pada memori program OTP yang disebut
juga dengan nama koefisien kalibrasi.Sensor ini memiliki 4 kaki pin, dan terdapat juga sensor DHT11 dengan breakout
PCB yang terdapat hanya memilik 3 kaki pin seperti gambar dibawah ini.
e.
LCD
LCD atau Liquid Crystal Display merupakan suatu peralatan elektronika yang berfungsi untuk menampilkan output dari suatu sistem dengan cara membentuk suatu citra atau gambaran pada layar. Sebuah citra dibentuk dengan mengombinasikan kondisi nyala dan mati dari pixel-pixel yang menyusun layar sebuah LCD.
LCD terdiri atas dua
bagian utama yaitu bagian Backlight (Lampu Latar Belakang) dan bagian Liquid
Crystal (Kristal Cair). LCD tidak memancarkan pencahayaan apapun,
tetapi hanya merefleksikan dan mentransmisikan cahaya yang melewatinya.
Oleh karena itu, LCD memerlukan Backlight atau Cahaya latar belakang untuk
sumber cahayanya. Cahaya Backlight tersebut pada umumnya adalah berwarna putih.
Sedangkan Kristal Cair (Liquid Crystal) adalah cairan organik yang berada
diantara dua lembar kaca yang memiliki permukaan transparan yang konduktif.
Keterangan:
1
Film dengan polarizing filter vertical untuk memolarisasi cahaya yang masuk.
2
Glass substrate yang berisi kolom-kolom elektroda Indium tinoxide (ITO).
3
Twisted nematic liquid crystal (kristal cair dengan susunan terpilin).
4
Glass substrate yang berisibaris-baris elektroda Indium tinoxide (ITO).
5
Film dengan polarizing filter horizontal untuk memolarisasi cahaya yang masuk.
6 Reflektor cahaya untuk memantulkan cahaya yang masuk LCD kembali kepengamat.
Umumnya LCD sudah memiliki integrated circuit tersendiri sehingga para
pengguna dapat mengontrol tampilan LCD dengan mudah menggunakan mikrokontroler
untuk mengirimkan data melalui pin-pin input yang sudah tersedia.
f.
LED
Light Emitting
Diode (LED) adalah komponen elektronika yang dapat memancarkan cahaya
monokromatik ketika diberikan tegangan maju. LED merupakan keluarga Dioda yang
terbuat dari bahan semikonduktor. Warna-warna Cahaya yang dipancarkan oleh
LED tergantung pada jenis bahan semikonduktor yang dipergunakannya. LED
juga dapat memancarkan sinar inframerah yang tidak tampak oleh mata seperti
yang sering kita jumpai pada Remote Control TV ataupun Remote Control perangkat
elektronik lainnya.
Cara kerja LED hampir
sama dengan Dioda yang memiliki dua kutub yaitu kutub Positif (P) dan Kutub
Negatif (N). LED hanya akan memancarkan cahaya apabila dialiri tegangan maju
(bias forward) dari Anoda menuju ke Katoda.
LED terdiri
dari sebuah chip semikonduktor yang didoping sehingga menciptakan junction P
dan N. Ketika LED dialiri tegangan maju atau bias forward yaitu dari Anoda (P)
menuju ke Katoda (K), Kelebihan Elektron pada N-Type material akan berpindah ke
wilayah yang kelebihan Hole (lubang) yaitu wilayah yang bermuatan positif
(P-Type material). Saat Elektron berjumpa dengan Hole akan melepaskan proton
dan memancarkan cahaya monokromatik (satu warna).
Polaritas LED
dapat dilihat melaui ciri-ciri fisiknya. Ciri-ciri Terminal Anoda pada LED
adalah kaki yang lebih panjang dan juga Lead Frame yang lebih
kecil. Sedangkan ciri-ciri Terminal Katoda adalah Kaki yang lebih pendek
dengan Lead Frame yang besar serta terletak di sisi yang Flat.
g.
Buzzer
Buzzer
adalah sebuah komponen elektronika yang berfungsi untuk mengubah getaran
listrik menjadi getaran suara getaran listrik menjadi getaran suara.
Pada
dasarnya prinsip kerja buzzer hampir sama dengan loudspeaker, jadi buzzer juga
terdiri dari kumparan yang terpasang pada diafragma dan kemudian kumparan
tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan
tertarik ke dalam atau keluar, tergantung dari arah arus dan polaritas
magnetnya, karena kumparan dipasang pada diafragma maka setiap gerakan kumparan
akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar
yang akan menghasilkan suara.
Buzzer
biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu
kesalahan pada sebuah alat (alarm).
h.
Relay
Relay adalah
Saklar (Switch) yang dioperasikan secara listrik dan merupakan komponen
Electromechanical (Elektromekanikal) yang terdiri dari 2 bagian utama yakni
Elektromagnet (Coil) dan Mekanikal (seperangkat Kontak Saklar/Switch).
Relay
menggunakan Prinsip Elektromagnetik untuk menggerakkan Kontak Saklar sehingga
dengan arus listrik yang kecil (low power) dapat menghantarkan listrik
yang bertegangan lebih tinggi. Sebagai contoh, dengan Relay yang menggunakan
Elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi
sebagai saklarnya) untuk menghantarkan listrik 220V 2A.
i.
Pompa Air
Pompa Air DC merupakan jenis pompa yang menggunakan motor dc dan tegangan searah sebagai sumber tenaganya[8]. Dengan memberikan beda tegangan pada kedua terminal tersebut, motor akan berputar pada satu arah, dan bila polaritas dari tegangan tersebut dibalik maka arah putaran motor akan terbalik pula. Polaritas dari tegangan yang diberikan pada dua terminal menentukan arah putaran motor, sedangkan besar dari beda tegangan pada kedua terminal menentukan kecepatan motor. Pompa Air DC memiliki 3 bagian dasar :
1.
Bagian yang
tetap/stasioner yang disebut stator. Stator ini menghasilkan medan magnet, baik yang dibangkitkan dari
sebuah koil (elektro magnet) ataupun magnet permanen.
2.
Bagian yang berputar disebut
rotor. Rotor ini berupa sebuah
koil dimana arus listrik mengalir.
3.
Gear Box yang dipasang
pada pompa. Gear box ini didalamnya terdapat
gear yang dipasang pada
ujung rotor untuk menghisap air.Gaya elektromagnet pada motor DC timbul saat ada arus yang mengalir pada penghantar yang
berada dalam medan magnet. Medan
magnet itu sendiri ditimbulkan oleh megnet permanen. Garis-garis gaya magnet mengalir diantara dua kutub magnet dari
kutub utara ke kutub selatan.
j.
Kipas DC
Rangkaian kontrol fan kipas 5 volt dc ini berfungsi untuk mengendalikan kecepatan putaran motor dc 5 volt. Pengertian motor dc dan prinsip kerjanya motor listrik dc atau dc motor adalah suatu perangkat yang mengubah energi listrik menjadi energi kinetik atau gerakan motion motor dc ini juga dapat disebut sebagai motor arus searah. Motor dc atau motor arus searah sebagaimana namanya menggunakan arus langsung dan tidak langsung direct unidirectional.
k.
Resistor
Resistor
merupakan salah satu komponen yang paling sering ditemukan dalam Rangkaian
Elektronika. Hampir setiap peralatan Elektronika menggunakannya. Pada dasarnya
Resistor adalah komponen Elektronika Pasif yang memiliki nilai resistansi atau
hambatan tertentu yang berfungsi untuk membatasi dan mengatur arus listrik
dalam suatu rangkaian Elektronika. Resistor atau dalam bahasa Indonesia sering
disebut dengan Hambatan atau Tahanan dan biasanya disingkat dengan Huruf “R”.
Satuan Hambatan atau Resistansi Resistor adalah OHM (Ω). Sebutan “OHM” ini
diambil dari nama penemunya yaitu Georg Simon Ohm yang juga merupakan seorang
Fisikawan Jerman.
l. Breadboard
Breadboard merupakan sebuah board atau papan yang berfungsi untuk merancang sebuah rangkaian elektronik sederhana. Breadboard tersebut nantinya akan dilakukan prototipe atau uji coba tanpa harus melakukan solder.
m. Jumper
Kabel jumper adalah suatu istilah kabel yang ber-diameter kecil yang di dalam dunia elektronika digunakan untuk menghubungkan dua titik atau lebih dan dapat juga untuk menghubungkan 2 komponen elektronika. Kabel jumper jenis ini digunakan untuk koneksi male to male pada kedua ujung kabelnya.
Prinsip kerja
kabel jumper yaitu menghantarkan arus listrik dari satu komponen ke komponen
lainnya yang dihubungkan.
n. Potensiometer
Potensiometer digunakan
untuk menyetel taraf isyarat analog (misalnya pengendali suara pada peranti
audio), dan sebagai pengendali masukan untuk sirkuit elektronik.
o.
Kabel USB
USB
atau kita panjangkan menjadi Universal Serial Bus, merupakan external port
device yang sudah pasti ada di setiap komputer dan laptop. Fungsinya adalah
sebagai media koneksi data antara komputer dan perangkat dan aksesoris yang
menggunakan colokan USB seperti printer, modem, ponsel, cooling fan, flashdisk,
dan lain-lain.
4. Listing Program[kembali]
·
Master
#include
<DHT.h>
//Deklarasi library DHT11
#include
<DHT_U.h>
#include
<LiquidCrystal.h>
//Deklarasi library LCD
#define DHTPIN 6
#define DHTTYPE
DHT11 // DHT 11
DHT dht(DHTPIN,
DHTTYPE);
#define SOIL A1
LiquidCrystal lcd(8,
9, 10, 11, 12, 13); //Deklarasi
pin 2-7 untuk LCD
int nilaiSOIL;
int LED[] = {2, 3, 4};
void setup() //Semua kode dalam fungsi ini dieksekusi
sekali
{
pinMode(6, INPUT); //Deklarasi pin A0
sebagai OUTPUT
pinMode(A1, INPUT);
lcd.begin(16, 2); //Dimensi LCD yang
digunakan
for (int i = 0; i <= 3; i++) {
pinMode (LED[i], OUTPUT);
}
Serial.begin(9600); //Set baud rate 9600
dht.begin();
}
void loop() //Semua kode dalam fungsi ini dieksekusi
berulangkali
{
float nilaiSuhu = dht.readTemperature()
; //Mencari nilai Suhu
if (nilaiSuhu > 0 && nilaiSuhu
< 25)
{
nilaiSOIL = analogRead(SOIL);
if ( nilaiSOIL >= 350 &&
nilaiSOIL <= 700) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
Serial.print("1");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Normal");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else if (nilaiSOIL > 700) {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
Serial.print("2");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Kering");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else {
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
Serial.print("3");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Basah");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
}
else if (nilaiSuhu > 24 &&
nilaiSuhu < 31)
{
nilaiSOIL = analogRead(SOIL);
if ( nilaiSOIL >= 350 &&
nilaiSOIL <= 700) {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
Serial.print("4");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor pada
awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Normal");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else if (nilaiSOIL > 700) {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
Serial.print("5");
lcd.clear(); //Menghapus layar LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Kering");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else {
digitalWrite(2, LOW);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
Serial.print("6");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Basah");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
}
else if (nilaiSuhu >= 31) {
nilaiSOIL = analogRead(SOIL);
if ( nilaiSOIL >= 350 &&
nilaiSOIL <= 700) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
Serial.print("7");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Normal");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else if (nilaiSOIL > 700) {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
Serial.print("8");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Kondisi : Kering");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
else {
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
Serial.print("9");
lcd.clear(); //Menghapus layar
LCD
lcd.setCursor(0, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print("Suhu : "); //Menampilkan text pada LCD
lcd.setCursor(8, 0); //Menentukan posisi kursor
pada awal penulisan
lcd.print(nilaiSuhu); //Menampilkan nilaiSuhu
pada LCD
lcd.setCursor(0, 1); //Menentukan posisi kursor pada awal
penulisan
lcd.print("Kondisi : Basah");
delay(500);
lcd. setCursor(10,1);
lcd.print(nilaiSOIL);//Menampilkan text
pada LCD
Serial.println(nilaiSuhu);
delay(3000);
}
}
}
·
Slave
//Slave
#define buzzer 8
const int relay1 = 6;
//KIPAS
const int relay2 = 7;
//POMPA AIR
int relayON = HIGH;
//relay nyala
int relayOFF = LOW;
//relay mati
int LED = 2;
void setup()
{
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(LED, OUTPUT);
pinMode(buzzer, OUTPUT);
Serial.begin(9600);
}
void loop()
{
int data = Serial.read();
if(data == '1')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, HIGH);
digitalWrite(buzzer, LOW);
}
else if(data == '2')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayON);
digitalWrite(LED, HIGH);
digitalWrite(buzzer, HIGH);
}
else if(data == '3')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, HIGH);
digitalWrite(buzzer, LOW);
}
else if(data == '4')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
}
else if(data == '5')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayON);
digitalWrite(LED, LOW);
digitalWrite(buzzer, HIGH);
}
else if(data == '6')
{
digitalWrite(relay1, relayOFF);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
}
else if(data == '7')
{
digitalWrite(relay1, relayON);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
}
else if(data == '8')
{
digitalWrite(relay1, relayON);
digitalWrite(relay2, relayON);
digitalWrite(LED, LOW);
digitalWrite(buzzer, HIGH);
}
else if(data == '9')
{
digitalWrite(relay1, relayON);
digitalWrite(relay2, relayOFF);
digitalWrite(LED, LOW);
digitalWrite(buzzer, LOW);
}
}
5. Flowchart[kembali]
6. Rangkaian Simulasi Sistem[kembali]
Prinsip Kerja
Prinsip kerja
rangkaian ini adalah menggunakan 2 buah sensor sebagai input yaitu
sensor kelembaman / soil moisture dan sensor LM35. Sensor DHT11 berperan
untuk mendeteksi suhu sekitar tanah yang nanti nya akan di hubungkan
ke LED, terdapat 3 LED yang terpasang di master yang telah dirancang
dengan 3 kondisi, ketika suhu 0-24°C yang tergolong suhu dingin maka LED yang
hidup bewarna hijau, ketika suhu 25-30°C yang tergolong suhu sedang maka
LED yang hidupberwarna kuning dan jika mencapai 31°C ke atas maka LED yang hidup
bewarna merah. Kemudian untuk nilai suhu akan ditampilkan di LCD dan
untuk sensor kelembapan akan digunakan sebagai penentu motor akan menyiram
atau tidak, output nya akan diarahkan ke motor DC sebagai pompa dan kipas dan
sebuah LED sebagai Pemanas ruangan ketika suhu rendah atau dingin. Sensor
kelembaman tanah ini saat terkena air atau basah, maka tidak ada tegangan yang
keluar atau tegangannya rendah, saat kering maka akan ada tegangan yang keluar.
Jadi ada 3
keadaan saat sensor bekerja, ketika terkena air maka tidak akan mengeluarkan
tegangan dan jika kering akan mengeluarkan tegangan. Itu artinya
jika kondisi basah maka tegangan rendah (0-350) sehingga motor tidak
akan bergerak, sementara jika 350-700 itu tergolong normal dan kelembaman
nya pas akan tetapi motor tidak akan bergerak dan jika diatas 700 itu tergolong
kering dan motor akan bergerak.
Kata-kata normal, basah dan kering nanti nya akan ditampilkan di LCD pada baris kedua dibawah penampilan nilai suhu, ketika kelembaman nya kering (diatas 700) motor bergerak menandakan bahwa tanaman sedang disiram nanti kita akan menentukan lama waktu menyiram (2 detik) untuk di program dan setelah 2 detik motor akan delay selama 5 detik jadi nanti kita akan melihat apakah kelembaman nya masih sama atau tidak.
Jika kelembaman nya masih sama maka
setelah 5 detik dia akan menyiram lagi selama 2 detik kemudian delay lagi
selama 5 detik begitu seterusnya hingga kelembaman normal atau basah maka motor
akan berhenti.
Lalu apabila
suhu rendah atau dingin, maka sinyal dikirim dari master ke slave sebagai
indicator dan membuat LED menyala sebagai pemanas ruangan. Apabila suhu sudah
normal maka LED akan mati.
Lalu apabila
suhu tinggi atau panas, maka sinyal dikirim dari master ke slave sebagai
indicator dan membuat motor DC (kipas) menyala sebagai pendingin ruangan.
Apabila suhu sudah normal maka motor DC akan mati.
7. Video[kembali]
8. Hardware[kembali]
9. Analisis[kembali]
Rangkaian ini terdiri dari 2 sensor yaitu suhu DHT11 dan Sensor kelembaman tanah atau soil moisture sensor sebagai inputannya, kemudian LCD sebagai display , menggunakan 2 arduino dengan komunikasi UART dan LED, Pompa DC 3v, Kipas DC 5v menjadi output dari rangkaian Kontrol Suhu Ruangan Rumah Kaca tersebut.
Sensor DHT11 adalah module sensor yang berfungsi untuk mensensing objek suhu dan kelembaban yang memiliki output tegangan analog yang dapat diolah lebih lanjut menggunakan mikrokontroler. Module sensor ini tergolong kedalam elemen resistif seperti perangkat pengukur suhu seperti contohnya yaitu NTC.
Kelebihan dari module sensor ini dibanding module sensor lainnya yaitu dari segi kualitas pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal sensing objek suhu dan kelembaban, dan data yang terbaca tidak mudah terinterverensi. Sensor DHT11 pada umumya memiliki fitur kalibrasi nilai pembacaan suhu dan kelembaban yang cukup akurat.
Penyimpanan data kalibrasi tersebut terdapat pada memori program OTP yang disebut juga dengan nama koefisien kalibrasi.Sensor ini memiliki 4 kaki pin, dan terdapat juga sensor DHT11 dengan breakout PCB yang terdapat hanya memilik 3 kaki pin seperti gambar dibawah ini.
Kemudian untuk LED sebagai output dari
sensor DHT11, pada rangkaian penyiram tanaman
otomatis ini dibuat dengan 3 kondisi untuk menghidupkan output LED, yaitu Led
hijau akan menyala saat rentang 0 – 24 derajat celcius artinya suhu rendah ,
LED kuning akan menyala saat rentang suhu 25 – 30 artinya suhu normal, dan
LED merah akan menyala saat rentang suhu diatas 31 derajat celcius
artinya suhu tinggi. LED adalah suatu semikonduktor yang memancarkan
cahaya, LED mempunyai kecenderungan polarisasi. LED mempunyai kutub positif dan
negatif (p-n) dan hanya akan menyala bila diberikan arus maju. Ini dikarenakan
LED terbuat dari bahan semikonduktor yang hanya akan mengizinkan arus listrik
mengalir ke satu arah dan tidak ke arah sebaliknya. Bila LED diberikan arus
terbalik, hanya akan ada sedikit arus yang melewati LED. Ini menyebabkan LED
tidak akan mengeluarkan emisi cahaya. Dan ketentuan suhu pada DHT11 tadi akan di tampilkan pada LCD.
Asynchronous memungkinkan transmisi mengirim data tanpa sang pengirim harus mengirimkan sinyal detak ke penerima. Sebaliknya, pengirim dan penerima harus mengatur parameter waktu di awal dan bit khusus ditambahkan untuk setiap data yang digunakan untuk mensinkronkan unit pengiriman dan penerimaan. Saat sebuah data diberikan kepada UART untuk transmisi Asynchronous, "Bit Start" ditambahkan pada setiap awal data yang akan ditransmisikan. Bit Start digunakan untuk memperingatkan penerima yang kata data akan segera dikirim, dan memaksa bit-bit sinyal di receiver agar sinkron dengan bit-bit sinyal di pemancar. Kedua bit ini harus akurat agar tidak memiliki penyimpangan frekuensi dengan lebih dari 10% selama transmisi bit-bit yang tersisa dalam data. (Kondisi ini ditetapkan pada zaman teleprinter mekanik dan telah dipenuhi oleh peralatan elektronik modern.)Setelah Bit Start, bit individu dari data yang dikirim, dengan sinyal bit terkecil yang pertama dikirim. Setiap bit dalam transmisi ditransmisikan serupa dengan jumlah bit lainnya, dan penerima mendeteksi jalur di sekitar pertengahan periode setiap bit untuk menentukan apakah bit adalah 1 atau 0. Misalnya, jika dibutuhkan dua detik untuk mengirim setiap bit, penerima akan memeriksa sinyal untuk menentukan apakah itu adalah 1 atau 0 setelah satu detik telah berlalu, maka akan menunggu dua detik dan kemudian memeriksa nilai bit berikutnya , dan seterusnya. Pada rangakaian penyiram tanaman otomatis ini dari sonsor kelembaman akan mengirim ke slave dan slave akan memberikan perintah kepada motor DC, dan LED sebagai Outputnya.
PWM pada arduino bekerja pada frekuensi 500Hz, artinya 500 siklus/ketukan dalam satu detik. Untuk setiap siklus, kita bisa memberi nilai dari 0 hingga 255. Ketika kita memberikan angka 0, berarti pada pin tersebut tidak akan pernah bernilai 5 volt (pin selalu bernilai 0 volt). Sedangkan jika kita memberikan nilai 255, maka sepanjang siklus akan bernilai 5 volt (tidak pernah 0 volt). Jika kita memberikan nilai 127 (kita anggap setengah dari 0 hingga 255, atau 50% dari 255), maka setengah siklus akan bernilai 5 volt, dan setengah siklus lagi akan bernilai 0 volt. Sedangkan jika jika memberikan 25% dari 255 (1/4 * 255 atau 64), maka 1/4 siklus akan bernilai 5 volt, dan 3/4 sisanya akan bernilai 0 volt, dan ini akan terjadi 500 kali dalam 1 detik.
ADC
atau Analog to Digital Converter merupakan salah satu perangkat elektronika
yang digunakan sebagai penghubung dalam pemrosesan sinyal analog oleh sistem
digital. Fungsi utama dari fitur ini adalah mengubah sinyal masukan yang masih
dalam bentuk sinyal analog menjadi sinyal digital dengan bentuk kode-kode
digital. Ada 2 faktor yang perlu diperhatikan pada proses kerja ADC yaitu
kecepatan sampling dan resolusi.
Kecepatan sampling menyatakan seberapa sering perangkat mampu mengkonversi sinyal analog ke dalam bentuk sinyal digital dalam selang waktu yang tertentu. Biasa dinyatakan dalam sample per second (SPS). Sementara Resolusi menyatakan tingkat ketelitian yang dimilliki. Pada Arduino, resolusi yang dimiliki adalah 10 bit atau rentang nilai digital antara 0 - 1023. Dan pada Arduino tegangan referensi yang digunakan adalah 5 volt, hal ini berarti ADC pada Arduino mampu menangani sinyal analog dengan tegangan 0 - 5 volt. Pada Arduino, menggunakan pin analog input yang diawali dengan kode A( A0- A5 pada Arduino Uno). Fungsi untuk mengambil data sinyal input analog menggunakan analog Read (pin);
Jadi sensor suhu DHT11 untuk indikator LED, dan sensor kelembaman tanah untuk menggerakkan Motor DC dan Menghidupkan LED yang sebagai pompa dan Pemanas nantinya, dan hasil dari sensor akan di tampilkan di LCD berapa suhu dan berapa ukuran kelembaman dari tanah tersebut.
10. Kesimpulan[kembali]
Jadi
sensor suhu DHT11 untuk indikator LED dan Buzzer, dan sensor kelembaman tanah untuk
menggerakkan Motor DC yang
sebagai pompa dan kipas nantinya, dan hasil dari sensor akan di tampilkan di LCD
berapa suhu dan berapa ukuran kelembaman dari tanah tersebut. Setiap suhu dan kondisi kelembapan yang terbaca akan
memiliki kondisi output masing masing yang mana setiap kondisi memiliki output
yang berbeda beda.
Tidak ada komentar:
Posting Komentar