Как настроить асинхронный веб-сервер в ESP32? - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь создать асинхронный веб-сервер, используя 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 только для такого типа сервера?

Заранее спасибо за помощь!

...