ESP32 Arduino平台如何去同步中国北京时间并判断时间
ESP32 Arduino 可以通过连接到中国标准时间服务器来同步中国北京时间,并使用内置的 RTC(Real-Time Clock)模块进行时间判断。下面是一个简单的示例代码,演示如何在 ESP32 Arduino 中同步中国北京时间并做时间判断:
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp.ntsc.ac.cn", 8 * 3600, 60000);
void setup() {
Serial.begin(115200);
// 连接无线网络
WiFi.begin("SSID", "password");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi.");
// 同步中国北京时间
timeClient.begin();
while(!timeClient.update()) {
timeClient.forceUpdate();
}
Serial.println("Time synced.");
}
void loop() {
// 获取当前时间
time_t now = timeClient.getEpochTime();
struct tm * timeinfo;
timeinfo = localtime(&now);
// 判断时间是否在特定范围内
if (timeinfo->tm_hour >= 8 && timeinfo->tm_hour < 18) {
Serial.println("It's daytime.");
} else {
Serial.println("It's nighttime.");
}
delay(1000);
}