• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

программная проверка доступности esp

YaSerg

New member
Приветствую форумчане!

Подскажите известные способы проверки доступности в сети Wifi модулей ESP.
Задача следующая. В доме в каждой комнате имеется микроконтроллер, все они подключаются к точке доступа, между собой общаются по WiFi. Имеется главный контроллер, которые может включает и выключает питание модулей, он так же подключен к точке доступа.
Задача: переодически опрашивать (вопрос как) контроллеры и в случае не доступности выполнять перезагрузку. Предварительно (вопрос как) проверив свое соединение с точкой доступа.
 

YaSerg

New member
Пошлите есп "секретный" вопрос, если она ответила, значит присутствует.
В моем случае общение между esp осуществляется POST запросами, если модуль недоступен, контроллер отправляющий запрос подвисает на 30 сек ожидая HTTP OK, потом нужно еще и ответа ждать. Если недоступных модулей несколько, то мы теряем ведущий контроллер на несколько минут, думал есть более простые варианты типа ping на компьютере.
 

Юрий Ботов

Moderator
Команда форума
Кто все таки ведущий а кто ведомый в связке "комнатный" и "главный"?

Я бы в такой ситуации сделал бы tcp/http-сервером "главного", и пересылал бы на него раз в (случайное число от 5 до 10) секунд с каждого из контроллеров короткую "посылку", пустую или с данными, если главному надо послать команду комнатному он передает ее в ответе на такую посылку. Если в течении 60 секунд не было ни одной посылки от данного комнатного, считаем что он завис и перезагружаем (я не очень понимаю как вы это реализовали, я бы просто "поднял" watchdog на комнатном)
 

tretyakov_sa

Moderator
Команда форума
Приветствую форумчане!

Подскажите известные способы проверки доступности в сети Wifi модулей ESP.
Задача следующая. В доме в каждой комнате имеется микроконтроллер, все они подключаются к точке доступа, между собой общаются по WiFi. Имеется главный контроллер, которые может включает и выключает питание модулей, он так же подключен к точке доступа.
Задача: переодически опрашивать (вопрос как) контроллеры и в случае не доступности выполнять перезагрузку. Предварительно (вопрос как) проверив свое соединение с точкой доступа.
На модуле поднимите SSDP. Дайте уникальное имя модулю. Затем главный контроллер пусть пошлет SSDP запрос все устройства начнут отвечать. Проверьте есть ли среди них с тот который вам нужен.
 

YaSerg

New member
Кто все таки ведущий а кто ведомый в связке "комнатный" и "главный"?

Я бы в такой ситуации сделал бы tcp/http-сервером "главного", и пересылал бы на него раз в (случайное число от 5 до 10) секунд с каждого из контроллеров короткую "посылку", пустую или с данными, если главному надо послать команду комнатному он передает ее в ответе на такую посылку. Если в течении 60 секунд не было ни одной посылки от данного комнатного, считаем что он завис и перезагружаем (я не очень понимаю как вы это реализовали, я бы просто "поднял" watchdog на комнатном)
А по какому протоколу пересылал число?
watchdog не подходит т.к. контроллер не зависает, а становится недоступным в wifi сети.
 

YaSerg

New member
На модуле поднимите SSDP. Дайте уникальное имя модулю. Затем главный контроллер пусть пошлет SSDP запрос все устройства начнут отвечать. Проверьте есть ли среди них с тот который вам нужен.
Слишком сложный вариант, проще POST запросами обмениваться. Но имеется мину описанный в третьем сообщении #3
 

Юрий Ботов

Moderator
Команда форума
Главный контроллер, который опрашивает имеет возможность управлять питанием опрашиваемых контроллеров через модуль реле.
Если вы все равно тянете по всем комнатам проводами питание... зачем wifi?
 

nikolz

Well-known member
Приветствую форумчане!

Подскажите известные способы проверки доступности в сети Wifi модулей ESP.
Задача следующая. В доме в каждой комнате имеется микроконтроллер, все они подключаются к точке доступа, между собой общаются по WiFi. Имеется главный контроллер, которые может включает и выключает питание модулей, он так же подключен к точке доступа.
Задача: переодически опрашивать (вопрос как) контроллеры и в случае не доступности выполнять перезагрузку. Предварительно (вопрос как) проверив свое соединение с точкой доступа.
ответ на первый вопрос:
1) поставьте колбек wifi.
В нем получите события состояния соединения.
2) пошлите запрос на центральный контроллер
если нет ответа значит полный ... или просто нет соединения.
 
Сверху Снизу