本站改版新增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.0094859600067139 seconds