{"id":95109,"date":"2020-03-19T14:26:00","date_gmt":"2020-03-19T14:26:00","guid":{"rendered":"https:\/\/randomnerdtutorials.com\/?p=95109"},"modified":"2020-03-25T15:22:17","modified_gmt":"2020-03-25T15:22:17","slug":"esp32-date-time-ntp-client-server-arduino","status":"publish","type":"post","link":"https:\/\/randomnerdtutorials.com\/esp32-date-time-ntp-client-server-arduino\/","title":{"rendered":"ESP32 NTP Client-Server: Get Date and Time (Arduino IDE)"},"content":{"rendered":"\n<p>Learn how to request date and time from an NTP Server using the ESP32 with Arduino IDE. Getting date and time is useful in data logging projects to timestamp readings. To get time from an NTP Server, the <a rel=\"noreferrer noopener\" aria-label=\"ESP32 (opens in a new tab)\" href=\"https:\/\/makeradvisor.com\/tools\/esp32-dev-board-wi-fi-bluetooth\/\" target=\"_blank\">ESP32<\/a> needs to have an Internet connection and you don&#8217;t need additional hardware (like an RTC clock).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" fetchpriority=\"high\" decoding=\"async\" width=\"1200\" height=\"675\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?resize=1200%2C675&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 NTP Client-Server Get Date and Time Arduino IDE\" class=\"wp-image-95110\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?w=1280&amp;quality=100&amp;strip=all&amp;ssl=1 1280w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?resize=300%2C169&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?resize=1024%2C576&amp;quality=100&amp;strip=all&amp;ssl=1 1024w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?resize=768%2C432&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" \/><\/figure><\/div>\n\n\n\n<p>Before proceeding with this tutorial you need to have the ESP32 add-on installed in your Arduino IDE:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/randomnerdtutorials.com\/installing-the-esp32-board-in-arduino-ide-windows-instructions\/\">Installing the ESP32 Board in Arduino IDE (Windows, Mac OS X, Linux)<\/a><\/li><\/ul>\n\n\n\n<p><strong>Recommended:<\/strong> <a href=\"https:\/\/randomnerdtutorials.com\/esp8266-nodemcu-date-time-ntp-client-server-arduino\/\">Get Date and Time with ESP8266 NodeMCU NTP Client-Server<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">NTP (Network Time Protocol)<\/h2>\n\n\n\n<p>NTP stands for Network Time Protocol and it is a networking protocol for clock synchronization between computer systems. In other words, it is used to synchronize computer clock times in a network.<\/p>\n\n\n\n<p>There are NTP servers like <em>pool.ntp.org<\/em> that anyone can use to request time as a client. In this case, the ESP32 is an NTP Client that requests time from an NTP Server (<em>pool.ntp.org<\/em>).<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"750\" height=\"412\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-NTP-Client-Server-Arduino-IDE-How-NTP-works.png?resize=750%2C412&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"NTP Network Time Protocol ESP32 Request time and date\" class=\"wp-image-95124\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-NTP-Client-Server-Arduino-IDE-How-NTP-works.png?w=750&amp;quality=100&amp;strip=all&amp;ssl=1 750w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-NTP-Client-Server-Arduino-IDE-How-NTP-works.png?resize=300%2C165&amp;quality=100&amp;strip=all&amp;ssl=1 300w\" sizes=\"(max-width: 750px) 100vw, 750px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Getting Date and Time from NTP Server<\/h2>\n\n\n\n<p>To get date and time with the ESP32, you don&#8217;t need to install any libraries. You simply need to include the <span class=\"rnthl rntliteral\">time.h<\/span> library in your code.<\/p>\n\n\n\n<p>The following code gets date and time from the NTP Server and prints the results on the Serial Monitor. It was based on the example provided by the <span class=\"rnthl rntliteral\">time.h<\/span> library.<\/p>\n\n\n<pre style=\"max-height: 40em; margin-bottom: 20px;\"><code class=\"language-c\">\/*\n  Rui Santos\n  Complete project details at https:\/\/RandomNerdTutorials.com\/esp32-date-time-ntp-client-server-arduino\/\n  \n  Permission is hereby granted, free of charge, to any person obtaining a copy\n  of this software and associated documentation files.\n  \n  The above copyright notice and this permission notice shall be included in all\n  copies or substantial portions of the Software.\n*\/\n\n#include &lt;WiFi.h&gt;\n#include &quot;time.h&quot;\n\nconst char* ssid     = &quot;REPLACE_WITH_YOUR_SSID&quot;;\nconst char* password = &quot;REPLACE_WITH_YOUR_PASSWORD&quot;;\n\nconst char* ntpServer = &quot;pool.ntp.org&quot;;\nconst long  gmtOffset_sec = 0;\nconst int   daylightOffset_sec = 3600;\n\nvoid setup(){\n  Serial.begin(115200);\n\n  \/\/ Connect to Wi-Fi\n  Serial.print(&quot;Connecting to &quot;);\n  Serial.println(ssid);\n  WiFi.begin(ssid, password);\n  while (WiFi.status() != WL_CONNECTED) {\n    delay(500);\n    Serial.print(&quot;.&quot;);\n  }\n  Serial.println(&quot;&quot;);\n  Serial.println(&quot;WiFi connected.&quot;);\n  \n  \/\/ Init and get the time\n  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);\n  printLocalTime();\n\n  \/\/disconnect WiFi as it's no longer needed\n  WiFi.disconnect(true);\n  WiFi.mode(WIFI_OFF);\n}\n\nvoid loop(){\n  delay(1000);\n  printLocalTime();\n}\n\nvoid printLocalTime(){\n  struct tm timeinfo;\n  if(!getLocalTime(&amp;timeinfo)){\n    Serial.println(&quot;Failed to obtain time&quot;);\n    return;\n  }\n  Serial.println(&amp;timeinfo, &quot;%A, %B %d %Y %H:%M:%S&quot;);\n  Serial.print(&quot;Day of week: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%A&quot;);\n  Serial.print(&quot;Month: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%B&quot;);\n  Serial.print(&quot;Day of Month: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%d&quot;);\n  Serial.print(&quot;Year: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%Y&quot;);\n  Serial.print(&quot;Hour: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%H&quot;);\n  Serial.print(&quot;Hour (12 hour format): &quot;);\n  Serial.println(&amp;timeinfo, &quot;%I&quot;);\n  Serial.print(&quot;Minute: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%M&quot;);\n  Serial.print(&quot;Second: &quot;);\n  Serial.println(&amp;timeinfo, &quot;%S&quot;);\n\n  Serial.println(&quot;Time variables&quot;);\n  char timeHour[3];\n  strftime(timeHour,3, &quot;%H&quot;, &amp;timeinfo);\n  Serial.println(timeHour);\n  char timeWeekDay[10];\n  strftime(timeWeekDay,10, &quot;%A&quot;, &amp;timeinfo);\n  Serial.println(timeWeekDay);\n  Serial.println();\n}\n<\/code><\/pre>\n\t<p style=\"text-align:center\"><a class=\"rntwhite\" href=\"https:\/\/github.com\/RuiSantosdotme\/Random-Nerd-Tutorials\/raw\/master\/Projects\/ESP32\/ESP32_Date_Time.ino\" target=\"_blank\">View raw code<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How the Code Works<\/h2>\n\n\n\n<p>Let\u2019s take a quick look at the code to see how it works. First, include the libraries to connect to Wi-Fi and get time.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>#include &lt;WiFi.h>\n#include \"time.h\"<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Setting SSID and Password<\/h3>\n\n\n\n<p>Type your network credentials in the following variables, so that the ESP32 is able to establish an Internet connection and get date and time from the NTP server.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Replace with your network credentials\nconst char* ssid = \"REPLACE_WITH_YOUR_SSID\";\nconst char* password = \"REPLACE_WITH_YOUR_PASSWORD\";<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">NTP Server and Time Settings<\/h3>\n\n\n\n<p>Then, you need to define the following variables to configure and get time from an NTP server: <span class=\"rnthl rntliteral\">ntpServer<\/span>, <span class=\"rnthl rntliteral\">gmtOffset_sec<\/span> and <span class=\"rnthl rntliteral\">daylightOffset_sec<\/span>.<\/p>\n\n\n\n<p><strong>NTP Server<\/strong><\/p>\n\n\n\n<p>We\u2019ll request the time from <em>pool.ntp.org<\/em>, which is a cluster of timeservers that anyone can use to request the time.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>const char* ntpServer = \"pool.ntp.org\";<\/code><\/pre>\n\n\n\n<p><strong>GMT Offset<\/strong><\/p>\n\n\n\n<p>The <span class=\"rnthl rntliteral\">gmtOffset_sec<\/span> variable defines the offset in seconds between your time zone and GMT. We live in Portugal, so the time offset is 0. Change the time <span class=\"rnthl rntliteral\">gmtOffset_sec<\/span> variable to match your time zone.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>const long gmtOffset_sec = 0;<\/code><\/pre>\n\n\n\n<p><strong>Daylight Offset<\/strong><\/p>\n\n\n\n<p>The <span class=\"rnthl rntliteral\">daylightOffset_sec<\/span> variable defines the offset in seconds for daylight saving time. It is generally one hour, that corresponds to 3600 seconds<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>const int daylightOffset_sec = 3600;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">setup()<\/h3>\n\n\n\n<p>In the <span class=\"rnthl rntliteral\">setup()<\/span> you initialize the Serial communication at baud rate 115200 to print the results:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>Serial.begin(115200);<\/code><\/pre>\n\n\n\n<p>These next lines connect the ESP32 to your router.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>\/\/ Connect to Wi-Fi\nSerial.print(\"Connecting to \");\nSerial.println(ssid);\nWiFi.begin(ssid, password);\nwhile (WiFi.status() != WL_CONNECTED) {\n  delay(500);\n  Serial.print(\".\");\n}\nSerial.println(\"\");\nSerial.println(\"WiFi connected.\");<\/code><\/pre>\n\n\n\n<p>Configure the time with the settings you\u2019ve defined earlier:<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">printLocalTime()<\/h3>\n\n\n\n<p>After configuring the time, call the <span class=\"rnthl rntliteral\">printLocalTime()<\/span> function to print the time in the Serial Monitor.<\/p>\n\n\n\n<p>In that function, create a time structure (<span class=\"rnthl rntliteral\">struct tm<\/span>) called <span class=\"rnthl rntliteral\">timeinfo<\/span> that contains all the details about the time (min, sec, hour, etc&#8230;).<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>struct tm timeinfo;<\/code><\/pre>\n\n\n\n<p>The <span class=\"rnthl rntliteral\">tm<\/span> structure contains a calendar date and time broken down into its components:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><span class=\"rnthl rntliteral\">tm_sec<\/span>: seconds after the minute;<\/li><li><span class=\"rnthl rntliteral\">tm_min<\/span>: minutes after the hour;<\/li><li><span class=\"rnthl rntliteral\">tm_hour<\/span>: hours since midnight;<\/li><li><span class=\"rnthl rntliteral\">tm_mday<\/span>: day of the month;<\/li><li><span class=\"rnthl rntliteral\">tm_year<\/span>: years since 1900;<\/li><li><span class=\"rnthl rntliteral\">tm_wday<\/span>: days since Sunday;<\/li><li><span class=\"rnthl rntliteral\">tm_yday<\/span>: days since January 1;<\/li><li><span class=\"rnthl rntliteral\">tm_isdst<\/span>: Daylight Saving Time flag;<\/li><li><a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"http:\/\/www.cplusplus.com\/reference\/ctime\/tm\/\" target=\"_blank\">tm structure documentation<\/a>.<\/li><\/ul>\n\n\n\n<p>Get all the details about date and time and save them on the <span class=\"rnthl rntliteral\">timeinfo<\/span> structure.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>if(!getLocalTime(&amp;timeinfo)){\n  Serial.println(\"Failed to obtain time\");\n  return;\n}<\/code><\/pre>\n\n\n\n<p>Then, print all details about the time in the Serial Monitor. <\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>Serial.println(&amp;timeinfo, \"%A, %B %d %Y %H:%M:%S\");\nSerial.print(\"Day of week: \");\nSerial.println(&amp;timeinfo, \"%A\");\nSerial.print(\"Month: \");\nSerial.println(&amp;timeinfo, \"%B\");\nSerial.print(\"Day of Month: \");\nSerial.println(&amp;timeinfo, \"%d\");\nSerial.print(\"Year: \");\nSerial.println(&amp;timeinfo, \"%Y\");\nSerial.print(\"Hour: \");\nSerial.println(&amp;timeinfo, \"%H\");\nSerial.print(\"Hour (12 hour format): \");\nSerial.println(&amp;timeinfo, \"%I\");\nSerial.print(\"Minute: \");\nSerial.println(&amp;timeinfo, \"%M\");\nSerial.print(\"Second: \");\nSerial.println(&amp;timeinfo, \"%S\");<\/code><\/pre>\n\n\n\n<p>To access the members of the date and time structure you can use the following specifiers:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"\"><tbody><tr><td><span class=\"rnthl rntliteral\">%A<\/span><\/td><td>Full weekday name<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%B<\/span><\/td><td>Full month name<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%d<\/span><\/td><td>Day of the month<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%Y<\/span><\/td><td>Year<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%H<\/span><\/td><td>Hour in 24h format<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%I<\/span><\/td><td>Hour in 12h format<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%M<\/span><\/td><td>Minute<\/td><\/tr><tr><td><span class=\"rnthl rntliteral\">%S<\/span><\/td><td>Second<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>There are other specifiers you can use to get information in other format, for example: abbreviated month name (<span class=\"rnthl rntliteral\">%b<\/span>), abbreviated weekday name (<span class=\"rnthl rntliteral\">%a<\/span>), week number with the first Sunday as the first day of week one (<span class=\"rnthl rntliteral\">%U<\/span>), and others (<a rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\" href=\"http:\/\/www.cplusplus.com\/reference\/ctime\/strftime\/\" target=\"_blank\">read more<\/a>).<\/p>\n\n\n\n<p>We also show you an example, if you want to save information about time in variables. For example, if you want to save the hour into a variable called <span class=\"rnthl rntliteral\">timeHour<\/span>, create a char variable with a length of 3 characters (it must save the hour characters plus the terminating character). Then, copy the information about the hour that is on the <span class=\"rnthl rntliteral\">timeinfo<\/span> structure into the <span class=\"rnthl rntliteral\">timeHour<\/span> variable using the <span class=\"rnthl rntliteral\"><a href=\"http:\/\/www.cplusplus.com\/reference\/ctime\/strftime\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">strftime()<\/a><\/span> function.<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>Serial.println(\"Time variables\");\nchar timeHour[3];\nstrftime(timeHour,3, \"%H\", &amp;timeinfo);\nSerial.println(timeHour);<\/code><\/pre>\n\n\n\n<p>To get other variables, use a similar process. For example, for the week day, we need to create a char variable with a length of 10 characters because the longest day of the week contains 9 characters (saturday).<\/p>\n\n\n\n<pre class=\"wp-block-code language-c\"><code>char timeWeekDay[10];\nstrftime(timeWeekDay,10, \"%A\", &amp;timeinfo);\nSerial.println(timeWeekDay);\nSerial.println();<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Demonstration<\/h2>\n\n\n\n<p>After inserting your network credentials and modifying the variables to change your timezone and daylight saving time, you can test the example.<\/p>\n\n\n\n<p>Upload the code your ESP32 board. Make sure you have the right board and COM port selected. After uploading the code, press the ESP32 &#8220;Enable&#8221; button, and you should get the date and time every second as shown in the following figure.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"793\" height=\"445\" src=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Request-Time-NRP-Server-Serial-Monitor.png?resize=793%2C445&#038;quality=100&#038;strip=all&#038;ssl=1\" alt=\"ESP32 Get Date and Time NTP Client-Server Arduino IDE Serial Monitor demonstration\" class=\"wp-image-95112\" srcset=\"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Request-Time-NRP-Server-Serial-Monitor.png?w=793&amp;quality=100&amp;strip=all&amp;ssl=1 793w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Request-Time-NRP-Server-Serial-Monitor.png?resize=300%2C168&amp;quality=100&amp;strip=all&amp;ssl=1 300w, https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Request-Time-NRP-Server-Serial-Monitor.png?resize=768%2C431&amp;quality=100&amp;strip=all&amp;ssl=1 768w\" sizes=\"(max-width: 793px) 100vw, 793px\" \/><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Wrapping Up<\/h2>\n\n\n\n<p>In this tutorial you&#8217;ve learned how to get date and time from an NTP server using the ESP32 programmed with Arduino IDE. Now, you can use what you&#8217;ve learned here to timestamp the sensor readings in your own projects. <\/p>\n\n\n\n<p>This method only works if the ESP32 is connected to the Internet. If your project doesn\u2019t have access to the internet, you need to use other method. You can use an <a href=\"https:\/\/makeradvisor.com\/tools\/real-time-clock-module-ds1307\/\" target=\"_blank\" rel=\"noreferrer noopener\" aria-label=\" (opens in a new tab)\">RTC module like the DS1307<\/a>.<\/p>\n\n\n\n<p>If you want to learn more about the ESP32, check our resources:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/randomnerdtutorials.com\/learn-esp32-with-arduino-ide\/\">Learn ESP32 with Arduino IDE<\/a><\/li><li><a href=\"https:\/\/randomnerdtutorials.com\/micropython-programming-with-esp32-and-esp8266\/\">MicroPython Programming with ESP32 and ESP8266<\/a><\/li><li><a href=\"https:\/\/randomnerdtutorials.com\/projects-esp32\/\">More ESP32 Projects&#8230;<\/a><\/li><\/ul>\n\n\n\n<p>Thanks for reading.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn how to request date and time from an NTP Server using the ESP32 with Arduino IDE. Getting date and time is useful in data logging projects to timestamp readings. &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"ESP32 NTP Client-Server: Get Date and Time (Arduino IDE)\" class=\"read-more button\" href=\"https:\/\/randomnerdtutorials.com\/esp32-date-time-ntp-client-server-arduino\/#more-95109\" aria-label=\"Read more about ESP32 NTP Client-Server: Get Date and Time (Arduino IDE)\">CONTINUE READING \u00bb<\/a><\/p>\n","protected":false},"author":5,"featured_media":95110,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[276,281,277,299,264],"tags":[],"class_list":["post-95109","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-esp32","category-esp32-project","category-esp32-arduino-ide","category-0-esp32","category-project"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/randomnerdtutorials.com\/wp-content\/uploads\/2020\/03\/ESP32-Get-Date-Day-Time-Hour-Minute-Arduino-IDE-NTP-Client-Server.jpg?fit=1280%2C720&quality=100&strip=all&ssl=1","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/95109","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/comments?post=95109"}],"version-history":[{"count":0,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/posts\/95109\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media\/95110"}],"wp:attachment":[{"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/media?parent=95109"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/categories?post=95109"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/randomnerdtutorials.com\/wp-json\/wp\/v2\/tags?post=95109"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}