Modul 4
1. Tujuan[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.
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 segikualitas 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 m asuk.
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 ke pengamat.
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.
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.
·
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);
}
}
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. Prototype
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 resistifseperti 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 dankelembaban 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.
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 atau Universal
Asynchronous Receiver Transmitter adalah protokol komunikasi yang umum digunakan dalam pengiriman data serial
antara device satu dengan yang
lainnya. Sebagai contoh komunikasi antara sesama mikrokontroler atau mikrokontroler ke PC. Dalam pengiriman
data, clock antara pengirim dan penerima harus
sama karena paket data dikirim tiap bit mengandalkan clock tersebut. Inilah salah satu keuntungan model asynchronous dalam
pengiriman data karena
dengan
hanya satu kabel transmisi maka data dapat dikirimkan. Berbeda
dengan model synchronous yang terdapat pada protokol
SPI (Serial Peripheral Interface) dan I2C (Inter-Integrated
Circuit) karena protokol membutuhkan minimal dua kabel dalam transmisi
data, yaitu transmisi
clock dan data. Namun kelemahan
model asynchronous adalah
dalam hal kecepatannya dan jarak transmisi. Karena semakin cepat dan jauhnya jarak transmisi membuat
paket-paket bit data menjadi terdistorsi sehingga data yang dikirim atau diterima bisa mengalami error.
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.
9. Kesimpulan
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