//NAMA : JAHROTUL AINI
//NPM : 4622130002
//MATKUL : WORKSHOP MIKROKONTROLER
//PROJEK : PENGUKURAN SUHU & KELEMBABAN
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 2 // Pin koneksi sensor DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT yang digunakan
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C LCD dan ukuran (16 kolom, 2 baris)
// Pin untuk lampu indikator
const int redLed = 10;
const int yellowLed = 9;
const int greenLed = 8;
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
// Mengatur pin lampu indikator sebagai OUTPUT
pinMode(redLed, OUTPUT);
pinMode(yellowLed, OUTPUT);
pinMode(greenLed, OUTPUT);
// Menyalakan lampu hijau sebagai tanda bahwa sistem sudah siap
digitalWrite(greenLed, HIGH);
lcd.print("JAHROTUL AINI");
lcd.setCursor(0, 1);
lcd.print("4622130002"); // Ganti dengan nama dan NPM Anda
delay(2000);
lcd.clear();
}
void loop() {
// Membaca suhu dan kelembapan dari sensor DHT22
float suhu = dht.readTemperature();
float kelembapan = dht.readHumidity();
// Menampilkan suhu dan kelembapan di LCD
lcd.clear();
lcd.print("Suhu: ");
lcd.print(suhu);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Kelembapan: ");
lcd.print(kelembapan);
lcd.print(" %");
// Memproses logika lampu indikator
if (suhu < 20 && kelembapan < 20) {
digitalWrite(redLed, HIGH);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
} else if (suhu >= 50 && kelembapan >= 50) {
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, HIGH);
digitalWrite(greenLed, LOW);
} else if (suhu > 55 && kelembapan > 55) {
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, HIGH);
} else {
digitalWrite(redLed, LOW);
digitalWrite(yellowLed, LOW);
digitalWrite(greenLed, LOW);
}
delay(2000); // Delay untuk menghindari pembacaan yang terlalu cepat
}