#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
//deklarasi ssid dan password untuk koneksi dengna wifi wokwi
const char* ssid = "Wokwi-GUEST";
const char* password = "";
//deklarasi server ntp yang digunakan
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org");
void setup() {
//memulai serial
Serial.begin(115200);
//memulai koneksi antara esp32 dengan wifi
WiFi.begin(ssid, password);
//melakukan cek koneksi dengan wifi
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
timeClient.begin();
}
void loop() {
timeClient.update();
//menampilkan data jam yang telah didapatkan ke serial
Serial.print("Jam: ");
Serial.print(timeClient.getHours());
Serial.print(":");
Serial.print(timeClient.getMinutes());
Serial.print(":");
Serial.println(timeClient.getSeconds());
// Mendapatkan tanggal dalam format UNIX epoch//
unsigned long epochTime = timeClient.getEpochTime();
// Mengonversi epochTime ke waktu lokal//
struct tm *timeInfo;
timeInfo = localtime((time_t *)&epochTime);
// Mendapatkan komponen tanggal//
// Tambah 1900 karena tm_year dimulai dari 1900
int year = timeInfo->tm_year + 1900;
// Tambah 1 karena tm_mon dimulai dari 0
int month = timeInfo->tm_mon + 1;
int day = timeInfo->tm_mday;
//menampilkan taggal server pada serial//
Serial.print("Tanggal: ");
Serial.print(day);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.println(year);
//menampilkan data epoch ke serial
Serial.print("epoch: ");
Serial.println(epochTime);
// Delay setiap detik untuk mendapatkan waktu update
delay(1000);
}