#include <DHT.h>
#include <LiquidCrystal.h>
#include <Stepper.h>
#include <Servo.h>
#define DHTPIN 24
#define DHTTYPE DHT22
#define TRIG_PIN 51
#define ECHO_PIN 53
#define LED_PIN 6
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
Stepper myStepper1(stepsPerRevolution, 8, 10, 9, 11);
Stepper myStepper2(stepsPerRevolution, 7,5,6,4);
Servo servo;
void setup() {
Serial.begin(9600);
dht.begin();
lcd.begin(16, 2);
stepper1.setSpeed(10);
stepper2.setSpeed(10);
servo.attach(23);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(LED_PIN, OUTPUT);
}
void loop() {
float humidity = dht.readHumidity();
float temp = dht.readTemperature();
static int displayMode = 0;
lcd.clear();
if (displayMode == 0) {
lcd.print("Temp: ");
lcd.print(temp);
lcd.print(" C");
} else {
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
long distance = duration * 0.034 / 2;
if (distance < 20) {
stepper1.step(-100);
stepper2.step(100);
} else {
stepper1.step(100);
stepper2.step(100);
digitalWrite(LED_PIN, LOW);
}
}