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

как узнать IP, посоветуйте

Legantmar

New member
Опыт работы с контроллерами esp8266 более 2 лет.
Извиняюсь за многобукв, но не знаю как короче объяснить "проблему" ))
Предисловие:
Планирую коммерческое устройство подсоединяемое к роутеру пользователя с выходом в интернет (нужны NTP часы).
Проблема:
У всех роутеров различается третий сегмент IP адреса, примеры
192.168.0.1, 192.168.1.1, 192.168.100.1, 192.168.200.1 и другие..

Как я себе видел решение:
Пользователь при первом включении (esp встает в точку доступа) подключается к устройству, например, с телефона.
На странице настроек задает имя и пароль своего роутера.
После перезагрузки esp подключается к роутеру (включает режим клиента), определяет IP адрес который выдал роутер (при необходимости меняет последний сегмент). И при этом сохраняет режим точки доступа. (т.е. находится в двойном режиме WI-FI)
Пользователь снова заходит с телефона на точку доступа (esp) и смотрит IP адрес по которому esp подключился к роутеру.
Далее может управлять с любого компьютера подключенного к роутеру.

Проблема:
В таком режиме полностью отваливается WI-FI при запросе html страниц буквально через 5-10 минут. Независимо откуда заходит пользователь, напрямую с телефона (на точку доступа esp) или через роутер (esp клиент).
Проблема точно не в блоке питания и не в стабилизаторе 3,3В. Проверял на 3 экземплярах. У всех одинаковые симптомы (подозрение на сам контроллер и мою схему включения). (При этом в режиме приема get запросов без выдачи html ответов живет дольше, чем если каждый раз загружать в браузер html страницы с контроллера)

Текущее решение:
После перезагрузки контроллера и соединения его с роутером (при этом esp меняет 4-й сегмент IP адреса выданного роутеров на 222, для примера фиксированного адреса), контроллер включает только режим клиента.
Пользователю, чтобы управлять контроллером с компьютера, нужно открыть проводник и внизу слева выбрать Сеть. Затем справа в списке "сетевые устройства" 2 раза кликнуть на имени роутера. Откроется браузер с введенным адресом роутера (его стартовая страница). Последний шаг - заменить последний сегмент .1 на .222 и открыть стартовую страницу контроллера esp. Этот вариант наиболее простой для пользователя, НО неидеален, т.к. если компьютер подключен не напрямую к роутеру, а через делители, маршрутизаторы и пр. то в проводнике он не увидит роутер в списке сети.
Да, я знаю, что можно правой кнопкой мыши щелкнуть на иконке монитора возле часов в правом нижнем углу экрана и выбрав Центр управления сетями - Ethernet - Сведения о сетевом подключении увидеть свой локальный IP адрес (или шлюз по умолчанию), нас интересует только 3 сегмент IP адреса. НО это сложно для пользователя блондинки.

Посоветуйте свое решение.
Спасибо за внимание.
 

Сергей_Ф

Moderator
Команда форума
@Legantmar мне кажется вы учли совсем не всё. Локальные адреса совсем не обязательно находятся в подсети 192.168.х.х
Зависание esp скорее всего к адресам и режимам работы никакого отношения не имеет - ищите утечку памяти.
Для "блондинок" смотрите примеры по mmds и captive portal, они более подходящие, имхо.
А что у вас будет делать блондинка, если адрес 222 уже используется? Например вторым вашим же устройством?
 

Вложения

Legantmar

New member
Сергей, речь о роутерах (в основном речь идет о домашних, т.к. устройство бытовое), а не произвольных IP адресах.
Если 222 занят (что совсем нереально для домашней сети), предусмотрел задание своего любимого.
Я не сильно знаком с mmds и captive portal, но что-то мне подсказывает, что это работает когда esp является точкой доступа. (мне не сложно вбить 192.168.4.1) )))
 

CodeNameHawk

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

Сергей_Ф

Moderator
Команда форума
@Legantmar у меня на бытовых роутерах в домашней сети адрес не в диапазоне 192.168.х.х
Я не сильно знаком с mmds и captive portal, но что-то мне подсказывает, что это работает когда esp является точкой доступа
Captive portal для точки доступа, mmds для клиента. Потому и посоветовал смотреть обоих. Для блондинок самое то.
Не совсем понял что вам подсказать по теме. Вы же даже не указали язык программирования.
 

Алексей.

Active member
Первый шаг очевиден - начальная настройка когда модуль работает в режиме AP, задаем параметры для соединения со своим wifi роутером (ssid и пароль).
А вот определение адреса, полученного устройством от dhcp сервера, производители всяких там ip-камер делают совсем простым способом, программой (назовем её сканером) отправляют мультикаст на группу, а устройство юникастом отвечает сканеру, рассказывая о себе.
Этим устройствам совсем не обязательно светить в сеть описанием тех сервисов которые они поддерживают, более того, это может быть даже не полезно.
 

Legantmar

New member
CodeNameHawk, а SSDP сам создается или его нужно прописывать в контроллере? а IP адрес нужно указывать? (наводящие вопросы)
Сергей, спасибо, посмотрю про mmds (UPDATE: ничего не нашел, для esp8266, кинь ссылку на пример)
Алексей, тоже думал на эту тему. Могу написать десктопную программку определяющую IP адрес роутера, открывающую браузер с введенным IP адресом контроллера. Но будет ли доверие к такой программке, особенно от антивируса? ))
а чате телеграмма pro.Esp8266 подсказывают про smartconfig - это аналогичная программка (с пингом IP адресов) но для смартфона на андроиде (скачивается из гугл стор).
буду думать.
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
CodeNameHawk, а SSDP сам создается или его нужно прописывать в контроллере? а IP адрес нужно указывать?
Берет автоматом IP адрес, который есп получило от роутера, не нужен "постоянный" адрес.
Есть пример в ардуиноиде.
Не знаю как сейчас, а раньше надо было добавить одну строку - SSDP.setDeviceType("upnp:rootdevice");

Пример моей конфигурации:
Код:
void init_SSDP(void)
{
    SSDP.setDeviceType("upnp:rootdevice");
    SSDP.setSchemaURL("description.xml");
    SSDP.setHTTPPort(80);
    SSDP.setName("Kotlownia");
    SSDP.setSerialNumber("002");
    SSDP.setURL("index.htm");
    SSDP.setModelName("ESP8266 Kotlownia");
    SSDP.setModelNumber("ESP-12E");
    SSDP.setModelURL("http://adres.co.nf/seldata.php");
    SSDP.setManufacturer("(c) KMH");
    SSDP.setManufacturerURL("http://adres.co.nf/selterm.php");
    SSDP.begin();
}
 

Legantmar

New member
Берет автоматом IP адрес, который есп получило от роутера, не нужен "постоянный" адрес.
Не знаю как сейчас, а раньше надо было добавить одну строку - SSDP.setDeviceType("upnp:rootdevice");

Пример моей конфигурации: ...
Я видел урок от Третьякова Сергея
но не понял откуда берется или куда кладется файлик description.xml
и откуда в нем взялся IP адрес 192.168.0.101 ?
Я так понимаю, что я должен заранее определить этот адрес и прописать в этом файлике..
тогда это не подходит (см. пост в начале темы)
 

Сергей_Ф

Moderator
Команда форума
куда кладется файлик description.xml
и откуда в нем взялся IP адрес 192.168.0.101
Кладется в esp, либо в файловую систему, либо генерируется программно. Адрес берется от ответа на запрос своего адреса.
 

Legantmar

New member
Кладется в esp, либо в файловую систему, либо генерируется программно. Адрес берется от ответа на запрос своего адреса.
Спасибо, нужно попробовать.
но чего то не радуют комментарии у него на странице ((
Шаг №3 – SSDP обнаружение | Программирование ESP8266 в среде Arduino IDE
 

Алексей.

Active member
Но будет ли доверие к такой программке, особенно от антивируса? ))
Серьезный аргумент, по этой причине я стараюсь не пользоваться ПО от микрософт.
Если антивирус мешает работе, то проще вынести этот код прям на роутер, избавленный от антивируса :)
 

CodeNameHawk

Moderator
Команда форума
но не понял откуда берется или куда кладется файлик description.xml
и откуда в нем взялся IP адрес 192.168.0.101 ?
Файл description.xml создает сама есп, она же туда добавляет свой адрес.
Есп должна его выдавать по запросу пита http://192.168.1.26/description.xml
Untitled.png
но чего то не радуют комментарии у него на странице ((
У пары не получилось, те, у кого получилось, не пишут.
 
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
То, что пишут, что комп к роутеру подключен через провод, а есп по WiFi и не работает - ерунда, у меня как работает.
Но есть роутеры, где сеть WiFi и LAN разделены и если не включить режим "Bridge", там может не работать.
Я сомневаюсь, что будет работать, если комп подключен к одному роутеру, а есп к другому, не знаю поможет ли проброс нужного порта через роутер.

Через wifi repeater работает нормально.
 

Legantmar

New member
То, что пишут, что комп к роутеру подключен через провод, а есп по WiFi и не работает - ерунда, у меня как работает.
Но есть роутеры, где сеть WiFi и LAN разделены и если не включить режим "Bridge", там может не работать.
Я сомневаюсь, что будет работать, если комп подключен к одному роутеру, а есп к другому, не знаю поможет ли проброс нужного порта через роутер.

Через wifi repeater работает нормально.
ну это для продвинутых пользователей или офисные компании
сомневаюсь, что такие сети встречаются у блондинок дома, дай бог, чтобы wi-fi роутер был (а то при нынешних безлимитищах все давно сидят на 4G)
 

tretyakov_sa

Moderator
Команда форума
Могу написать десктопную программку определяющую IP адрес роутера, открывающую браузер с введенным IP адресом контроллера. Но будет ли доверие к такой программке, особенно от антивируса? ))
а чате телеграмма pro.Esp8266 подсказывают про smartconfig - это аналогичная программка (с пингом IP адресов) но для смартфона на андроиде (скачивается из гугл стор).
буду думать.
У меня в проекте это все реализовано. И программка уже есть: https://play.google.com/store/apps/details?id=com.tutaf.iotroomfinder
 
Сверху Снизу