//https://microcontrollerslab.com/epoch-unix-time-esp32-arduino-ide/
//https://www.jotform.com/help/443-mastering-date-and-time-calculation/
#include <WiFi.h>
#include "time.h"
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 0;
const int daylightOffset_sec = 19800;
unsigned long Epoch_Time;
WiFiClient client;
void setup() {
Serial.begin(115200);
Serial.println("Start");
connectWiFi();
// Init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
//printLocalTime();
}
void loop()
{
Epoch_Time = Get_Epoch_Time();
Serial.print("Epoch Time: ");
Serial.println(Epoch_Time);
int temp1 = floor(1655131115 / 31556926);
Serial.print("temp: ");
Serial.println(temp1);
int temp = 1655131115 - Epoch_Time ;
Serial.print("temp: ");
Serial.println(temp);
delay(1000);
//printLocalTime();
}
int connectWiFi(){
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(2500);
Serial.println("Connecting to WiFi");
}
Serial.println( "Connected" );
return 0;
}
/*
void printLocalTime(){
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
Serial.print("Day of week: ");
Serial.println(&timeinfo, "%A");
Serial.print("Month: ");
Serial.println(&timeinfo, "%B");
Serial.print("Day of Month: ");
Serial.println(&timeinfo, "%d");
Serial.print("Year: ");
Serial.println(&timeinfo, "%Y");
Serial.print("Hour: ");
Serial.println(&timeinfo, "%H");
Serial.print("Hour (12 hour format): ");
Serial.println(&timeinfo, "%I");
Serial.print("Minute: ");
Serial.println(&timeinfo, "%M");
Serial.print("Second: ");
Serial.println(&timeinfo, "%S");
Serial.println("Time variables");
char timeHour[3];
strftime(timeHour,3, "%H", &timeinfo);
Serial.println(timeHour);
char timeWeekDay[18];
strftime(timeWeekDay,18, "%d %B %Y", &timeinfo);
Serial.println(timeWeekDay);
Serial.println();
}
*/
// Variable to hold current epoch timestamp
// Get_Epoch_Time() Function that gets current epoch time
unsigned long Get_Epoch_Time() {
time_t now;
struct tm timeinfo;
if (!getLocalTime(&timeinfo)) {
//Serial.println("Failed to obtain time");
return(0);
}
time(&now);
return now;
}