#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT22
DHT dht (DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd (0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
pinMode(7,OUTPUT);
pinMode(6,OUTPUT);
pinMode(5,OUTPUT);
pinMode(4,OUTPUT);
Serial.begin(115200);
Serial.println("SISTEM KONTROL SUHU");
lcd.begin(16, 2);
dht.begin();
}
void loop() {
// put your main code here, to run repeatedly:
float t = dht.readTemperature();
float h = dht.readHumidity();
delay(1000);
//menampilkan di lcd
lcd.setCursor(0,0);
lcd.println("suhu=");
lcd.print(t);
lcd.println(" c");
lcd.setCursor(0, 1);
lcd.println("Lembab=");
lcd.print(h);
lcd.println(" %");
//menampilkan di serial monitor
Serial.println("suhu = ");
Serial.print(t);
Serial.println(" c");
Serial.println("Kelembaban=");
Serial.print(h);
Serial.println(" %");
if (t < 20) {
digitalWrite(4, HIGH); // Nyalakan heater
digitalWrite(7, LOW); // Matikan fan 1
digitalWrite(6, LOW); // Matikan fan 2
digitalWrite(5, LOW); // Matikan fan 3
} else if (t <= 25){
digitalWrite(4, LOW); // Matikan heater
digitalWrite(7, HIGH); // Nyalakan fan 1
digitalWrite(6, LOW); // Matikan fan 2
digitalWrite(5, LOW); // Matikan fan 3
} else if (t <= 30){
digitalWrite(4, LOW); // Matikan heater
digitalWrite(7, HIGH); // Nyalakan fan 1
digitalWrite(6, HIGH); // NYALAKAN fan 2
digitalWrite(5, LOW); // Matikan fan 3
} else {
digitalWrite(4,LOW);//MATIKAN HEATER
digitalWrite(7, HIGH); // Nyalakan fan 1
digitalWrite(6, HIGH); // NYALAKAN fan 2
digitalWrite(5, HIGH); // NYALAKAN fan 3
}
// Menentukan berapa banyak LED yang menyala
int ledsOn =0;
if (digitalRead(7) == HIGH) {
ledsOn++;
if (digitalRead(6) == HIGH) {
ledsOn++;
}
if (digitalRead(5) == HIGH) {
ledsOn++;
}
// Perubahan suhu berdasarkan jumlah LED yang menyala
if (ledsOn == 1) {
t++;
// suhu turun 1 derajat per menit
} else if (ledsOn == 2) {
t++; // suhu turun 2 derajat per menit
} else if (ledsOn == 3) {
t++; // suhu naik 3 derajat per menit
}
}}