[英]How set epoch on ESP32 and Arduino IDE to update the timedate without external RTC and Wifi?
在我的 ESP32 上,我想获得有关没有 Wifi 连接或外部 RTC 芯片的实际时间的信息。 我从这个简单的代码开始
time_t now;
struct tm* timeinfo;
void Check_Time(void) {
time(&now);
timeinfo = localtime(&now);
Serial.println(timeinfo);
}
void setup() {
Serial.begin(115200);
}
void loop() {
Check_Time();
delay(1000);
}
它的工作原理是 output 是
Thu Jan 1 00:07:57 1970
Thu Jan 1 00:07:58 1970
Thu Jan 1 00:07:59 1970
Thu Jan 1 00:08:00 1970
...
它自然是从 1970 年 1 月 1 日开始的。现在我想将这次更新为实际的,但我还没有找到直接的解决方案。 我知道我可以使用mktime
function 将日期转换为time_t
数据(对吗?)但是我如何将它传递给系统? 我应该如何处理这个问题?
我通过使用它来工作:
#include <sys/time.h>
// ...
struct timeval tv;
tv.tv_sec = /* seconds since epoch here */;
tv.tv_usec = /* microseconds here */;
settimeofday(&tv, NULL);
用存储时间的变量替换注释。
我正在通过低功耗蓝牙更新我的时间。
这是它的工作原理:
1970 1 1 0 0 16
1970 1 1 0 0 17
1970 1 1 0 0 18
Time set
2020 12 6 22 45 32
2020 12 6 22 45 33
2020 12 6 22 45 34
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.