|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
上一篇:AI编程玩一元钱的ESP32-C2模块【2】——创建AP热点https://www.mydigit.cn/forum.php?mod=viewthread&tid=533494&fromuid=1505079(出处: 数码之家)
测试了建立热点AP,可以通过手机为本模块配置wifi联网,本篇是将前两篇测试目标综合起来的测试,就是模块上电后如果通过内部保存的wifi联网信息可以正常的链接网络,则获取时间数据发送到串口显示出来,如果联网失败则释放出一个热点AP,手机连接这个热点AP后可在手机中输入wifi名称、密码使模块重新联网,这个功能一般用于家里的路由器换新,wifi名称、密码更换的场景。
AI生成的代码如下:
- #include <WiFi.h>
- #include <WiFiManager.h>
- #include <time.h>
- // 定义NTP服务器和时区配置
- const char* ntpServer = "pool.ntp.org";
- const long gmtOffset_sec = 8 * 3600;
- const int daylightOffset_sec = 0;
- // 创建WiFiManager实例
- WiFiManager wifiManager;
- void setup() {
- // 初始化串口
- Serial.begin(115200);
- while (!Serial); // 等待串口连接
- Serial.println("ESP32C2 NTP时间获取示例(使用WiFiManager)");
- // 配置WiFiManager
- // 尝试自动连接WiFi:
- // - 若之前保存过WiFi配置,会自动连接;
- // - 若未保存/连接失败,会创建名为「ESP32C2_AP」的AP
- bool isWiFiConnected = wifiManager.autoConnect("ESP32C2_AP");
- if (isWiFiConnected) {
- // WiFi连接成功:初始化NTP客户端,准备获取实时时间
- Serial.println("WiFi连接成功,开始初始化NTP客户端...");
- } else {
- // WiFi自动连接失败:提示用户连接AP热点进行WiFi配置
- Serial.println("WiFi自动连接失败,已创建AP热点「ESP32C2_AP」,请手机连接后配置WiFi");
- }
- // 配置并初始化NTP客户端
- configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
- // 等待NTP时间同步
- Serial.println("等待NTP时间同步...");
- struct tm timeinfo;
- while (!getLocalTime(&timeinfo)) {
- Serial.print(".");
- delay(1000);
- }
- Serial.println("\nNTP时间同步成功");
- }
- void loop() {
- // 获取当前时间
- struct tm timeinfo;
- if (!getLocalTime(&timeinfo)) {
- Serial.println("获取时间失败");
- return;
- }
- // 格式化并打印时间到串口
- char timeString[64];
- strftime(timeString, sizeof(timeString), "%Y-%m-%d %H:%M:%S", &timeinfo);
- Serial.println(timeString);
- // 每5秒更新一次
- delay(5000);
- }
复制代码
|
|