#include <ESP32Servo.h>
#include "DHTesp.h"
#include <Stepper.h>
#include <LiquidCrystal_I2C.h>
// servo
const int servoPin = 18;
Servo servo;
// dht
const int DHT_PIN = 12;
DHTesp dhtSensor;
// stepper
float stepmax = 600;
Stepper Stepper1(stepmax, 14, 27, 26,25);
float step1;
float speed1;
// lcd
LiquidCrystal_I2C lcd(0x27, 20, 4);
void setup() {
Serial.begin(115200);
servo.attach(servoPin, 500, 2400);
servo.write(0);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
speed1 = 10;
lcd.init();
lcd.backlight();
}
int pos = 0;
void loop() {
// วัดค่า
TempAndHumidity data = dhtSensor.getTempAndHumidity();
lcd.setCursor(1,0);
lcd.print("Temp: " + String(data.temperature,2 ) + " C");
lcd.setCursor(1,1);
lcd.print("Humi: " + String(data.humidity,1 ) + "%");
if (data.temperature > 45) {
servo.write(45);
lcd.setCursor(1,2);
lcd.print("Light: Close ");
}
else if (data.temperature < 43 ) {
servo.write(180);
lcd.setCursor(1,2);
lcd.print("Light: Open ");
}
// หมุนนนนนนนนน
if (data.humidity > 70) {
Stepper1.step(50);
lcd.setCursor(1,3);
lcd.print("Fan: Open ");
}
else if (data.humidity < 50) {
Stepper1.step(0);
lcd.setCursor(1,3);
lcd.print("Fan: Close ");
}
}