問題:想控制esp32網(wǎng)絡(luò)的定時斷開和連,
目前就可以實現(xiàn)持續(xù)連接網(wǎng)絡(luò),但是不知道怎么網(wǎng)絡(luò)連接,然后每間隔一小時重新連接,五分鐘斷開,無從下手,求指導(dǎo)一下;
#include "WiFi.h"
#include "EEPROM.h"
#define LENGTH(x) (strlen(x) + 1) // 定義一個長度char字符串調(diào)用
#define EEPROM_SIZE 300 // EEPROM的大小
#define WiFi_rst 0 // WiFi復(fù)位引腳 (Boot button on ESP32)
String ssid; //用于存儲ssid的字符串變量
String pss; //用于存儲pss的字符串變量
String ID;
unsigned long rst_millis;
const char* id_s = "S20220400000";
void setup()
{
Serial.begin(115200); //設(shè)置波特率
pinMode(WiFi_rst, INPUT); //設(shè)置IO0為輸出引腳模式
EEPROM.begin(EEPROM_SIZE); //初始化EEPROM
write_ID();
delay(500);
read_ID();
read_wifi_ssid_or_pss(); //讀取賬號密碼
WiFi.begin(ssid.c_str(), pss.c_str()); //開啟WiFi連接
delay(3500); // 延時等待WiFi連接
if (WiFi.status() != WL_CONNECTED) // 如果沒有連接WiFi
{
WiFi.mode(WIFI_AP_STA); //將WiFi初始化為Station,啟動SmartConfig
WiFi.beginSmartConfig();
Serial.println("等待SmartConfig應(yīng)答."); //等待手機的SmartConfig報文
while (!WiFi.smartConfigDone())
{
delay(500);Serial.println(".");
}
Serial.println("SmartConfig已應(yīng)答.");
Serial.println("網(wǎng)絡(luò)連接中"); //等待WiFi連接到AP
while (WiFi.status() != WL_CONNECTED)
{
delay(500);Serial.println(".");
}
Serial.println("網(wǎng)絡(luò)連接成功.");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
write_wifi_ssid_or_pss(); // WiFi SSID和密碼寫入EEPROM
}
else
{Serial.println("網(wǎng)絡(luò)連接成功"); } //連接成功
}
void loop()
{
rst_millis = millis(); // put your main code here, to run repeatedly:
while (digitalRead(WiFi_rst) == LOW) {} // 等待啟動按鈕被按下
if (millis() - rst_millis >= 3000) // 檢查按鈕按下時間,如果大于3秒,清除wifi信息,重啟ESP
{
Serial.println("重置WiFi");
writeStringToFlash("", 0); // 重置賬號
writeStringToFlash("", 40); // 重置密碼
Serial.println("重置完成,等待重啟");
delay(500);
ESP.restart(); // 重啟ESP
}
}
|