|
本帖最后由 慕名而来 于 2025-7-8 09:52 编辑
今年初跟着大家一起入手了两个一元钱的大夏龙雀 WF-25 ESP32C2 模块,入手后配置开发环境完成后测试了点亮LED灯的程序,并发了帖子:
一元钱的ESP32-C2模块成功点亮板载LED指示灯https://www.mydigit.cn/forum.php?mod=viewthread&tid=503038&fromuid=1505079(出处: 数码之家)
一晃半年过去了这个模块就再没摸过,最近想用它替换现在用的esp8266模块来联网获取时间,重新搭好硬件开始测试程序,原本以为这东西可以兼容8266的代码,试过后发展无法编译通过,于是转向AI编程,没想到“DeepSeep|深度求索”给出的代码竟然可以成功运行,直接就在串口助手窗口中看到了时间数据。
这是我的提问:
给出大夏龙雀的ESP32C2模块的完整可以运行的arduino代码,连接wifi并get时间并在串口助手窗口显示时间
这是答案:
以下是一个完整的 Arduino 代码,用于 ESP32-C2 模块连接 WiFi 并获取网络时间(NTP),然后在串口监视器中显示:
#include <WiFi.h>
#include <NTPClient.h>
#include <WiFiUdp.h>
// 替换为你的WiFi凭证
const char* ssid = "你的WiFi名称";
const char* password = "你的WiFi密码";
// 定义NTP客户端获取时间
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "ntp.ntsc.ac.cn", 28800, 60000); // 使用中国国家授时中心NTP服务器,+8时区(28800秒)
void setup() {
Serial.begin(115200);
// 连接WiFi
WiFi.begin(ssid, password);
Serial.print("正在连接到WiFi ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi连接成功");
Serial.print("IP地址: ");
Serial.println(WiFi.localIP());
// 初始化NTP客户端
timeClient.begin();
}
void loop() {
// 更新NTP时间
timeClient.update();
// 获取并打印格式化时间
String formattedTime = timeClient.getFormattedTime();
Serial.print("当前时间: ");
Serial.println(formattedTime);
// 获取并打印日期和时间
time_t epochTime = timeClient.getEpochTime();
struct tm *ptm = gmtime ((time_t *)&epochTime);
int currentYear = ptm->tm_year + 1900;
int currentMonth = ptm->tm_mon + 1;
int currentDay = ptm->tm_mday;
Serial.print("当前日期: ");
Serial.print(currentYear);
Serial.print("-");
Serial.print(currentMonth < 10 ? "0" : "");
Serial.print(currentMonth);
Serial.print("-");
Serial.print(currentDay < 10 ? "0" : "");
Serial.println(currentDay);
// 每5秒更新一次
delay(5000);
}
这是演示效果:
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|