Fuchsia Electricity Lightning

 

MODUL 4 MIKROPROSESOR dan MIKROKONTROLER

 

 


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.

 

2. Alat dan Bahan [kembali]



A. Arduino Uno

b. Sensor Soil Moisture
C. LCD

D. Sensor DHT11


E. Potensiometer


F. LED
G. Resistor



H. Buzzer

I. Relay

J. Pompa Air


K. Kipas 5v

L. Jumper

M. Breadboard

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 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.




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.



4. Listing Program

·       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
  • Master





  • Slave


6. Rangkaian Simullasi


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. Prototype




8. Analisis


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