Connect to a NTP server
Go to file
2021-12-21 17:49:42 +08:00
.github Adjust CI workflow for flat library layout 2021-05-18 21:33:14 -07:00
examples Added processing of fractional time in forceUpdate() to allow syncing to the exact NTP time. 2021-06-09 15:28:19 +08:00
.codespellrc Add CI workflow to check for commonly misspelled words 2021-04-12 00:13:30 -07:00
CHANGELOG Update CHANGELOG 2016-05-31 16:33:15 -04:00
keywords.txt Added processing of fractional time in forceUpdate() to allow syncing to the exact NTP time. 2021-06-09 15:28:19 +08:00
library.properties Releasing v3.2.0 2019-09-18 10:01:20 +02:00
NTPClient.cpp Added processing of fractional time in forceUpdate() to allow syncing to the exact NTP time. 2021-06-09 15:28:19 +08:00
NTPClient.h Added processing of fractional time in forceUpdate() to allow syncing to the exact NTP time. 2021-06-09 15:28:19 +08:00
README.md Update README.md 2021-12-21 17:49:42 +08:00

NTPClient

Check Arduino status Compile Examples status Spell Check status

Connect to an NTP server, here is how:

#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;

// By default 'pool.ntp.org' is used with 60 seconds update interval and
// no offset
NTPClient timeClient(ntpUDP);

// You can specify the time server pool and the offset, (in seconds)
// additionally you can specify the update interval (in milliseconds).
// NTPClient timeClient(ntpUDP, "europe.pool.ntp.org", 3600, 60000);

void setup(){
  Serial.begin(115200);
  WiFi.begin(ssid, password);

  while ( WiFi.status() != WL_CONNECTED ) {
    delay ( 500 );
    Serial.print ( "." );
  }

  timeClient.begin();
}

void loop() {
  timeClient.update();

  Serial.println(timeClient.getFormattedTime());

  delay(1000);
}

Function documentation

getEpochTime returns the Unix epoch, which are the seconds elapsed since 00:00:00 UTC on 1 January 1970 (leap seconds are ignored, every day is treated as having 86400 seconds). Attention: If you have set a time offset this time offset will be added to your epoch timestamp.

setEpochTime sets the Unix epoch internally maintained by the NTPClient library. The function parameter is the local time converted to number of seconds since 00:00:00 on 1 January 1970 (local time). Useful when you have a hardware RTC (eg., DS3231) running on local time but uses the NTPClient library for timekeeping. At start-up, you set the NTPClient time offset and then set the internal NTPClient epoch timestamp using the time you fetch from the hardware RTC. The setEpochTime uses the time offset that you specified to compute the epoch timestamp.