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;
|
||||
}
|
||||
|
||||
bool NTPClient::isTimeSet() const {
|
||||
return (this->_lastUpdate != 0); // returns true if the time has been set, else false
|
||||
}
|
||||
|
||||
unsigned long NTPClient::getEpochTime() const {
|
||||
return this->_timeOffset + // User offset
|
||||
this->_currentEpoc + // Epoc returned by the NTP server
|
||||
|
@ -65,6 +65,13 @@ class NTPClient {
|
||||
*/
|
||||
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 getHours() 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
|
||||
update KEYWORD2
|
||||
forceUpdate KEYWORD2
|
||||
isTimeSet KEYWORD2
|
||||
getDay KEYWORD2
|
||||
getHours KEYWORD2
|
||||
getMinutes KEYWORD2
|
||||
|
Loading…
Reference in New Issue
Block a user