{"id":81038,"date":"2024-05-07T23:50:32","date_gmt":"2024-05-08T03:50:32","guid":{"rendered":"https:\/\/www.engineersgarage.com\/?p=81038"},"modified":"2024-08-21T22:23:32","modified_gmt":"2024-08-22T02:23:32","slug":"esp32-iot-analog-clock","status":"publish","type":"post","link":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/","title":{"rendered":"How to make an IoT-based analog clock using ESP32"},"content":{"rendered":"<p><span data-preserver-spaces=\"true\">In this project, we\u2019ll design an analog display clock using ESP32. The clock is an Internet-of-Things (IoT) device that retrieves the local time from a Network Time Protocol (NPT) server and displays the time (as well as the date) like an analog clock. \u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">The display used to build this IoT clock is SSD1306. However, any display module can be used, and the code can be altered to fit within the clock\u2019s dimensions.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">Without letting any more time run out<\/span><span data-preserver-spaces=\"true\">, let\u2019s build an analog clock<\/span><span data-preserver-spaces=\"true\">.<\/span><span data-preserver-spaces=\"true\">\u00a0<\/span><\/p>\n<p><strong><span data-preserver-spaces=\"true\">Components required\u00a0<\/span><\/strong><\/p>\n<ol>\n<li><span data-preserver-spaces=\"true\">ESP32 x1<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">SSD1306 OLED x1<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">Connecting\/Dupont wires<\/span><\/li>\n<\/ol>\n<p><strong><span data-preserver-spaces=\"true\">Circuit connections<br \/>\n<\/span><\/strong><span data-preserver-spaces=\"true\">To design the analog clock, we first must interface SSD1306 OLED with ESP32. The SSD1306 used in this project has a Serial Peripheral Interface (SPI) interface with the following pin diagram.\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81039\" src=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01.png\" alt=\"\" width=\"450\" height=\"452\" srcset=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01.png 450w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01-300x300.png 300w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01-150x150.png 150w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-01-237x238.png 237w\" sizes=\"auto, (max-width: 450px) 100vw, 450px\" \/><\/a><\/p>\n<p>To interface the SSD1306 OLED with ESP32, follow the circuit connections as described in the below table.<\/p>\n<p><a href=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-81044\" src=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table-1024x756.png\" alt=\"\" width=\"562\" height=\"415\" srcset=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table-1024x756.png 1024w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table-300x221.png 300w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table-768x567.png 768w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table-323x238.png 323w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/SSD1306-OLED-with-ESP32-table.png 1038w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/a><\/p>\n<p>The circuit diagram of the IoT-based analog clock is represented in the below image.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-81040\" src=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-02.png\" alt=\"\" width=\"640\" height=\"433\" srcset=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-02.png 640w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-02-300x203.png 300w, https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-02-352x238.png 352w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/p>\n<p><strong>Arduino sketch<br \/>\n<\/strong>After making circuit connections, upload the following sketch to ESP32. Remember to replace the SSID and Wi-Fi password in the sketch with your own. Also, you might need to adjust the time to the one in your time zone.<\/p>\n<style>\n.gist-data{    height:250px; \/\/ Any height    overflow: auto;<br \/>}<\/style>\n<p><script src=\"https:\/\/gist.github.com\/Ajak58a\/890f6ae9b0361cecc20fa0acecb2b72b.js\"><\/script><\/p>\n<p><strong><span data-preserver-spaces=\"true\">How it works<br \/>\n<\/span><\/strong><span data-preserver-spaces=\"true\">The clock is an IoT device. As such, the microcontroller (ESP32) connects with the Internet for the current local time for the given time zone from the NTP server. POSIX is the time received,\u00a0<\/span><span data-preserver-spaces=\"true\">provided<\/span><span data-preserver-spaces=\"true\">\u00a0as seconds passed since January 1st, 1970.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">The time is stored in a structure using Arduino\u2019s time library. An analog clock is printed on the screen of the SSD1306 OLED. The hour, minute, and second hands are printed according to the current value of the time sent by the NTP server. The date and day of the week are also printed on the screen. The time is updated every second, and the screen is refreshed at the same interval.<\/span><\/p>\n<p><strong><span data-preserver-spaces=\"true\">The code<br \/>\n<\/span><\/strong><span data-preserver-spaces=\"true\">The sketch begins by importing the SPI.h, Wire.h, Adafruit_GFX.h, Adafruit_SSD1306.h, WiFi.h, and time.h libraries.\u00a0<\/span><\/p>\n<ul>\n<li><span data-preserver-spaces=\"true\">The SPI.h, Wire.h, Adafruit_GFX.h and Adafruit_SSD1306.h libraries are required to work with the SSD1306 OLED.\u00a0<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">The WiFi.h library handles and connects with the Wi-Fi network to access the Internet.\u00a0<\/span><\/li>\n<li><span data-preserver-spaces=\"true\">The time<\/span><span data-preserver-spaces=\"true\">.h<\/span><span data-preserver-spaces=\"true\">\u00a0library converts the current POSIX time into the hours, minutes, seconds, month, day, and weekday values.\u00a0<\/span><\/li>\n<\/ul>\n<p><span data-preserver-spaces=\"true\">This<\/span><span data-preserver-spaces=\"true\">\u00a0is followed by\u00a0<\/span><span data-preserver-spaces=\"true\">the declaration of<\/span><span data-preserver-spaces=\"true\">\u00a0constants and ESP32\u2019s pin assignments with SSD1306. An object of Adafruit_SSD1306 is instantiated. The variables are declared to store the Wi-Fi SSID, Wi-Fi password, and time zone.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">In the setup() function, the baud rate for serial debug messages is set to 115200 bps. The Wi-Fi connection is initialized, and the local IP address is printed to the serial console. The SSD1306 OLED display is also initialized. The connection with the NTP server is verified.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">In the loop() function, the current time is retrieved from the NTP server and stored in a structure. The radius of the clock hands is set to 30 pixels. The numbers, indicating the hour ticks, are printed on the screen.\u00a0<\/span><\/p>\n<p><span data-preserver-spaces=\"true\">Based on the current time\u2019s hour, minute, and second values, the hour, minute, and second hands are printed at appropriate angles on the screen. The current date and day of the week are also printed on the screen. The screen is refreshed in each loop iteration.\u00a0<\/span><\/p>\n<p><strong><span data-preserver-spaces=\"true\">Results<br \/>\n<\/span><\/strong><\/p>\n<div style=\"width: 740px;\" class=\"wp-video\"><!--[if lt IE 9]><script>document.createElement('video');<\/script><![endif]-->\n<video class=\"wp-video-shortcode\" id=\"video-81038-1\" width=\"740\" height=\"416\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-DV.mp4?_=1\" \/><a href=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-DV.mp4\">https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/P60-DV.mp4<\/a><\/video><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this project, we\u2019ll design an analog display clock using ESP32. The clock is an Internet-of-Things (IoT) device that retrieves the local time from a Network Time Protocol (NPT) server and displays the time (as well as the date) like an analog clock. \u00a0 The display used to build this IoT clock is SSD1306. However,&hellip;<\/p>\n","protected":false},"author":387,"featured_media":81043,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[13,1707,1871],"tags":[1196,4457,47,3337,2479,1408,4458,3458],"class_list":{"2":"type-post","18":"entry","19":"has-post-thumbnail"},"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v25.2 (Yoast SEO v25.2) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to make an IoT-based analog clock using ESP32<\/title>\n<meta name=\"description\" content=\"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to make an IoT-based analog clock using ESP32\" \/>\n<meta property=\"og:description\" content=\"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\" \/>\n<meta property=\"og:site_name\" content=\"Engineers Garage\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/engineersgarage\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"498\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nikhil Agnihotri\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@EngineersGarage\" \/>\n<meta name=\"twitter:site\" content=\"@EngineersGarage\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nikhil Agnihotri\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\"},\"author\":{\"name\":\"Nikhil Agnihotri\",\"@id\":\"https:\/\/www.engineersgarage.com\/#\/schema\/person\/3c71105e3b40a1fd12c79c15602914b6\"},\"headline\":\"How to make an IoT-based analog clock using ESP32\",\"datePublished\":\"2024-05-08T03:50:32+00:00\",\"dateModified\":\"2024-08-22T02:23:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\"},\"wordCount\":590,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.engineersgarage.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png\",\"keywords\":[\"analog\",\"analogclock\",\"clock\",\"ESP32\",\"internetofthings\",\"IoT\",\"ntpserver\",\"SSD1306\"],\"articleSection\":[\"Electronic Projects\",\"ESP8266\",\"Video\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\",\"url\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\",\"name\":\"How to make an IoT-based analog clock using ESP32\",\"isPartOf\":{\"@id\":\"https:\/\/www.engineersgarage.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png\",\"datePublished\":\"2024-05-08T03:50:32+00:00\",\"dateModified\":\"2024-08-22T02:23:32+00:00\",\"description\":\"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage\",\"url\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png\",\"contentUrl\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png\",\"width\":800,\"height\":498},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.engineersgarage.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to make an IoT-based analog clock using ESP32\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.engineersgarage.com\/#website\",\"url\":\"https:\/\/www.engineersgarage.com\/\",\"name\":\"Engineers Garage\",\"description\":\"Electronic Projects, Electrical Engineering Resources, Makers Articles and Product News\",\"publisher\":{\"@id\":\"https:\/\/www.engineersgarage.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.engineersgarage.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.engineersgarage.com\/#organization\",\"name\":\"Engineer's Garage - WTWH Media\",\"url\":\"https:\/\/www.engineersgarage.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.engineersgarage.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2019\/08\/EGlogo.png\",\"contentUrl\":\"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2019\/08\/EGlogo.png\",\"width\":372,\"height\":52,\"caption\":\"Engineer's Garage - WTWH Media\"},\"image\":{\"@id\":\"https:\/\/www.engineersgarage.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/engineersgarage\",\"https:\/\/x.com\/EngineersGarage\",\"https:\/\/www.youtube.com\/channel\/UC0VITh11JSYk-UW7toLebUw\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.engineersgarage.com\/#\/schema\/person\/3c71105e3b40a1fd12c79c15602914b6\",\"name\":\"Nikhil Agnihotri\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.engineersgarage.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d26b31563fa36169891c8c7d312e9b33de8a0e3da1340ec14ef2de84d5c43497?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d26b31563fa36169891c8c7d312e9b33de8a0e3da1340ec14ef2de84d5c43497?s=96&r=g\",\"caption\":\"Nikhil Agnihotri\"},\"url\":\"https:\/\/www.engineersgarage.com\/author\/nikhil-agnihotri\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to make an IoT-based analog clock using ESP32","description":"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/","og_locale":"en_US","og_type":"article","og_title":"How to make an IoT-based analog clock using ESP32","og_description":"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.","og_url":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/","og_site_name":"Engineers Garage","article_publisher":"https:\/\/www.facebook.com\/engineersgarage","og_image":[{"width":800,"height":498,"url":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png","type":"image\/png"}],"author":"Nikhil Agnihotri","twitter_card":"summary_large_image","twitter_creator":"@EngineersGarage","twitter_site":"@EngineersGarage","twitter_misc":{"Written by":"Nikhil Agnihotri","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#article","isPartOf":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/"},"author":{"name":"Nikhil Agnihotri","@id":"https:\/\/www.engineersgarage.com\/#\/schema\/person\/3c71105e3b40a1fd12c79c15602914b6"},"headline":"How to make an IoT-based analog clock using ESP32","datePublished":"2024-05-08T03:50:32+00:00","dateModified":"2024-08-22T02:23:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/"},"wordCount":590,"commentCount":0,"publisher":{"@id":"https:\/\/www.engineersgarage.com\/#organization"},"image":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage"},"thumbnailUrl":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png","keywords":["analog","analogclock","clock","ESP32","internetofthings","IoT","ntpserver","SSD1306"],"articleSection":["Electronic Projects","ESP8266","Video"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/","url":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/","name":"How to make an IoT-based analog clock using ESP32","isPartOf":{"@id":"https:\/\/www.engineersgarage.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage"},"image":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage"},"thumbnailUrl":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png","datePublished":"2024-05-08T03:50:32+00:00","dateModified":"2024-08-22T02:23:32+00:00","description":"We will design Iot analog display clock using ESP32 that fetches local time from Network Time Protocol (NPT) server and displays the time.","breadcrumb":{"@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#primaryimage","url":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png","contentUrl":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator.png","width":800,"height":498},{"@type":"BreadcrumbList","@id":"https:\/\/www.engineersgarage.com\/esp32-iot-analog-clock\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.engineersgarage.com\/"},{"@type":"ListItem","position":2,"name":"How to make an IoT-based analog clock using ESP32"}]},{"@type":"WebSite","@id":"https:\/\/www.engineersgarage.com\/#website","url":"https:\/\/www.engineersgarage.com\/","name":"Engineers Garage","description":"Electronic Projects, Electrical Engineering Resources, Makers Articles and Product News","publisher":{"@id":"https:\/\/www.engineersgarage.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.engineersgarage.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.engineersgarage.com\/#organization","name":"Engineer's Garage - WTWH Media","url":"https:\/\/www.engineersgarage.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.engineersgarage.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2019\/08\/EGlogo.png","contentUrl":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2019\/08\/EGlogo.png","width":372,"height":52,"caption":"Engineer's Garage - WTWH Media"},"image":{"@id":"https:\/\/www.engineersgarage.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/engineersgarage","https:\/\/x.com\/EngineersGarage","https:\/\/www.youtube.com\/channel\/UC0VITh11JSYk-UW7toLebUw"]},{"@type":"Person","@id":"https:\/\/www.engineersgarage.com\/#\/schema\/person\/3c71105e3b40a1fd12c79c15602914b6","name":"Nikhil Agnihotri","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.engineersgarage.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d26b31563fa36169891c8c7d312e9b33de8a0e3da1340ec14ef2de84d5c43497?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d26b31563fa36169891c8c7d312e9b33de8a0e3da1340ec14ef2de84d5c43497?s=96&r=g","caption":"Nikhil Agnihotri"},"url":"https:\/\/www.engineersgarage.com\/author\/nikhil-agnihotri\/"}]}},"featured_image_src":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator-600x400.png","featured_image_src_square":"https:\/\/www.engineersgarage.com\/wp-content\/uploads\/2024\/05\/Analog-IoT-clock-rotator-600x498.png","author_info":{"display_name":"Nikhil Agnihotri","author_link":"https:\/\/www.engineersgarage.com\/author\/nikhil-agnihotri\/"},"_links":{"self":[{"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/posts\/81038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/users\/387"}],"replies":[{"embeddable":true,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/comments?post=81038"}],"version-history":[{"count":0,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/posts\/81038\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/media\/81043"}],"wp:attachment":[{"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/media?parent=81038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/categories?post=81038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.engineersgarage.com\/wp-json\/wp\/v2\/tags?post=81038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}