Library NTP (Network Time Protocol) Non-Blocking untuk ESP8266 dan ESP32. Dirancang khusus untuk efisiensi tinggi menggunakan State Machine sehingga tidak mengganggu proses utama (no delay).
- Asinkron: Tidak membuat program "hang" saat menunggu respon server.
- Clock Simulation: Tetap menghitung waktu secara mandiri meski internet terputus.
- Multi-Language: Mendukung nama hari dan bulan dalam Bahasa Indonesia dan Inggris.
- Fitur Uptime: Menghitung berapa lama sistem berjalan berdasarkan waktu nyata.
- Auto-Sync: Sinkronisasi ulang otomatis setiap 1 jam (dapat dikustomisasi).
Library ini memerlukan library pendukung berikut:
#include <ESP8266WiFi.h> // atau WiFi.h untuk ESP32
#include <WiFiUdp.h>
#include <IskakINO_FastNTP.h>
WiFiUDP ntpUDP;
IskakINO_FastNTP ntp(ntpUDP, "id.pool.ntp.org");
void setup() {
Serial.begin(115200);
// GMT+7 (7 * 3600)
ntp.begin(25200);
}
void loop() {
ntp.update(); // Wajib dipanggil di loop tanpa delay
if (ntp.isTimeReliable()) {
Serial.println(ntp.getFormattedTime());
Serial.println(ntp.getDayName(LANG_ID));
}
}Daftar fungsi lengkap yang tersedia di dalam library IskakINO_FastNTP:
begin(long gmtOffset, int daylightOffset): Inisialisasi NTP dengan offset GMT (detik).update(): Menjalankan State Machine. Wajib dipanggil diloop()tanpa delay.setEpoch(uint32_t manualEpoch): Mengatur waktu secara manual.
getFormattedTime(): Output formatHH:MM:SS.getFormattedDate(char separator): Output formatDD-MM-YYYY.getDayName(NTP_Language lang): Nama hari (LANG_ID/LANG_EN).getMonthName(NTP_Language lang): Nama bulan (LANG_ID/LANG_EN).
getEpoch(): Mengambil nilai Unix Epoch.getHours(),getMinutes(),getSeconds(): Jam, Menit, Detik.getDay(),getMonth(),getYear(): Tanggal, Bulan, Tahun.
isTimeReliable(uint32_t maxAge): Cek validitas waktu (default maxAge 24 jam).getUptimeSeconds(): Durasi sistem berjalan (detik) sejak boot.getMillisSinceLastSync(): Selisih waktu sejak sinkronisasi sukses terakhir.isAlarmActive(hr, min, sec): Returntruejika waktu sekarang cocok dengan parameter.
Kami sangat menghargai kontribusi dalam bentuk pelaporan bug, saran fitur, maupun pull request.
| Nama | Peran | GitHub |
|---|---|---|
| iskakfatoni | Developer Utama | @iskakfatoni |
Dibuat oleh iskakfatoni untuk komunitas IoT Indonesia.