DateTime now = RTC.now durch NTP ersetzen

Hallo zusammen,

ich habe ein fertiges Projekt mit rtc. Würde aber gerne das Modul weg lassen und NTP Zeit nutzen.
Nun haben ich folgende Zeile im Code, worauf sich das Projekt aufbaut.
DateTime now = RTC.now

weiterer Code wie now.minute ....

Ich möchte ungern den ganzen Code umschreiben, sondern NTP irgendwie in das DateTime now bringen, wenn es ohne riesigen Aufwand möglich ist.

NTP allein habe ich schon am laufen. Aber da ist das :slight_smile: struct tm timeinfo

würde mich freuen, wenn es eine einigermaßen einfache Lösung gibt.

Grüße aus Neumarkt

Christian

timeinfo bildet den UnixTimestamp ab?
Mit NTP bekommst UnixTimestamp geliefert, den musst nur setzen.

Es seien die Fragen erlaubt:
Warum willst Du auf die RTC verzichten?
In welchem Intervall wird aktuallisiert?
Was ist, wenn die Quelle versiegt?

ganz ohne Angabe mit welchem Microcontroller / Libraries /Sketch du arbeitest ist das rumgerate.

Was passiert wenn du dein altes

DateTime now;

im Code mit einem

 time(&now); 

aktualisierst?

Grundsätzlich bin ich aber davon überzeugt, dass man alte Schläuche abschneiden soll, sprich die alte lib restlos entfernt und durch die neue ersetzt, besonders wenn diese vermutlich die Standard time.h ist. Allein schon deswegen, damit die Sommerzeit/Winterzeit Umstellung funktioniert.

Das tm struct ist gar keine Hexerei - und da "Standard" super dokumentiert und das Vorgehen einfach. Erst einer Variable die Lokalzeit übergeben, dann die struktur befüllen

  time(&now);                       // read the current time
  localtime_r(&now, &tm);           // update the structure tm with the current time

nur eben beim Monat + 1 rechnen. Oder die Ausgabe mit strftime formatieren.

Schau mall hier

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