I am using arduino ESP32 NodeMCU for NTPClient. It will connect to the internet and get time from NTPServer.

Here is the pinout for ESP32 NodeMCU

ESP32 NodeMCU pinout
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>

// Replace with your network credentials
const char * ssid       = "YOUR_NETWORK_HERE";
const char * password   = "YOUR_PASSWORD_HERE";


// Define NTP Client to get time
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);

// Variables to save date and time
String formattedDate;
String dayStamp;
String timeStamp;

void setup() {
  // Initialize Serial Monitor
  Serial.begin(115200);
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // Print local IP address and start web server
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());

// 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(3600);
  timeClient.setTimeOffset(28800);
}
void loop() {
  while(!timeClient.update()) {
    timeClient.forceUpdate();
  }
  // The formattedDate comes with the following format:
  // 2018-05-28T16:00:13Z
  // We need to extract date and time
  formattedDate = timeClient.getFormattedDate();
  Serial.println(formattedDate);

  // Extract date
  int splitT = formattedDate.indexOf("T");
  dayStamp = formattedDate.substring(0, splitT);
  Serial.print("DATE: ");
  Serial.println(dayStamp);
  // Extract time
  timeStamp = formattedDate.substring(splitT+1, formattedDate.length()-1);
  Serial.println("Malaysia Standard Time is UTC + 8");
  Serial.print("HOUR: ");
  Serial.println(timeStamp);
  delay(1000);
  //ClearScreen
  for (int i=0; i<50; i++) {
   Serial.print("\n");
  }
}

Ini merupakan kali pertama aku menggunakan arduino ESP32 NodeMCU. Jadi agak sedikit kelam kabut sebab aku totally ‘zero’. Memang tak tahu apa-apa pasal board ni. First time aku try guna, memang kecewa. Board tak boleh communicate dengan software. Memang ambil masa untuk aku fahami.

Setelah aku lakukan sedikit research tentang board ni. Akhirnya aku nampak la sinar sedikit cara-cara asas nak guna board esp32 ni. Jadi aku kongsikan serba sedikit basic nak guna board ni. Mungkin bila berkelapangan nanti aku akan buat fully video macam mana nak guna. Sebab aku pasti, akan ada insan-insan yang akan mengalami problem seperti aku ni jugak.

Untuk pertama kali, korang kena load dulu lah board esp32 ni dekat software arduino ide korang tu. Memandangkan aku menggunakan mac, jadi tutorial aku ni akan sedikit berbeza dengan windows. Tapi jangan risau, dia lebih kurang sama je.

Mula-mula, buka software arduino ide tu, lepas tu klik “Arduino > Preferences”. Ok, lepas korang klik “preferences” tu. Dia akan popup satu paparan, yang mana korang kena cari dekat bawah-bawah tu sikit ada satu field nama dia “Additional Board Manager URLs”. Dekat sini, kalau korang memang kali pertama access, field tu biasanya kosong je lah. Jadi dekat sini korang kene klik button hujung dia tu, dan masukkan link ni “https://dl.espressif.com/dl/package_esp32_index.json“. Lepas tu tekan OK.

Lepas korang dah add link tu dekat preferences, next apa yang korang perlu lakukan adalah load board ESP32 ni dkt board manager. Macam mana nak load? Senang je, korang kena baca sampai habis lah. Haaa, penat kot aku nak menaip dan karang ayat, hahaha. Ok, lepas tu korang pergi ke Tools > Board > Boards Manager . Dekat board manager ni nanti korang kene search board yang nak digunakan tu lah. Dalam kes sekarang ni kita nak guna ESP32, jadi aku masukan esp32 dkt ruangan tepi tu, then aku install. Dia akan ambil sedikit masalah juga. Tapi yang penting, korang kene ada internet connection.

Lepas dah install tu, nanti korang boleh load la jenis board yang korang nk guna tu. Macam aku sekarang ni guna “ESP32 Dev Module”, jadi aku akan pilih board tu lah. Untuk testing, sama je macam board2 yang lain. Korang boleh pilih sample kod yang ada, biasanya kita guna kod blink2 led je la kan.

Ok lah, sorry tutorial aku kali ni xde gambar sangat, sebab aku belum berapa rajin lagi. Apa-apa yang korang tak faham, just tinggalkan komen dekat bawah, atau cari aku dekat Youtube Channel aku “Kaki Godek”. Bila dah jumpa channel aku tu, jangan segan silu klik button subscribe ya!