#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define LDR A0
#define LED 13
#define LED2 12
#define LED3 11
#define LED4 10
#define TRIG 3
#define ECHO 2
#define DHTpin A1
#define DHTtype DHT22
DHT dht(DHTpin, DHT22);
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
Serial.begin(9600);
dht.begin();
pinMode(LDR, INPUT);
pinMode(LED, OUTPUT);
pinMode(ECHO, INPUT);
pinMode(TRIG, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(5,0);
lcd.print("PROJEK UTS");
lcd.setCursor(2,1);
lcd.print("Embedded System");
lcd.setCursor(8,2);
lcd.print("oleh");
lcd.setCursor(1,3);
lcd.print("Kelompok 7 PSTI-B");
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.println("- Siti Nur Azizah");
lcd.setCursor(0,1);
lcd.println("- Yasmin Nurul S");
lcd.setCursor(0,2);
lcd.println("- Chandrika Gita P");
lcd.setCursor(0,3);
lcd.println("- M. Raja Haikal F");
delay(3000);
lcd.clear();
Serial.println("- LED Kuning akan menyala, apabila arus cahaya yang ditangkap oleh LDR < 250 lumen (lm).");
Serial.println("- LED Merah akan menyala, apabila suhu/temperatur yang ditangkap oleh DHT22 tidak di antara 15-22 C.");
Serial.println("- LED Biru akan menyala, apabila kelembaban udara yang ditangkap oleh DHT22 tidak di antara 45-65 %.");
Serial.println("- LED Hijau akan menyala, apabila distance suara yang ditangkap oleh HC-SR04 > 200 cm.");
}
void loop() {
int nilaiLDR = analogRead(LDR);
float nilaiHum = dht.readHumidity();
float nilaiTemp = dht.readTemperature();
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
float distance = pulseIn(ECHO, HIGH);
//Cahaya
lcd.setCursor(0,0);
lcd.print("Cahaya : ");
lcd.setCursor(13,0);
lcd.print(nilaiLDR);
lcd.setCursor(18,0);
lcd.print("lm");
//Suhu
lcd.setCursor(0,1);
lcd.print("Suhu : ");
lcd.setCursor(13,1);
lcd.print(nilaiTemp);
lcd.setCursor(19,1);
lcd.print("C");
//Kelembaban
lcd.setCursor(0,2);
lcd.print("Kelembaban : ");
lcd.setCursor(13,2);
lcd.print(nilaiHum);
lcd.setCursor(19,2);
lcd.print("%");
//Suara
lcd.setCursor(0,3);
lcd.print("Suara : ");
lcd.setCursor(13,3);
lcd.print(distance / 58 - 1);
lcd.setCursor(18,3);
lcd.print("cm");
if(nilaiLDR < 500){
digitalWrite(LED, HIGH);
} else {
digitalWrite(LED, LOW);
}
if(nilaiTemp >= 15 && nilaiTemp <= 22){
digitalWrite(LED2, LOW);
} else {
digitalWrite(LED2, HIGH);
}
if(nilaiHum >= 45 && nilaiHum <= 65){
digitalWrite(LED3, LOW);
} else {
digitalWrite(LED3, HIGH);
}
if(distance > 11600){
digitalWrite(LED4, HIGH);
} else {
digitalWrite(LED4, LOW);
}
delay(500);
}