野生程序员
发布于 2022-08-30 / 365 阅读 / 0 评论 / 0 点赞

esp32 arduino ntp 同步时间

代码

#include <Arduino.h>
#include <WiFi.h>


const char *ntpServer = "192.168.10.6";//"time.nist.gov";//192.168.10.6
const long gmtOffset_sec = 8 * 3600;
const int daylightOffset_sec = 0;
String dt="";

String printLocalTime()
{
    struct tm timeinfo;
    if (!getLocalTime(&timeinfo))
    {
        // Serial.println("同步时间失败");
        return "";
    }
    // Serial.println(&timeinfo, "%F %T %A"); // 格式化输出
  time_t now;
  time(&now);
  Serial.println("时间:");
  Serial.println(now);
  int a =1657189727;  
  char b[4];
  // &b = (char *)now;
  memcpy(b, &a, 4);

  Serial.print(b[0], HEX);
  Serial.println("");

  Serial.print(b[1], HEX);
  Serial.println("");

  Serial.print(b[2], HEX);
  Serial.println("");

  Serial.print(b[3], HEX);
  Serial.println("");


  // Serial.print(c[i], HEX);
  return String(now);
}

void timsetup()
{
    // 从网络时间服务器上获取并设置时间
    // 获取成功后芯片会使用RTC时钟保持时间的更新
    configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
}

void setup()
{
  
  Serial.begin(115200);
  Serial.println("");
  String wifi_u = "qq547176052";
  String wifi_p = "547176052qq";
  Serial.println("连接wifi");
  WiFi.mode(WIFI_STA); //设置STA模式
  WiFi.begin(wifi_u.c_str() , wifi_p.c_str() );

     for (size_t i = 0; i < 20; i++)
     {
         if (WiFi.status()==WL_CONNECTED) 
         {
             break;
         }
         Serial.println("连接wifi...");
         delay(1000);
     }

     if (WiFi.status()==WL_CONNECTED) 
     {
         Serial.println("wifi 连接成功");
     }else{
         Serial.println("wifi 连接失败");
     }

  delay(3000);
  Serial.println("时间同步");
  //时间同步
  timsetup();
  
  for(;;){
    delay(3000);
    dt = printLocalTime();
    Serial.print("时间戳:");Serial.println(dt);
    }
  

}


void loop()
{
  
}


评论