Last active
August 13, 2020 01:37
-
-
Save clive520/d79293310fc4a99e62122c648d552239 to your computer and use it in GitHub Desktop.
ESP32 NodeMCU 32S 取得網路時間
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <WiFi.h> | |
#include <NTPClient.h> | |
#include <WiFiUdp.h> | |
// Replace with your network credentials | |
const char* ssid = "book"; | |
const char* password = "12345678"; | |
// 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(9600); | |
Serial.print("Connecting to "); | |
Serial.println(ssid); | |
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(28800); //台灣時區要用28800 | |
} | |
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); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment