#include <Servo.h>
#include <DHT.h>
//PENAMAAN PIN
int varPinDHT = A0;
int varPinTanah = A1;
int varPinLDR = A2;
int varPompa = 2;
int varLampu = 3;
int varBuzzer = 4;
int varServoPin = 9;
//PENAMAAN sensor kelembaban
#define DHTTYPE DHT22
DHT varDHT(varPinDHT, DHTTYPE);
//variabel yang digunakan
int varNilaiTanah;
int varNilaiLDR;
int varPersenTanah;
float varSuhu;
float varKelembapanUdara;
//NAMA SERVO
Servo varAtap;
unsigned long varWaktuSebelumnya = 0;
const long varInterval = 1000;
bool varStatusAtap = false;
void setup() {
pinMode(varPompa, OUTPUT);
pinMode(varLampu, OUTPUT);
pinMode(varBuzzer, OUTPUT);
varAtap.attach(varServoPin);
varDHT.begin();
Serial.begin(9600);
}
void loop() {
varNilaiTanah = analogRead(varPinTanah);
varNilaiLDR = analogRead(varPinLDR);
varSuhu = varDHT.readTemperature();
varKelembapanUdara = varDHT.readHumidity();
varPersenTanah = map(varNilaiTanah, 0, 1023, 0, 100);
if (varNilaiTanah < 400 && varNilaiLDR > 300) {
digitalWrite(varPompa, HIGH);
} else {
digitalWrite(varPompa, LOW);
}
if (varNilaiLDR < 300) {
varAtap.write(180);
digitalWrite(varLampu, HIGH);
if (!varStatusAtap) {
for (int i = 0; i < 3; i++) {
digitalWrite(varBuzzer, HIGH);
delay(200);
digitalWrite(varBuzzer, LOW);
delay(200);
}
varStatusAtap = true;
}
} else {
varAtap.write(0);
digitalWrite(varLampu, LOW);
varStatusAtap = false;
}
if (millis() - varWaktuSebelumnya >= varInterval) {
varWaktuSebelumnya = millis();
Serial.print("Tanah: ");
Serial.print(varPersenTanah);
Serial.print("% | Udara: ");
Serial.print(varKelembapanUdara);
Serial.print("% | Suhu: ");
Serial.print(varSuhu);
Serial.print("C | Atap: ");
if (varNilaiLDR < 300) {
Serial.println("TUTUP");
} else {
Serial.println("BUKA");
}
}
}