// https://forum.arduino.cc/t/32-bit-messwert-und-datum-uhrzeit-ins-fram-schreiben/1423205
// löschen 2026-06-05
// code nicht im Forum
#include <WiFi.h>
#include <EEPROM.h>
#define EEPROM_SIZE 1024
#define NTP_SERVER "pool.ntp.org"
#define TZ_INFO "WEST-1DWEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00" // Western European Time
struct Data {
uint32_t utc;
float messwert;
};
void measureAndWrite(uint16_t adresse) {
Data data;
data.messwert= random(42); // deine Messung
// aktuelle Zeit ermitteln
time_t now;
time(&now); // da steht nun die UTC drinnen
data.utc = now;
Serial.print("now : ");
Serial.print(now);
tm tm; // time structure - nur hier zur demo
localtime_r(&now, &tm);
Serial.println(&tm, " %H:%M:%S %d/%m/%Y %Z");
Serial.print("messwert: "); Serial.println(data.messwert);
// persistieren der Struktur
EEPROM.put(adresse, data);
EEPROM.commit();
}
void readAndPrint(uint16_t adresse) {
Data data;
// zurücklesen der Struktur
EEPROM.get(adresse, data);
// Zeit ermitteln
time_t damals = data.utc; // da steht nun die ursprüngliche UTC drinnen
Serial.print("damals: ");
Serial.print(damals);
tm tm; // time structure - nur hier zur demo
localtime_r(&damals, &tm);
Serial.println(&tm, " %H:%M:%S %d/%m/%Y %Z");
Serial.print("messwert: "); Serial.println(data.messwert);
}
void setup() {
Serial.begin(115200);
// initialize EEPROM with predefined size
EEPROM.begin(EEPROM_SIZE);
Serial.println("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
Serial.println("Online");
Serial.println("Updating time...");
configTzTime(TZ_INFO, NTP_SERVER); // ESP32 Systemzeit mit NTP Synchronisieren
}
void loop() {
measureAndWrite(0);
delay(1000);
readAndPrint(0);
Serial.println("------------");
delay(3000);
}
//