#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#include "DHT.h"
#define DHTPIN 13     // DHT PIN 13
#define DHTTYPE DHT22   // DHT22  (AM2302), AM2321
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;

int led = 2;


void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  Serial.println("Sistem Monitoring Suhu dan Kelembaban");
  dht.begin();
  myservo.attach(3);
  pinMode(led, OUTPUT);
}

void loop() {
  float h = dht.readHumidity();
  // Read temperature as Celsius (the default)
  float t = dht.readTemperature();
  delay(1000);

  //menampilkan lcd
  lcd.setCursor(0,0);
  lcd.println("Suhu:");
  lcd.print(t);
  lcd.println(" C");
  lcd.setCursor(0,1);
  lcd.println("Lembab:");
  lcd.print(h);
  lcd.println(" %");

  //menampilkan serial
  Serial.print("Suhu: ");
  Serial.print(t);
  Serial.print(" *C\t");
  Serial.print("Kelembaban: ");
  Serial.print(h);
  Serial.println(" %");

  if ( t > 30){
    digitalWrite(led, HIGH);
    myservo.write(45);  // Turn Servo ke kiri 45 degrees
    delay(1000);          
    myservo.write(0);   // Turn Servo ke kiri to 0 degrees
    delay(1000);          
    myservo.write(90);  // Turn Servo ke posisi center position (90 degrees)
    delay(1000); 
  } else {
    digitalWrite(led, LOW);
    myservo.write(135); // Turn Servo Ke kanan 135 degrees
    delay(1000);          
    myservo.write(180); // Turn Servo ke kanan 180 degrees
    delay(1000);          
    myservo.write(90);  // Turn Servo ke posisi center position (90 degrees)
    delay(1000);
  }
 
}