From 470abe2804ee612f617a3c3ff5702990eae733f9 Mon Sep 17 00:00:00 2001 From: Clement Date: Sat, 21 Oct 2023 19:14:00 +0200 Subject: [PATCH] feat: add-ntp-support (#4) --- include/Program.h | 11 +++++++++++ platformio.ini | 1 + src/Program.cpp | 38 ++++++++++++++++++++++++++++++++------ src/main.cpp | 2 ++ 4 files changed, 46 insertions(+), 6 deletions(-) diff --git a/include/Program.h b/include/Program.h index 3da93f5..c49730f 100644 --- a/include/Program.h +++ b/include/Program.h @@ -3,6 +3,8 @@ #include #include +#include +#include #include "DiscordAPI.h" #include "SwitchableEncodeur.h" @@ -35,6 +37,15 @@ private: DiscordAPI* discord; LedLib* ledLib; + WiFiUDP* ntpUDP; + NTPClient* timeClient; + + /** + * @brief Send time to discord + * the start time is automaticly set to the current time + * @param[in] timeEnd LabOuest closing time + */ + void sendTime(String timeEnd); }; #endif diff --git a/platformio.ini b/platformio.ini index a4c6637..325b3ea 100644 --- a/platformio.ini +++ b/platformio.ini @@ -53,6 +53,7 @@ lib_deps = ; example: ; erropix/ESP32 AnalogWrite@0.2 adafruit/Adafruit NeoPixel@^1.11.0 + arduino-libraries/NTPClient@^3.2.1 ; Checker settings check_tool = clangtidy, cppcheck diff --git a/src/Program.cpp b/src/Program.cpp index 9f4d975..3d3e8f6 100644 --- a/src/Program.cpp +++ b/src/Program.cpp @@ -26,14 +26,21 @@ Program::Program() { // Startup Discord API this->discord = new DiscordAPI(DISCORD_HOOK); - delay(1000); - //Serial.println(this->discord->sendHeure("10h", "18h")); + // startup NTP + this->ntpUDP = new WiFiUDP(); + this->timeClient = new NTPClient(*this->ntpUDP, "pool.ntp.org", 3600*2);//*2 = gnt+2 - // Startup Encoder - this->encoder = new SwitchableEncodeur(ENCODER_DT, ENCODER_CLK, ENCODER_SWITCH, 3); + this->timeClient->update(); + //this->sendTime("18h12"); +} - // Startup LEDs - this->ledLib = new LedLib(PIXEL_COUNT, PIXEL_PIN, 255); +void Program::sendTime(String timeEnd){ + String start = (String)this->timeClient->getHours() + "h"; + int startQuater = this->timeClient->getMinutes()/15; + if (startQuater != 0){ + start += (String)(startQuater * 15); + } + this->discord->sendHeure(start, timeEnd); } void Program::loop() { @@ -43,4 +50,23 @@ void Program::loop() { Serial.print(" "); Serial.println(this->encoder->getMenu()); } + delay(1000); + + this->timeClient->update(); + + int currentHour = this->timeClient->getHours(); + Serial.print("Hour: "); + Serial.println(currentHour); + + int currentMinute = this->timeClient->getMinutes(); + Serial.print("Minutes: "); + Serial.println(currentMinute); + + int currentSecond = this->timeClient->getSeconds(); + Serial.print("Seconds: "); + Serial.println(currentSecond); + + int currentDayOfWeek = this->timeClient->getDay(); + Serial.print("Day of week: "); + Serial.println(currentDayOfWeek); } diff --git a/src/main.cpp b/src/main.cpp index 74bf5a7..6828cdb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -9,3 +9,5 @@ void setup() { void loop() { program->loop(); } + +