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
- Beschreibung |
+ Sensor |
Messwert |
Einheit |
- Temperatur |
- -,-- |
+ SCD30 CO₂ |
+ ----,-- |
+ ppm |
+
+
+ SCD30 Temperatur |
+ -,-- |
°C |
- Luftfeuchtigkeit |
- -,-- |
+ SCD30 Luftfeuchtigkeit |
+ -,-- |
%rH |
-
- Luftdruck |
- ----,-- |
- hPa |
-
-
- Gaswiderstand |
- -,-- |
- kΩ |
-
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);