Langsung ke konten utama

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

Baik kali ini kita akan membuat Alat Pengatur Suhu Otomatis. Tapi ada baiknya jika kamu membaca postingan sebelumnya mengenai, "Sensor Kelembaban dan Suhu DHT11." Jadi Alat Pengatur Suhu Otomatis ini bisa difungsikan berbagai macam hal. Kamu bisa gunakan untuk membuat penetas telur ayam otomatis, penghangat ruangan otomatis, pengatur suhu dan kelembaban otomatis untuk green house, dan semua kebutuhan yang berhubungan dengan suhu dan kelembaban bisa kamu buat otomatis.
Inti dari alat ini adalah membaca suhu dan kelembaban dalam ruangan, lalu menampilkan datanya ke LCD. Lalu kamu bisa set kondisi tertentu untuk menyalakan relay, misal ketika suhu lebih dari 30 derajat, kamu nyalakan relay. Relay ini bisa digunakan sebagai saklar otomatis untuk menyalakan lampu pijar, atau AC dan sebagainya. So alat-alat yang dinyalakan relay, akan menyala sampai suhunya kembali normal seperti yang sudah di atur. Ok! Sekarang kita langsung aja. Sebelumnya, pastikan kamu sudah menyiapkan: 1x Arduino 1x LCD ukuran 16x2 1x Sensor Suhu DHT11 atau DHT22, DHT21 (AM2301) 1x Breadboard 1x Potensiometer 1x Relay 1 Channel
1x Resistor 220 ohm Beberapa kabel jumper Jika sudah silahkan pasang seperti gambar dibawah ini:
Jika sudah dirangkai, dibawah ini programnya. Silahkan, di salin ulang!
#include <DHT.h>  //menyertakan library DHT kedalam program

#define DHTPIN 8  //kita pasang sensor pada pin 8
#define DHTTYPE DHT11 //kita menggunakan jenis sensor DHT11, ubah jika kamu gunakan sensor lain seperti DHT22 (AM2302) atau DHT21 (AM2301)

DHT dht(DHTPIN, DHTTYPE); //deklarasi pin sensor dengan jenis sensor yang dipilih

#include  <LicuidCrystal.h>//menyertakan library LCD

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //pin yang dipadakai LCD

int relay= 9; //kita menggunakan pin 9 untuk relay

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

void loop() {
  float kelembaban = dht.readHumidity(); //menyimpan nilai kelembaban pada variabel kelembaban
  float suhu = dht.readTemperature(); //menyimpan nilai suhu pada variabel suhu
  delay(200); //mengatur jeda waktu pembacaan sensor selama 200 milidetik
  Serial.print(kelembaban); //menampilkan nilai kelembaban pada Serial Monitor
  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, sailahkan di atur sesuai dengan kebutuhan kamu
 
  if ( kelembaban > 80.10){      //jika kelembaban lebih besar dari 80.10
     digitalWrite(relay, LOW);   //relay menyala
         }

 else if( suhu > 30.10){         //jika suhu lebih besar dari 30.10 
     digitalWrite(relay, LOW);   //relay menyala
         }
          
 else{                           //jika tidak   
     digitalWrite(relay, HIGH);  //relay mati
        } 
}

Ok! Jika sudah mencoba, kamu bisa membuatkan Kotak agar lebih rapi, seperti pada gambar dibawah ini: 



 Kalau kamu penasaran hasil jadinya, silahkan lihat video dibawah ini:


Selamat Mencoba! 

Komentar

  1. trimaksaih ilmu nya mas, sangat sangat bermanfaat

    BalasHapus
  2. ini kalau memonitoringnya lwt android apa bisa?

    BalasHapus
  3. kaki2 lcd nya boleh diperjelas ga?

    BalasHapus
  4. #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

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

    BalasHapus
  6. 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?

    BalasHapus

Posting Komentar

Postingan populer dari blog ini

Belajar Pemrograman Dasar Arduino!

Yang yang baru pertama kali belajar arduino silahkan masuk dulu ke KELAS ARDUINO . Seperti yang saya bilang pada postingan sebelumnya, bahasa pemrograman Arduino mirip bahasa C yang digunakan pada AVR. Akan tetapi lebih sederhana, dan lebih mudah untuk dipelajari. Ada yang bilang juga bahwa bahasa pemrograman Arduino adalah bahasa processing. Bagi saya bahasa pemrograman yang digunakan pada Arduino adalah bahasa pemrograman Arduino ;) hehe Nah pada kelas ini saya ingin mengajak kamu untuk belajar Bahasa Pemrograman Dasarnya. Penting sekali, supaya saat dipembahasan selanjutnya saya kasih kamu contoh program. Kamu sudah bisa memahami dan tidak bingung, karena kamu sudah tahu dasarnya. Ok! Baiklah kita akan mulai dari: void setup () { // semua kode yang disini akan dibaca sekali oleh Arduino } void loop () { //semua kode yang ada disini akan dibaca berulang kali (terus menerus) oleh Arduino } Semua kode program yang ada dalam void setup akan dibaca sekali oleh A

Cara Mudah Program Sensor Suhu Dan Kelembaban DHT11 Dengan Arduino

Sebelumnya kita pernah mencoba Sensor Suhu LM35 , dengan berbagai macam percobaan kreatifnya. Masih dengan tema yang sama, kita akan mencoba Sensor Suhu dan Kelembaban DHT11 . Ya satu sensor ini, bisa baca suhu ( temperature ) dan juga kelembaban ( humidity ). Sensor Suhu dan Kelembaban DHT11 Jika kamu menggunakan Modul, kamu bisa langsung memasang ke Arduinonya. Tapi jika ingin mencoba pada breadboard, maka siapkanlah: 1x Breadboard 1x Arduino 1x DHT11 Sensor 1x Resistor 10 Kilo Ohm 5x kabel Jumper male-male Lalu buatlah rangkaian seperti gambar dibawah ini: NOTES: Hubungkan kaki ke-1 DHT11 ke 5V Arduino Hubungkan kaki ke-2 DHT11 ke pin 2 Arduino dengan menggunakan Resisitor 10 Kilo Ohm , hubungkan kaki ke-2 DHT11 ke 5V Arduino . Hubungkan kaki ke-4 DHT11 ke GND Arduino Untuk kaki Ke-3 DHT11 kita abaikan saja :D Dengan rangkaian yang seperti diatas saya buat DHT11 saya menjadi DIY Modul. Yang mana has

Membuat Jam Digital Dengan Arduino Uno, RTC DS1302, dan LCD i2C!

Kita akan membuat Jam Digital menggunakan Arduino Uno sebagai Controllernya, RTC DS1302 sebagai data untuk waktu dan tanggalnya, dan LCD i2C untuk menampilkan data waktu dan tanggalnya. Ini merupakan gabungan dari postingan sebelumnya, jadi yang belum coba saya sarankan coba dulu kedua posting berikut: Cara Simpel Program LCD i2C 16x2 Menggunakan Arduino Cara Mudah Program RTC Module DS1302 Jam Digital Dengan Arduino Ok! Yang harus kamu siapkan adalah... 1x Arduino Uno 1x RTC DS1302 1x LCD i2C 9x Kabel Jumper Male-Female Pasanglah seperti pada gambar rangkaian dibawah ini: Sebelum masuk ke-pemrograman ada 2 library yang harus kamu masukan ke Arduino. Library lCD i2C dan Library untuk RTCnya, silahkan Download dulu lewat Link di bawah ini: DOWNLOAD LIBRARY LiquidQrystal_i2c (DROPBOX) DOWNLOAD LIBRARY virtuabotixRTC (DROPBOX) Bagi yang masih bingung cara masukin Library ke aplikasi arduinonya,