ESP32通过WiFi从NTP服务器获取日期和时间的Arduino小小demo

一、参考链接

https://lastminuteengineers.com/esp32-ntp-server-date-time-tutorial/

二、献上代码

#include <WiFi.h>
#include "time.h"

const char* ssid       = "Wifi24";
const char* password   = "*_zheshimima_*";

const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 28800;
const int   daylightOffset_sec = 0;

void printLocalTime()
{
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %Y-%m-%d %H:%M:%S");
}

void setup()
{
  Serial.begin(115200);
  
  //connect to WiFi
  Serial.printf("Connecting to %s ", ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
  }
  Serial.println(" CONNECTED");
  
  //init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  printLocalTime();

  //disconnect WiFi as it's no longer needed
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

void loop()
{
  delay(1000);
  printLocalTime();
}

三、刷写方式

1、打开Arduino,在文件--首选项--附加开发板管理器网址加上如下内容

https://dl.espressif.com/dl/package_esp32_index.json

2、在工具--开发板--开发板管理器,左键,搜索ESP32,选择最新的版本安装即可

3、选择开发板ESP32 Wrover Module,选择端口号

4、直接上传即可,若出现Connecting........____一直这样的话,充电口对着你的胸口,按住充电的右边那个Boot建不放(不是EN键),直至出现下一行开始刷入,再松开即可刷入

四、查看显示方式,工具--串口监视器,然后选择115200波特率你就可以看到了打印中国时间,按一下EN键就重新连接Wifi然后打印时间

猜你喜欢

转载自blog.csdn.net/gonepoo/article/details/107475584