Bonjour à tous,
Lorsque je récupère le numéro du jour par la fonction dayOfTheWeek() de la librairie RTClib, j'ai erreur d'interprétation de 3 alors que si je lis une date sur Internet c'est bon.
Voici le code qui donne une erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
DateTime dtActuel = rtc.now();  //récupère date et heure courante
  if(dtActuel.year() < 2021){   //si le RTC n'a jamais été chargé
    connexionWiFi();
    if(ok) misaJour();    //si ok chargement de toutes les données (heure, environnement,..)
  }
  else chargeDt(dtActuel);      //si le RTC est chargé, chargement de DateTime
  lectureCapteur();
  afficheCapteur();
  chargeParamTemperature();
  chargeParamHumidite();
  chargeParamReveil();
  touch_pad_init();
  if(reveilActif) touchAttachInterrupt(T2,actionTouche2,NIVEAU);
  if(switchActif) touchAttachInterrupt(T3,actionTouche3,NIVEAU);
 }                   
        //*******lancement du programme principal******>
//*****************************Affiche la date et l'heure****************************************
void chargeDt(DateTime dt){
  annee = dt.year();
  nMois = dt.month();  
  dJour = dt.day();           //date du jour
  hr = dt.hour();
  mn = dt.minute();
  sc = dt.second();
  nJour = dt.dayOfTheWeek();   //n° du jour 
  ok=true;
}
Et le code qui récupère la date sur Internet:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//******************************mise à jour des paramètres date, heure******************************
void misaJour(){
  timeClient.begin();
  timeClient.update();                        //mise à jour de dateheure
  epoch = timeClient.getEpochTime();          //récupére dateheure UNIX
  nJour = timeClient.getDay();                //récupére le n° de jour
  //heure = timeClient.getFormattedTime();      //récupère l'heure formatée hh:mm:ss
  time_t timestamp = epoch;                   //variable timestamp de type time_t = dateheure UNIX
  struct tm *pTime = localtime(&timestamp);   //pTime pointe sur l'adresse de timestamp
  nMois = pTime->tm_mon;                      //(*pTime).tm_mon    N° du mois
  dJour = pTime->tm_mday;                     //jour du mois
  annee = pTime->tm_year+1900;                //année
  sc = pTime->tm_sec;                         //secondes
  mn = pTime->tm_min;                         //minutes
  hr = pTime->tm_hour;                        //heures
  //strftime(buffer,80, "%d/%m/%Y", pTime);   //Extrait la date formatée jj/mm/aaaa
  rtc.adjust(DateTime(annee,nMois,dJour,hr,mn,sc));
}
Je dois préciser que tout le reste est correct (date et heure).
Si quelqu'un pouvait m'aider à trouver l'anomalie.
Merci