Difference between revisions of "WeMOS: D1 R1 mini NTP via Serial"
Jump to navigation
Jump to search
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
Line 48: | Line 48: | ||
//Serial.println(timeClient.getFormattedTime()); | //Serial.println(timeClient.getFormattedTime()); | ||
delay(1000); | delay(1000); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | Alternatif Code | ||
+ | |||
+ | /* | ||
+ | Rui Santos | ||
+ | Complete project details at https://RandomNerdTutorials.com/esp8266-nodemcu-date-time-ntp-client-server-arduino/ | ||
+ | |||
+ | Permission is hereby granted, free of charge, to any person obtaining a copy | ||
+ | of this software and associated documentation files. | ||
+ | |||
+ | The above copyright notice and this permission notice shall be included in all | ||
+ | copies or substantial portions of the Software. | ||
+ | */ | ||
+ | |||
+ | #include <ESP8266WiFi.h> | ||
+ | #include <NTPClient.h> | ||
+ | #include <WiFiUdp.h> | ||
+ | |||
+ | // Replace with your network credentials | ||
+ | // const char *ssid = "REPLACE_WITH_YOUR_SSID"; | ||
+ | // const char *password = "REPLACE_WITH_YOUR_PASSWORD"; | ||
+ | const char *ssid = "o1"; | ||
+ | const char *password = "Dzaq1993!"; | ||
+ | |||
+ | // Define NTP Client to get time | ||
+ | WiFiUDP ntpUDP; | ||
+ | NTPClient timeClient(ntpUDP, "pool.ntp.org"); | ||
+ | |||
+ | //Week Days | ||
+ | String weekDays[7]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; | ||
+ | |||
+ | //Month names | ||
+ | String months[12]={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; | ||
+ | |||
+ | void setup() { | ||
+ | // Initialize Serial Monitor | ||
+ | Serial.begin(115200); | ||
+ | |||
+ | // Connect to Wi-Fi | ||
+ | Serial.print("Connecting to "); | ||
+ | Serial.println(ssid); | ||
+ | WiFi.begin(ssid, password); | ||
+ | while (WiFi.status() != WL_CONNECTED) { | ||
+ | delay(500); | ||
+ | Serial.print("."); | ||
+ | } | ||
+ | |||
+ | // Initialize a NTPClient to get time | ||
+ | timeClient.begin(); | ||
+ | // Set offset time in seconds to adjust for your timezone, for example: | ||
+ | // GMT +1 = 3600 | ||
+ | // GMT +7 = 25200 | ||
+ | // GMT +8 = 28800 | ||
+ | // GMT -1 = -3600 | ||
+ | // GMT 0 = 0 | ||
+ | timeClient.setTimeOffset(25200); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | timeClient.update(); | ||
+ | |||
+ | time_t epochTime = timeClient.getEpochTime(); | ||
+ | Serial.print("Epoch Time: "); | ||
+ | Serial.println(epochTime); | ||
+ | |||
+ | String formattedTime = timeClient.getFormattedTime(); | ||
+ | Serial.print("Formatted Time: "); | ||
+ | Serial.println(formattedTime); | ||
+ | |||
+ | int currentHour = timeClient.getHours(); | ||
+ | Serial.print("Hour: "); | ||
+ | Serial.println(currentHour); | ||
+ | |||
+ | int currentMinute = timeClient.getMinutes(); | ||
+ | Serial.print("Minutes: "); | ||
+ | Serial.println(currentMinute); | ||
+ | |||
+ | int currentSecond = timeClient.getSeconds(); | ||
+ | Serial.print("Seconds: "); | ||
+ | Serial.println(currentSecond); | ||
+ | |||
+ | String weekDay = weekDays[timeClient.getDay()]; | ||
+ | Serial.print("Week Day: "); | ||
+ | Serial.println(weekDay); | ||
+ | |||
+ | //Get a time structure | ||
+ | struct tm *ptm = gmtime ((time_t *)&epochTime); | ||
+ | |||
+ | int monthDay = ptm->tm_mday; | ||
+ | Serial.print("Month day: "); | ||
+ | Serial.println(monthDay); | ||
+ | |||
+ | int currentMonth = ptm->tm_mon+1; | ||
+ | Serial.print("Month: "); | ||
+ | Serial.println(currentMonth); | ||
+ | |||
+ | String currentMonthName = months[currentMonth-1]; | ||
+ | Serial.print("Month name: "); | ||
+ | Serial.println(currentMonthName); | ||
+ | |||
+ | int currentYear = ptm->tm_year+1900; | ||
+ | Serial.print("Year: "); | ||
+ | Serial.println(currentYear); | ||
+ | |||
+ | //Print complete date: | ||
+ | String currentDate = String(currentYear) + "-" + String(currentMonth) + "-" + String(monthDay); | ||
+ | Serial.print("Current date: "); | ||
+ | Serial.println(currentDate); | ||
+ | |||
+ | Serial.println(""); | ||
+ | |||
+ | delay(2000); | ||
} | } |
Latest revision as of 20:16, 3 April 2023
/* NTP Display via Serial */ #include <NTPClient.h> #include <ESP8266WiFi.h> #include <WiFiUdp.h> const char *ssid = "o1"; const char *password = "Dzaq1993!"; const long utcOffsetInSeconds = 25200; char daysOfTheWeek[7][12] = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; // Define NTP Client to get time WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "asia.pool.ntp.org", utcOffsetInSeconds); int hh, mm, ss; void setup() { Serial.begin(115200); WiFi.begin(ssid, password); while ( WiFi.status() != WL_CONNECTED ) { delay ( 500 ); Serial.print ( "." ); } timeClient.begin(); } void loop() { timeClient.update(); hh = timeClient.getHours(); mm = timeClient.getMinutes(); ss = timeClient.getSeconds(); Serial.print(daysOfTheWeek[timeClient.getDay()]); Serial.print(", "); Serial.print(hh); Serial.print(":"); Serial.print(mm); Serial.print(":"); Serial.println(ss); //Serial.println(timeClient.getFormattedTime()); delay(1000); }
Alternatif Code
/* Rui Santos Complete project details at https://RandomNerdTutorials.com/esp8266-nodemcu-date-time-ntp-client-server-arduino/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. */ #include <ESP8266WiFi.h> #include <NTPClient.h> #include <WiFiUdp.h> // Replace with your network credentials // const char *ssid = "REPLACE_WITH_YOUR_SSID"; // const char *password = "REPLACE_WITH_YOUR_PASSWORD"; const char *ssid = "o1"; const char *password = "Dzaq1993!"; // Define NTP Client to get time WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "pool.ntp.org"); //Week Days String weekDays[7]={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; //Month names String months[12]={"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}; void setup() { // Initialize Serial Monitor Serial.begin(115200); // Connect to Wi-Fi Serial.print("Connecting to "); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } // Initialize a NTPClient to get time timeClient.begin(); // Set offset time in seconds to adjust for your timezone, for example: // GMT +1 = 3600 // GMT +7 = 25200 // GMT +8 = 28800 // GMT -1 = -3600 // GMT 0 = 0 timeClient.setTimeOffset(25200); } void loop() { timeClient.update(); time_t epochTime = timeClient.getEpochTime(); Serial.print("Epoch Time: "); Serial.println(epochTime); String formattedTime = timeClient.getFormattedTime(); Serial.print("Formatted Time: "); Serial.println(formattedTime); int currentHour = timeClient.getHours(); Serial.print("Hour: "); Serial.println(currentHour); int currentMinute = timeClient.getMinutes(); Serial.print("Minutes: "); Serial.println(currentMinute); int currentSecond = timeClient.getSeconds(); Serial.print("Seconds: "); Serial.println(currentSecond); String weekDay = weekDays[timeClient.getDay()]; Serial.print("Week Day: "); Serial.println(weekDay); //Get a time structure struct tm *ptm = gmtime ((time_t *)&epochTime); int monthDay = ptm->tm_mday; Serial.print("Month day: "); Serial.println(monthDay); int currentMonth = ptm->tm_mon+1; Serial.print("Month: "); Serial.println(currentMonth); String currentMonthName = months[currentMonth-1]; Serial.print("Month name: "); Serial.println(currentMonthName); int currentYear = ptm->tm_year+1900; Serial.print("Year: "); Serial.println(currentYear); //Print complete date: String currentDate = String(currentYear) + "-" + String(currentMonth) + "-" + String(monthDay); Serial.print("Current date: "); Serial.println(currentDate); Serial.println(""); delay(2000); }