Merge branch 'HendrikRauh/issue33' into merge-MAIN-statusUI

This commit is contained in:
Hendrik Rauh 2024-12-18 13:05:16 +01:00 committed by GitHub
commit b56a106c94
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 54 additions and 0 deletions

View file

@ -17,6 +17,7 @@
#include <LittleFS.h>
#include "routes/config.h"
#include "routes/networks.h"
#include "routes/status.h"
DMXESPSerial dmx1;
DMXESPSerial dmx2;
@ -309,6 +310,9 @@ void setup()
server.on("/networks", HTTP_GET, [](AsyncWebServerRequest *request)
{ onGetNetworks(request); });
server.on("/status", HTTP_GET, [](AsyncWebServerRequest *request)
{ onGetStatus(request); });
server.onRequestBody([](AsyncWebServerRequest *request, uint8_t *data, size_t len, size_t index, size_t total)
{
if (request->url() == "/config" && request->method() == HTTP_PUT) {

45
src/routes/status.cpp Normal file
View file

@ -0,0 +1,45 @@
#include "status.h"
float getTemperature()
{
float tempC = -1.0f;
temp_sensor_read_celsius(&tempC);
return tempC;
}
int8_t getWiFiStrength()
{
try
{
return WiFi.RSSI();
}
catch (...)
{
return 0;
}
}
void onGetStatus(AsyncWebServerRequest *request)
{
JsonDocument doc;
doc["uptime"] = millis();
doc["chip"]["model"] = ESP.getChipModel();
doc["chip"]["mac"] = ESP.getEfuseMac();
doc["chip"]["revision"] = ESP.getChipRevision();
doc["chip"]["cpuFreqMHz"] = ESP.getCpuFreqMHz();
doc["chip"]["cycleCount"] = ESP.getCycleCount();
doc["chip"]["tempC"] = getTemperature();
doc["sdkVersion"] = ESP.getSdkVersion();
doc["sketch"]["size"] = ESP.getSketchSize();
doc["sketch"]["md5"] = ESP.getSketchMD5();
doc["heap"]["free"] = ESP.getFreeHeap();
doc["heap"]["total"] = ESP.getHeapSize();
doc["psram"]["free"] = ESP.getFreePsram();
doc["psram"]["total"] = ESP.getPsramSize();
doc["connection"]["signalStrength"] = getWiFiStrength();
String jsonString;
serializeJson(doc, jsonString);
request->send(200, "application/json", jsonString);
}

5
src/routes/status.h Normal file
View file

@ -0,0 +1,5 @@
#include <AsyncWebServer_ESP32_W5500.h>
#include <ArduinoJson.h>
#include <driver/temp_sensor.h>
void onGetStatus(AsyncWebServerRequest *request);