#include "DHT.h"
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myservo;
void setup() {
Serial.begin(115200);
myservo.attach(6);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Ramadhani Sudono");
lcd.setCursor(0, 1);
lcd.print("TRM 4D Pagi 4312201108");
delay(2000);
lcd.clear();
Serial.println(F("DHT22 Start Reading"));
dht.begin();
}
void loop() {
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);
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);
for (int pos = 0; pos <= 180; pos += 1) {
if (humidity <= 40) {
myservo.write(pos);
delay(15);
} else {
myservo.write(0);
}
}
for (int pos = 180; pos >= 0; pos -= 1) {
myservo.write(pos);
delay(15);
}
}