#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <DHTesp.h>
#include <Stepper.h>
#define DHTPIN 15
DHTesp dhtSensor;
int conttemp;
int conthum;
const int passiPerGiro = 500;
Stepper myStepper(passiPerGiro, 5, 18, 19, 21);
#define SDA 13
#define SCL 14
#define Am 21
#define Ap 19
#define Bp 18
#define Bm 5
LiquidCrystal_I2C lcd(0x27,20,4);
int str;
void setup() {
Serial.begin(115200);
Wire.begin(13, 14);
lcd.begin(13, 14);
lcd.init();
lcd.backlight();
dhtSensor.setup(DHTPIN, DHTesp::DHT22);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
conttemp= 0;
conthum= 0;
pinMode(Ap ,OUTPUT);
pinMode(Am ,OUTPUT);
pinMode(Bp ,OUTPUT);
pinMode(Bm ,OUTPUT);
pinMode(22, INPUT);
pinMode(25, OUTPUT);
myStepper.setSpeed(60);
//myStepper.step(passiPerGiro);
/* do{
if(22;LOW){
Serial.println("sas");
myStepper.step(passiPerGiro);
} else{Serial.println("GAlati");}
delay(100);}while(conttemp==0);*/
while(true){str= /* "stato pin: %01d",*/ digitalRead(22);
Serial.println(str);
delay(1000);
if(str==0){
//float h = dhtSensor.readHumidity();
//float t = dhtSensor.readTemperature();
TempAndHumidity data = dhtSensor.getTempAndHumidity();
/*Serial.println("Temp: " + String(data.temperature, 2) + "°C");
Serial.println("Humidity: " + String(data.humidity, 1) + "%");
Serial.println("---");*/
lcd.setCursor(0,0);
lcd.print("Temp");
lcd.setCursor(6,0);
lcd.print(data.temperature);
lcd.setCursor(12,0);
lcd.print("C");
lcd.setCursor(0,1);
lcd.print("Umid");
lcd.setCursor(6,1);
lcd.print(data.humidity);
lcd.setCursor(12,1);
lcd.print("%");
lcd.setCursor(0, 2);
lcd.print("temp. high");
lcd.setCursor(11, 2);
lcd.print(conttemp);
lcd.setCursor(0, 3);
lcd.print("hum. high");
lcd.setCursor(11, 3);
lcd.print(conthum);
if (data.temperature > 25){
digitalWrite(2, HIGH);
conttemp++;
}
else{
digitalWrite(2, LOW);
};
if (data.humidity > 60){
digitalWrite(4, HIGH);
conthum++;
}
else{
digitalWrite(4, LOW);
}
if ( conttemp > 10 or conthum > 10) {
myStepper.step(passiPerGiro);
delay(500); //delay del motore
}
delay(500);//delay del campionamento di dht22
}
else{
lcd.setCursor(0,1);
lcd.print(" ");
digitalWrite(2, LOW);
digitalWrite(4, LOW);
break;}
;
}
}
void loop(){
/*str= "stato pin: %01d", digitalRead(22);
Serial.println(str);
delay(1000);*/
}