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:
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
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; }
Je dois préciser que tout le reste est correct (date et heure).
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(×tamp); //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)); }
Si quelqu'un pouvait m'aider à trouver l'anomalie.
Merci
Partager