#include <Stepper.h>
#include <DHT.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define STEPS_PER_REV 200
Stepper stepper(STEPS_PER_REV, 8, 9, 10, 11);
#define DHTPIN 7
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() {
lcd.init();
lcd.backlight();
dht.begin();
lcd.print("Temp Fan System");
delay(2000);
lcd.clear();
}
void loop() {
float temp = dht.readTemperature();
int rpm;
if(temp < 25) rpm = 0;
else if(temp >= 25 && temp < 30) rpm = 30;
else if(temp >= 30 && temp < 35) rpm = 60;
else rpm = 100;
lcd.setCursor(0,0);
lcd.print("Temp: ");
lcd.print(temp,1);
lcd.print(" C ");
lcd.setCursor(0,1);
lcd.print("Fan RPM: ");
lcd.setCursor(9,1);
lcd.print(rpm);
if(rpm > 0){
stepper.setSpeed(rpm);
stepper.step(STEPS_PER_REV / 50);
}
delay(200);
}