#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#include <Servo.h>
Servo myservo;
DHT dht(DHTPIN, DHTTYPE);
int pos = 0;
void setup() {
Serial.begin(115200);
myservo.attach(6);
lcd.init();
lcd.backlight();
//Setup Awal Ketika Running
lcd.setCursor(0,0);
lcd.print("Muhammad Fitra");
lcd.setCursor(0,1);
lcd.print("Sistem Embedded");
delay(2000);
lcd.clear();
Serial.println(F("DHT22 Start Reading"));
dht.begin();
}
void loop() {
// Untuk sensor agar bisa membaca
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
if (isnan(temperature) || isnan(humidity)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
Serial.print(F("Humidity: "));
Serial.print(humidity);
Serial.print(F("% Temperature: "));
Serial.print(temperature);
Serial.println(F("°C "));
delay(2000);
// Tampilan pada LCD
lcd.setCursor(0,0);
lcd.print("Humidity:");
lcd.print(humidity);
lcd.print(" %");
lcd.setCursor(0,1);
lcd.print("Suhu: ");
lcd.print(temperature);
lcd.print(" C");
delay(400);
// Sprinkler atau Servo bergerak hidup
for(pos = 0 ;pos <= 180; pos +=1){
if (humidity <= 40){
myservo.write(pos);
delay(15);
}else {
myservo.write(0);
}
}
for(pos = 180; pos >= 0; pos =-1){
myservo.write(pos);
delay(15);
}
}