#include "time.h"
void printLocalTime(){
struct tm timeinfo;
if(!getLocalTime(&timeinfo)){
Serial.println("Failed to obtain time 1");
return;
}
Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S zone %Z %z ");
}
void setTime(int yr, int month, int mday, int hr, int minute, int sec, int isDst){
struct tm tm;
tm.tm_year = yr - 1900; // Set date
tm.tm_mon = month-1;
tm.tm_mday = mday;
tm.tm_hour = hr; // Set time
tm.tm_min = minute;
tm.tm_sec = sec;
tm.tm_isdst = isDst; // 1 or 0
time_t t = mktime(&tm);
Serial.printf("Setting time: %s", asctime(&tm));
struct timeval now = { .tv_sec = t };
settimeofday(&now, NULL);
}
int orainminutiold = 1500;
struct step
{
int ora;
int minuti;
int Ch1;
int Ch2;
};
step giornata[40];
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
setTime(2023,4,14,17,24,50,0);
giornata[0].ora = 8;
giornata[0].minuti = 30;
giornata[0].Ch1 = 0;
giornata[0].Ch2 = 0;
giornata[1].ora = 10;
giornata[1].minuti = 0;
giornata[0].Ch1 = 228;
giornata[0].Ch2 = 228;
giornata[2].ora = 15;
giornata[2].minuti = 30;
giornata[2].Ch1 = 100;
giornata[2].Ch2 = 100;
giornata[3].ora = 20;
giornata[3].minuti = 30;
giornata[3].Ch1 = 128;
giornata[3].Ch2 = 128;
}
void loop() {
// put your main code here, to run repeatedly:
if( orainminutiold != adessoinminuti()){
orainminutiold = adessoinminuti();
printLocalTime();
Serial.println(giornata[3].ora);
}
}
int adessoinminuti(){
int result;
struct tm timeinfo;
getLocalTime(&timeinfo);
result = (timeinfo.tm_hour * 60) + timeinfo.tm_min;
return result;
}