#include <DHT.h>
#include <LiquidCrystal_I2C.h>
#define DHTPIN 2 // Pin data DHT11/DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT (DHT11 atau DHT22)
#define PIR_PIN 3 // Pin sensor PIR
#define LED_PIN 4 // Pin LED
#define LCD_ADDRESS 0x27 // Alamat I2C LCD
#define LCD_COLS 16 // Jumlah kolom pada LCD
#define LCD_ROWS 4 // Jumlah baris pada LCD
DHT dht(DHTPIN, DHTTYPE); // Objek sensor DHT
LiquidCrystal_I2C lcd(LCD_ADDRESS, LCD_COLS, LCD_ROWS); // Objek LCD
void setup() {
Serial.begin(9600); // Inisiasi komunikasi serial
dht.begin(); // Inisiasi sensor DHT
pinMode(PIR_PIN, INPUT); // Inisiasi pin sensor PIR sebagai input
pinMode(LED_PIN, OUTPUT); // Inisiasi pin LED sebagai output
lcd.init(); // Inisiasi LCD
lcd.backlight(); // Nyalakan backlight LCD
lcd.setCursor(0, 0); // Set kursor LCD ke baris 0, kolom 0
lcd.print("Andra Matarisman"); // Tampilkan nama author di baris 0
}
void loop() {
float humidity = dht.readHumidity(); // Baca nilai kelembaban
float temperature = dht.readTemperature(); // Baca nilai suhu
// Tampilkan nilai suhu di LCD
lcd.setCursor(0, 1); // Set kursor LCD ke baris 1, kolom 0
lcd.print("Suhu: ");
lcd.print(temperature);
lcd.print("C");
// Deteksi gerakan menggunakan sensor PIR
int motion = digitalRead(PIR_PIN);
Serial.println(motion); // Pemantauan sensor PIR
if (motion == HIGH) {
lcd.setCursor(0, 3); // Set kursor LCD ke baris 3, kolom 0
lcd.print("Gerakan Terdeteksi");
digitalWrite(LED_PIN, HIGH); // Nyalakan LED
} else {
lcd.setCursor(0, 3); // Set kursor LCD ke baris 3, kolom 0
lcd.print("Tidak ada Gerakan"); // Hapus pesan jika tidak ada gerakan
digitalWrite(LED_PIN, LOW); // Matikan LED
}
delay(2000); // Tunggu selama 2 detik
}