#include "DHTesp.h"
#include <LiquidCrystal_I2C.h>
#include <ESP32Servo.h>
#include <WiFi.h>
Servo myservo;
int LDR_Pin = 13; // Pin untuk sensor LDR
int LDR_Value;
int servoPos = 0; // Posisi awal servo
int potPin = 14; // Pin potensiometer
int potValue = 0; // Nilai potensiometer
LiquidCrystal_I2C lcd(0x27,16,2);
#define pinDht 15
DHTesp dhtSensor;
void setup() {
Serial.begin(115200);
dhtSensor.setup(pinDht, DHTesp::DHT22);
pinMode(LDR_Pin, OUTPUT);
lcd.init();
lcd.backlight();
myservo.attach(12); // Attach servo ke pin 12
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
int temp = data.temperature;
int hum = data.humidity;
Serial.println(temp);
Serial.println(hum);
Serial.println("---");
lcd.setCursor(0,0);
lcd.print("Temp : ");
lcd.setCursor(8,0);
lcd.print(temp);
lcd.setCursor(13,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Hum : ");
lcd.setCursor(8,1);
lcd.print(hum);
lcd.setCursor(13,1);
lcd.print("%");
LDR_Value = analogRead(LDR_Pin);
potValue = analogRead(potPin);
// Mengatur posisi servo berdasarkan nilai LDR
servoPos = map(LDR_Value, 0, 4095, 0, 180); // Nilai LDR ke rentang posisi servo
myservo.write(servoPos);
if (potValue > 2000) {
servoPos = 180;
myservo.write(servoPos);
} else {
myservo.write(servoPos);
}
Serial.print("Potentiometer Value: ");
Serial.print(potValue);
Serial.print(" Servo Position: ");
Serial.println(servoPos);
delay(1000);
}