Не работает Web интерфейс на esp32-wroom-32d (ESP32-D0WD (revision v1.1))

Всех приветствую

Столкнулся со следующей необъяснимой для меня ситуацией: Есть ESP-WROOM-32 (Chip is ESP32-D0WD-V3 (revision v3.1)), на нем поднят GyverPortal 3.6.6 и ещё несколько сервисов. При включении WiFi через пин и перевода в режим AP, при подключении к сети созданной точкой происходит автовход на страницу портала и всё адекватно работает.

При попытке залить эту же прошивку на ESP-WROOM-32D (Chip is ESP32-D0WD (revision v1.1) или ESP-32E (Chip is ESP32-D0WD-V3 (revision v3.1) WiFi точка доступа поднимается, к ней спокойно подключаюсь и получаю IP, точка пингуется, но нет автовхода на Web интерфейс и при попытке зайти по IP через браузер отключаюсь по таймауту. Все остальные функции работают штатно (lidar tof400c, modbus rtu и прочие)

Использовал следующие платы для сборок в Arduino IDE: ESP-WROOM-DA Module, ESP32 Dev Module со стандартными настройками платы, ревизия библиотеки ESP 3.0.5.

В чём может быть причина? Перепробовал множество настроек и разные редекции плат в том числе и с понижением ревизии библиотеки плат ESP вплоть до 2.0.8

Какой IP у платы и какой она назначает клиенту в обоих случаях? (конкретные значения)

У платы 192.168.7.1

У клиента 192.168.7.2 и далее, маска 255.255.255.0, шлюз 192.168.7.1

На всех платах одинаковый? И на тех, что заходят в вебку, и на тех что нет?

И второй вопрос - когда вы пробовали через браузер с компа заходить, комп у вас в какой сети был (иными словами, какой IP у ПК) ?

может поможет, но тыкаю пальцем в небо…

// Убедитесь, что это вызывается ПОСЛЕ того, как AP запущен и клиент подключен
Network.setDefaultInterface(WiFi.AP); 

Эта функция доступна в ядре ESP32 версии 3.x

хотел бы я попросить указать список и версии библиотек))) при чем интересно как вы их устанавливали, через копировать и вставить ?(в переносную версию) или еще там через менеджер библиотек надо что то добавить ?!))) и в итоге какие используются при компиляции…
но это так… просто интересно и описывать не обязательно…

а банальщины какой то нет ? типа несколько плат прошитых работают одновременно…

Да, на всех платах одинаковый, ip у esp жёстко прописал в настройках softAP

На второй вопрос - был в той же подсети, настройки получил по DHCP от платы

Использую следующие библиотеки в проекте:

#include <ModbusRTU.h> // Библиотека ModbusRTU GitHub - emelianov/modbus-esp8266: Most complete Modbus library for Arduino. A library that allows your Arduino board to communicate via Modbus protocol, acting as a master, slave or both. Supports network transport (Modbus TCP) and Serial line/RS-485 (Modbus RTU). Supports Modbus TCP Security for ESP8266/ESP32. · GitHub 4.1.0
ModbusRTU mb;
#include <GyverOS.h> // Библиотека процессов запуска потоков 1.2.2
#include <esp_task_wdt.h> // Библиотека Watchdog
#include <Wire.h> // Библиотека шины I2C
#include “SparkFun_VL53L1X.h” // Библиотека сенсора расстояния VL53L1X 1.2.12
#include <SPIFFS.h> // Библиотека работы с памятью
#include <GyverPortal.h> // Библиотека портала 3.6.6
GyverPortal ui(&SPIFFS); // передача ссылки на fs (SPIFFS/LittleFS)
#include <WiFi.h> // Библиотека WiFi
#include <ArduinoJson.h> // Библиотека работы с JSON 6.20.1
#include <Button2.h> // Библиотека нажатия кнопок 2.5.0
Button2 button;
#include <SoftwareSerial.h> // Библиотека Software Serial для Modbus esp_softwareserial 8.3.1

Версия ядра библиотеки ESP 3.0.5

Библиотеки устанавливал через IDE самой Arduino, все библиотеки использует.

Основная проблема что на одной плате работает, на других нет WEB интерфейс и автовход при подключении к сети.

Одновременно запускаю только одну плату, понимаю что несколько одновременно работающих AP могут внести сумятицу

Я так понимаю, за это ответственна библиотека

Тогда может быть стоит обратиться к автору библиотеки?

У Вас браузер случаем не подставляет автоматом https вместо http?

Да, думаю будет корректное решение, попробую связаться, но есть вариант, что скорее всего какая-то внутренняя библиотека из mDNS некорректно работает

Нет, проверял на телефоне, ноуте, стационарный комп

С одной платой всё корректно работает, с другой платой - только подключается, а веб интерфейс не открывается

Тогда логи кома в студию!

  1. использовать стандартный адрес 192.168.4.1 не вариант ?
  2. можно код блока void setup {}? а еще лучше везде там насовать delay(100); после каждой инициализации
    как минимум так еще сделать
  3. WiFi.softAP("MyAP", "password");
        delay(500); // КРИТИЧНО! Даем время Wi-Fi стеку подняться
        
        Serial.print("AP IP: ");
        Serial.println(WiFi.softAPIP());
        
        // 4. ЗАПУСКАЕМ GYVERPORTAL (прямо сразу после WiFi)
        ui.start(); // или ui.init(), смотрите документацию вашей версии
        delay(100);
        Serial.println("Portal started");
    

так если остальные платы не выплевывают страницу, то может ее попросту нет? небось на spifs лежит. вы её туда залили?

Не надо шаманить - надо понимать - ЧТО ПРОИСХОДИТ!

отож, для начала сравнить исходные коды страницы

WiFi.disconnect();
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(toIP(AP_local_IP), toIP(AP_gateway), toIP(AP_subnet));
WiFi.softAP(AP_ssid.c_str(), AP_password.c_str());

Serial.println(“WiFi started as AP”);
timingwifion = millis();

ui.attachBuild(build);
ui.attach(action);
Serial.println(“UI build”);
ui.start();
Serial.println(“UI Started”);
ui.enableOTA();
Serial.println(“OTA Enabled”);

Страница генерится внутри кода:

```Void build() {
GP.BUILD_BEGIN(500);
GP.THEME(GP_DARK);
GP.PAGE_TITLE(pagetitle);
GP.TITLE(pagetitle);
GP.HR(GP_GRAY);

// Переменные для обновления
GP.UPDATE(“reserved,distancenow,statuspos”);

if (ui.uri(“/state”)) {
M_BLOCK_THIN(
M_BOX(GP.LABEL(“Reserved”); GP.TEXT(“Reserved”, “”, String(reserved), “”, 0, “”, true););
M_BOX(GP.LABEL(“apon”); GP.TEXT(“apon”, “”, String(mb.Coil(3)), “”, 0, “”, true););```

В памяти лежат настройки в формате JSON, которые читаются успешно при старте

Ещё раз повторюсь, на одной плате всё хорошо, открывается, подключается, работает и дает изменять настройки через UI, а на других двух - нет

Скорее всего есть какие-то отличия по обработке именно ядром тех же самых ESP

а дальше ?

// В setup():
initWiFiAndPortal();
initModbus();
initLiDAR();
// и т.д.

// --- Функции ---
void initWiFiAndPortal() {
    // Монтируем SPIFFS
    if (!SPIFFS.begin(true)) {
        Serial.println("SPIFFS Error!");
        return;
    }
    
    // Настраиваем AP
    WiFi.mode(WIFI_AP);
    WiFi.softAP("MyAP", "12345678");
    delay(500);
    
    // Запускаем портал
    ui.start();
    delay(100);
    
    Serial.print("Portal ready at: ");
    Serial.println(WiFi.softAPIP());
}

void initModbus() {
    Serial.println("Starting Modbus...");
    mb.begin(&Serial2); // или как у вас настроено
    delay(100);
    // остальная настройка Modbus
}

void initLiDAR() {
    Serial.println("Starting LiDAR...");
    Wire.begin();
    // инициализация сенсора
    delay(100);
}
    // инициализация сенсора
    delay(100);

вот так делали ?

а весь код выложить возможно ? или все таки не хотелось светить его ?

версию ядра бы я установил 2.0.17 и только на 3+ там все поломано, и много чего на автомате теперь работает

что если отказаться от ип и установить стандарт ? 192.168.4.1

// Закомментируйте эту строку
// WiFi.softAPConfig(toIP(AP_local_IP), toIP(AP_gateway), toIP(AP_subnet));
// Оставьте только:
WiFi.softAP(AP_ssid.c_str(), AP_password.c_str());