Alat Pengatur Suhu dan Kelembaban Otomatis Sensor DHT11, LCD, dan Relay!

Daftar Isi

Baik, kali ini kita akan membuat Alat Pengatur Suhu dan Kelembaban Otomatis menggunakan Arduino dan sensor DHT11. Sistem ini dapat membaca suhu dan kelembaban ruangan, menampilkannya pada LCD, serta mengendalikan relay secara otomatis berdasarkan kondisi yang sudah kita tentukan.

Sebelum mengikuti tutorial ini, ada baiknya kamu membaca tutorial sebelumnya mengenai Sensor Kelembaban dan Suhu DHT11.

Alat pengatur suhu otomatis ini bisa digunakan untuk berbagai macam kebutuhan. Misalnya untuk membuat penetas telur ayam otomatis, penghangat ruangan otomatis, pengatur suhu dan kelembaban untuk green house, dan berbagai kebutuhan lainnya yang berhubungan dengan pengaturan suhu dan kelembaban.

Daftar Isi

Cara Kerja Alat Pengatur Suhu Otomatis

Inti dari alat ini adalah membaca suhu dan kelembaban dalam ruangan, kemudian menampilkan datanya ke LCD.

Setelah mendapatkan nilai suhu dan kelembaban, Arduino dapat menentukan kondisi tertentu untuk menyalakan atau mematikan relay.

Misalnya, ketika suhu lebih dari 30 derajat Celsius, Arduino akan mengaktifkan relay. Relay tersebut dapat digunakan sebagai saklar otomatis untuk menyalakan berbagai perangkat seperti lampu pijar, kipas, AC, atau perangkat lainnya.

Perangkat yang terhubung ke relay akan tetap menyala sampai kondisi suhu atau kelembaban kembali sesuai dengan batas yang sudah ditentukan dalam program.

Jadi secara sederhana alurnya adalah:

  1. Sensor DHT11 membaca suhu dan kelembaban.
  2. Arduino menerima data dari sensor.
  3. Data suhu dan kelembaban ditampilkan pada LCD.
  4. Arduino membandingkan data sensor dengan kondisi yang sudah ditentukan.
  5. Relay dinyalakan atau dimatikan sesuai kondisi tersebut.

Komponen yang Dibutuhkan

Oke! Sekarang kita langsung saja. Sebelumnya, pastikan kamu sudah menyiapkan komponen berikut:

  • 1x Arduino Uno
  • 1x LCD 16x2
  • 1x Sensor Suhu DHT11 atau DHT22 / DHT21 (AM2301)
  • 1x Breadboard
  • 1x Potensiometer
  • 1x Relay 1 Channel
  • 1x Resistor 220 Ohm
  • Beberapa kabel jumper

Rangkaian Arduino, DHT11, LCD dan Relay

Jika semua komponen sudah siap, silakan rangkai seperti gambar berikut.

Catatan Rangkaian

Pastikan setiap komponen terhubung sesuai dengan rangkaian pada gambar. Pada program yang digunakan, sensor DHT terhubung ke pin 8 Arduino, sedangkan relay menggunakan pin 9.

Untuk LCD 16x2, koneksi yang digunakan adalah:

  • RS → pin 12 Arduino
  • EN → pin 11 Arduino
  • D4 → pin 5 Arduino
  • D5 → pin 4 Arduino
  • D6 → pin 3 Arduino
  • D7 → pin 2 Arduino

Program Arduino

Jika sudah dirangkai, sekarang kita masuk ke programnya. Silakan salin atau ketik ulang program berikut.

Sebelum melakukan upload, pastikan library DHT sudah terpasang pada Arduino IDE.

Penjelasan Program

Pada bagian awal program kita memasukkan library DHT dan menentukan pin yang digunakan oleh sensor.

Pada program tersebut sensor DHT terhubung ke pin 8 Arduino. Jika menggunakan DHT22 atau DHT21, bagian DHTTYPE dapat disesuaikan dengan jenis sensor yang digunakan.

Selanjutnya kita menentukan koneksi LCD 16x2:

Relay menggunakan pin 9 Arduino:

Pada fungsi loop(), Arduino membaca nilai kelembaban dan suhu dari sensor DHT.

Nilai tersebut kemudian ditampilkan pada LCD dan Serial Monitor.

Bagian paling penting terdapat pada kondisi if. Pada program ini relay akan aktif jika kelembaban lebih dari 80.10% atau suhu lebih dari 30.10°C.

Nilai batas tersebut tentu saja bisa kamu ubah sesuai kebutuhan. Misalnya jika ingin relay aktif ketika suhu lebih dari 28°C, tinggal mengubah nilai 30.10 menjadi 28.

Pengujian Alat

Setelah program selesai ditulis, klik Upload pada Arduino IDE.

Jika proses upload berhasil, buka Serial Monitor dengan baud rate 9600. Kamu akan melihat nilai suhu dan kelembaban yang dibaca oleh sensor DHT.

Pada LCD juga akan ditampilkan nilai kelembaban dan suhu secara realtime.

Kalau kamu penasaran dengan hasil jadinya, silakan lihat video berikut:

Pengembangan Alat

Setelah berhasil membuat alat pengatur suhu dan kelembaban otomatis, kamu bisa mengembangkan sistem ini menjadi lebih kompleks.

Misalnya:

  • Menambahkan kipas otomatis.
  • Menggunakan AC sebagai perangkat yang dikendalikan relay.
  • Membuat penetas telur otomatis.
  • Membuat penghangat ruangan otomatis.
  • Membuat sistem kontrol suhu dan kelembaban untuk greenhouse.
  • Menambahkan sensor DHT22 agar pembacaan suhu dan kelembaban lebih baik.
  • Menghubungkan Arduino dengan IoT agar data dapat dipantau melalui internet.

Intinya, sensor DHT digunakan untuk membaca kondisi lingkungan, Arduino melakukan pengolahan data, LCD menampilkan informasi, dan relay digunakan sebagai saklar untuk mengendalikan perangkat secara otomatis.

Selamat mencoba!

7 komentar

siip boss
Keuntungan Dengan Bitcoin
29 Agustus 2016 pukul 23.24 Hapus
trimaksaih ilmu nya mas, sangat sangat bermanfaat
Unknown
28 Desember 2016 pukul 17.17 Hapus
ini kalau memonitoringnya lwt android apa bisa?
Anonim
Anonim
8 Januari 2017 pukul 09.39 Hapus
kaki2 lcd nya boleh diperjelas ga?
Unknown
7 Mei 2017 pukul 04.51 Hapus
#include //menyertakan library DHT kedalam program
#define DHTPIN 1 //kita pasang sensor pada pin 1
#define DHTTYPE DHT11 //kita menggunakan jenis sensor DHT11,
DHT dht(DHTPIN, DHTTYPE); //deklarasi pin sensor dengan jenis
#include //menyertakan library LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //pin yang dipadakai LCD
int relaykipas = 7; //kita menggunakan pin 7 untuk relay
int relaypemanas = 8;

//blink withot delay untuk menyalakan motor pemutar rak
const int relaymotor = 9; // pin 9 untuk relay motor penggerak rak
int relaymotorState = LOW;
long previousMillis = 2700000;
long interval = 1000;


void setup() {
lcd.begin(16, 2); //mengatur ukuran lcd yang dipakai
dht.begin(); //program komunikasi atau setup untuk sensor DHT
pinMode(relaykipas, OUTPUT); //mengatur relay sebagai OUTPUT
pinMode(relaypemanas, OUTPUT);
pinMode(relaymotor, OUTPUT);
Serial.begin(9600); }

void loop() {
float kelembaban = dht.readHumidity(); //menyimpan nilai kelemb
float suhu = dht.readTemperature(); //menyimpan nilai suhu pada
delay(200); //mengatur jeda waktu pembacaan sensor selama 20
Serial.print(kelembaban); //menampilkan nilai kelembaban pada
Serial.print(" "); //menambahkan spasi
Serial.println(suhu); //menampilkan nilai suhu pada Serial Monitor


//menampilkan nilai kelembaban pada LCD
lcd.setCursor(0, 0); //
lcd.print("Kelembaban.: ");
lcd.print((int) kelembaban);
lcd.print("%");
//menampilkan nilai suhu pada LCD
lcd.setCursor(0, 1);
lcd.print("Suhu.: ");
lcd.print((int) suhu);
lcd.println("*C ");
//kondisi if dibawah ini, silahkan di atur sesuai dengan kebutuh
if (kelembaban > 55.00) {
digitalWrite(relaykipas, HIGH);
}
else {
digitalWrite(relaykipas,LOW);
}
if (suhu > 38.00) {
digitalWrite(relaypemanas, LOW);
}
else {
digitalWrite(relaypemanas,HIGH);
}

unsigned long currentMillis = millis();

if(currentMillis - previousMillis > interval) {
previousMillis = currentMillis;

if (relaymotorState == LOW)
relaymotorState = HIGH;
else
relaymotorState = LOW;

digitalWrite(relaymotor, relaymotorState);
}
}
mohon koreksinya
Unknown
6 Juli 2017 pukul 14.21 Hapus
kak punyaku kok error ya
Arduino: 1.8.3 (Windows 10), Board: "Arduino/Genuino Uno"

The sketch name had to be modified. Sketch names can only consist
of ASCII characters and numbers (but cannot start with a number).
They should also be less than 64 characters long.
C:\Users\User\Documents\Arduino\pengatur_suhu\pengatur_suhu.ino:1:60: fatal error: DHT.h: No such file or directory

#include //menyertakan library DHT kedalam program

^

compilation terminated.

exit status 1
Error compiling for board Arduino/Genuino Uno.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Unknown
24 November 2017 pukul 09.19 Hapus
Arduino: 1.8.4 (Windows 7), Board: "Arduino Mega ADK"

C:\Program Files (x86)\Arduino\arduino-builder -dump-prefs -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wisnu\Documents\Arduino\libraries -fqbn=arduino:avr:megaADK -ide-version=10804 -build-path C:\Users\Wisnu\AppData\Local\Temp\arduino_build_929766 -warnings=none -build-cache C:\Users\Wisnu\AppData\Local\Temp\arduino_cache_539713 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wisnu\Documents\Arduino\lalu_lintas_timer\green_house_project\green_house_project.ino
C:\Program Files (x86)\Arduino\arduino-builder -compile -logger=machine -hardware C:\Program Files (x86)\Arduino\hardware -tools C:\Program Files (x86)\Arduino\tools-builder -tools C:\Program Files (x86)\Arduino\hardware\tools\avr -built-in-libraries C:\Program Files (x86)\Arduino\libraries -libraries C:\Users\Wisnu\Documents\Arduino\libraries -fqbn=arduino:avr:megaADK -ide-version=10804 -build-path C:\Users\Wisnu\AppData\Local\Temp\arduino_build_929766 -warnings=none -build-cache C:\Users\Wisnu\AppData\Local\Temp\arduino_cache_539713 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.arduinoOTA.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avr-gcc.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -prefs=runtime.tools.avrdude.path=C:\Program Files (x86)\Arduino\hardware\tools\avr -verbose C:\Users\Wisnu\Documents\Arduino\lalu_lintas_timer\green_house_project\green_house_project.ino
Using board 'megaADK' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Using core 'arduino' from platform in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_ADK -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\Wisnu\AppData\Local\Temp\arduino_build_929766\sketch\green_house_project.ino.cpp" -o "nul"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10804 -DARDUINO_AVR_ADK -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\Wisnu\AppData\Local\Temp\arduino_build_929766\sketch\green_house_project.ino.cpp" -o "C:\Users\Wisnu\AppData\Local\Temp\arduino_build_929766\preproc\ctags_target_for_gcc_minus_e.cpp"
C:\Users\Wisnu\Documents\Arduino\lalu_lintas_timer\green_house_project\green_house_project.ino:1:57: fatal error: DHT: No such file or directory

#include //menyertakan library DHT kedalam program

^

compilation terminated.

exit status 1
Error compiling for board Arduino Mega ADK.
DHTnya kok selalu error ya?