de eenvoudigste manier om klok data te bekomen.
NTP Client library !
Libraries die moeten geïnstalleerd zijn
#include <ESP8266WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
#include <ESP8266WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
// Replace with your network credentials
const char *ssid = "Tenda_Spike";
const char *password = "johanveerle22";
// Define NTP Client to get time
WiFiUDP ntpUDP;
// initialized to a time offset of 1 hours (belgium time)
//NTPClient timeClient(ntpUDP,"pool.ntp.org", 36000, 60000); // 10 uur later
NTPClient timeClient(ntpUDP,"pool.ntp.org", 3600, 60000); //1uur later
//Week Days
String weekDays[7]={"Zondag", "Maandag", "Dinsdag", "Woensdag", "Donderdag", "Vrijdag", "Zaterdag"};
//Month names
String months[12]={"Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "October", "November", "December"};
void setup() {
// Initialize Serial Monitor
Serial.begin(115200);
// Connect to Wi-Fi
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Initialize a NTPClient to get time
timeClient.begin();
// Set offset time in seconds to adjust for your timezone, for example:
//GMT +1 = 3600
// GMT +8 = 28800
// GMT -1 = -3600
// GMT 0 = 0
timeClient.setTimeOffset(0);
}
void loop() {
timeClient.update();
time_t epochTime = timeClient.getEpochTime();
Serial.print("Epoch Time: ");
Serial.println(epochTime);
String formattedTime = timeClient.getFormattedTime();
Serial.print("Formatted Time: ");
Serial.println(formattedTime);
int currentHour = timeClient.getHours();
Serial.print("Hour: ");
Serial.println(currentHour);
int currentMinute = timeClient.getMinutes();
Serial.print("Minutes: ");
Serial.println(currentMinute);
int currentSecond = timeClient.getSeconds();
Serial.print("Seconds: ");
Serial.println(currentSecond);
String weekDay = weekDays[timeClient.getDay()];
Serial.print("Week Day: ");
Serial.println(weekDay);
//Get a time structure
struct tm *ptm = gmtime ((time_t *)&epochTime);
int monthDay = ptm->tm_mday;
Serial.print("Month day: ");
Serial.println(monthDay);
int currentMonth = ptm->tm_mon+1;
Serial.print("Month: ");
Serial.println(currentMonth);
String currentMonthName = months[currentMonth-1];
Serial.print("Month name: ");
Serial.println(currentMonthName);
int currentYear = ptm->tm_year+1900;
Serial.print("Year: ");
Serial.println(currentYear);
//Print complete date:
// String currentDate = String(currentYear) + "-" + String(currentMonth) + "-" + String(monthDay); // American
String currentDate = String(monthDay) + "-" + String(currentMonth) + "-"+ String(currentYear) ; // european
Serial.print("Current date: ");
Serial.println(currentDate);
Serial.println("");
delay(2000);
}
Die we later kunnen gebruiken in een eigen project waar time data nodig zijn !
Epoch Time: 1673202810
Formatted Time: 18:33:30
Hour: 18
Minutes: 33
Seconds: 30
Week Day: Zondag
Month day: 8
Month: 1
Month name: Januari
Year: 2023
Current date: 8-1-2023