範例十二
取得網路時間
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
// WiFi
char ssid1[] = "mason-4f"; // your network SSID (name)
char pass1[] = "a12341234"; // your network password
int status = WL_IDLE_STATUS; // the Wifi radio's status
//網路校時
//https://randomnerdtutorials.com/esp8266-nodemcu-date-time-ntp-client-server-arduino/
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP);
String currTime("");
void setup()
{
Serial.begin(115200);
WiFi.begin(ssid1, pass1);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.println("Connecting to WiFi..");
}
Serial.println(WiFi.localIP());
if (WiFi.status() == WL_CONNECTED )
{
// 使用 NTP 校時
timeClient.begin();
timeClient.setTimeOffset(8 * 3600); //UTC+8
while (!timeClient.update()) {
timeClient.forceUpdate();
}
}
}
void loop()
{
// Delay between measurements.
delay(1000);
unsigned long epochTime = timeClient.getEpochTime();
struct tm *ptm = gmtime((time_t *)&epochTime);
currTime = String(ptm->tm_year + 1900) + "-" + String(ptm->tm_mon + 1) + "-" + String(ptm->tm_mday) + " " + timeClient.getFormattedTime();
Serial.println(currTime);
}