Difference between revisions of "NTPClient"
| 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);
}