From 1929251bfcf38b7b1a2c1cabdf90768c0cddf443 Mon Sep 17 00:00:00 2001 From: lukas Date: Sat, 22 Aug 2020 19:13:50 +0200 Subject: [PATCH] add feature to show temp and hum in web gui --- src/Temperature.cpp | 28 ++++++++++++---------------- src/Temperature.h | 22 +++++++++++++++++----- src/WifiManager.cpp | 6 ++++++ src/WifiManager.h | 2 ++ 4 files changed, 37 insertions(+), 21 deletions(-) diff --git a/src/Temperature.cpp b/src/Temperature.cpp index 4146be8..4d3c42c 100644 --- a/src/Temperature.cpp +++ b/src/Temperature.cpp @@ -8,26 +8,22 @@ void Temperature::init() { dht.begin(); } -double Temperature::getTemp() { - sensors_event_t event; - dht.temperature().getEvent(&event); - if (isnan(event.temperature)) { +float Temperature::getTemp() { + float temp = dht.readTemperature(); + Serial.println("read temp is: " + String(temp)); + if (isnan(temp)) { return -1; - } - else { - return event.temperature; + } else { + return temp; } } -double Temperature::getHum() { - sensors_event_t event; - dht.humidity().getEvent(&event); - if (isnan(event.relative_humidity)) { +float Temperature::getHum() { + float hum = dht.readHumidity(); + Serial.println("read hum is: " + String(hum)); + if (isnan(hum)) { return -1; - } - else { - - return event.relative_humidity; - + } else { + return hum; } } diff --git a/src/Temperature.h b/src/Temperature.h index dcc9cb0..4c375d6 100644 --- a/src/Temperature.h +++ b/src/Temperature.h @@ -6,16 +6,28 @@ #include #include -#include class Temperature { public: - Temperature(): dht(4, DHT22){}; + Temperature() : dht(4, DHT22){}; + /** + * initialize the temperature sensor + */ void init(); - double getTemp(); - double getHum(); + + /** + * read the temperature value in C + * @return float value of temperature + */ + float getTemp(); + + /** + * read current humidity value in % + * @return float value of humidity + */ + float getHum(); private: - DHT_Unified dht; + DHT dht; }; diff --git a/src/WifiManager.cpp b/src/WifiManager.cpp index d9c1cf4..c9e8ec7 100644 --- a/src/WifiManager.cpp +++ b/src/WifiManager.cpp @@ -30,6 +30,9 @@ void WifiManager::init() { } else { Serial.println("Wifi Setup failed!"); } + + // init temperature sensor + temp.init(); } WifiManager::WifiManager() : server(80), lastPumpTime(0), lastWaterOutage(0), lastPumpDuration(0) {} @@ -104,6 +107,9 @@ void WifiManager::handleRoot() { index_html += "
Drucksensor: " + String((digitalRead(DruckSensorPin) ? "EIN" : "AUS")) + "
"; index_html += "
Wassersensor: " + String((digitalRead(WasserSensorPin) ? "EIN" : "AUS")) + "
"; + index_html += "
Temperatur: " + String(this->temp.getTemp()) + "C
"; + index_html += "
Relative Luftfeuchtigkeit: " + String(this->temp.getHum()) + "%
"; + index_html += ""; server.send(200, "text/html", index_html); diff --git a/src/WifiManager.h b/src/WifiManager.h index 89bedec..2201d24 100644 --- a/src/WifiManager.h +++ b/src/WifiManager.h @@ -7,6 +7,7 @@ #include #include #include +#include "Temperature.h" class WifiManager { public: @@ -53,6 +54,7 @@ private: static const uint8_t DruckSensorPin = 12; ESP8266WebServer server; + Temperature temp; void handleRoot();