你如何获得arduino-esp8266的时间戳

sta*_*One 5 timestamp ntp esp8266 arduino-esp8266

我想获得arduino-esp8266(https://github.com/esp8266/Arduino)的时间戳.

但我不知道如何做到这一点.

我想我们必须从互联网上得到时间,因为ESP8266没有时钟.我们是否只需要一次或每次需要时间戳时都这样做?

我已经通过wifi连接到互联网.

cag*_*das 8

NTP是远程获取时间的可靠方法.像@Marcel这样的NTP库表示正在与服务器建立UDP间隔.因此,在使用之前,您无需对服务器进行任何轮询.以下是1小时偏移和1分钟刷新间隔的NTP库的用法:

#include <NTPClient.h>
#include <ESP8266WiFi.h>
#include <WiFiUdp.h>

#define NTP_OFFSET   60 * 60      // In seconds
#define NTP_INTERVAL 60 * 1000    // In miliseconds
#define NTP_ADDRESS  "europe.pool.ntp.org"

WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, NTP_ADDRESS, NTP_OFFSET, NTP_INTERVAL);

void setup(){
  timeClient.begin();
}

void loop() {
  timeClient.update();
}
Run Code Online (Sandbox Code Playgroud)

要随时获取时间戳或格式化时间,请使用以下函数:

String formattedTime = timeClient.getFormattedTime();
unsigned long epcohTime =  timeClient.getEpochTime();
Run Code Online (Sandbox Code Playgroud)

  • 我添加了这个:`#include <WiFiUdp.h>`并且它正在编译 (4认同)