• Tidak ada hasil yang ditemukan

BAB III PERANCANGAN ALAT DAN PROGRAM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III PERANCANGAN ALAT DAN PROGRAM"

Copied!
30
0
0

Teks penuh

(1)

32

3.1 Blok Diagram Ra ngkaian

Untuk merealisasikan merancang dan membuat sistem pengontrol suhu otomatis menggunakan peltier TEC( Thermoelectric Cooler) berbasis arduino dan sensor DHT11 dan menampilkannya di LCD, maka langkah pertama yang dilakukan adalah membuat blok diagram alat seperti Gambar 3.1

Gambar 3.1 Diagram Blok Rangkaian Sistem Monitoring dan Kontrol Suhu Dari diagram blok diatas dpat dijelaskan bahwa yang pertama adalah media ruangan, ruangan ini adalah media yang diukur oleh sensor DHT11 dan udara itu masuk kedalam di ukur dengan sensor tersebut. Setelah terbaca oleh sensor dan di masukan dalam arduino untuk diproses didalamnya dan akan ditampilkan pada lcd (lyquid crystal dispaly).

Fan Kelembaban >85° C berputar

RELAY

ARDUINO DUEMILANOVE SENSOR DHT 11 (25oC < FAN) berfungsi, di atas 85% mati

LCD 16 × 2

RELAY

(2)

3.2 Realisasi Rangkaian

Langkah berikutnya adalah merealisasikan rangkaian setiap blok, Rangkaian-rangkaian yang akan dibuat yaitu :

• Rangkaian Sensor dengan Arduino

• Aplikasi program Arduino IDE (Integrated Development Environment)

• Rangkaian LCD dengan Arduino

• Rangkaian Power Supply yang terhubung dengan Bohlam dan Fan

3.2.1 Rangkaian Sensor DHT11

Sensor Suhu DHT11 berfungsi sebagai masukan pada sistem rangkaian Arduino Duemilanove. PIN V+ dari DHT11 dihubungkan dengan catu daya pada pin power 5 volt yang terdapat pada Arduino Duemilanove, PIN GND dihubungkan ke PIN GND Power Arduino Duemolanove dan pin Volt – yang menghasilkan tegangan analog hasil pengindera suhu dihubungkan ke pin A0 Analog In pada Arduino Duemilanove.

Gambar 3.2 Sensor DHT11

DHT11 adalah modul sensor suhu dan kelembaban udara relatif dalam satu paket. Modul ini memerlukan konsumsi daya yang rendah sehingga cocok digunakan untuk aplikasi monitoring dan kontrol suhu

(3)

ruangan. Modul ini memiliki stabilitas yang dijamin dalam jangka waktu yang lama serta output yang terkalibrasi.

DHT11 dapat mengukur suhu antara 0-50 derajat celcius dan kelembaban udara antara 20%-90% dengan resolusi masing- masing sebesar 0,1 derajat Celcius dan 1% RH (Relative Humidity). Akurasi untuk pengukuran dan kelembaban adalah (+/- ) 2 derajat celcius dan (+/-) 4% RH.

Keluaran Modul sensor DHT11 telah dikalibrasi dengan tabung kalibrasi secara akurat, dan nilai koefisien kalibrasinya disimpan dalam memori OTP. DHT11 menggunakan teknologi sensor kelembaban yang baik dan menggunakan teknik akuisisi data eksklusif dengan memanfaatkan mikrokontroler 8 bit untuk menghasilkan data dalam format single bus.

Dengan ukuran yang relative kecil, konsumsi daya yang rendah, dan dapat mengirimkan data sejauh 20m, maka DHT11 sangat cocok untuk digunakan dalam sistem akuisisi data suhu dan kelembaban udara pada aplikasi shelter, weather station, green house, gudang, data center environment monitoring, dan lain- lain

(4)

Gambar 3.3 Menghubungkan DHT11 dengan Arduino Duemilanove

3.2.2 Aplikasi Program Arduino IDE (Integrated Development Environment)

Setelah proses rangkaian selesai dibuat langkah selanjutnya adalah membuat program pada aplikasi program arduino IDE (Integrated Development Environment). Buka program aplikasi arduino IDE kemudian bentuk tampilan kerja aplikasi arduino IDE Sketch terlihat seperti gambar 3.4

(5)

Gambar 3.4 Program Arduino IDE (Integrated Development Environment)

3.2.2.1 Bahasa Program Arduino IDE yang digunakan

Float

Float point numbers sering digunakan untuk memperkirakan nilai analog dan berkelanjutan karena nilai tersebut memiliki resolusi yang lebih besar daripada integers. float point numbers dapat menyimpan sebesar 32bit dengan range 3.4028235E+38 sampai -3.4028235E+38. Angka tersebut disimpan dalam 32 bits (4 bytes) dari

(6)

informasi. Float hanya memiliki 6-7 digit decimal. Pada arduino, Double sama nilainya dengan Float.

Contoh :

float myfloat;

float sensorCalbrate = 1.117;

Syntax :

float var = val;

• var - your float variable name

• val - the value you assign to that variable Contoh kode :

int x; int y; float z;

x = 1;

y = x / 2; // y now contains 0, ints can't hold fractions

z = (float)x / 2.0; // z now contains .5 (you have to use 2.0, not 2)

Byte

Tipe byte dapat menyimpan 8-bit nilai angka bilangan asli tanapa koma. Byte memiliki range 0 – 255.

Contoh :

Byte biteVariable = 180; // mend eklarasikan

(7)

Void (Se tup)

Fungsi setup() hanya di panggil satu kali ketika program pertama kali di jalankan. Ini digunakan untuk pendefinisian mode pin atau memulai komunikasi serial. Fungsi setup() harus di ikut sertakan dalam program walaupun tidak ada statement yang di jalankan. Contoh :

void setup() {

pinMode(13,OUTPUT); // mengset ‘pin’ 13 sebagai output

}

Loop

Setelah melakukan fungsi setup() maka secara langsung akan melakukan fungsi loop() secara berurutan dan melakukan instruksi-instruksi yang ada dalam fungsi loop().

Contoh : void loop() {

digitalWrite(13, HIGH); // nyalakan ‘pin’ 13

delay(1000); // pause selama 1 detik

digitalWrite(13, LOW); // matikan ‘pin’ 13

delay(1000); /// pause selama 1 detik

}

Serial begin ()

Statement ini di gunakan untuk mengaktifkan komunikasi serial dan mengset baudrate.

Contoh :

void setup() {

Serial.begin(9600); //open serial port and set

baudrate 9600 bps }

(8)

Analog Re ad ()

Papan Arduino memiliki 6 chanel, 10 bit analog ke digital, artinya kita dapat memasukkan tegangan antara 0 dan 5 volts pada nilai integer antara 0 sampai 1023. Kisaran input atau masukan dan resolusi dapat dirubah menggunakan analog reference. Untuk membaca analog input dibutuhkan dibutuhkan sekitar 100 microsecond (0.0001 s). Jadi rata – rata membacanya sekitar 10.000 kali dalam satu detik. Catatan : jika pin analog input tidak dapat terkoneksi dengan apapun nilainya akan kembali pada analogRead.

Syntax :

analogRead(pin)

Contoh :

Int analogPin = 3 // potentiometer wiper middle terminal connected to analog pin 3

Void setup () { Serial.begin (9600); } Void loop () {

Val = analogRead(analogPin); // Read the input pin

Serial.println(val); //debug value }

De lay ()

Menghentikan program untuk mengukur waktu (dalam millisecond) yang terspesifikasi pada parameter (ada 1000 milisecond dalam setiap detik). Pada saat mudahnya membuat LED berkedip dengan fungsi delay, beberapa sketch atau lembar kerja mengalami delay. Membaca sensor, perhitungan Matematika, atau memanipulasi Pin dapat berkerja pada saat fungsi delay bekerja. Beberapa program

(9)

berbasis pengetahuan biasanya menghindari penggunaan delay untuk kegiatan yang membutuhkan waktu lebih dari 10 miliseconds.

Delay(1000); // menunggu selama satu

detik

Selanjutnya hubungkan Arduino Uno ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat mengetikkan program pada lembar kerja Sketch kemudian compile untuk mengecek atau memeriksa apakah kode sudah benar sebelum dikirim ke papan Arduino, program tersebut dapat diketik seperti dibawah ini :

#define DHT11_PIN 0 // define analog port 0

byte read_dht11_dat()

{

byte i = 0;

byte result=0;

for(i=0; i< 8; i++)

{

while(!(PINC & _BV(DHT11_PIN)))

{};

delayMicroseconds(30);

if(PINC & _BV(DHT11_PIN))

result |=(1<<(7-i));

while((PINC & _BV(DHT11_PIN))); // wait '1' finish

}

return result;

}

void setup()

(10)

DDRC |= _BV(DHT11_PIN); //let analog port 0 be output

port

PORTC |= _BV(DHT11_PIN); //let the initial value of this

port be '1' Serial.begin(9600); Serial.println("Ready"); } void loop() { byte dht11_dat[5]; byte dht11_in;

byte i;// start condition

PORTC &= ~_BV(DHT11_PIN);

delay(18);

PORTC |= _BV(DHT11_PIN);

delayMicroseconds(1);

DDRC &= ~_BV(DHT11_PIN);//let analog port 0 be input port

delayMicroseconds(40);

dht11_in = PINC & _BV(DHT11_PIN);// read only the input

port 0

if(dht11_in)

{

Serial.println("dht11 start condition 1 not met"); //

wait for DHT response signal: LOW

delay(1000);

return;

}

delayMicroseconds(80);

(11)

{

Serial.println("dht11 start condition 2 not met");

//wair for second response signal:HIGH

return;

}

delayMicroseconds(80);// now ready for data reception

for (i=0; i<5; i++)

{ dht11_dat[i] = read_dht11_dat();} DDRC |= _BV(DHT11_PIN); PORTC |= _BV(DHT11_PIN); byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3]; if(dht11_dat[4]!= dht11_check_sum) {

Serial.println("DHT11 checksum error");

} Serial.print("Kelembaban = "); Serial.print(dht11_dat[0], DEC); Serial.print("."); Serial.print(dht11_dat[1], DEC); Serial.print("% "); if(dht11_dat[0]>=85){ digitalWrite(13,HIGH); } else{ digitalWrite(13,LOW); delay(2000); } Serial.print("Suhu = "); Serial.print(dht11_dat[2], DEC);

(12)

Serial.print("."); Serial.print(dht11_dat[3], DEC); Serial.println("C "); if(dht11_dat[2]>=25){ digitalWrite(12,HIGH); } else{ digitalWrite(12,LOW); delay(2000); } delay(2000); }

3.2.3 Rangkaian relay dengan arduino.

Relay adalah komponen elektronika berupa saklar elektronik yang digerakkan oleh arus listrik. Secara prinsip, relay merupakan tuas saklar dengan lilitan kawat pada batang besi (solenoid) di dekatnya. Ketika solenoid dialiri arus listrik, tuas akan tertarik karena adanya gaya magnet yang terjadi pada solenoid sehingga kontak saklar akan menutup. Pada saat arus dihentikan, gaya magnet akan hilang, tuas akan kembali ke posisi semula dan kontak saklar kembali terbuka.Relay biasanya digunakan untuk menggerakkan arus/tegangan yang besar (misalnya peralatan listrik 4 ampere AC 220 V) dengan memakai arus/tegangan yang kecil (misalnya 0.1 ampere 12 Volt DC). Relay yang paling sederhana ialah relay elektromekanis yang memberikan pergerakan mekanis saat mendapatkan energi listrik.

Secara sederhana relay elektromekanis ini didefinisikan sebagai berikut :

(13)

kontak saklar.

• Saklar yang digerakkan (secara mekanis) oleh daya/energi listrik.

Gambar 3.5 Program Relay

Dalam pemakaiannya biasanya relay yang digerakkan dengan arus DC dilengkapi dengan sebuah dioda yang di-paralel dengan lilitannya dan dipasang terbaik yaitu anoda pada tegangan (-) dan katoda pada tegangan (+). Ini bertujuan untuk mengantisipasi sentakan listrik yang terjadi pada saat relay berganti posisi dari on ke off agar tidak merusak komponen di sekitarnya.

(14)

Konfigurasi dari kontak-kontak relay ada tiga jenis, yaitu:

• Normally Open (NO), apabila kontak-kontak tertutup saat relay dicatu • Normally Closed (NC), apabila kontak-kontak terbuka saat relay dicatu

Change O ver (CO), relay mempunyai kontak tengah yang normal tertutup, tetapi ketika relay dicatu kontak tengah tersebut akan membuat hubungan dengan kontak-kontak yang lain.

Penggunaan relay perlu memperhatikan tegangan pengontrolnya serta kekuatan relay men-switch arus/tegangan. Biasanya ukurannya tertera pada body relay. Misalnya relay 12VDC/4 A 220V, artinya tegangan yang diperlukan sebagai pengontrolnya adalah 12Volt DC dan mampu men-switch arus listrik (maksimal) sebesar 4 ampere pada tegangan 220 Volt. Sebaiknya relay difungsikan 80% saja dari kemampuan maksimalnya agar aman, lebih rendah lagi lebih aman.Relay jenis lain ada yang namanya reedswitch atau relay lidi. Relay jenis ini berupa batang kontak terbuat dari besi pada tabung kaca kecil yang dililitin kawat. Pada saat lilitan kawat dialiri arus, kontak besi tersebut akan menjadi magnet dan saling menempel sehingga menjadi saklar yang on. Ketika arus pada lilitan dihentikan medan magnet hilang dan kontak kembali terbuka (off).

(15)

Gambar 3.6 Program Relay

Modul relay ini dapat digunakan sebagai switch untuk menjalankan berbagai peralatan elektronik. Misalnya Lampu listrik, Motor listrik, dan berbagai peralatan elektronik lainnya.

Kendali ON / OFF switch (relay), sepenuhnya ditentukan oleh nilai output sensor, yang setelah diproses Mikrokontroler akan menghasilkan perintah kepada relay untuk melakukan fungsi ON / OFF.

(16)

Termasuk dalam paket ini:

• Kit Relay untuk peralatan listrik AC / DC • Kabel pin dan konektor

Selanjutnya hubungkan Arduino Duemilanove ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat mengetikkan program pada lembar kerja Sketch kemudian compile untuk mengecek atau memeriksa apakah kode sudah benar sebelum dikirim ke papan Arduino, program tersebut dapat diketik seperti dibawah ini :

//Arduino Sample Code //www.DFRobot.com

//Last modified on 14th March 2012 by HJS

//This code has been updated to work with the sample code provided in the Wiki int Relay = 3;

void setup() {

pinMode(13, OUTPUT); //Set Pin13 as output digitalWrite(13, HIGH); //Set Pin13 High

pinMode(Relay, O UTPUT); //Set Pin3 as output }

void loop() {

digitalWrite(Relay, HIGH); //Turn off relay delay(2000);

(17)

digitalWrite(Relay, LOW); //Turn on relay delay(2000);

}

3.2.4 Rangkaian LCD dan Arduino D uemilanove.

Gambar 3.7 Ra ngkaian interface ke LCD Karakter 2 x16

Modul LCD Character dapat dengan mudah dihubungkan dengan Arduino. LCD ini mempunyai lebar display 2 baris 16 kolom atau biasa disebut sebagai LCD C haracter 16X2, dengan 16 pin konektor, yang didifinisikan sebagai berikut:

(18)

Tabel 3.1 P in dan Fungsi

Display karakter pada LCD diatur oleh pin EN, RS dan RW:

Jalur EN dinamakan Enable. Jalur ini digunakan untuk memberitahu LCD bahwa anda sedang mengirimkan sebuah data. Untuk mengirimkan data ke LCD, maka melalui program EN harus dibuat logika low “0” dan set pada dua jalur kontrol yang lain RS dan RW. Ketika dua jalur yang lain telah siap, set EN dengan logika “1” dan tunggu untuk sejumlah waktu tertentu (sesuai dengan datasheet dari LCD tersebut ) dan berikutnya set EN ke logika low “0” lagi.

Jalur RS adalah jalur Register Select. Ketika RS berlogika low “0”, data akan dianggap sebagi sebuah perintah atau instruksi khusus ( seperti clear screen, posisi

(19)

kursor dll ). Ketika RS berlogika high “1”, data yang dikirim adalah data text yang akan ditampilkan pada display LCD. Sebagai contoh, untuk menampilkan huruf “T” pada layar LCD maka RS harus diset logika high “1”.

Jalur RW adalah jalur kontrol Read/ Write. Ketika RW berlogika low (0), maka informasi pada bus data akan dituliskan pada layar LCD. Ketika RW berlogika high ”1”, maka program akan melakukan pembacaan memori dari LCD. Sedangkan pada aplikasi umum pin RW selalu diberi logika low ”0”.

Pada akhirnya, bus data terdiri dari 4 atau 8 jalur ( bergantung pada mode operasi yang dipilih oleh user). Pada kasus bus data 8 bit, jalur diacukan sebagai DB0 s/d DB7. Beberapa perintah dasar yang harus dipahami adalah inisialisasi LCD Character,

Function Set

Mengatur interface lebar data, jumlah dari baris dan ukuran font karakter

Tabel 3.2 P in dan Fungsi

CATATAN: X : Don’t care

DL: Mengatur lebar data

DL=1, Lebar data interface 8 bit ( DB7 s/d DB0) DL=0, Lebar data interface 4 bit ( DB7 s/d DB4)

Ketika menggunakan lebar data 4 bit, data harus dikirimkan dua kali N=1, Display dua baris

(20)

Entry Mode Set

Mengatur increment/ decrement dan mode geser

Tabel 3.3 P in dan Fungsi

Catatan:

I/D: Increment/ decrement dari alamat DDRAM dengan 1 ketika kode karakter dituliskan ke

DDRAM.

I/D = “0”, decrement I/D= “1”, increment

S: Geser keseluruhan display kekanan dan kekiri S=1, geser kekiri atau kekanan bergantung pada I/D S=0, display tidak bergeser

Display On/ Off Cursor

Mengatur status display ON atau OFF, cursor ON/ OFF dan fungsi Cursor Blink

Tabel 3.4 P in dan Fungsi

D : Mengatur display D = 1, Display is ON D = 0, Display is OFF

Pada kasus ini data display masih tetap berada di DDRAM, dan dapat ditampilkan kembali secara langsung dengan mengatur D=1.

(21)

C : Menampilkan kursor

C = 1, kursor ditampilkan C = 0, kursor tidak ditampilkan

B : Karakter ditunjukkan dengan kursor yang berkedip B=1, kursor blink

Clear Display

Perintah ini hapus layar

Tabel 3.5 P in dan Fungsi

Geser Kursor dan Display

Geser posisi kursor atau display ke kanan atau kekiri tanpa menulis atau baca data display.

Fungsi ini digunakan untuk koreksi atau pencarian display

Tabel 3.6 P in dan Fungsi

Catatan : x = Dont care

(22)

Memori LCD

1. DDRAM ( Display Data RAM )

Memori DDRAM digunakan untuk menyimpan karakter yang akan ditampilkan. Semua teks yang kita tuliskan ke modul LCD adalah disimpan didalam memory ini, dan modul LCD secara berturutan membaca memory ini untuk menampilkan teks ke modul LCD itu sendiri.

Gambar 3.9. Lokas i memori display LCD Karakter

Pada peta memori tersebut, daerah yang berwarna kuning ( 00 s/d 0F dan 40 s/d 4F ) adalah display yang tampak. Sebagaimanan yang anda lihat, jumlahnya sebanyak 16 karakter per baris dengan dua baris. Angka pada setiap kotak adalah alamat memori yang bersesuaian dengan posisi dari layar. Demikianlah karakter pertama di sudut kiri atas adalah menempati alamah 00h. Posisi karakter berikutnya adalah alamat 01h dan seterusnya.

Akan tetapi, karakter pertama dari baris 2 sebagaimana yang ditunjukkan pada peta memori adalah pada alamat 40h. Dimikianlah kita perlu untuk mengirim sebuah perintah ke LCD untuk mangatur letak posisi kursor pada baris dan kolom tertentu. Instruksi Set Posisi Kursor adalah 80h. Untuk ini kita perlu menambahkan alamat lokasi dimana kita berharap untuk menempatkan kursor.Sebagai contoh, kita ingin menampilkan kata ”World” pada baris ke dua

(23)

pada posisi kolom ke sepuluh. Sesuai peta memori, posisi karakter pada kolom 11 dari baris ke dua, mempunyai alamat 4Ah, sehingga sebelum kita tulis kata ”World” pada LCD, kita harus mengirim instruksi set posisi kursor, dan perintah untuk instruksi ini adalah 80h ditambah dengan alamat 80h+4Ah =0Cah. Sehingga dengan mengirim perintah Cah ke LCD, akan menempatkan kursor pada baris kedua dan kolom ke 11 dari DDRAM.

Gambar 3.10 Program LCD

Selanjutnya hubungkan Arduino Duemilanove ke komputer dengan menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat mengetikkan program pada lembar kerja Sketch kemudian compile untuk mengecek atau memeriksa apakah

(24)

kode sudah benar sebelum dikirim ke papan Arduino, program tersebut dapat diketik seperti dibawah ini :

/* LiquidCrystal Library - display() and noDisplay() Demonstrates the use a 16x2 LCD display.

This LCD and uses the display() and noDisplay() functions to turn on and off the display.

The circuit:

* LCD RS pin to digital pin 12 * LCD Enable pin to digital pin 11 * LCD D4 pin to digital pin 5 * LCD D5 pin to digital pin 4 * LCD D6 pin to digital pin 3 * LCD D7 pin to digital pin 2 * LCD R/W pin to ground * 10K resistor:

* ends to +5V and ground * wiper to LCD VO p in (pin 3) Library originally added 18 Apr 2008 by David A. Mellis

library modified 5 Jul 2009

by Limor Fried (http://www.ladyada.net) example added 9 Jul 2009

by Tom Igoe

(25)

by Tom Igoe

This example code is in the public domain. http://www.arduino.cc/en/Tutorial/LiquidCrystal */

// include the library code: #include <LiquidCrystal.h>

// initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

// set up the LCD's number of columns and rows: lcd.begin(16, 2);

// Print a message to the LCD. lcd.print("hello, world!"); }

void loop() {

// Turn off the display: lcd.noDisplay(); delay(500);

// Turn on the display: lcd.display();

delay(500); }

Selanjutnya hubungkan gabungkan dari beberapa komponen yaitu sensor DHT11 dan relay dengan Arduino Duemilanove ke komputer dengan

(26)

menggunakan kabel USB (Universal Serial Bus). Lalu kita dapat memasukan ( upload) program pada arduino. Program tersebut dapat diketik seperti dibawah ini :

/*

The circuit:

* LCD RS pin to digital pin 8

* LCD Enable pin to digital pin 9

* LCD D4 pin to digital pin 4

* LCD D5 pin to digital pin 5

* LCD D6 pin to digital pin 6

* LCD D7 pin to digital pin 7

*/

#include <LiquidCrystal.h>

#include <LCDKeypad.h>

LiquidCrystal lcd(9, 8, 7, 6, 5, 4);

#define DHT11_PIN 0 // ADC0

byte read_dht11_dat()

{

byte i = 0;

byte result=0;

for(i=0; i< 8; i++)

{

while(!(PINC & _BV(DHT11_PIN))); // wait for 50us

delayMicroseconds(30);

if(PINC & _BV(DHT11_PIN))

(27)

while((PINC & _BV(DHT11_PIN))); // wait '1' finish } return result; } int Relay = 3; int Relay1 = 2; void setup() { DDRC |= _BV(DHT11_PIN); PORTC |= _BV(DHT11_PIN); Serial.begin(9600); lcd.println("Ready"); lcd.clear(); lcd.begin(16, 2); pinMode(12, OUTPUT); digitalWrite(12, HIGH); pinMode(Relay, OUTPUT); pinMode(13, OUTPUT); digitalWrite(13, HIGH); pinMode(Relay1, OUTPUT); } void loop() { byte dht11_dat[5]; byte dht11_in;

byte i;// start condition

(28)

PORTC &= ~_BV(DHT11_PIN); delay(18); PORTC |= _BV(DHT11_PIN); delayMicroseconds(1); DDRC &= ~_BV(DHT11_PIN); delayMicroseconds(40);

dht11_in = PINC & _BV(DHT11_PIN);

if(dht11_in)

{

lcd.println("dht11 start condition 1 not met");

return;

}

delayMicroseconds(80);

dht11_in = PINC & _BV(DHT11_PIN);

if(!dht11_in)

{

lcd.println("dht11 start condition 2 not met");

return;

}

delayMicroseconds(80);// now ready for data reception

for (i=0; i<5; i++)

dht11_dat[i] = read_dht11_dat(); DDRC |= _BV(DHT11_PIN); PORTC |= _BV(DHT11_PIN); byte dht11_check_sum = dht11_dat[0]+dht11_dat[1]+dht11_dat[2]+dht11_dat[3];// check check_sum

(29)

if(dht11_dat[4]!= dht11_check_sum)

{

lcd.println("DHT11 checksum error");

} lcd.clear(); lcd.print("Kelembaban="); lcd.print(dht11_dat[0],DEC); lcd.print("."); lcd.print(dht11_dat[1],DEC); lcd.print("%"); lcd.setCursor(0,1); if(dht11_dat[0]>=85){ digitalWrite(Relay,HIGH); } else{ digitalWrite(Relay,LOW); //delay(2000); } lcd.print(" Suhu = "); lcd.print(dht11_dat[2],DEC); lcd.print("."); lcd.print(dht11_dat[3],DEC); lcd.println("C"); lcd.setCursor(0,0); if(dht11_dat[2]>=25){ digitalWrite(Relay1,HIGH); }else { digitalWrite(Relay1,LOW); // delay(2000); }

(30)

delay(2000);

}

Setelah program selesai diketik lngkah selanjutnya adalah pilih icon upload, tunggu berapa detik. Setelah muncul done upload maka upload telah selesai dilakukan.

Gambar

Gambar 3.1 Diagram Blok Rangkaian Sistem Monitoring dan Kontrol Suhu  Dari  diagram  blok  diatas  dpat  dijelaskan  bahwa  yang  pertama  adalah  media  ruangan,  ruangan  ini  adalah  media  yang  diukur  oleh  sensor  DHT11  dan  udara  itu  masuk  keda
Gambar 3.3 Menghubungkan DHT11 dengan Arduino Duemilanove
Gambar 3.4  Program Arduino IDE (Integrated Development  Environment)
Gambar 3.5 Program Relay
+7

Referensi

Dokumen terkait

Kalau anda mahu melalui fasa ini tanpa dilukai, anda perlu mengetahui cara mengurus diri sewaktu anda jatuh cinta monyet dengan seseorang atau kalau orang

Skala yang digunakan oleh peneliti untuk menyatakan jawaban dari responden terhadap tiap pertanyaan yang diajukan adalah dengan Skala Likert.. 3.3.1.2

(10) Sekretariat Majelis Kehormatan Hakim menyampaikan salinan surat keputusan penjatuhan sanksi kepada Komisi Yudisial paling lama dalam waktu 3 (tiga) hari kerja

Dalam analisis psikologi dari tokoh utama ini, saya akan menggunakan teori psikologi dari Sigmund Freud, karena selain dia orang yang pertama kali menemukan teori dari

Dari sengketa ini dapat disimpulkan bahwa prinsip yurisdiksi teritorial dapat pula berlaku terhadap kejahatan yang dilakukan tidak hanya di wilayah negara yang bersangkutan, tapi

As discussed in previous issues of Research Notes (Ball 2001, 2002), the creation of  corpora  consisting  of  samples  of  written  and  spoken  production 

Terdapat gejala transien pada setiap rangkaian yang memiliki komponen penyimpan tenaga yaitu kapasitor dan inductor,hal itu dikarenakan perubahan muatan (arus

• Hubungan Kemanusiaan atau gaya yang lunak dihubungkan pada pemimpin yang tidak k dihubungkan pada pemimpin yang tidak mempertimbangkan perbedaan yang besar diantara teman-teman