#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // GANTI 0x3F Ke 0x27 kalau LCD ga muncul
#include <DHT.h>
#include <Servo.h>
DHT dht(2, DHT22); //Pin, Jenis DHT
Servo s;
int powerPin = 3; // untuk pengganti VCC/5vOLT
int led = 10; //pin led
int buzzer = 11; //pin buzzer
void setup(){
lcd.init();
// Print a message to the LCD.
lcd.backlight();
// jadikan pin power sebagai output
pinMode(powerPin, OUTPUT);
pinMode(led, OUTPUT);
// default bernilai LOW
digitalWrite(powerPin, LOW);
Serial.begin(9600);
dht.begin();
s.attach(5);
}
void loop(){
digitalWrite(powerPin, HIGH);
float kelembaban = dht.readHumidity();
float suhu = dht.readTemperature();
Serial.print("kelembaban: ");
Serial.print(kelembaban);
Serial.print(" ");
Serial.print("suhu: ");
Serial.println(suhu);
if (kelembaban >= 33.0 && suhu >= 30){
tone(buzzer, 500);
digitalWrite(led, HIGH);
s.write(0);
delay(500);
s.write(90);
delay(500);
}
else if (kelembaban >= 33.0){
tone(buzzer,800);
}
else if (suhu >= 30){
s.write(0);
delay(500);
s.write(90);
delay(500);
digitalWrite(led, HIGH);
}
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Kelembaban: ");
lcd.setCursor(11,0);
lcd.print(kelembaban);
lcd.setCursor(0,1);
lcd.print("Suhu: ");
lcd.setCursor(5,1);
lcd.print(suhu);
delay(200);
noTone(buzzer);
digitalWrite(led, LOW);
}