temperature et date sur le même lcd

bonjour a tous je n’est pas trouver un sujet similaire je suis allez jusqu a la page 20 donc si jamais il ya deja un post désolé

ceci dis voici mon probleme j’ai une carte arduino uno avec 2 ecran lcd 16*2 un rtc et dht jusqu ici tout va bien le branchement ok
sur le même code j’ai un message sur le premier lcd puis la temperature et l humidité sur le deuxieme ecran sur la 2 eme ligne voici mon code

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

const int relayPin = 13; // PIN 13 pour test sur une LED de la carte
const int DHTPIN = 13;

// Type de capteur utiliser
#define DHTTYPE DHT22   // DHT 11


DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT11
LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  dht.begin();
  // Définit l'écran LCD 16 colonnes par 2 lignes
  lcd.init();
  // Réglage du rétroéclairage
  lcd.setBacklight(HIGH);

  lcd2.init(); // initialize the lcd 

  // Print a message to the LCD.

   lcd2.backlight();
  lcd2.setCursor(3,0);
  lcd2.print("Bienvenue");
  lcd2.setCursor(4,1);
  lcd2.print("Arduino");
}
void loop()
{
  // Lecture de température et de l'humiditer environ 250 millisecondes
  // La durer des capteurs peuvent etre regler jusqu'a 2 secondes (capteur tres lent)
  float h = dht.readHumidity();
  // Lit la temperature en degres Celsius (valeur par defaut
  float t = dht.readTemperature();
  float c = dht.readTemperature(true);

  // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer).
  if (isnan(h) || isnan(t) || isnan(c)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(9, 1);
  lcd.print("");
  lcd.print(h);
  lcd.print(" % ");

  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
 
  Serial.print("Humidity = ");
  Serial.print(h);
  Serial.print(" %\t ");
  Serial.println();

  if (h >= 75 && h <= 80) // si hum. est = ou sup. a 75 ET hum infer. ou = a 80 relais ouvert
  {
    digitalWrite(relayPin, HIGH);
  }
  else
  {
    digitalWrite(relayPin, LOW); // Sinon relais fermé
  }
  delay(1000);// Delai d'une seconde entre les mesures
}

mon but est de mettre la date sur la premiere ligne du lcd numero 2 ou il ya la temperature (sur la 2 ligne )
mon probleme c’est que je n’y arrive pas je debute sur arduino
j’ai deja un code pour la date et heure (normalement j’ai enlever l’heure du code)
voici le code de la date

#include <Wire.h> //librairie déjà sur arduino
#include <LiquidCrystal_I2C.h> //pour télécharger la librairie: croquis - include library - manage libraries - LiquidCrystal_I2C.h de Frank de Brabander
#include <RTClib.h> //librairie à télécharger en ZIP sur https://github.com/jcw/rtclib
 
#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif
 
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; 
RTC_DS1307 RTC;
LiquidCrystal_I2C lcd(0x27,16,2); // Adresse du LCD 0x27 avec 16 colonnes et 2 lignes
 
void setup()
{
  lcd.init();  // initialisation du LCD
  lcd.backlight();
  lcd.print("Initialising..."); //afficher un message sur l'afficheur LCD
  lcd.createChar(2, clock);
  Wire.begin();
  RTC.begin();
  RTC.adjust(DateTime(__DATE__, __TIME__)); //Ajuster la clock avec l'heure et la date de l'ordinateur
} 
 
void loop()
{
  lcd.clear(); //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
   DateTime now = RTC.now();
       
   lcd.setCursor(3,0);
   lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
  delay(1000);
}

j’espere que j’ai etait clair sur l’ennoncé de mon probleme merci d’avance pour votre aide

Tu as défini lcd et lcd2

LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

Donc toute ligne qui affiche sur lcd doit commencer par lcd.print, et idem pour lcd2

Au passage ton code affiche un message sur lcd2 avec ces lignes

  lcd2.setCursor(3,0);
  lcd2.print("Bienvenue");
  lcd2.setCursor(4,1);
  lcd2.print("Arduino");

et la température et l'humidité sur lcd avec ces lignes

  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(9, 1);
  lcd.print("");
  lcd.print(h);
  lcd.print(" % ");

C'est la commande setCursor qui te permet de positionner un texte sur ton écran : les arguments sont

lcd.setCursor(colonne, ligne);
lcd2.setCursor(colonne, ligne);

Avec toutes ces infos, tu devrais y arriver...

donc si j’ai bien compris toutes les lignes de code qui corresponde a la date pour le lcd faut que je mette lcd2

Pour l'instant tu as deux codes distincts : celui qui affiche la date ne déclare qu'un seul écran appelé "lcd". Si tu en restes à ce code, alors non il ne faut pas mettre lcd2.

Par contre, si tu mets tout dans le code qui déclare les 2 écrans, alors pour afficher sur l'écran qui s'appelle lcd2, il faut utiliser des commandes qui sont préfixées par lcd2 :

lcd2.setCursor
lcd2.print

oui c’est ca je veut rassembler les 2 codes en un seul

MAJ: c’est bon ca marche merci pour ton aide , mais un souci est apparue la ligne ou il ya la temperature et l humidité clignote

#include <DHT.h> // inclure les librairies
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h> //librairie à télécharger en ZIP sur https://github.com/jcw/rtclib

 
const int relayPin = 13; // PIN 13 pour test sur une LED de la carte
const int DHTPIN = 13;

// Type de capteur utiliser
#define DHTTYPE DHT22   // DHT 11
DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT11

#if defined(ARDUINO) && ARDUINO >= 100
#define printByte(args)  write(args);
#else
#define printByte(args)  print(args,BYTE);
#endif
uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; 
RTC_DS1307 RTC;


LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup() {

lcd.init();  // initialisation du LCD
  lcd.backlight();
  lcd.print("Initialising..."); //afficher un message sur l'afficheur LCD
  lcd.createChar(2, clock);
  Wire.begin();
  RTC.begin();
  RTC.adjust(DateTime(__DATE__, __TIME__)); //Ajuster la clock avec l'heure et la date de l'ordinateur
 
  
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  dht.begin();
  // Définit l'écran LCD 16 colonnes par 2 lignes
  lcd.init();
  // Réglage du rétroéclairage
  lcd.setBacklight(HIGH);

  lcd2.init(); // initialize the lcd 

  // Print a message to the LCD.

   lcd2.backlight();
  lcd2.setCursor(3,0);
  lcd2.print("Bienvenue");
  lcd2.setCursor(4,1);
  lcd2.print("Arduino");
}
void loop()
{
  // Lecture de température et de l'humiditer environ 250 millisecondes
  // La durer des capteurs peuvent etre regler jusqu'a 2 secondes (capteur tres lent)
  float h = dht.readHumidity();
  // Lit la temperature en degres Celsius (valeur par defaut
  float t = dht.readTemperature();
  float c = dht.readTemperature(true);

  // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer).
  if (isnan(h) || isnan(t) || isnan(c)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

 lcd.clear(); //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
   DateTime now = RTC.now();
       
   lcd.setCursor(3,0);
   lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
  delay(1000);

Dans le code que tu fournis, je ne vois pas de commandes qui affiche la température et l'humidité

// LIBRAIRIES
 
   #include <DHT.h> // inclure les librairies
   #include <Wire.h>
   #include <LiquidCrystal_I2C.h>
   #include <RTClib.h> //librairie à télécharger en ZIP sur https://github.com/jcw/rtclib

// FIN

// DHT 22

   const int relayPin = 13; // PIN 13 pour test sur une LED de la carte
   const int DHTPIN = 13;

   // Type de capteur utiliser
   #define DHTTYPE DHT22   // DHT 11
   DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT11

// FIN

//RTC

   #if defined(ARDUINO) && ARDUINO >= 100
   #define printByte(args)  write(args);
   #else
   #define printByte(args)  print(args,BYTE);
   #endif
   uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; 
   RTC_DS1307 RTC;

//FIN

// ECRAN

   LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
   LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

// FIN

   void setup() {

// DATE

  lcd.init();  // initialisation du LCD
  lcd.backlight();
  lcd.print("Initialising..."); //afficher un message sur l'afficheur LCD
  lcd.createChar(2, clock);
  Wire.begin();
  RTC.begin();
  RTC.adjust(DateTime(__DATE__, __TIME__)); //Ajuster la clock avec l'heure et la date de l'ordinateur
 
  
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  dht.begin();
  // Définit l'écran LCD 16 colonnes par 2 lignes
  lcd.init();
  // Réglage du rétroéclairage
  lcd.setBacklight(HIGH);

// FIN

// MESSAGE LCD
  
  lcd2.init(); // initialize the lcd 

  // Print a message to the LCD.
   lcd2.backlight();
   lcd2.setCursor(5,0);
   lcd2.print("Salut");
   lcd2.setCursor(0,1);
   lcd2.print("Aldy dit le sel");
   
// FIN
  
}
   void loop()
{

// BOUCLE TEMPERATURE
  
   // Lecture de température et de l'humiditer environ 250 millisecondes
   // La durer des capteurs peuvent etre regler jusqu'a 2 secondes (capteur tres lent)
   float h = dht.readHumidity();
   // Lit la temperature en degres Celsius (valeur par defaut
   float t = dht.readTemperature();
   float c = dht.readTemperature(true);

  // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer).
  if (isnan(h) || isnan(t) || isnan(c)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

// FIN

// DATE LCD

    lcd.clear(); //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
    DateTime now = RTC.now();
       
    lcd.setCursor(3,0);
    lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
    delay(1000);

// FIN

// Temperature et humidité LCD

  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(9, 1);
  lcd.print("");
  lcd.print(h);
  lcd.print(" % ");

  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
 
  Serial.print("Humidity = ");
  Serial.print(h);
  Serial.print(" %\t ");
  Serial.println();

  if (h >= 75 && h <= 80) // si hum. est = ou sup. a 75 ET hum infer. ou = a 80 relais ouvert
  {
    digitalWrite(relayPin, HIGH);
  }
  else
  {
    digitalWrite(relayPin, LOW); // Sinon relais fermé
  }
  delay(1000);// Delai d'une seconde entre les mesures
}

// FIN

desolé autant pour moi si je met pas le code en entier !!!

Je connais peu ces afficheurs, mais pour éviter que ça clignote : essaye d'enlever la ligne

lcd.clear();

super merci

j’aurais 2-3 questions encore pendant que suis mais je vais deja chercher de mon côté avant de demander

bonjour je reviens vers vous car malgré mes recherches je n’arrive toujours pas a changer le format de la date je cherche a mettre par ex : ven 21 dec 2018 , ou encore ven 21/12/2018
j’i trouvé toute sorte d’exemple de code mais sa ne marche pas je ne suis pas assez caler encore sur arduino pour tout comprendre
voici mon code

// LIBRAIRIES
 
   #include <DHT.h> // inclure les librairies
   #include <Wire.h>
   #include <LiquidCrystal_I2C.h>
   #include <RTClib.h> //librairie à télécharger en ZIP sur https://github.com/jcw/rtclib

// FIN

// DHT 22

   const int relayPin = 13; // PIN 13 pour test sur une LED de la carte
   const int DHTPIN = 13;

   // Type de capteur utiliser
   #define DHTTYPE DHT22   // DHT 11
   DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT11

// FIN

//RTC

   #if defined(ARDUINO) && ARDUINO >= 100
   #define printByte(args)  write(args);
   #else
   #define printByte(args)  print(args,BYTE);
   #endif
   uint8_t clock[8] = {0x0,0xe,0x15,0x17,0x11,0xe,0x0}; 
   RTC_DS1307 RTC;

//FIN

// ECRAN

   LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
   LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

// FIN

   void setup() {

// DATE

  lcd.init();  // initialisation du LCD
  lcd.backlight();
  lcd.print("Initialisation...."); //afficher un message sur l'afficheur LCD
  lcd.createChar(2, clock);
  Wire.begin();
  RTC.begin();
  RTC.adjust(DateTime(__DATE__, __TIME__)); //Ajuster la clock avec l'heure et la date de l'ordinateur


  lcd2.init();  // initialisation du LCD
  lcd2.backlight();
  lcd2.print("Initialisation...."); //afficher un message sur l'afficheur LCD
 
  
  Serial.begin(9600);
  pinMode(relayPin, OUTPUT);
  dht.begin();
  // Définit l'écran LCD 16 colonnes par 2 lignes
  lcd.init();
  // Réglage du rétroéclairage
  lcd.setBacklight(HIGH);

// FIN

// MESSAGE LCD
  
  lcd2.init(); // initialize the lcd 

  // Print a message to the LCD.

    
   lcd2.backlight();
   lcd2.setCursor(5,0);
   lcd2.print("Salut");
   lcd2.setCursor(0,1);
   lcd2.print("arduino");
   
// FIN
  
}
   void loop()
{

// BOUCLE TEMPERATURE
  
   // Lecture de température et de l'humiditer environ 250 millisecondes
   // La durer des capteurs peuvent etre regler jusqu'a 2 secondes (capteur tres lent)
   float h = dht.readHumidity();
   // Lit la temperature en degres Celsius (valeur par defaut
   float t = dht.readTemperature();
   float c = dht.readTemperature(true);

  // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer).
  if (isnan(h) || isnan(t) || isnan(c)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

// FIN

// DATE LCD

    //code pour afficher heure et date de la clock (du RTC) sur l'écran LCD
    DateTime now = RTC.now();
       
    lcd.setCursor(3,0);
    lcd.print(now.day(), DEC);
    lcd.print('/');
    lcd.print(now.month(), DEC);
    lcd.print('/');
    lcd.print(now.year(), DEC);
    lcd.print(' ');
    delay(1000);

// FIN

// Temperature et humidité LCD

  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(9, 1);
  lcd.print("");
  lcd.print(h);
  lcd.print(" % ");

  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
 
  Serial.print("Humidity = ");
  Serial.print(h);
  Serial.print(" %\t ");
  Serial.println();

  if (h >= 75 && h <= 80) // si hum. est = ou sup. a 75 ET hum infer. ou = a 80 relais ouvert
  {
    digitalWrite(relayPin, HIGH);
  }
  else
  {
    digitalWrite(relayPin, LOW); // Sinon relais fermé
  }
  delay(1000);// Delai d'une seconde entre les mesures
}

// FIN

le dernier code que j’ai trouvé est celui ci mais meme si je le televerse sa ne marche pas j’ai ce message “Erreur de compilation pour la carte Arduino/Genuino Uno”

voici le liens : http://playground.arduino.cc/Code/DateTime

et le code :

#include <DateTime.h>
#include <DateTimeStrings.h>

#define TIME_MSG_LEN  11   // time sync to PC is HEADER and unix time_t as ten ascii digits
#define TIME_HEADER  255   // Header tag for serial time sync message

void setup(){
  Serial.begin(19200);
}

void  loop(){  
  getPCtime();   // try to get time sync from pc        
  if(DateTime.available()) { // update clocks if time has been synced
    unsigned long prevtime = DateTime.now();
    while( prevtime == DateTime.now() )  // wait for the second to rollover
      ;
    DateTime.available(); //refresh the Date and time properties
    digitalClockDisplay( );   // update digital clock

    // send our time to an app listening on the serial port
    Serial.print( TIME_HEADER,BYTE); // this is the header for the current time
    Serial.println(DateTime.now());      
  }
}

void getPCtime() {
  // if time available from serial port, sync the DateTime library
  while(Serial.available() >=  TIME_MSG_LEN ){  // time message
    if( Serial.read() == TIME_HEADER ) {        
      time_t pctime = 0;
      for(int i=0; i < TIME_MSG_LEN -1; i++){  
        char c= Serial.read();          
        if( c >= '0' && c <= '9')  
          pctime = (10 * pctime) + (c - '0') ; // convert digits to a number            
      }  
      DateTime.sync(pctime);   // Sync DateTime clock to the time received on the serial port
    }  
  }
}

void digitalClockDisplay(){
  // digital clock display of current time
  Serial.print(DateTime.Hour,DEC);  
  printDigits(DateTime.Minute);  
  printDigits(DateTime.Second);
  Serial.print(" ");
  Serial.print(DateTimeStrings.dayStr(DateTime.DayofWeek));
  Serial.print(" ");  
  Serial.print(DateTimeStrings.monthStr(DateTime.Month));  
  Serial.print(" ");
  Serial.println(DateTime.Day, DEC);  
}

void printDigits(byte digits){
  // utility function for digital clock display: prints colon and leading 0
  Serial.print(":");
  if(digits < 10)
    Serial.print('0');
  Serial.print(digits,DEC);  
}

mon but est d’integer les jours de la semaine dans mon code deja existant apres si il faut supprimer mon code de la date par un autre c’est pas un souci
merci d’avance pour votre d’aide j’ai essayer de faire par moi même car je veux apprendre mais la je suis un peu coincé

Copie ici l'ensemble des messages d'erreur que tu obtiens à la compilation

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

ce message s affiche pour ce code celui du bas seulement quand je le televerse

C'est succinct, d'habitude il est plus bavard...

dsl autant pour moi C:\Users\aurejin\Documents\Arduino\libraries\DateTime\DateTime.cpp:15:20: fatal error: wiring.h: No such file or directory

compilation terminated.

exit status 1
Erreur de compilation pour la carte Arduino/Genuino Uno

sinon vous connaitriez pas un code pour afficher la date sur lcd au format ven 21 dec 2018 par exemple

j’ai un nouveau code mais je narrive pas a l’afficher sur le lcd

#include <stdio.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16,2);

int

main(void)
{

    unsigned jour;
    unsigned mois;
    unsigned an;
    int njours;

    printf("Entrez une date (jj/mm/aaaa) : ");
    scanf("%u/%u/%u", &jour, &mois, &an);
    njours = (an - 1) * 365;

    if (an > 1582) /* Calendrier Grégorien */
    {
        njours += ((an - 1) / 4);
        njours -= ((an - 1) / 100);
        njours += ((an - 1) / 400);
        njours += 2;
    }
    else /* Calendrier Julien */
        njours += ((an - 1) / 4);

    njours += (mois - 1) * 31;

    switch (mois)
    {
    case 12:
        --njours;
    case 11:
    case 10:
        --njours;
    case 9:
    case 8:
    case 7:
        --njours;
    case 6:
    case 5:
        --njours;
    case 4:
    case 3:
        if (an > 1582)
        {
            if (an % 4 == 0 && (an % 100 != 0 || an % 400 == 0))
                njours -= 2;
            else
                njours -= 3;
        }
        else
        {
            if (an % 4 == 0)
                njours -= 2;
            else
                njours -= 3;
        }
        break;
    }


    njours += (jour - 1);

    switch (njours % 7)
    {
    case 0:
        printf("C'est un samedi\n");
        break;

    case 1:
        printf("C'est un dimanche\n");
        break;

    case 2:
        printf("C'est un lundi\n");
        break;

    case 3:
        printf("C'est un mardi\n");
        break;

    case 4:
        printf("C'est un mercredi\n");
        break;

    case 5:
        printf("C'est un jeudi\n");
        break;

    case 6:
        printf("C'est un vendredi\n");
        break;
    }
    
    return 0;
}

Pour ce dernier code c'est normal qu'il n'affiche rien, il n'est pas fait pour un arduino. Il y a un peu de travail pour l'adapter...

Pour l'erreur de compilation, il dit que tu as un problème dans la bibliothèque datetime que tu utilises. Cette bibliothèque est obsolète tu devrais utiliser la bibliothèque time que tu peux installer via le gestionnaire de bibliothèques.

oui en effet je m en suis rendu compte un peu apres pour le code dsl suis un peu un boulet j apprend

j’ai reussi a avoir ce que je voulais mais la je suis perdu quand j’ai rallumer l arduino (je l’ai brancher sur un autre port) la date avait changer elle indiqué lundi 1 janv 2000 je suis totalement perdu
je suis en RTC3231

// LIBRAIRIES

   #include <DS3231.h>
   #include <DHT.h> // inclure les librairies
   #include <Wire.h>
   #include <LiquidCrystal_I2C.h>

// DATE

   DS3231 Clock;
   bool Century=false;
   bool h12;
   bool h24;
   bool PM;
   byte ADay, AHour, AMinute, ASecond, ABits; // Alarm
   bool ADy, A12h, Apm;  // Alarm

//FIN   

// DHT 22

   const int relayPin = 13; // PIN 13 pour test sur une LED de la carte
   const int DHTPIN = 13;

   // Type de capteur utiliser
   #define DHTTYPE DHT22   // DHT 11
   DHT dht(DHTPIN, DHTTYPE);// Initialise le capteur DHT11

// FIN

// ECRAN

   LiquidCrystal_I2C lcd(0x27, 16,2); // Initialise le module 1602 I2C
   LiquidCrystal_I2C lcd2 (0x3f,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

// FIN

void setup() {

// LCD1 INITIALISATION date , temperature et humidité

  lcd.init();  // initialisation du LCD
  lcd.backlight();
  lcd.print("Initialisation....");
  Wire.begin();
  lcd.begin(16,2);
  lcd.init(); // initialize the lcd 

     
 // INITIALISATION LCD2

  lcd2.init();  // initialisation du LCD
  lcd2.backlight();
  lcd2.print("Initialisation...."); //afficher un message sur l'afficheur LCD
  Wire.begin();
  lcd.begin(16,2);
  lcd2.init(); // initialize the lcd 

  // EDITER MESSAGE LCD2
    
   lcd2.backlight();
   lcd2.setCursor(5,0);
   lcd2.print("Salut");
   lcd2.setCursor(2,1);
   lcd2.print("Mugen Zaraki");
   
// FIN
  
}

void loop() {

//DATE LCD

  lcd.setCursor(0,0);
  // nom du jour
  switch (Clock.getDoW())
  { case 1: lcd.print("Lun "); break;
    case 2: lcd.print("Mar "); break;
    case 3: lcd.print("Merc"); break;
    case 4: lcd.print("Jeu "); break;
    case 5: lcd.print("Vend "); break;
    case 6: lcd.print("Same "); break;
    case 7: lcd.print("Dim "); break;
    }

   // jour emplacement
    lcd.setCursor(4,0);
    if (Clock.getDate() <10){
    lcd.print(" ");
    } 
     
    lcd.print(Clock.getDate(), DEC);
    lcd.print(" ");
  
  // mois
  switch (Clock.getMonth(Century))
  { case 1:  lcd.print("Janv"); break;
    case 2:  lcd.print("Fev"); break;
    case 3:  lcd.print("Mars"); break;
    case 4:  lcd.print("Avr"); break;
    case 5:  lcd.print("Mai"); break;
    case 6:  lcd.print("Juin"); break;
    case 7:  lcd.print("Juil"); break;
    case 8:  lcd.print("Aout"); break;
    case 9:  lcd.print("Sept"); break;
    case 10: lcd.print("Oct"); break;
    case 11: lcd.print("Nov"); break;
    case 12: lcd.print("Dec");
    }
   
  lcd.print(" 20");
  lcd.print(Clock.getYear(), DEC);

  //FIN

  // BOUCLE TEMPERATURE
  
   // Lecture de température et de l'humiditer environ 250 millisecondes
   // La durer des capteurs peuvent etre regler jusqu'a 2 secondes (capteur tres lent)
   float h = dht.readHumidity();
   // Lit la temperature en degres Celsius (valeur par defaut
   float t = dht.readTemperature();
   float c = dht.readTemperature(true);

  // Vérifie si toutes les lectures ont échoué et quitte le début (pour réessayer).
  if (isnan(h) || isnan(t) || isnan(c)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }

// FIN 

// Temperature et humidité LCD

  lcd.setCursor(0, 1);
  lcd.print("");
  lcd.print(t);
  lcd.print(" C");
  lcd.setCursor(9, 1);
  lcd.print("");
  lcd.print(h);
  lcd.print(" % ");

  Serial.print("Temperature = ");
  Serial.print(t);
  Serial.print(" *C ");
 
  Serial.print("Humidity = ");
  Serial.print(h);
  Serial.print(" %\t ");
  Serial.println();

  if (h >= 75 && h <= 80) // si hum. est = ou sup. a 75 ET hum infer. ou = a 80 relais ouvert
  {
    digitalWrite(relayPin, HIGH);
  }
  else
  {
    digitalWrite(relayPin, LOW); // Sinon relais fermé
  }
  delay(1000);// Delai d'une seconde entre les mesures
}

// FIN

Tu as mis une pile dans la RTC ?

oui oui bien sur