ESP32 minimales JSON-Webserver-Beispiel für PlatformIO (ESPAsyncWebserver)

English Deutsch

Dies ist mein empfohlener Ausgangspunkt, um einen Webserver auf dem ESP32 mit PlatformIO zum Laufen zu bringen:

example-5.cpp
#include <WiFi.h>
#include <ESPAsyncWebServer.h>
#include <ArduinoJson.h>

AsyncWebServer server(80);

void setup() {
  Serial.begin(115200);
  // Wifi verbinden, bei Nichtverbindung neu starten
  // https://techoverflow.net/2021/01/21/how-to-fix-esp32-not-connecting-to-the-wifi-network/
  WiFi.begin("MyWifiSSID", "MyWifiPassword");
  uint32_t notConnectedCounter = 0;
  while (WiFi.status() != WL_CONNECTED) {
      delay(100);
      Serial.println("Wifi connecting...");
      notConnectedCounter++;
      if(notConnectedCounter > 150) { // Board zurücksetzen, wenn nach 15s keine Verbindung besteht
          Serial.println("Reset aufgrund von Wifi-Verbindungsfehler...");
          ESP.restart();
      }
  }
  Serial.print("Wifi verbunden, IP-Adresse: ");
  Serial.println(WiFi.localIP());

  // Webserver-URLs initialisieren
  server.on("/api/wifi-info", HTTP_GET, [](AsyncWebServerRequest *request) {
      AsyncResponseStream *response = request->beginResponseStream("application/json");
      DynamicJsonDocument json(1024);
      json["status"] = "ok";
      json["ssid"] = WiFi.SSID();
      json["ip"] = WiFi.localIP().toString();
      serializeJson(json, *response);
      request->send(response);
  });

  // Webserver starten
  server.begin();
}

void loop() {
  // Platzieren Sie hier Ihren Hauptcode, der wiederholt ausgeführt wird:
}

Vergessen Sie nicht, Ihre Wifi-Zugangsdaten zu ersetzen! WiFi.begin("MyWifiSSID", "MyWifiPassword");

Fügen Sie zu Ihrer platformio.ini hinzu:

example-4.ini

Meine komplette platformio.ini sieht so aus:

example-3.ini
platform = espressif32
board = nodemcu-32s
framework = arduino
monitor_speed = 115200
lib_deps =
    ESP Async [email protected]
    [email protected]

Verwenden Sie PlatformIOs Upload and Monitor, damit Sie die IP-Adresse des Geräts in Ihrem Wifi-Netzwerk sehen können, beispielsweise:

example-2.txt

dann gehen Sie zu http://192.168.178.90/api/wifi-info (ersetzen Sie 192.168.178.90 durch die IP-Adresse des ESP32, die Sie in der Kommandozeile sehen!)

Sie sollten nun JSON wie folgt sehen:

example-1.json
     status: "ok",
     ssid: "MyWifiSSID",
     ip: "192.168.178.90"
}

Beachten Sie, dass Sie ein Browser-Plugin wie JSON Viewer für Chrome verwenden können, um JSON-Dokumente automatisch zu formatieren!


Check out similar posts by category: ESP8266/ESP32