top of page

Sistem Kontrol Kipas Angin Otomatis Berdasarkan Suhu dan Kelembapan Ruangan dengan DHT11

Updated: Jun 26


Selamat datang di website Cosmo!

di artikel ini, kita akan belajar buat sistem kontrol kipas angin otomatis berdasarkan Suhu dan Kelembapan Ruangan dengan DHT11.

Skema Rangkaian



wiring

Penjelasan Rangkaian

1.5V  Kaki (+) DHT11, LCD & Relay

2.GND  Kaki (-) DHT11, LCD & Relay

3.D7  Data DHT11

4.D3  Data Relay

5.D2  SDA LCD

6.D1  SCL LCD

7.Adaptor (+)  COM Relay

8.NO Relay  Kaki (+) FAN

9.Adaptor (-)  Kaki (+) FAN


Kode

#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN D7              // Pin DHT11
#define DHTTYPE DHT11          // Jenis sensor DHT
#define RELAYPIN D3            // Pin Relay
#define TEMP_THRESHOLD 30      // Batas suhu untuk menyalakan kipas
#define HUMIDITY_THRESHOLD 90  // Batas kelembaban untuk menyalakan kipas

DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);  // Alamat I2C LCD (sesuaikan jika perlu)

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.begin();
  lcd.backlight();  // Backlight aktif di awal

  pinMode(RELAYPIN, OUTPUT);
  digitalWrite(RELAYPIN, LOW);  // Pastikan kipas mati di awal

  lcd.setCursor(0, 0);
  lcd.print("Monitoring...");
}

void loop() {
  lcd.clear();
  float suhu = dht.readTemperature();
  float kelembaban = dht.readHumidity();

  if (!isnan(suhu) && !isnan(kelembaban)) {
    Serial.print("Suhu: ");
    Serial.print(suhu);
    Serial.print(" C, Kelembaban: ");
    Serial.print(kelembaban);
    Serial.println("%");

    // Menampilkan suhu dan kelembaban di LCD
    lcd.setCursor(0, 0);
    lcd.print("S:");
    lcd.print(suhu, 1);
    lcd.print((char)223);
    lcd.print("C ");
    lcd.setCursor(9, 0);
    lcd.print("K:");
    lcd.print(kelembaban, 1);
    lcd.print("%");

    // Logika pengendalian kipas dan backlight
    if (suhu >= TEMP_THRESHOLD || kelembaban > HUMIDITY_THRESHOLD) {
      digitalWrite(RELAYPIN, HIGH);  // Kipas menyala
      lcd.backlight();               // Aktifkan backlight
      Serial.println("Status: Panas");
      lcd.setCursor(2, 1);
      lcd.print("Panas poll!");
    } else {
      digitalWrite(RELAYPIN, LOW);  // Kipas mati
      lcd.noBacklight();            // Matikan backlight
      Serial.println("Status: Normal");
      lcd.setCursor(2, 1);
      lcd.print("Normal ges");
    }
  } else {
    Serial.println("Gagal membaca data dari DHT11!");
    lcd.setCursor(0, 0);
    lcd.print("Sensor Error!  ");
    lcd.setCursor(0, 1);
    lcd.print("Cek kabel DHT11!");
  }

  delay(2000);  // Tunggu 2 detik sebelum membaca ulang
}

Penjelasan Kode

Kode ini adalah program Arduino untuk memantau suhu dan kelembaban menggunakan sensor DHT11, lalu menampilkannya di layar LCD. Jika suhu mencapai 30°C atau kelembaban di atas 90%, kipas akan menyala dan backlight LCD juga aktif, menampilkan pesan "Panas poll!". Sebaliknya, jika suhu dan kelembaban di bawah batas tersebut, kipas akan mati dan backlight LCD juga padam, menampilkan "Normal ges". Program ini membaca data setiap 2 detik dan akan menampilkan pesan error jika sensor gagal membaca.


Video Tutorial

Untuk penjelasan lebih mendalam, tonton tutorial video berikut.

Penutup

Kalau ingin belajar lebih banyak tentang IoT, langsung kunjungi YouTube IQ+ dan temukan berbagai tutorial menarik lainnya.

Comments


Bantu tingkatkan
kualitas website ini!

Dengan memberi masukan dan/atau pertanyaan

Jika berkenan, silakan masukan e-mail Anda untuk kontak lebih lanjut

Pilihan
Masukan
Pertanyaan
Lainnya
bottom of page