ESP32 WiFi Ntp Client
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
From: https://randomnerdtutorials.com/esp32-ntp-client-date-time-arduino-ide/
/******************************************************
Rui Santos
Complete project details at https://randomnerdtutorials.com
Based on the NTP Client library example
******************************************************/
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
//************************* DEFINES ************************************
#define BAUD 9600
const char *ssid = "REPLACE_WITH_YOUR_SSID";
const char *password = "REPLACE_WITH_YOUR_PASSWORD";
//************************* PROTOTYPES ************************************
//************************* VARIABLES ************************************
WiFiUDP ntpUDP; // Define NTP Client to get time
NTPClient TimClt( ntpUDP );
String formattedDate;
String dayStamp;
String timeStamp;
/*F********************************************************************
*
**********************************************************************/
void
setup()
{
Serial.begin( BAUD ); // INITIALIZE SERIAL MONITOR
Serial.print( "Connecting to " );
Serial.println( ssid );
WiFi.begin( ssid, password );
while ( WiFi.status() != WL_CONNECTED )
{
delay( 500 );
Serial.print( "." );
}
Serial.println( "" );
Serial.println( "WiFi connected." );
Serial.println( "IP address: " );
Serial.println( WiFi.localIP() ); // PRINT LOCAL IP ADDRESS
TimClt.begin(); // INITIALIZE A NTPClient TO GET TIME
// Set OFFSET TIME IN SECONDS TO ADJUST FOR YOUR TIMEZONE, FOR EXAMPLE:
// GMT +1 = 3600
// GMT +8 = 28800
// GMT -1 = -3600
// GMT 0 = 0
TimClt.setTimeOffset( 3600 );
}
/*F********************************************************************
*
**********************************************************************/
void
loop()
{
while( !TimClt.update() )
TimClt.forceUpdate();
// formattedDate COMES WITH FOLLOWING FORMAT: 2018-05-28T16:00:13Z
formattedDate = TimClt.getFormattedDate(); // EXTRACT DATE AND TIME
Serial.println( formattedDate );
int splitT = formattedDate.indexOf( "T" ); // EXTRACT DATE
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 );
}