From 9a484d054392cc07de31ff71dd1713aee8aa42cf Mon Sep 17 00:00:00 2001 From: Lemonochrome Date: Thu, 23 Nov 2023 23:05:55 +0100 Subject: [PATCH] Class DataHandler that handle data formatting in json from sensors --- lib/DataHandler/DataHandler.cpp | 25 +++++++++++++++++++++++++ lib/DataHandler/DataHandler.hpp | 21 +++++++++++++++++++++ lib/ServerHandler/ServerHandler.hpp | 2 +- platformio.ini | 3 ++- src/main.cpp | 13 +++++++++++++ 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 lib/DataHandler/DataHandler.cpp create mode 100644 lib/DataHandler/DataHandler.hpp diff --git a/lib/DataHandler/DataHandler.cpp b/lib/DataHandler/DataHandler.cpp new file mode 100644 index 0000000..40c891b --- /dev/null +++ b/lib/DataHandler/DataHandler.cpp @@ -0,0 +1,25 @@ +#include "DataHandler.hpp" + +DataHandler::DataHandler() {} + +void DataHandler::updateTemperatureData(float temp) { + temperature = temp; +} + +void DataHandler::updateHumidityData(float hum) { + humidity = hum; +} + +String DataHandler::getJsonData() { + return buildJson(); +} + +String DataHandler::buildJson() { + StaticJsonDocument<200> document; // Taille = 200 + document["temperature"] = temperature; + document["humidity"] = humidity; + + String jsonFormattedData; + serializeJson(document, jsonFormattedData); + return jsonFormattedData; +} \ No newline at end of file diff --git a/lib/DataHandler/DataHandler.hpp b/lib/DataHandler/DataHandler.hpp new file mode 100644 index 0000000..1bb29c6 --- /dev/null +++ b/lib/DataHandler/DataHandler.hpp @@ -0,0 +1,21 @@ +#ifndef DATAHANDLER_HPP +#define DATAHANDLER_HPP + +#include + +class DataHandler { +public: + DataHandler(); + String getJsonData(); + + void updateTemperatureData(float temperature); + void updateHumidityData(float humidity); + +private: + float temperature; + float humidity; + + String buildJson(); +}; + +#endif \ No newline at end of file diff --git a/lib/ServerHandler/ServerHandler.hpp b/lib/ServerHandler/ServerHandler.hpp index 8851633..ec5f0c3 100644 --- a/lib/ServerHandler/ServerHandler.hpp +++ b/lib/ServerHandler/ServerHandler.hpp @@ -6,7 +6,7 @@ class ServerHandler { public: - ServerHandler(); + ServerHandler(); void setup(const char* ssid, const char* password); void loop(); diff --git a/platformio.ini b/platformio.ini index cdf99da..239547c 100644 --- a/platformio.ini +++ b/platformio.ini @@ -13,4 +13,5 @@ platform = espressif8266 board = nodemcuv2 framework = arduino lib_deps = tzapu/WiFiManager@^0.16.0 - bbx10/DNSServer@^1.1.0 + bbx10/DNSServer@^1.1.0 + ArduinoJson diff --git a/src/main.cpp b/src/main.cpp index b17cfbc..0bde6a6 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3,13 +3,26 @@ #include #include "ServerHandler.hpp" +#include "DataHandler.hpp" ServerHandler serverHandler; +DataHandler dataHandler; + +int cpt = 0; void setup() { + Serial.begin(9600); + + dataHandler.updateTemperatureData(20.0); + dataHandler.updateHumidityData(3.141592); + serverHandler.setup("Redmi Note 10", "bbooksdd"); } void loop() { serverHandler.loop(); + + Serial.println(dataHandler.getJsonData()); + dataHandler.updateTemperatureData(cpt++); + delay(1000); }