Difference between revisions of "NTPClient"

From
Jump to: navigation, search
Line 38: Line 38:
 
   timeClient.update();
 
   timeClient.update();
 
   Serial.println(timeClient.getFormattedTime());
 
   Serial.println(timeClient.getFormattedTime());
 +
  delay(1000);
 +
}
 +
</pre>
 +
<br>
 +
IsTimeSet.ino
 +
<pre>
 +
#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, 60000);
 +
//                          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 ESP-12F
 +
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);
 
   delay(1000);
 
}
 
}
 
</pre>
 
</pre>

Revision as of 18:01, 23 November 2024

author = Fabrice Weinberg
version = 3.2.1
"pool.ntp.org"; // Default time server

Advanced.ino

#include <NTPClient.h>

// change next line to use with another board/shield
// #include <ESP8266WiFi.h>
// #include <WiFi101.h> // for WiFi 101 shield or MKR1000
// #include <WiFi.h> // for WiFi shield

#include <WiFi.h>
#include <WiFiUdp.h>

const char *ssid     = "<SSID>";
const char *password = "<PASSWORD>";

WiFiUDP ntpUDP;

// You can specify the time server pool and the offset (in seconds, can be
// changed later with setTimeOffset() ). Additionally you can specify the
// update interval (in milliseconds, can be changed using setUpdateInterval() ).

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);
}


IsTimeSet.ino

#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, 60000);
//                           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 ESP-12F
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);
}