Skip to content

iskakfatoni/IskakINO_FastNTP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IskakINO_FastNTP 🚀

Build Status Latest Release License Platform Language

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).

✨ Fitur Utama

  • 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).

📦 Instalasi

Library ini memerlukan library pendukung berikut:

  1. IskakINO_WifiPortal
  2. IskakINO_ArduFast

🚀 Cara Penggunaan Singkat

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

🛠 API Reference

Daftar fungsi lengkap yang tersedia di dalam library IskakINO_FastNTP:

1. Inisialisasi & Core

  • begin(long gmtOffset, int daylightOffset) : Inisialisasi NTP dengan offset GMT (detik).
  • update() : Menjalankan State Machine. Wajib dipanggil di loop() tanpa delay.
  • setEpoch(uint32_t manualEpoch) : Mengatur waktu secara manual.

2. Output Waktu & Tanggal (String)

  • getFormattedTime() : Output format HH:MM:SS.
  • getFormattedDate(char separator) : Output format DD-MM-YYYY.
  • getDayName(NTP_Language lang) : Nama hari (LANG_ID / LANG_EN).
  • getMonthName(NTP_Language lang) : Nama bulan (LANG_ID / LANG_EN).

3. Satuan Waktu (Integer)

  • getEpoch() : Mengambil nilai Unix Epoch.
  • getHours(), getMinutes(), getSeconds() : Jam, Menit, Detik.
  • getDay(), getMonth(), getYear() : Tanggal, Bulan, Tahun.

4. Status & Utilitas

  • 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) : Return true jika waktu sekarang cocok dengan parameter.

👥 Kontributor

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages