Arduino ESP32SmartConfig配网+NTP时间获取
Posted perseverance52
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Arduino ESP32SmartConfig配网+NTP时间获取相关的知识,希望对你有一定的参考价值。
Arduino ESP32SmartConfig配网+NTP时间获取
- 配网看这篇《Arduino ESP32SmartConfig配网》
本篇的内容是在SmartConfig配网篇的基础上新增的获取NTP时间。
示例代码
#include <WiFi.h>
#include <esp_wifi.h> //用于esp_wifi_restore() 删除保存的wifi信息
#define LED_BUILTIN (2) //板载led灯
#define NTP1 "ntp1.aliyun.com"
#define NTP2 "ntp2.aliyun.com"
#define NTP3 "ntp3.aliyun.com"
const unsigned long interval = 6000UL;//设置更新频率
unsigned long previousMillis = 0;
bool ledState = false;
void SmartConfig()
// WiFi.mode(WIFI_AP_STA);
WiFi.mode(WIFI_STA);
Serial.println("\\r\\n wait for smartconfig....");
WiFi.beginSmartConfig();
while(1)
Serial.print(".");
delay(500);
if ( WiFi.smartConfigDone())
Serial.println("SmartConfig Success");
Serial.printf("SSID:%s\\r\\n",WiFi.SSID().c_str());
Serial.printf("PSW:%s\\r\\n",WiFi.psk().c_str());
break;
bool AutoConfig()
WiFi.begin();
for (int i=0; i<20; i++)
int wstatus = WiFi.status();
if (wstatus == WL_CONNECTED )
Serial.println("wifi smartConfig success");
Serial.printf("SSID:%s",WiFi.SSID().c_str());
Serial.printf(",PWS:%s\\r\\n",WiFi.psk().c_str());
Serial.print("localIP:");
Serial.println(WiFi.localIP());
Serial.print(",GateIP:");
Serial.println(WiFi.gatewayIP());
esp_wifi_set_storage(WIFI_STORAGE_RAM);//自动保存wifi信息
WiFi.setAutoConnect(true); // 设置自动连接
return true;
else
Serial.print("WIFI AutoConfig Waiting ....");
Serial.println(wstatus);
delay(1000);
Serial.println("Wifi autoconfig faild!");
return false;
void setup()
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);//板载led灯作为指示
delay(100);
if (!AutoConfig())
SmartConfig();
configTime(8 * 3600, 0, NTP1, NTP2,NTP3);
// esp_wifi_restore(); //删除保存的wifi信息
void loop()
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval)
ledState = !ledState;//状态翻转
digitalWrite(LED_BUILTIN, ledState);
struct tm timeInfo; //声明一个结构体
if (!getLocalTime(&timeInfo))
//一定要加这个条件判断,否则内存溢出
Serial.println("Failed to obtain time");
Serial.println(&timeInfo, "%F %T %A");
previousMillis = currentMillis;
- 串口打印信息
以上是关于Arduino ESP32SmartConfig配网+NTP时间获取的主要内容,如果未能解决你的问题,请参考以下文章
Arduino ESP8266 SmartConfig配网+EEPROM保存+OLED显示
Arduino框架下合宙ESP32C3 +1.8“tft 网络时钟
ESP8266+微信配网smartconfig,esp32可用