ESP32: Date And Time (NTP Client) - Phatiphat Thounthong

In this tutorial we’ll show you how to get date and time using the ESP32 and Arduino IDE. Getting date and time is especially useful in data logging to timestamp your readings. If your ESP32 project has access to the Internet, you can get date and time using Network Time Protocol (NTP) – you don’t need any additional hardware.

Click here to download the NTP Client library.

Here we provide a sample code to get date and time from the NTP Server. This example was modified from one of the library examples.

// ESP32_RTC_NTP_1.ino

#include <WiFi.h> #include <NTPClient.h> #include <WiFiUdp.h>

// Replace with your network credentials const char* ssid = “Tangmo14”; const char* password = “0839857333”;

// 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.mode(WIFI_STA); 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(25200); //Thailand +7 = 25200 } 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.print(“HOUR: “); Serial.println(timeStamp); delay(1000); }

// ########## END ESP32_RTC_NTP_1.ino ###############

Share this:

  • X
  • Facebook
Like Loading...

Tag » Arduino Ntpclient.h