Richiamare ora server

Buonasera a tutti.
Sto facendo un progetto con arduino iot cloud con un Arduino MKR1010. Sono riuscito ad aggiornare l'ora dell'arduino prelevandolo dal server con il seguente codice:

WiFiUDP   ntpUDP;     /////per richiamare dal server l'ora   // Creazione di un oggetto UDP per la comunicazione con il server NTP
NTPClient timeClient(ntpUDP, "pool.ntp.org", +1 * 3600, 1*60*60*1000); ///imposto aggiornamento ogni ora

void orario() {
  if  (timeClient.update()){ ///arduino cerca di prendere i dati dell'ora e la data dal server NTP ogni 1 ora
    Serial.println("ho acquisito l'orario dal server");
    unsigned long epoch=timeClient.getEpochTime(); // Ottieni il tempo in formato epoch dal client NTP
    setTime(epoch); // Aggiorna l'orologio interno di Arduino con il tempo ottenuto dal server NTPo
  }

    
 Serial.print(hour()); // The hour now (0-23)
 Serial.print(":");
 Serial.print(minute()); // The minute now (0-59)
 Serial.print(":");
 Serial.print(second()); // The second now (0-59)
 Serial.print("-");
 Serial.print(day()); // The day now (1-31)
 Serial.print("/");
 Serial.print(month()); // The month now (1-12)
 Serial.print("/");
 Serial.println(year()); // The full four digit year: (2009,
 
 ///Serial.println(weekday()); // Day of the week (1-7), Sunday is day 1
}


poi cerco di portare il dato sulla dashboard di arduino IOT Cloud con:

myTimeVariable=ArduinoCloud.getLocalTime(); ////per portare la data e l'ora sulla dashboard

visualizzo il dato correttamente sulla dasboard ma dopo un pò di ore l'orario è sbagliato di qualche minuto.
Dove sto sbagliando?

Inoltre avrei la necessità di modificare, per fare dei test, l'ora e la data dalla dashboard ma non riesco a capire cosa inserire nel codice

void onMyTimeVariableChange()  {
  // Add your code here to act upon MyTimeVariable change
}

affinchè possa avere sull'arduino la data e l'ora modificata.
Vi ringrazio in anticipo.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.