Страница 1 из 1

Blynk вешает код при загрузке без WiFi

Добавлено: 24 авг 2021, 11:45
Coolboy
Добрый день.
Использую Blynk, наблюдаю зацикливание на подключении к сервису blynk при отсутствии WiFi.

Переподключение, если был подключен, происходит отлично.

Гуру, помогите :smile453: Устроило бы, повторение попыток раз в 5 мин, главное чтоб основная программа не висла.

Вот код:

#include <ESP8266WiFi.h>

#include <BlynkSimpleEsp8266.h>

extern "C" {
#include "user_interface.h";
}
#define BLYNK_PRINT_91371725_1 Serial

char auth_91371725_1[] = "555";
char ssid_91371725_1[] = "555";
char pass_91371725_1[] = "555";

void setup()
{

Serial.begin(115200);
Blynk.begin(auth_91371725_1, ssid_91371725_1, pass_91371725_1);

}
void loop()
{

//Плата:1
Blynk.run();
}

bool _isTimer(unsigned long startTime, unsigned long period )
{
unsigned long currentTime;
currentTime = millis();
if (currentTime>= startTime) {return (currentTime>=(startTime + period));} else {return (currentTime >=(4294967295-startTime+period));}
}

Blynk вешает код при загрузке без WiFi

Добавлено: 24 авг 2021, 12:50
starshoy81
[ref]Coolboy[/ref], У вас в библиотеке, скорее всего, условие выполнения после подключения, поэтому и висит.

Blynk вешает код при загрузке без WiFi

Добавлено: 24 авг 2021, 18:30
edyapd
[ref]Coolboy[/ref], а почему бы сперва не проверить состояние WiFi, а только потом, по условию, запускать Blynk?

Кстати, чтобы не выкладывать вот такие портянки на экран, а то и два, можно пользоваться специальными BBCode
изображение_2021-08-24_222619.png

Blynk вешает код при загрузке без WiFi

Добавлено: 24 авг 2021, 18:33
Coolboy
Прошу прощения за портянки, научусь со временем.
С готовым блоком в flprog помочь можете?

Blynk вешает код при загрузке без WiFi

Добавлено: 25 авг 2021, 09:25
Coolboy
Ура! Задача решена. Выкладываю блок подключения к BLYNK, который не весит программу при отсутствии WiFi.
Смысл изменений, касается в SetupSection: (меняем все там на это)
Serial.begin(115200);
WiFi.begin(ssid, pass);
Blynk.config(auth);
Blynk.connect();

P.S. Уважаемые профессионалы, оцените работоспособность, возможно есть подводные камни, которые я в силу своего ламерства не вижу.
New_Blynk_ESP_BASE_(CODE).ubi

Blynk вешает код при загрузке без WiFi

Добавлено: 25 авг 2021, 11:38
Anydy
Что то не совсем понятно - в секции Сетап код выполняется только один раз при старте МК
Далее циклически крутится только секция Loop ...ну вот отрубилась связь с ВиФи - без перезагрузки МК как она восстановится? Тут думаю нужно в Loop делать проверку соединения с сетью например раз в минуту....и если нет коннекта то поднимать его....
If() else ....это куда копать...

Blynk вешает код при загрузке без WiFi

Добавлено: 19 ноя 2021, 23:19
Pelletizer
Coolboy писал(а): 25 авг 2021, 09:25 Ура! Задача решена. Выкладываю блок подключения к BLYNK, который не весит программу при отсутствии WiFi.
Смысл изменений, касается в SetupSection: (меняем все там на это)
Serial.begin(115200);
WiFi.begin(ssid, pass);
Blynk.config(auth);
Blynk.connect();

P.S. Уважаемые профессионалы, оцените работоспособность, возможно есть подводные камни, которые я в силу своего ламерства не вижу.

New_Blynk_ESP_BASE_(CODE).ubi
Проверил, у меня не работает. Задачу так решить не смог, пробовал решить через костыли, а именно через блок получения мирового времени, но он к сожалению тоже не работает на ESP32

Blynk вешает код при загрузке без WiFi

Добавлено: 19 ноя 2021, 23:28
Coolboy
:shok: Упс... Может ошиблись где!?
У меня пашет уже и не на одной поделке ;)
Честно.

Blynk вешает код при загрузке без WiFi

Добавлено: 19 ноя 2021, 23:50
Pelletizer
Coolboy писал(а): 19 ноя 2021, 23:28 :shok: Упс... Может ошиблись где!?
У меня пашет уже и не на одной поделке ;)
Честно.
Вот так работает

Отправлено спустя 1 минуту 55 секунд:
В loop должно быть так

Код: Выделить всё

if(Blynk.connected() == true){
    Blynk.run();
  }
, хотя бы.... буду еще мудрить реконект

Blynk вешает код при загрузке без WiFi

Добавлено: 20 ноя 2021, 03:41
Anydy
Pelletizer писал(а): 19 ноя 2021, 23:50 В loop должно быть так
if(Blynk.connected() == true){
Blynk.run();
}
В коде так скорее всего верно! только добавить else

Отправлено спустя 16 минут 32 секунды:
По русски --
если блинк соединение установлено
запускаем сервис блинк
если соединение не установлено --- устанавливаем снова
в двух словах как то так

Blynk вешает код при загрузке без WiFi

Добавлено: 20 ноя 2021, 07:13
Pelletizer
Anydy писал(а): 20 ноя 2021, 03:41
Pelletizer писал(а): 19 ноя 2021, 23:50 В loop должно быть так
if(Blynk.connected() == true){
Blynk.run();
}
В коде так скорее всего верно! только добавить else

Отправлено спустя 16 минут 32 секунды:
По русски --
если блинк соединение установлено
запускаем сервис блинк
если соединение не установлено --- устанавливаем снова
в двух словах как то так
Так то это понятно и я даже это пробовал, но в таком случае как раз начинает вешать основной код blynk connect если нет связи