• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Продолжение работы программы если нет подключения к сети

gregvel

New member
Добрый день коллеги. Прошу помощи в решении вопроса:
есть стандартный пример реализации настройки подключения через WiFiManager, при первом подключении - сервер - настройка подключения к домашней сети - работа ... Но если нет сети, или пользователь не может ввести настройки, или лег роутер - программа не переходит в loop и ждет настроек. Как сделать, чтоб выдержалась пауза (скажем 2 мин) и при любом раскладе продолжила выполнение основного цикла loop?
Приведу кусок программы, чтоб было понятно какие библиотеки использую:
[HASHTAG]#include[/HASHTAG] <ESP8266WiFi.h>
[HASHTAG]#include[/HASHTAG] <DNSServer.h>
[HASHTAG]#include[/HASHTAG] <ESP8266WebServer.h>
[HASHTAG]#include[/HASHTAG] <WiFiManager.h>

WiFiClient client;

void setup() {

Serial.begin(115200);

WiFiManager wifiManager;
// wifiManager.resetSettings(); //reset saved settings
wifiManager.autoConnect("AutoConnectAP");
Serial.println("soedinenie ystanovleno");
}
void loop(void){
......................
}

Надеюсь понятно описал ситуацию, уверен, что такой вопрос интересует не только меня. Подскажите как быть?
 

Сергей_Ф

Moderator
Команда форума
@gregvel вариантов два: отказаться от WiFiManager и найти (написать самому) библиотеку с данным функционалом
Или поправить WiFiManager.
 

Сергей_Ф

Moderator
Команда форума
@gregvel засечь время старта uint16_t startTime = millis();
Там где ожидается соединение проверить while ( millis() - startTime < 2*60*1000UL ) { код соединения };
{ Тут ваш код или выход из процедуры }
 

gregvel

New member
@gregvel засечь время старта uint16_t startTime = millis();
Там где ожидается соединение проверить while ( millis() - startTime < 2*60*1000UL ) { код соединения };
{ Тут ваш код или выход из процедуры }
Спасибо за ответ, но видимо сам я такого не осилю. Это не просто взять готовый пример и подправить немного код :(
 

Сергей_Ф

Moderator
Команда форума
@gregvel если Вы хотите сделать что-то сложнее, чем мигание диодом, придется напрячься и немного поучиться. Это элементарные вещи. Тут даже думать не надо, если знаешь команды С++.
Гугл и Яндекс очень помогают, если есть желание.

P.S. кстати ошибся, нужно uint32_t для startTime.
 

gregvel

New member
@gregvel если Вы хотите сделать что-то сложнее, чем мигание диодом, придется напрячься и немного поучиться. Это элементарные вещи. Тут даже думать не надо, если знаешь команды С++.
Гугл и Яндекс очень помогают, если есть желание.

P.S. кстати ошибся, нужно uint32_t для startTime.
Я это понимаю, что мигание диодом это как hello world :) В моем случае, как я понял, необходимо вносить изменения в библиотеку WiFiManager.h А тут только с своим кодом понял что к чему.
 

gregvel

New member
Я это понимаю, что мигание диодом это как hello world :) В моем случае, как я понял, необходимо вносить изменения в библиотеку WiFiManager.h А тут только с своим кодом понял что к чему.
Просто думал, что у кого-то уже есть готовое решение без танцев с бубном :)
 

avs

New member
Сверху Снизу