本站改版新增arduino频道
arduino 获取网络时间
#include <Arduino.h> #include <WiFi.h> #define NTP1 "ntp1.aliyun.com" #define NTP2 "ntp2.aliyun.com" #define NTP3 "ntp3.aliyun.com" //填写WIFI入网信息 const char *ssid = "NBWIFI"; // WIFI账户 const char *password = "z7758521"; // WIFI密码 const String WDAY_NAMES[] = {"星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"}; //星期 const String MONTH_NAMES[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; //月份 //time_t now; //实例化时间 void setClock() { struct tm timeInfo; //声明一个结构体 if (!getLocalTime(&timeInfo)) { //一定要加这个条件判断,否则内存溢出 Serial.println("Failed to obtain time"); return; } //Serial.print(asctime(&timeInfo)); //默认打印格式:Mon Oct 25 11:13:29 2021 String date = WDAY_NAMES[timeInfo.tm_wday]; Serial.println(date.c_str()); // sprintf_P(buff1, PSTR("%04d-%02d-%02d %s"), timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday, WDAY_NAMES[timeInfo.tm_wday].c_str()); String shuju = String(timeInfo.tm_year + 1900); //年 shuju += "-"; shuju += timeInfo.tm_mon + 1; //月 shuju += "-"; shuju += timeInfo.tm_mday; //日 shuju += " "; shuju += timeInfo.tm_hour; //时 shuju += ":"; shuju += timeInfo.tm_min; shuju += ":"; shuju += timeInfo.tm_sec; shuju += " "; shuju += WDAY_NAMES[timeInfo.tm_wday].c_str(); //星期 Serial.println(shuju.c_str()); } void setup() { Serial.begin(115200); Serial.println(); //设置ESP32工作模式为无线终端模式 WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected!"); configTime(8 * 3600, 0, NTP1, NTP2, NTP3); } void loop() { Serial.println("Waiting 10s before the next round..."); delay(10000); setClock(); // printLocalTime(); } 2222222222222222 #include <WiFi.h> #define NTP "ntp.aliyun.com" //填写自己的WIFI信息 const char *ssid = "NBWIFI"; const char *password = "z7758521"; void wifi_init(){ WiFi.mode(WIFI_STA);//配置ESP32 工作模式 WiFi.begin(ssid, password); Serial.println("正在连接 WiFi."); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("WiFi connected!"); } void time_init() { struct tm timeinfo; // 定义时间信息 //如果获取失败,就开启联网模式,获取时间 if (!getLocalTime(&timeinfo)){ Serial.println("获取时间失败"); //开启网络 wifi_init(); // 从网络时间服务器上获取并设置时间 configTime(8 * 3600, 0, NTP);//时区,夏令时,NTP地址 return; } // 格式化输出:2021-10-24 23:00:44 Sunday Serial.println(&timeinfo, "%F %T %A"); // WiFi.disconnect(true);//在不需要开启网络的情况下,可以主动断开网络连接。 } void setup(){ Serial.begin(115200); wifi_init(); } void loop() { time_init(); delay(1000); }
Copyright © 2014 ESP56.com All Rights Reserved
晋ICP备14006235号-22 晋公网安备14108102001165号
执行时间: 0.010061979293823 seconds