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
lib_deps =
ESP Async [email protected]
[email protected]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
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow