// Projek Kelompok C3
// Daffi, Bunga, Geo
// Monitoring Suhu dan Kelembapan
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 8
#define DHTTYPE DHT22
#define buzzer 10
#define bluled 4
#define yelled 7
#define redled 2
const int switch_pin = 3;
const int RELAY_PIN = 6;
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
Serial.begin(9600);
Serial.println("Sistem Monitoring Suhu");
Serial.print("Daffi, Geo, Bunga");
lcd.begin(16, 2);
dht.begin();
lcd.backlight();
pinMode(switch_pin, INPUT_PULLUP);
pinMode(RELAY_PIN, OUTPUT);
pinMode(bluled, OUTPUT);
pinMode(yelled, OUTPUT);
pinMode(redled, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
float t = dht.readTemperature();
float h = dht.readHumidity();
int switch_state=digitalRead(switch_pin);
digitalWrite(RELAY_PIN, switch_state);
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(" %");
delay(500);
lcd.clear();
// Menyalakan LED built-in Arduino jika suhu mencapai ambang tertentu
if (t < 18) {
digitalWrite(bluled, HIGH); // Menyalakan LED built-in Arduino
digitalWrite(redled,LOW);
digitalWrite(yelled,LOW);
lcd.setCursor(4,0);
lcd.println("Indikator");
lcd.setCursor(3,1);
lcd.print("Suhu Dingin");
digitalWrite(buzzer, HIGH);
tone(buzzer, 10);
delay(750);
digitalWrite(buzzer, LOW);
noTone(buzzer);
} else if (t >= 18 && t<= 25){
digitalWrite(yelled, HIGH);
digitalWrite(redled,LOW);
digitalWrite(bluled,LOW);
lcd.setCursor(4,0);
lcd.println("Indikator");
lcd.setCursor(3,1);
lcd.print("Suhu Normal");
delay(750);
} else if (t > 25){
digitalWrite(redled, HIGH);
digitalWrite(bluled,LOW);
digitalWrite(yelled,LOW);
lcd.setCursor(4,0);
lcd.println("Indikator");
lcd.setCursor(3,1);
lcd.print("Suhu Panas");
tone(buzzer, 20);
delay(750);
digitalWrite(buzzer, LOW);
noTone(buzzer);
}
}