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

Телефон отключается от ESP из-за отсутствия интернета

Thest

New member
Не нашёл подобной темы, если есть аналогичная, прошу поделиться ссылкой.
Проблема 100% не новая, но решения и обсуждения не смог найти. Создаю точку доступа, подключаюсь к ней и через секунду-две телефон отключается от неё и подключается к мобильному интернету, соответственно веб-интерфейс становится недоступным, приходится переподключаться и появляется окошко "не отключаться от сети". Как решить проблему отключения от esp? может какие сертификаты прописываются в контроллер или библиотеки есть? Нужно именно в esp решить проблему, без манипуляций с телефоном. Гугл только котиков выдаёт..
 

Сергей_Ф

Moderator
Команда форума
Не нашёл подобной темы, если есть аналогичная, прошу поделиться ссылкой.
Проблема 100% не новая, но решения и обсуждения не смог найти. Создаю точку доступа, подключаюсь к ней и через секунду-две телефон отключается от неё и подключается к мобильному интернету, соответственно веб-интерфейс становится недоступным, приходится переподключаться и появляется окошко "не отключаться от сети". Как решить проблему отключения от esp? может какие сертификаты прописываются в контроллер или библиотеки есть? Нужно именно в esp решить проблему, без манипуляций с телефоном. Гугл только котиков выдаёт..
Правильно гугл выдает. Это настройки телефона, а не esp. Что-то типа Умного WiFi - которое и отключает от сетей без интернета.
 

Thest

New member
Правильно гугл выдает. Это настройки телефона, а не esp. Что-то типа Умного WiFi - которое и отключает от сетей без интернета.
Разве не нашлось обманного обхода? Может какие сертификаты или протоколы прописать.. вот например в торговых центрах есть внутренние точки доступа (наврятли что на ESP, но всё же) без доступа в интернет, где можно посмотреть карту и общую информацию о магазинах, и там WiFi не сбрасывается..
 

Сергей_Ф

Moderator
Команда форума
так там есть интернет, только не у вас (до авторизации). А тут его нет!
 

Thest

New member
так там есть интернет, только не у вас (до авторизации). А тут его нет!
А как телефон узнаёт о доступе в интернет? Полагаю, что он что-то пингует и получает оттуда инфу.. Что если сделать виртуальный сервер с данным адресом?
 

Сергей_Ф

Moderator
Команда форума
А как телефон узнаёт о доступе в интернет? Полагаю, что он что-то пингует и получает оттуда инфу.. Что если сделать виртуальный сервер с данным адресом?
С сертификатами SSL? Ну, ну...
Хотя можете попробовать, ставьте сниффер и анализируете пакеты.
 

Сергей_Ф

Moderator
Команда форума
но искали вы плохо

Это хоть немного не о том, но показывает многие ходы проверок.

и ещё
 

enjoynering

Well-known member
Создаю точку доступа, подключаюсь к ней и через секунду-две телефон отключается от неё и подключается к мобильному интернету, соответственно веб-интерфейс становится недоступным, приходится переподключаться и появляется окошко "не отключаться от сети".
такое бывает если вместе soft AP поднята STA и у нее активирован WiFi.setAutoConnect(true)
 

enjoynering

Well-known member
пробуйте еще перед setup() добавить это

Код:
RF_PRE_INIT()
{
  system_phy_set_powerup_option(3); //possible flash wear issue, need to research further
}
 

tretyakov_sa

Moderator
Команда форума
Код:
#include <ESP8266WiFi.h>
#include <DNSServer.h>
#include <ESP8266WebServer.h>

const byte DNS_PORT = 53;
IPAddress apIP(8,8,4,4); // The default android DNS
DNSServer dnsServer;
WiFiServer server(80);

String responseHTML = ""
  "<!DOCTYPE html><html><head><title>CaptivePortal</title></head><body>"
  "<h1>Hello World!</h1><p>This is a captive portal example. All requests will "
  "be redirected here.</p></body></html>";

void setup() {
  WiFi.mode(WIFI_AP);
  WiFi.softAP("ESP32-DNSServer");
  WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));

  // if DNSServer is started with "*" for domain name, it will reply with
  // provided IP to all DNS request
  dnsServer.start(DNS_PORT, "*", apIP);

  server.begin();
}

void loop() {
  dnsServer.processNextRequest();
  WiFiClient client = server.available();   // listen for incoming clients

  if (client) {
    String currentLine = "";
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        if (c == '\n') {
          if (currentLine.length() == 0) {
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println();
            client.print(responseHTML);
            break;
          } else {
            currentLine = "";
          }
        } else if (c != '\r') {
          currentLine += c;
        }
      }
    }
    client.stop();
  }
}
Попробуйте этот код не проверял, но думаю будет работать.
 
Сверху Снизу