找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1865|回复: 0
打印 上一主题 下一主题
收起左侧

关于arduino esp32断开网络连接的问题

[复制链接]
跳转到指定楼层
楼主
ID:858009 发表于 2022-5-5 09:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题:想控制esp32网络的定时断开和连,
目前就可以实现持续连接网络,但是不知道怎么网络连接,然后每间隔一小时重新连接,五分钟断开,无从下手,求指导一下;
#include "WiFi.h"
#include "EEPROM.h"
#define LENGTH(x) (strlen(x) + 1)   // 定义一个长度char字符串调用
#define EEPROM_SIZE 300             // EEPROM的大小
#define WiFi_rst 0                  // WiFi复位引脚 (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);             //设置波特率
  pinMode(WiFi_rst, INPUT);         //设置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应答.");  //等待手机的SmartConfig报文
    while (!WiFi.smartConfigDone())
    {
      delay(500);Serial.println(".");     
    }
    Serial.println("SmartConfig已应答.");
    Serial.println("网络连接中");    //等待WiFi连接到AP
    while (WiFi.status() != WL_CONNECTED)
    {
      delay(500);Serial.println(".");
    }
    Serial.println("网络连接成功.");
    Serial.print("IP Address: ");
    Serial.println(WiFi.localIP());  
    write_wifi_ssid_or_pss();      // WiFi SSID和密码写入EEPROM
  }
  else
  {Serial.println("网络连接成功"); }     //连接成功
}
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
  }
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表