#include <WiFi.h>
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define RAIN_SENSOR_PIN 4
#define DHTPIN 15
#define DHTTYPE DHT22
#define MOTOR_PIN 14 // Pin untuk mengontrol motor DC
DHT dht22(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 20, 4);
int temperature = 0;
int humidity = 0;
int rainValue = 0;
void setup() {
Serial.begin(115200);
lcd.init();
lcd.backlight();
dht22.begin();
pinMode(RAIN_SENSOR_PIN, INPUT);
lcd.setCursor(3, 0);
lcd.print("SMKN 11 BEKASI");
pinMode(MOTOR_PIN, OUTPUT);
digitalWrite(MOTOR_PIN, LOW); // Matikan motor DC saat awal
delay(1000); // Tunggu sebentar sebelum memulai loop
}
void loop() {
temperature = dht22.readTemperature();
humidity = dht22.readHumidity();
rainValue = digitalRead(RAIN_SENSOR_PIN);
lcd.setCursor(0, 1);
lcd.print("SUHU: " + String(temperature) + " C ");
lcd.setCursor(0, 2);
lcd.print("KELEMBAPAN: " + String(humidity) + " % ");
if (isnan(temperature) || isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
lcd.setCursor(0, 3);
lcd.print("KONDISI: ERROR ");
} else {
if (rainValue == HIGH) {
Serial.println("Rain detected!");
lcd.setCursor(0, 3);
lcd.print("KONDISI: HUJAN ");
digitalWrite(MOTOR_PIN, HIGH); // Hidupkan motor DC
delay(4000); // Putar motor selama 4 detik (misalnya)
digitalWrite(MOTOR_PIN, LOW); // Matikan motor DC
} else {
Serial.println("No rain.");
lcd.setCursor(0, 3);
lcd.print("KONDISI: TIDAK HUJAN ");
}
}
delay(100);
}