Моя цель — включить мой микроконтроллер (esp32-devkit-v1) и повторно подключить его к последнему Wi-Fi, к которому он был подключен до выключения.
Если этот SSID находится вне диапазона, отсканируйте найти новые и перечислить их, чтобы я мог выбрать новый для подключения.
Проблема
В следующем коде я намеренно указал неправильно учетные данные для запуска листинга SSID, но после сбоя соединения сканирование никогда не запускается.
Насколько я могу судить, WiFi.scanNetworks() никогда не устанавливает статус в -1, и сканирование никогда не инициируется (кроме того, для uint8_t n; устанавливается значение 254).
Если я хочу, чтобы все работало как задумано, мне нужно выключить Wi-Fi и снова перед тем, как сканирование.
Чтобы не заполнять этот запрос ненужной информацией, не имеющей ничего общего с моим вопросом, я сократил свой код до следующего:#include
#include
const char* ssid = "blehbleh";
const char* password = "blahblah";
uint8_t n;
bool connectingToLast() {
Serial.printf("Trying to connect to %s\n", ssid);
WiFi.begin(ssid, password);
int8_t status = WiFi.waitForConnectResult(20000);
if (status != WL_CONNECTED)
{
Serial.printf("Not connected! Err: %i\n", status);
return false;
} else return true;
}
void wifiScan() {
Serial.print("Scanning networks.");
WiFi.scanNetworks(true);
while (WiFi.scanComplete() == -1)
{
delay(500);
Serial.print(".");
}
Serial.println("");
delay(1000);
n = WiFi.scanComplete();
Serial.printf("Amount of networks found: %d\n", n);
for (uint8_t i = 0; i < n; i++)
{
Serial.printf("%2d. %s\n", i+1, WiFi.SSID(i));
}
Serial.println("");
}
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
if (connectingToLast())
{
Serial.println("Connected!");
}
else
{
WiFi.mode(WIFI_OFF); // IS IT POSSIBLE TO NOT
WiFi.mode(WIFI_STA); // NEED THESE TWO LINES?
wifiScan();
}
}
void loop () {}
Подробнее здесь: https://stackoverflow.com/questions/792 ... ng-the-wif
Могу ли я перейти от сбоя подключения к сканированию ssid без выключения и повторного включения Wi-Fi между ними? ⇐ C++
Программы на C++. Форум разработчиков
1732839515
Anonymous
Моя цель — включить мой микроконтроллер (esp32-devkit-v1) и повторно подключить его к последнему Wi-Fi, к которому он был подключен до выключения.
Если этот SSID находится вне диапазона, отсканируйте найти новые и перечислить их, чтобы я мог выбрать новый для подключения.
Проблема
В следующем коде я намеренно указал неправильно учетные данные для запуска листинга SSID, но после сбоя соединения сканирование никогда не запускается.
Насколько я могу судить, WiFi.scanNetworks() никогда не устанавливает статус в -1, и сканирование никогда не инициируется (кроме того, для uint8_t n; устанавливается значение 254).
Если я хочу, чтобы все работало как задумано, мне нужно выключить Wi-Fi и снова перед тем, как сканирование.
Чтобы не заполнять этот запрос ненужной информацией, не имеющей ничего общего с моим вопросом, я сократил свой код до следующего:#include
#include
const char* ssid = "blehbleh";
const char* password = "blahblah";
uint8_t n;
bool connectingToLast() {
Serial.printf("Trying to connect to %s\n", ssid);
WiFi.begin(ssid, password);
int8_t status = WiFi.waitForConnectResult(20000);
if (status != WL_CONNECTED)
{
Serial.printf("Not connected! Err: %i\n", status);
return false;
} else return true;
}
void wifiScan() {
Serial.print("Scanning networks.");
WiFi.scanNetworks(true);
while (WiFi.scanComplete() == -1)
{
delay(500);
Serial.print(".");
}
Serial.println("");
delay(1000);
n = WiFi.scanComplete();
Serial.printf("Amount of networks found: %d\n", n);
for (uint8_t i = 0; i < n; i++)
{
Serial.printf("%2d. %s\n", i+1, WiFi.SSID(i));
}
Serial.println("");
}
void setup() {
Serial.begin(115200);
WiFi.mode(WIFI_STA);
if (connectingToLast())
{
Serial.println("Connected!");
}
else
{
WiFi.mode(WIFI_OFF); // IS IT POSSIBLE TO NOT
WiFi.mode(WIFI_STA); // NEED THESE TWO LINES?
wifiScan();
}
}
void loop () {}
Подробнее здесь: [url]https://stackoverflow.com/questions/79231671/can-i-go-from-failing-to-connect-to-scanning-for-ssids-without-turning-the-wif[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия