[RESOLVED] Library problem with a (.h.h)

I really thank you PaulS for your help, I am going to modify the pine for example on 10/11 or others except 45678 and the pin 2 of the DHT?

as I do not have Fritzing for the shema, I would try to do it myself and share it. Here is the code and the shema arrives. Thanks again PaulS

#include <Wire.h>  // Inclure les librairies
#include <DFR_Key.h>
#include <DHT.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7);  // 0.27 est l’adresse du bus I2C

const int relay1Pin = 8; // PIN 8 pour le relais (Humidificateur)
const int relay2Pin = 9; // PIN 9 pour le relais (Température)
const int DHTPIN = 2;  // PIN 2 pour le capteur 

// Démarrage des valeurs après le démarrage, on peut les changer

int temp = 12;  // Température souhaitée
int hum = 80;  // Humidité souhaitée
int readkey;
long int lastmillis;
long int hours;
long int minutes;
long int seconds;

char l2c1;
char l2c2;
char l2c3;

// Pour DHT22 (AM2023)
DHT dht (DHTPIN, DHT22);  // Type de capteur utilisé
const int humidityRelay1 = 8;
const int heaterRelay2 = 9;



DFR_Key keypad(0);  // Utilise 0 pour le tableau DFRobot et 1 pour le tableau Cytron (?)

int localKey = 0;
String keyString = "";
int lcd_key = 0;
int adc_key_in = 0;

// Utilisation de (const) au lieu de (#define)
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(humidityRelay1, OUTPUT);
  pinMode(heaterRelay2, OUTPUT);
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print(" ThanksKeith control");
  lcd.setCursor(0, 1);
  lcd.print("Select instr");
  delay(2500);
  Serial.begin(9600);
  dht.begin();
  delay(1000);
  lcd.clear();

  // Taux d'échantillonnage (par défaut 10ms)
  keypad.setRate(10);
  digitalWrite(humidityRelay1, HIGH);  // Relais Humidité actif
  digitalWrite(heaterRelay2, HIGH);  // Relais Température actif

}

void loop() 

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

  if (isnan(t) || isnan(h))
{   // contrôle du fonctionnement du capteur
                             
    lcd.begin(16, 2);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Capteur N/C!!");
    delay(10000);
  } 
else 
 {
    lcd_key = read_LCD_buttons();  // Affichage d’utilisation des boutons pour les réglages
    switch (lcd_key) {
      case btnLEFT:
        {
          temp = temp + 1;  // Bouton LEFT augmente la température de +1 par appuie
          break;
        }
      case btnRIGHT:
        {
          temp = temp - 1;  // Bouton RIGHT diminue la température de -1 par appuie
          break;
        }
      case btnUP:
        {
          hum = hum + 1;  // Bouton UP augmente l’humidité de +1 par appuie
          break;
        }
      case btnDOWN:
        {
          hum = hum - 1;  // Bouton DOWN diminue l’humidité de -1 par appuie
          break;
        }
      case btnSELECT:   // Bouton SELECT pour la sélection
        {
          lcd.begin(16, 2);
          lcd.clear();
          lcd.setCursor(0, 0);
          lcd.print("Hum Up/Down +-1%");
          lcd.setCursor(0, 1);
          lcd.print("Temp L/R +-1");
          lcd.print((char)223);
          lcd.print("C");
          delay (5000);
          break;
        }
    } lcd.setCursor(0, 0);
    lcd.print("Hum: ");
    lcd.print(h);
    lcd.print("%");
    lcd.print("(");
    lcd.print(hum);
    lcd.print("%)");
    lcd.setCursor(0, 1);
    lcd.print("Tem: ");
    lcd.print(t);
    lcd.print((char)223);
    lcd.print("(");
    lcd.print(temp);
    lcd.print((char)223);
    lcd.print(")");
    
    int H = 75 + 10;  // Pour éviter les démarrages fréquents H = 75 + 10% 
    if (h < 85) digitalWrite(humidityRelay1, LOW);  // Si humidité inférieur à 85 Relais1 Fermé
    else if (h >= H) digitalWrite(humidityRelay1, HIGH);  // Sinon si humidité supérieure a 
H =75+10 relais1 ouvert
   
    int T = 12 + 2 ;  // Ajout Hystérésie de 2 - Température=12+2
    if (t < 12 )
      digitalWrite(heaterRelay2, LOW);  // Si température intérieure a 12 Relais2 Fermé
    else if (t >= T)
      digitalWrite(heaterRelay2, HIGH);  // Sinon si température supérieur a T Relais2 Ouvert
  }

}