[RÉSOLU] Mega Projet Contrôleur de Température et d'Humidité

Bonjour cher J-M-L, je m'excuse car je vous est mal compris comme vous m'avez écrit
(essayez de postez un code qui au moins compile...)
Alors j'ai envoyé le premier sketch d'origine sans modif pensant vous facilité la compréhension du code.

Pas de problème j'ai bien tout noté lettres par lettre pour finalisé le code selon vos instructions.

Voici le code final modifié :

#include <Wire.h>  
#include <DFR_Key.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>


const byte humidityRelay = 18; 
const byte heaterRelay = 19;     
const byte DHTPIN = 2;  
const byte nbColumns = 16;
const byte nbLines   = 2;            

LiquidCrystal_I2C lcd( 0x27, nbColumns, nbLines);  

int temp = 12;  
int hum = 80;  
int readkey;
unsigned long lastmillis; 
long int hours;
long int minutes;   
long int seconds;

char l2c1;
char l2c2;
char l2c3;


DHT dht (DHTPIN, DHT22);  //  Type de capteur DHT22 (AM2023)


DFR_Key keypad(0); 

int localKey = 0;  
int lcd_key = 0;
int adc_key_in = 0;

const byte btnRIGHT = 0;  
const byte btnUP = 1;     
const byte btnDOWN = 2;   
const byte btnLEFT = 3;   
const byte btnSELECT = 4; 
const byte btnNONE = 5;   

int read_LCD_buttons() 
{
  adc_key_in = analogRead(0);
  if (adc_key_in > 1000) return btnNONE;
  if (adc_key_in < 50)   return btnRIGHT;
  if (adc_key_in < 150)  return btnUP;
  if (adc_key_in < 300)  return btnDOWN;
  if (adc_key_in < 460)  return btnLEFT;
  if (adc_key_in < 690)  return btnSELECT;
}

void setup() 

{
  pinMode(humidityRelay, OUTPUT);
  pinMode(heaterRelay, OUTPUT);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(F("Keith control"));  //  utilisé le macro F () dans tous les Print () du Lcd ou de Serial
  lcd.setCursor(0, 1);
  lcd.print(F("Select instr"));  // 
  delay(2500);
  Serial.begin(F(115200));   // Mettre le port série sur 115200 au lieu de 9600
  dht.begin();
  delay(1000);
  lcd.clear();

  
  keypad.setRate(10);
  digitalWrite(humidityRelay, HIGH);  // Relais Humidité actif
  digitalWrite(heaterRelay, HIGH);  // Relais Température actif

}

void loop() 

{
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  if (isnan(t) || isnan(h))
{  
                             
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(F("Capteur N/C!!"));  // utilisé le macro F () 
    delay(10000);
  } 
else 
 {
    lcd_key = read_LCD_buttons();  
    switch (lcd_key) 
 {
      case btnLEFT:
        {
          temp = temp + 1; 
          break;
        }
      case btnRIGHT:
        {
          temp = temp - 1;  
          break;
        }
      case btnUP:
        {
          hum = hum + 1;  
          break;
        }
      case btnDOWN:
        {
          hum = hum - 1;  
          break;
        }
      case btnSELECT:   
        {
          lcd.begin(16, 2);
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print(F("Hum Up/Down +-1%"));  // utilisé le macro F () 
          lcd.setCursor(0, 1);
          lcd.print(F("Temp L/R +-1"));   
          lcd.print(F((char)223));  
          lcd.print(F("C"));  
          delay (5000);
          break;
        }
    } 
    lcd.setCursor(0, 0);     
    lcd.print(F("Hum: "));  // utilisé le macro F () pour tous les lcd.print
    lcd.print(F(h));
    lcd.print(F("%"));
    lcd.print(F("("));
    lcd.print(F(hum));
    lcd.print(F("%)"));
    lcd.setCursor(0, 1);
    lcd.print(F("Tem: "));
    lcd.print(F(t));
    lcd.print(F((char)223));  
    lcd.print(F("("));
    lcd.print(F(temp));
    lcd.print(F((char)223));
    lcd.print(F(")"));

    int H = 70 + 10;  
   
    if (h < 85) digitalWrite(humidityRelay, LOW);  
    
    else if (h >= H) digitalWrite(humidityRelay, HIGH);  
   
    int T = 12 + 2 ; 
    
    if (t < 12 )
      
    digitalWrite(heaterRelay, LOW);  
    
     else if (t >= T)
     
    digitalWrite(heaterRelay, HIGH);  
  }

}

J'ai peur d'avoir oublié quelque chose :cold_sweat:
Si tout est ok je vais essayé de le compilé tout ça afin de voir le résultat,
Merci de tout mon coeur pour votre générosité très cher J-M-L.