Sondes de température DS18B20

3 éme et dernière partie

  //LED BLANCHE

  if (HProg >= 2000 && HProg <2100)
  {
    analogWrite(LedBlanche, valupLedBlanche * 0.8); digitalWrite(LedEclLedBlanche, HIGH);  // Allumage progressif de l'éclairage Led Blanche
    d = 1;  // écriture en sortie d'un état HAUT
  }

  else if (HProg >= 2100 && HProg <2200) // Si il est entre 21h00 et 22h00
  {
    analogWrite(LedBlanche, valdownLedBlanche * 0.8); // Extinction de l'éclairage Led Blanche 
  }

  else if (HProg > 2200 && HProg <= 2359) // Si il est entre 22h00 et minuit
  {
    digitalWrite(LedEclLedBlanche, LOW);  // Extinction de la led témoin Led Blanche
    d = 0;  // écriture en sortie d'un état BAS
  }
  else if (HProg >= 0 && HProg <= 1059) // Si il est entre minuit et 11h00
  {
    digitalWrite(LedEclLedBlanche, LOW);  // Extinction de la led témoin Led Blanche
    d = 0;  // écriture en sortie d'un état BAS
  }

// ALLUMAGE MANUEL






// GESTION DU CHAUFFAGE
                          // ***** Le relais du chauffage est câblé en NC (inverse des autres relais)*********
  {
    lcd.setCursor(7,2);
    lcd.print("Chauff:OK");
    digitalWrite(LedChauffage, HIGH); digitalWrite(Chauffage, HIGH); digitalWrite(LedAlarmeChauffage, LOW);// Allume la led verte du chauffage, éteint la led rouge de l'alarme et laisse le relais en NC
    
    if (TemperatureEau > 25.5) //  si la température est supérieure à 25.5°
    {
    digitalWrite(Chauffage, LOW); digitalWrite(LedChauffage, LOW); digitalWrite(LedAlarmeChauffage, HIGH); // Eteint la led verte du chauffage, allume la led rouge de l'alarme et passe le relais en NO
    lcd.setCursor(0,2);
    lcd.print("                    ");
    lcd.print(" ALARME TEMPERATURE");
    lcd.setCursor(0,3);
    lcd.print("                    ");
    lcd.print("  HAUTE : T > 25,5");
    lcd.print((char)223), ("C");
    delay(3000);
    }

        
  }

//  GESTION DU NIVEAU D'EAU

  {
    {
    SondeNiveau = 0; int i = 0;
    
    for (int i = 0; i < 5 ; i++)
    {
      SondeNiveau = analogRead(Niveau);
      //Serial.println(SondeNiveau);
      SondeNiveau += SondeNiveau;
      //Serial.println(SondeNiveau);
      delay(300);
    }
        
    Sonde = (SondeNiveau / 5);
        Serial.println(Sonde); " ";
    }

    digitalWrite(NBB, LOW); digitalWrite(NB, LOW); digitalWrite(NN, LOW); digitalWrite(NH,LOW); digitalWrite(NHH, LOW);
        
    if (Sonde < 500) 
    {
      digitalWrite(NBB, HIGH);  // allume la led rouge du niveau très bas
    }
    
    else if (Sonde >= 500 && Sonde <515) 
    {
      digitalWrite(NB, HIGH); digitalWrite(NBB, LOW);  // allume la led orange du niveau bas et éteint la rouge du niveau très bas
    }
    
    else if (Sonde >= 515 && Sonde < 530) 
    {
      digitalWrite(NN, HIGH); digitalWrite(NBB, LOW); digitalWrite(NB, LOW);  // allume la led verte du niveau normal et éteint les leds des niveaux inférieurs
    }

    else if (Sonde >= 530 && Sonde < 545) 
    {
      digitalWrite(NH, HIGH); digitalWrite(NBB, LOW); digitalWrite(NB, LOW); digitalWrite(NN, LOW);  // allume la led orange du niveau bas et éteint les leds des niveaux inférieurs
    }

    else if (Sonde >= 545 && Sonde < 750) 
    {
      digitalWrite(NHH, HIGH); digitalWrite(NBB, LOW); digitalWrite(NB, LOW); digitalWrite(NN, LOW); digitalWrite(NH,LOW);  // allume la led rouge du niveau bas et éteint les leds des niveaux inférieurs
    }
    delay(100);
  }

//  AFFICHAGE DE LA TEMPERATURE DE L'EAU

  {
    // call sensors.requestTemperatures() to issue a global temperature 
    // request to all devices on the bus
  TemperatureEau = 0;
  sensors.requestTemperatures(); // Send the command to get temperatures
  delay(1000);
  TemperatureEau = (sensors.getTempCByIndex(0));
  }

    // Affiche les températures

  {
    TempRTC = DS3231_get_treg();  // lit la température de l'horloge
    lcd.setCursor(0,3);
    lcd.print("                   ");
    lcd.setCursor(0,3);
    lcd.print("Temp RTC: ");
    lcd.print(float(TempRTC),1);
    lcd.print((char)223), ("C");
    delay(3000);
  }
    
  {
    lcd.setCursor(0,3);
    lcd.print("                ");
    lcd.setCursor(0,3);
    lcd.print("Temp Eau: ");
    lcd.print(TemperatureEau, 1);
    lcd.print((char)223), ("C");
    delay(3000);
  }
    
  }