   lcd.print("HEATING: ");
   lcd.setCursor(16,3);
   lcd.print("OFF");
-
-  //Définition et initalisation des sorties
+//--------------DHT11--------------------
+  dht.begin(); 
+//--------------General setup-------------------
+//Définition et initalisation des sorties
   pinMode(ROLLUP1_POWER, OUTPUT);
   digitalWrite(ROLLUP1_POWER, HIGH);
   

//État de la ventilation
void setFan(int fanCommand){
  if ((fanCommand == ON) && (fan == false)){
    Serial.println("  Start fan");

    fan = true;
  }else if ((fanCommand == OFF) && (fan == true)){
    Serial.println("  Stop fan");
    fan = false;
  }
}


void loop() {    

  float greenhouseTemperature = dht.readTemperature();
  float greenhouseHumidity = dht.readHumidity();
  Serial.print(greenhouseTemperature);//Affichage de la temperature
  Serial.println ("C");
  Serial.print(greenhouseHumidity);//Affichage de l'humidité
  Serial.println ("%");  
  lcd.setCursor(0, 0);
  lcd.print("T: ");
  lcd.print(greenhouseTemperature);
  lcd.print("C  ");
  lcd.setCursor(10,0);
  lcd.print("HR: ");
  lcd.print(greenhouseHumidity);
  lcd.print("%"); 
  if(fan == false){                   //Affichage de l'etat de la fan
      Serial.println("FAN: OFF");
      lcd.setCursor(0, 2);             
      lcd.print("FAN:");
      lcd.setCursor(16,2);
      lcd.print("OFF");}
  else if(fan == true){
      Serial.println("FAN: ON");
      lcd.setCursor(0,2);
      lcd.print("FAN:");
      lcd.setCursor(16,2);
      lcd.print("ON ");}
  if(heating1 == false){               //Affichage de l'etat du chauffage
      Serial.println("HEATING1: OFF");
      lcd.setCursor(0, 3);             
      lcd.print("HEATING:");
      lcd.setCursor(16,3);
      lcd.print("OFF");}
  else if(heating1 == true){
      Serial.println("HEATING1: ON");
      lcd.setCursor(0,3);
      lcd.print("HEATING: ");
      lcd.setCursor(16,3);
      lcd.print("ON ");}
  if(heating2 == false){
      Serial.println("HEATING2 : OFF");}
  else if(heating2 == true);{
      Serial.println("HEATING2 : ON");}

//Programme d'ouverture/fermeture des rollups
  if(greenhouseTemperature < TEMP_ROLLUP-(HYST_ROLLUP/2)){
    closeSides();
  }else if(greenhouseTemperature > TEMP_ROLLUP+(HYST_ROLLUP/2)){
    openSides();
  }
//Programme fournaise1
  if (greenhouseTemperature < (TEMP_CHAUFFAGE1-(HYST_CHAUFFAGE1/2))){
    setHeater1(ON);
    digitalWrite(CHAUFFAGE1, ON);
  }else if(greenhouseTemperature > (TEMP_CHAUFFAGE1+(HYST_CHAUFFAGE1/2))){
    setHeater1(OFF);
    digitalWrite(CHAUFFAGE1, OFF);
  }
//Programme fournaise2
  if (greenhouseTemperature < (TEMP_CHAUFFAGE2-(HYST_CHAUFFAGE2/2))){
    setHeater2(ON);
    digitalWrite(CHAUFFAGE2, ON);
  }else if(greenhouseTemperature > (TEMP_CHAUFFAGE2+(HYST_CHAUFFAGE2/2))){
    setHeater2(OFF);
    digitalWrite(CHAUFFAGE2, OFF);
  }
//Programme ventilation forcée
   if (greenhouseTemperature > (TEMP_VENT - (HYST_VENT/2))){
    setFan(ON);
    digitalWrite(FAN, ON);
  }else if(greenhouseTemperature < (TEMP_VENT + (HYST_VENT/2))){
    setFan(OFF);
    digitalWrite(FAN, OFF);
  }
  delay(SLEEPTIME);
}


boolean heating2 = false; //fournaise 2 éteinte par défaut
boolean fan = false;//ventilation forcée éteinte par défaut
float greenhouseTemperature = 20.0; //température par défaut : 20C (ajusté après un cycle)
#define DHTTYPE    DHT11
DHT dht(DHTPIN, DHTTYPE);



//**********BLOC PROGRAMMABLE*************
//Températures critiques et hysteresis
//Rollup:
const int TEMP_ROLLUP = 20; //température d'activation des rollup
const int HYST_ROLLUP = 2;

//Ventilation:
const int TEMP_VENT = 22;
const int HYST_VENT = 2;

//Chauffage:
const int TEMP_CHAUFFAGE1 = 18;//température d'activation de la 1re fournaise
const int HYST_CHAUFFAGE1 = 2;//
const int TEMP_CHAUFFAGE2 = 15;//température d'activation de la 2e fournaise
const int HYST_CHAUFFAGE2 = 2;

//incréments d'ouverture(nombre d'incréments d'ouverture = PCT_OPEN/NB_OF_STEPS_IN_ANIMATION = 25/5 = 5 incréments d'ouverture)
const int PCT_OPEN = 25;
const int NB_OF_STEPS_IN_ANIMATION = 5; //doit être un divisible de PCT_OPEN

//temps de rotation et pauses
const int ROTATION_TIME = 4000; //temps de rotation des moteurs(en mili-secondes)
const int PAUSE_TIME = 2000; //temps d'arrêt entre chaque ouverture/fermeture(en mili-secondes)
const int SLEEPTIME = 1000; //temps de pause entre chaque exécution du programme(en mili-secondes)

//*************FIN DU BLOC PROGRAMMABLE**********


//********INITIALISATION DU PROGRAMME**********
void setup() {
  Serial.begin(9600);   // démarre la communication sérielle
  Serial.println("");
  Serial.println("Starting");
  Serial.println("-----------------------");
//--------------LCD 20x4--------------------
  lcd.begin (20,4); //démarre l'affichage LCD
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH); //allume le rétro-éclairage
  lcd.home ();      
