You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
106 lines
2.6 KiB
106 lines
2.6 KiB
void ntpTime()
|
|
{
|
|
int nt=0;
|
|
while(!timeClient.update()) {
|
|
Serial.println("NTP");
|
|
timeClient.forceUpdate();
|
|
nt++;
|
|
if(nt>2)return;
|
|
}
|
|
ntp=1;
|
|
tik=0;
|
|
// The formattedDate comes with the following format:
|
|
// 2018-05-28T16:00:13Z
|
|
// We need to extract date and time
|
|
// formattedDate = timeClient.getFormattedDate();
|
|
String formattedTime =timeClient.getFormattedTime();
|
|
Serial.println(formattedTime);
|
|
// getDay
|
|
//getHours
|
|
//getMinutes
|
|
//getSeconds
|
|
//getFormattedTime
|
|
// formattedDate =timeClient.getFormattedDate();
|
|
// int splitT = formattedDate.indexOf("T");
|
|
// dayStamp = formattedDate.substring(0, splitT);
|
|
// Serial.println(timeClient.getDay());
|
|
|
|
// Extract time
|
|
// timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1);
|
|
Serial.println("ntp");
|
|
Serial.println(timeClient.getEpochTime());
|
|
stamp.getDateTime(timeClient.getEpochTime());
|
|
//EpochTime=timeClient.getEpochTime();
|
|
// забираем вот так
|
|
// Serial.println(stamp.year);
|
|
// Serial.println(stamp.month);
|
|
// Serial.println(stamp.day);
|
|
// Serial.println(stamp.hour);
|
|
// Serial.println(stamp.minute);
|
|
// Serial.println(stamp.second);
|
|
// Serial.println(stamp.dayOfWeek);
|
|
CurrentHour = stamp.hour;
|
|
CurrentMin = stamp.minute;
|
|
CurrentSec = stamp.second;
|
|
tHour = CurrentHour ;
|
|
tMin = CurrentMin;
|
|
|
|
|
|
|
|
mon=stamp.month;
|
|
date=stamp.day;
|
|
dow=stamp.dayOfWeek;
|
|
if(dow==0){dow=7;}
|
|
years=stamp.year;
|
|
|
|
|
|
|
|
|
|
String timeserv=formatTimeDigits(stamp.hour,stamp.minute);
|
|
String dataserv=formatDateDigits(stamp.day, stamp.month, stamp.year);
|
|
Serial.println(timeserv);
|
|
Serial.println(dataserv);
|
|
}
|
|
|
|
char *formatTimeDigits(int hour, int minute)
|
|
{
|
|
char *time_str = new char[5];
|
|
time_str[0] = '0' + (hour / 10);
|
|
time_str[1] = '0' + (hour % 10);
|
|
time_str[2] = ':';
|
|
time_str[3] = '0' + (minute / 10);
|
|
time_str[4] = '0' + (minute % 10);
|
|
time_str[5] = '\0';
|
|
|
|
return time_str;
|
|
}
|
|
char *formatDateDigits(int date, int mounth, int year)
|
|
{
|
|
char *date_str = new char[9];
|
|
|
|
date_str[1] = '0' + (date % 10);
|
|
date_str[2] = '/';
|
|
date_str[0] = '0' + (date / 10);
|
|
date_str[3] = '0' + (mounth / 10);
|
|
date_str[4] = '0' + (mounth % 10);
|
|
date_str[5] = '/';
|
|
date_str[6] = '0' + ((year % 100) / 10);
|
|
date_str[7] = '0' + (year % 10);
|
|
date_str[8] = '\0';
|
|
|
|
return date_str;
|
|
}
|
|
|
|
void notTime()
|
|
{
|
|
if((ntp==0)&&(but==0))//ntp не ответило и проснулись по таймеру
|
|
{ tik++;
|
|
tMin = tMin+SleepDuration+1;//добавим к минутам время таймера
|
|
if(tMin>59)//пересчет времени
|
|
{ tMin = tMin-60;
|
|
tHour=tHour+1;
|
|
if(tHour>23)tHour=0;
|
|
}
|
|
}
|
|
if(ntp==0)but=0;
|
|
}
|
|
|