#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
// LCD setup
LiquidCrystal_I2C lcd(0x27,16,2);
// DHT setup
#define DHTPIN 2 // DHT data pin
#define DHTTYPE DHT11 // DHT11 or DHT22
DHT dht(DHTPIN, DHTTYPE);
// Servo setup
Servo myServo;
void setup() {
Serial.begin(9600);
dht.begin();
myServo.attach(9); // Servo pin
lcd.init();
lcd.backlight();
}
void loop() {
float humidity = dht.readHumidity();
if(isnan(humidity)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Map humidity (0-100%) to servo angle (0-180 degree)
int angle = map(humidity, 0, 100, 0, 180);
myServo.write(angle);
// Display on Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print("% -> Servo Angle: ");
Serial.println(angle);
// Display on LCD
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print("%");
lcd.setCursor(0,1);
lcd.print("Servo Angle: ");
lcd.print(angle);
delay(2000); // Update every 2 seconds
}