added method to test if time was set correctly
This commit is contained in:
parent
020aaf868d
commit
b9fa22617b
@ -101,6 +101,10 @@ bool NTPClient::update() {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool NTPClient::isTimeSet() const {
|
||||||
|
return (this->_lastUpdate != 0); // returns true if the time has been set, else false
|
||||||
|
}
|
||||||
|
|
||||||
unsigned long NTPClient::getEpochTime() const {
|
unsigned long NTPClient::getEpochTime() const {
|
||||||
return this->_timeOffset + // User offset
|
return this->_timeOffset + // User offset
|
||||||
this->_currentEpoc + // Epoc returned by the NTP server
|
this->_currentEpoc + // Epoc returned by the NTP server
|
||||||
|
@ -65,6 +65,13 @@ class NTPClient {
|
|||||||
*/
|
*/
|
||||||
bool forceUpdate();
|
bool forceUpdate();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This allows to check if the NTPClient successfully received a NTP packet and set the time.
|
||||||
|
*
|
||||||
|
* @return true if time has been set, else false
|
||||||
|
*/
|
||||||
|
bool isTimeSet() const;
|
||||||
|
|
||||||
int getDay() const;
|
int getDay() const;
|
||||||
int getHours() const;
|
int getHours() const;
|
||||||
int getMinutes() const;
|
int getMinutes() const;
|
||||||
|
53
examples/IsTimeSet/IsTimeSet.ino
Normal file
53
examples/IsTimeSet/IsTimeSet.ino
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
#include <NTPClient.h>
|
||||||
|
// change next line to use with another board/shield
|
||||||
|
#include <ESP8266WiFi.h>
|
||||||
|
//#include <WiFi.h> // for WiFi shield
|
||||||
|
//#include <WiFi101.h> // for WiFi 101 shield or MKR1000
|
||||||
|
#include <WiFiUdp.h>
|
||||||
|
|
||||||
|
const char *ssid = "<SSID>";
|
||||||
|
const char *password = "<PASSWORD>";
|
||||||
|
|
||||||
|
WiFiUDP ntpUDP;
|
||||||
|
// initialized to a time offset of 10 hours
|
||||||
|
NTPClient timeClient(ntpUDP,"pool.ntp.org", 36000,);
|
||||||
|
// HH:MM:SS
|
||||||
|
// timeClient initializes to 10:00:00 if it does not receive an NTP packet
|
||||||
|
// before the 100ms timeout.
|
||||||
|
// Without isTimeSet() the LED would be switched on, although the time
|
||||||
|
// was not yet set correctly.
|
||||||
|
|
||||||
|
// blue led on ESP12F
|
||||||
|
const int led = 2;
|
||||||
|
const int hour = 10;
|
||||||
|
const int minute = 0;
|
||||||
|
|
||||||
|
void setup(){
|
||||||
|
Serial.begin(115200);
|
||||||
|
|
||||||
|
pinMode(led, OUTPUT);
|
||||||
|
// led is off when pin is high
|
||||||
|
digitalWrite(led, 1);
|
||||||
|
|
||||||
|
WiFi.begin(ssid, password);
|
||||||
|
|
||||||
|
while ( WiFi.status() != WL_CONNECTED ) {
|
||||||
|
delay ( 500 );
|
||||||
|
Serial.print ( "." );
|
||||||
|
}
|
||||||
|
|
||||||
|
timeClient.begin();
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
timeClient.update();
|
||||||
|
|
||||||
|
Serial.println(timeClient.getFormattedTime());
|
||||||
|
if(timeClient.isTimeSet()) {
|
||||||
|
if (hour == timeClient.getHours() && minute == timeClient.getMinutes()) {
|
||||||
|
digitalWrite(led, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
delay(1000);
|
||||||
|
}
|
@ -12,6 +12,7 @@ begin KEYWORD2
|
|||||||
end KEYWORD2
|
end KEYWORD2
|
||||||
update KEYWORD2
|
update KEYWORD2
|
||||||
forceUpdate KEYWORD2
|
forceUpdate KEYWORD2
|
||||||
|
isTimeSet KEYWORD2
|
||||||
getDay KEYWORD2
|
getDay KEYWORD2
|
||||||
getHours KEYWORD2
|
getHours KEYWORD2
|
||||||
getMinutes KEYWORD2
|
getMinutes KEYWORD2
|
||||||
|
Loading…
Reference in New Issue
Block a user