Я пытаюсь создать асинхронный веб-сервер, используя Sparkfun ESP32 с ESP32-WROOM-32D и Arduino IDE для одного из моих проектов. Моя конечная цель - использовать сеть WiFi ESP32 в качестве точки доступа и предоставлять асинхронную веб-страницу подключенному клиенту, чтобы он мог загрузить текстовый файл с сервера.
Чтобы начать свой проект, я попытался сделать простой сервер, как в этом уроке: ESP32 Arduino: асинхронный веб-сервер HTTP , я использовал библиотеку ESPAsyncWebServer.h:
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
const char* ssid = "ESP32wifi";
const char* password = "12345679";
AsyncWebServer server(80);
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(2000);
Serial.println("Connecting to Wifi...");
}
Serial.println("IP address: ");
Serial.print(WiFi.localIP());
server.on("/html", HTTP_GET, [](AsyncWebServerRequest * request) {
request->send(200, "text/html", "<p>Hello!</p>");
});
server.begin();
}
void loop() {
}
Проблема в том, что каждый раз, когда я компилировал В коде не было ошибок, но когда я открыл последовательный монитор в Arduino IDE, я застрял в «Подключение к Wi-Fi ...», мой WiFi.status никогда не был подключен.
Затем я пытаюсь решить проблему, переустанавливая библиотеки, которые использовала программа, меняя SSID и пароль моей сети, меняя порт сервера на 8080 и использую код с фиксированным IP-адресом, но мой WiFi .status () остался прежним.
Через пару дней go Я использовал тот же ESP32 в качестве Soft Access Point для другого проекта только с библиотекой WiFi.h:
#include "WiFi.h"
const char* ssid = "ESP32wifi";
const char* password = "12345679";
WiFiServer server(80);
Я снова попробовал свой старый код без асинхронного серверного кода и SAP работало, поэтому с антенной WiFi проблем не было. Затем я решил попробовать другую библиотеку, которая позволяла мне настроить асинхронный веб-сервер, это был WebServer.h:
#include <WiFi.h>
#include <WebServer.h>
const char* ssid = "ESP32wifi";
const char* password = "12345679";
WebServer server(80);
Но у меня была та же проблема, что и с AsyncWebServer, моя программа зависла в разделе «Подключение к Wi-Fi ...».
Итак, мой вопрос: как я могу настроить асинхронный веб-сервер в ESP32? Может ли быть ошибка в моем коде, который вызывает мою проблему? Есть ли способ использовать библиотеку WiFi.h только для такого типа сервера?
Заранее спасибо за помощь!