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.