Sistem Kontrol Kipas Angin Otomatis Berdasarkan Suhu dan Kelembapan Ruangan dengan DHT11
- Adam Kusumah
- Jun 20
- 2 min read
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

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