ESP32单片机获取网络时间的代码
时间: 2024-10-11 17:09:26 浏览: 76
ESP32单片机可以使用其集成的Wi-Fi模块(如WIFI、ESP32-S2等)通过NTP协议(Network Time Protocol)获取网络时间。以下是一个基本的示例代码,使用第三方库`esp8266_ntp`:
```cpp
#include <ESP8266WiFi.h>
#include <TinyNTPClient.h>
// WiFi配置
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
TinyNTPClient NTPClient; // 创建NTP客户端实例
void setup() {
Serial.begin(115200); // 打开串口调试
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) { // 等待连接成功
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
if (!NTPClient.begin()) { // 初始化NTP客户端
Serial.println("Failed to initialize NTP client");
return;
}
}
void loop() {
uint32_t timeOffset = NTPClient.getEpochTime(); // 获取UTC时间戳
String currentTime = "Current time: " + String(timeOffset / 1000); // 格式化并打印时间
Serial.println(currentTime);
delay(60 * 1000); // 每分钟更新一次
}
```
在这个例子中,你需要先安装`esp8266_ntp`库(可以在Arduino IDE的库管理器中搜索),然后将SSID和密码替换为实际的无线网络信息。这个程序会在连接到WiFi后每分钟尝试从NTP服务器获取一次当前的时间。
阅读全文