#include #include #include #include "ServerHandler.hpp" #include "Component.hpp" #include "Screen.hpp" #ifdef SSID_CLOVER const char* ssid = SSID_CLOVER; #endif #ifdef PSWD_CLOVER const char* pswd = PSWD_CLOVER; #endif Component humidity(ComponentType::Analog, PIN_A0); void setup() { Serial.begin(9600); Display::Screen::GetInstance().Setup(const_cast(u8g2_font_busdisplay8x5_tr)); ServerHandler::GetInstance().setup(ssid, pswd); } void loop() { auto& serverHandler = ServerHandler::GetInstance(); auto& dataHandler = DataHandler::GetInstance(); auto& screen = Display::Screen::GetInstance(); // Could not connect, show screen failure if(!serverHandler.isConnected()) { screen.notConnected(); return; } // Is booting if(screen.isBooting() && serverHandler.showBoot()) { screen.boot(); delay(166); } // If serverHandler finished showing ip. if (!screen.isBooting()) screen.loop(); dataHandler.updateTemperatureData(random(1800, 2200) / 100.0); // 0 -> air(0), 0-300 -> dry(20), 300-700 -> humid (580), 700-950 -> water(940) dataHandler.updateHumidityData(static_cast(std::any_cast(humidity.getValue()))); Serial.println(dataHandler.getJsonData()); // When showing IP, delay is faster. delay(serverHandler.showNext() ? 0 : 250); serverHandler.loop(); }