//Nama : Yogi Waizul Kurni
//NIM : 210401159
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int kipasPin = 12;
const int ledPin = 13; // Pin untuk LED
const int batasSuhuLambat = 35;
void setup() {
Serial.begin(115200);
Serial.println("HALO YOGI WAIZUL KURNI");
lcd.begin(16, 2);
dht.begin();
pinMode(kipasPin, OUTPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity(); // Baca nilai kelembapan
delay(500);
if (t < batasSuhuLambat && h < 60 && h >= 30) {
digitalWrite(kipasPin, HIGH);
statusKipas("Cepat");
digitalWrite(ledPin, LOW);
} else if (t < batasSuhuLambat && h >= 60) {
digitalWrite(kipasPin, HIGH);
statusKipas("Lambat");
digitalWrite(ledPin, LOW);
} else if (t >= batasSuhuLambat && h < 60 && h >= 30) {
digitalWrite(kipasPin, HIGH);
statusKipas("Cepat");
digitalWrite(ledPin, LOW);
} else if (t >= batasSuhuLambat && h >= 60) {
digitalWrite(kipasPin, HIGH);
statusKipas("Cepat");
digitalWrite(ledPin, LOW);
} else {
digitalWrite(kipasPin, LOW);
statusKipas("Off");
digitalWrite(ledPin, HIGH);
}
// Menampilkan di LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Suhu=");
lcd.print(t);
lcd.print("c");
lcd.setCursor(0, 1);
lcd.print("Kelembapan=");
lcd.print(h);
lcd.print("% Kipas=");
lcd.print(statusKipas(""));
}
String statusKipas(String status) {
static String kecepatan = "Off";
if (status != "") {
kecepatan = status;
}
return kecepatan;
}