如果在ESP32中获取当前时间?

/*
   主程序文件
   包含了连接WiFi和获取NTP时间的功能示例
*/

// 包含必要的头文件
#include <Arduino.h>
#include <WiFi.h>
#include <time.h>

// WiFi配置参数
const char *ssid = "WIFI名称";              // WiFi SSID
const char *password = "WIFI密码";    // WiFi密码
int retryCount = 0;                     // WiFi连接重试计数

// NTP配置参数, 使用阿里云的NTP服务器
const char *ntpServer = "ntp1.aliyun.com";
const long gmtOffset_sec = 8 * 3600;    // 时区偏移量,北京是GMT+8
const int daylightOffset_sec = 0;       // 夏令时偏移量,中国无夏令时

//打印本地时间
void printLocalTime()
{
  struct tm timeinfo;
  if (!getLocalTime(&timeinfo))
  {
    Serial.println("获取时间失败");
    return;
  }
  // 格式化并打印时间
  Serial.println(&timeinfo, "%F %T"); // "%F %T"  // %A, %B %d %Y %H:%M:%S
}

void setup()
{
  // 连接WiFi
  WiFi.begin(ssid, password);
  // 初始化串口通信
  Serial.begin(115200);

  // 循环等待WiFi连接成功
  while (WiFi.status() != WL_CONNECTED)
  {
    delay(1000);
    Serial.println("Connecting to WiFi..");
    retryCount++;
    if (retryCount >= 10)
    {
      break; // 最多重试10次
    }
  }

  // 打印连接成功信息及IP地址
  Serial.println("Connected to the WiFi network");
  Serial.println("IP address:");
  Serial.println(WiFi.localIP());

  // 配置NTP服务器,开始同步时间
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}
void loop()
{

  printLocalTime(); // 打印当前本地时间
  delay(1000); // 每秒更新一次时间
}

标签: ESP32, ESP32获取当前时间, ESP32获取互联网时间

添加新评论