Ошибка последовательного чтения SSID и PASSWORD WiFI-соединения в ESP32
Пытаясь получить SSID и пароль Wi-Fi динамически с монитора последовательного порта и подключиться к WiFi, попробовал приведенную ниже программу, но Wi-Fi всегда находится только в состоянии подключения, он не подключается после получения ввода от монитора последовательного порта.
#include <WiFi.h>
#define BAUDRATE 115200
char ssid[50];
char pass[50];
void setup() {
Serial.begin(BAUDRATE);
Serial.println();
Serial.print("Enter your WiFi credentials.\n");
Serial.print("SSID: ");
while (Serial.available() == 0) {
// ждать
}
Serial.readBytesUntil(10, ssid, 50);
Serial.print(ssid);
Serial.print("donessid");
Serial.print("PASS: ");
while (Serial.available() == 0) {
// ждать
}
Serial.readBytesUntil(10, pass, 50);
Serial.print(pass);
Serial.print("donepass");
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("Connecting....");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
void loop()
{}
@Rangesh. s, 👍0
Обсуждение1 ответ
Лучший ответ:
Установлено ли для параметра Serial Monitor значение "Both NL и CR"? Измените его на "Новая строка" должно работать.
Что произошло, так это то, что если ваш Serial Monitor имеет настройку «Both NL и CR», когда вы нажимаете Enter, он генерирует \r\n
, Serial.readBytesUntil(10 , ssid, 50)
обнаружил этот \r
в конце массива, когда вы используете его как SSID, это недействительный SSID.
Спасибо hcheung .. это сработало., @Rangesh. s
Рад я этой помощи. Будем признательны, если вы примете ответ, нажав на галочку слева от ответа., @hcheung
- ESP32 - "Детектор Браунаута был активирован" при запуске Wi-Fi
- Контакты RX и TX на esp32
- Почему OTA не работает с платой ESP32-CAM Ai-Thinker?
- ESP32 открывает "captive portal" при подключении
- Аналоговое чтение не работает при использовании WiFi
- Автоматическая веб-страница ESP32 AP
- Чтение данных из Google Таблиц с помощью Nodemcu
- WiFiClient::connected() не работает
И какие результаты вы на самом деле получаете на последовательном мониторе?, @Majenko
Привет, Маженко, я получил результат, подобный этому изображению. Смотрите этот скриншот .. https://imgdb.in/gJ6K, @Rangesh. s
Вы действительно должны научиться использовать
println()
, чтобы вы не получали все в одной строке. Я подозреваю, что ваша проблема в том, что у вас есть окончание строки, установленное на «CR & NL», но вы ищете только «NL» (10), поэтому вы получаете дополнительные 13 символов в своих строках., @Majenko