//////////// wifi
void wifi_connected() {
WiFi.mode(WIFI_STA);
// WiFi.mode(WIFI_MODE_APSTA); //Поддерживается только прекрасным ESP32!!!
byte tries = 60; //60 сек ожидаем подключения к wifi, пытаясь к нему...
WiFi.begin(wifi-ssid, wifi-pass);
while (--tries && WiFi.status() != WL_CONNECTED) {
Serial.print (".");
delay(1000);
//____________
if(WiFi.status() == WL_CONNECTED) //If WiFi connected to hot spot then start DNSServer
{
Serial.println (WiFi.localIP());
//+++++++++++++++++++++
const char *server_name = "www.myesp32.com";
DNSServer dnsServer;
IPAddress apIP(192, 168, 88, 100); // ; прибит железным гвоздём адрес из pool mikrotik
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
const byte DNS_PORT = 53;
Serial.println ("ESP_WIFI_PORTAL, IP : ");
Serial.println (apIP);
dnsServer.start(DNS_PORT, server_name, apIP);
Serial.println ("DNS name: www.myesp32.com.local");
}
}
if (WiFi.status() != WL_CONNECTED) {
// Если не удалось подключиться запускаем в режиме AP
IPAddress apIP(10, 10, 10, 1); //обозначил постоянный адрес AP
IPAddress subnet(255, 255, 255, 0);
Serial.println ("WiFi up ACCESS POINT: ");
Serial.println (ssidAP);
Serial.println ("Start Settings IP: ");
Serial.println (apIP);
// Отключаем WIFI
WiFi.disconnect();
// Меняем режим на режим точки доступа
WiFi.mode(WIFI_AP);
// Задаем настройки сети
WiFi.softAPConfig(apIP, apIP, subnet);
// Включаем WIFI в режиме точки доступа с именем и паролем
// хранящихся в переменных _ssidAP _passwordAP
WiFi.softAP(ssidAP, passAP);
//_______________
DNSServer dnsServer;
WiFi.softAPConfig(apIP, apIP, IPAddress(255, 255, 255, 0));
const byte DNS_PORT = 53;
const char [I]server_name = "www.myesp32.com"; // Can be "[/I]" to all DNS requests
dnsServer.start(DNS_PORT, server_name, apIP);
Serial.println ("DNS name: www.myesp32.com.local");
//_______________
ui.attachBuild(build);
ui.attach(action);
ui.start();
ui.enableOTA(ota_name, ota_pass);
ui.start(web_start);
// включить авторизацию
ui.enableAuth("admin", "admin");
} else {
Serial.println ("");
Serial.println ("WiFi запущен");
Serial.println (WiFi.SSID());
Serial.print ("IP адрес: ");
Serial.println (WiFi.localIP());
ui.attachBuild(build);
ui.attach(action);
ui.start(web_start);
// включить авторизацию, она в GP конченая и работает не на пункт меню, а на всё...
ui.enableAuth("admin", "admin");
ui.enableOTA(ota_name, ota_pass);
}
}