Добрый день господа! Подскажите пожалуйста, почему при подключении к WiFi контроллер работает в штатном режиме, но если соединение с точкой доступа не установлено, например я отключаю роутер на момент старта, ESP32 начинает работать с тайм-аутом в 5 сек. В чем может быть проблема?
Формально код не мой, но суть та же, я испытываю ту же проблему.
void setupWiFi() {
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
Serial.println("Подключение...");
delay(3000);
if (WiFi.status() == WL_CONNECTED) {
Serial.println("WiFi подключён!");
d1.setText("WiFi connected!");
if (client.connect(servername, 80)) {
Serial.println("Соединение с интернетом установленно");
Serial.print("Хост: ");
Serial.println(servername);
Serial.println("ESP IP address: ");
Serial.println(WiFi.localIP());
d2.setText("Internet connected!");
} else {
client.stop();
Serial.println("Нет соединения с интернетом");
d2.setText("Internet not connected!");
}
}
else {
Serial.println("WiFi не подключён!");
d1.setText("WiFi not connected!");
d2.setText("Internet not connected!");
client.stop();
WiFi.disconnect(false);
WiFi.mode(WIFI_OFF);
}
}
Именно по этому, прочитав описание работы WiFi модуля на втором ядре, я и затеял эту тему. Мне казалось что попытки подключения к сети модуля WiFi никак не должны влиять на работу первого ядра, но на деле получаются затыки каждые 5 сек.
Разработчики WiFi библиотеки всё правильно сделали, когда приостанавливают работу основного кода во время сетевого подключения. Ведь неизвестно какие потребители энергии автор кода будет в это время включать/выключать, а для стабильного коннекта, нужно стабильное питание. Вот и рулят кодом юзера, чтобы был гарантированный зацеп.
Ссылка у меня один фиг не открывается, но я нашёл эту страницу просто по содержимому. Да, я читал это и примеры видел, но, на Гитхаб да и не только, чёрным по белому пишут вот это:
Ядро 0 (PRO) — это то место, где Arduino по умолчанию размещает задачи WiFi и BLE.
Ядро 1 (APP) — это то место, где по умолчанию запускаются приложения Arduino.
Если в то же время, что и закрепленное приложение, запущены BLE или WiFi, любая задача в ядре 0 будет при необходимости вытеснена задачами BLE/WiFi, имеющими высокий приоритет и также чувствительными ко времени.
без использования дополнительных костылей.
Однако и мою проблему описывают много где…