diff --git a/data/htdocs/index.html b/data/htdocs/index.html index b979561..e168391 100644 --- a/data/htdocs/index.html +++ b/data/htdocs/index.html @@ -2,28 +2,25 @@ - BME680-Wetterstation + SensorCube -

BME680-Wetterstation

+

SensorCube

- + - - + + + + + + + - - + + - - - - - - - - - -
BeschreibungSensor Messwert Einheit
Temperatur-,--SCD30 CO₂----,--ppm
SCD30 Temperatur-,-- °C
Luftfeuchtigkeit-,--SCD30 Luftfeuchtigkeit-,-- %rH
Luftdruck----,--hPa
Gaswiderstand-,--
diff --git a/data/htdocs/utils.js b/data/htdocs/utils.js index 1d1fab1..2186177 100644 --- a/data/htdocs/utils.js +++ b/data/htdocs/utils.js @@ -19,7 +19,7 @@ function getjson(url, handler_func) xmlhttp.send(); } -function getBME680Data(handler_func) +function getSensorData(handler_func) { - return getjson("/bme680.json", handler_func); + return getjson("/api/readout", handler_func); } diff --git a/include/WebServer.h b/include/WebServer.h index be68cd4..d4256a7 100644 --- a/include/WebServer.h +++ b/include/WebServer.h @@ -34,5 +34,6 @@ class WebServer // handlers static void handleRoot(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res); static void handleCalibrate(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res); + static void handleReadout(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res); static void handleStatic(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res); }; diff --git a/src/WebServer.cpp b/src/WebServer.cpp index 5ffe3c4..8024d37 100644 --- a/src/WebServer.cpp +++ b/src/WebServer.cpp @@ -60,6 +60,20 @@ static void error400(httpsserver::HTTPResponse *res, const std::string &reason) res->setStatusCode(400); } +void WebServer::handleReadout(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res) +{ + res->setHeader("Content-Type", "application/json"); + + res->setStatusCode(200); + res->print("{\"scd30\": {\"co2\": "); + res->print(instance().m_scd30->CO2); + res->print(", \"humidity\": "); + res->print(instance().m_scd30->relative_humidity); + res->print(", \"temperature\": "); + res->print(instance().m_scd30->temperature); + res->println("}}"); +} + void WebServer::handleCalibrate(httpsserver::HTTPRequest *req, httpsserver::HTTPResponse *res) { res->setHeader("Content-Type", "text/plain"); @@ -111,6 +125,8 @@ void WebServer::serverTask(void *arg) new httpsserver::ResourceNode("/", "GET", WebServer::handleRoot); httpsserver::ResourceNode *nodeAPICalibrate = new httpsserver::ResourceNode("/api/calibrate", "GET", WebServer::handleCalibrate); + httpsserver::ResourceNode *nodeAPIReadout = + new httpsserver::ResourceNode("/api/readout", "GET", WebServer::handleReadout); // handle all remaining requests by trying to serve static files. If no file is found, 404 is generated. httpsserver::ResourceNode *nodeStatic = @@ -119,6 +135,7 @@ void WebServer::serverTask(void *arg) WebServer &server = WebServer::instance(); server.m_server->registerNode(nodeRoot); + server.m_server->registerNode(nodeAPIReadout); server.m_server->registerNode(nodeAPICalibrate); server.m_server->setDefaultNode(nodeStatic);