Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // -------------------------------------------------------------------------------------------------- //
- // //
- // file : Marcin E-Home Reminder.ino //
- // version : 0.05 BETA (dla mikro-procesora ESP8266 32-bit RISC Tensilica Xtensa 160 MHz) //
- // //
- // autor : Marcinek //
- // //
- // licencja: tylko do użytku prywatnego //
- // //
- // -------------------------------------------------------------------------------------------------- //
- // //
- // MATRYCA ENGINE v0.34 BETA by T R A N S L I N E T o m a s z M a j c h e r //
- // TOOLS ENGINE v0.02 BETA by T R A N S L I N E T o m a s z M a j c h e r //
- // //
- // -------------------------------------------------------------------------------------------------- //
- // HISTORIA WERSJI //
- // //
- // wersja 0.05 BETA - (14.02.2021) - SPIFFS + logger //
- // wersja 0.04 PRO - (14.03.2021) - test OK. PRO v.stabilna ( RAM Free : 37328 [kB] ) //
- // wersja 0.03 BETA - (13.03.2021) - harmonogram e-lekcji MARCIN klasa 4B //
- // wersja 0.02 BETA - (12.03.2021) - przebudowa !!! do wersji PRO //
- // wersja 0.01 BETA - dawno dawno temu - w ramach testu układu ESP8266 //
- // //
- // -------------------------------------------------------------------------------------------------- // <--- I N C L U D E
- // --- I N C L U D E --- //
- // -------------------------------------------------------------------------------------------------- //
- extern "C" char* sbrk(int incr);
- #include <ESP8266WiFi.h> // biblioteka Wi-Fi
- //#include "FS.h" // SPIFFS memory
- #include <NTPClient.h> // NTP klient (czas)
- #include <WiFiUdp.h> // UDP
- #include <MD_Parola.h> // MATRYCA
- #include <MD_MAX72xx.h> // MATRYCA
- #include <SPI.h> // SPI wire dla MATRYCY
- #include <ESP8266HTTPClient.h> // HTTP klient
- #include <TaskScheduler.h> // menadżer zadań
- #include <WiFiClient.h> // klient Wi-Fi
- #include "tools.h" // TOOLS ENGINE
- #include <Arduino_JSON.h> // for PARSER / dla parsera
- #include "struktura.h" // przechowuje struktury
- #include "matryca.h" // MATRYCA ENGINE
- #include <TimeLib.h> // parser czasu
- #include <ESP8266FtpServer.h> // ftp server
- #include <logger_spiffs.h> // logger to pamięci SPIFFS
- // -------------------------------------------------------------------------------------------------- // <--- P A R O L A
- // --- D E F I N E - P A R O L A - O P T Y M I Z E D T O 8 * M A X 7 2 1 9 --- //
- // -------------------------------------------------------------------------------------------------- //
- #define HARDWARE_TYPE MD_MAX72XX::FC16_HW
- #define MAX_DEVICES 8 // ilość wyświetlaczy ( 8 )
- #define CLK_PIN D5 // CLK (SCK) PIN D5 na ESP2886
- #define DATA_PIN D7 // DATA (MOSI) PIN D7 na ESP2886
- #define CS_PIN D8 // CS (SS) PIND D8 na ESP2886
- // GND do G na ESP2886
- // VCC do 3V na ESP2886
- // -------------------------------------------------------------------------------------------------- //
- // --- D E F I N E - T E R M I N A L - S E R I A L D E B U G --- //
- // -------------------------------------------------------------------------------------------------- //
- #define TERMINAL 1 // 0 - wyłącz SERIAL, 1 - włącz SERIAL
- #define USBSPEED 57600 // 57600 - prędkość Terminala szeregowego
- // -------------------------------------------------------------------------------------------------- // <--- P A R O L A
- // --- O B J E C T - P A R O L A - M A T R Y C A ( P A R O L A ) --- //
- // -------------------------------------------------------------------------------------------------- //
- MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
- Matryca M(P); // dla klasy Matryca (matryca.h)
- // -------------------------------------------------------------------------------------------------- // <--- T O O L S
- // --- O B J E C T - T O O L S --- //
- // -------------------------------------------------------------------------------------------------- //
- Tools tools;
- FtpServer ftpSrv;
- LoggerSPIFFS myLog("/log/mylog.log");
- // -------------------------------------------------------------------------------------------------- //
- // --- O B J E C T - W I F I & N T P //
- // -------------------------------------------------------------------------------------------------- // <--- W I F I
- WiFiUDP ntpUDP; // ntp dla Time / Date Serwer
- NTPClient timeClient(ntpUDP, "pool.ntp.org", 3600);
- // ================================================================================================== //
- // === S C H E L U D E R ============================================================================ //
- // ================================================================================================== //
- void Task0Callback(); // funkcja dla task_0
- void Task1Callback(); // funkcja dla task_1
- void Task2Callback(); // funkcja dla task_2
- void Task3Callback(); // funkcja dla task_2
- Task task_0( 3600000, TASK_FOREVER, &Task0Callback); // task_0 - co 1 godzinę
- Task task_1(10800000, TASK_FOREVER, &Task1Callback); // task_1 - co 3 godziny
- Task task_2( 60000, TASK_FOREVER, &Task2Callback); // task_2 - co 1 minutę
- Task task_3( 1000, TASK_FOREVER, &Task3Callback); // task_3 - co 1 sekundę
- Scheduler runner;
- // -------------------------------------------------------------------------------------------------- //
- // --- O T H E R V A R I A B L E & C O N S T --- //
- // -------------------------------------------------------------------------------------------------- //
- const char *ssid = "DIABLO"; // network wifi ssid
- const char *password = "XXXXXXXXXX "; // network wifi password
- String openWeatherMapApiKey = "565a88311e7c48c2d00b170cd0765c91"; // token for openWeather
- String city = "Legnica"; // city for weather
- String countryCode = "Pl"; // country for weather
- String jsonBuffer; // buffer - bufor
- bool Flaga_PokazCzas = true; // flaga zegara dla Matrycy
- void ( *ptrF ) (); // wskaźnik do funkcji void
- // -------------------------------------------------------------------------------------------------- //
- // --- S E T U P M A I N S E C T I O N --- //
- // -------------------------------------------------------------------------------------------------- //
- void setup(void)
- {
- SPIFFS.begin(); // File System 2MBita
- myLog.begin();
- //SPIFFS.format(); // tylko raz !!!
- timeClient.begin(); // Time Client NTP start
- ftpSrv.begin("Marcin","Marcin"); //username, password for ftp. set ports in ESP8266FtpServer.h (default 21, 50009 for PASV)
- // ------------------------------ if TERMINAL == 1 Serial.begin ----------------------------------- //
- #if TERMINAL
- Serial.begin(57600);
- #endif
- // ------------------------------------------------------------------------------------------------ //
- WiFi.begin(ssid, password); // WiFi start connection
- // ------------------------------------------------------------------------------------------------ //
- while ( WiFi.status() != WL_CONNECTED ) // czekaj na połączenie
- { // wait for connect
- delay ( 200 ); // safe mode
- #if TERMINAL
- Serial.print ( "." ); // print dot / drukuj .
- #endif
- }
- // ------------------------------------------------------------------------------------------------ //
- #if TERMINAL
- Serial.printf("\n[ESP] [SETUP] POLACZONO z WIFI ");
- Serial.printf("\n[ESP] [Memory Free] : %u [kB]", ESP.getFreeHeap());
- Serial.printf("\n[ESP] [CPU frequency] : %u [MHz]",ESP.getCpuFreqMHz());
- Serial.println(WiFi.localIP() );
- #endif
- P.begin(); // Parola (P) begin
- M.Setup(); // Matryca (Parola) Setup
- // ------------------------------------------------------------------------------------------------ //
- // R U N M Y T H R E A D N O W - U R U C H O M Z A D A N I A Z S E T U P //
- // ------------------------------------------------------------------------------------------------ //
- runner.init(); // inicjalizuj scheluder
- runner.addTask(task_0); // dodaj zadanie do scheluder
- task_0.enable(); // włącz zadanie do scheluder
- runner.addTask(task_1); // dodaj zadanie do scheluder
- task_1.enable(); // włącz zadanie do scheluder
- runner.addTask(task_2); // dodaj zadanie do scheluder
- task_2.enable(); // włącz zadanie do scheluder
- runner.addTask(task_3); // dodaj zadanie do scheluder
- task_3.enable(); // włącz zadanie do scheluder
- TaskSetup();
- }
- // --- END SETUP ------------------------------------------------------------------------------------ //
- //
- //
- //
- //
- //
- //
- //
- //
- // -------------------------------------------------------------------------------------------------- //
- // --- L O O P --- // <--- L O O P
- // -------------------------------------------------------------------------------------------------- //
- void loop(void)
- {
- runner.execute(); // HARMONOGRAM zadań RUNNER
- //ftpSrv.handleFTP();
- TaskLoop(); // GŁÓWNY LOOP ZADAŃ
- }
- // E N D L O O P ---------------------------------------------------------------------------------- //
- //
- //
- //
- //
- //
- //
- //
- //
- // ================================================================================================== //
- // === TaskLoop - Główny Przełącznik Zadań =================================================== // <- TASK LOOP
- // ================================================================================================== //
- void TaskLoop()
- {
- switch(czas.Minuta)
- {
- case 0: Flaga_PokazCzas = false; TaskSwitcher00(); break;
- case 1: Flaga_PokazCzas = false; TaskSwitcher01(); break; // TaskSwitcher 01 run
- case 2: Flaga_PokazCzas = false; TaskSwitcher02(); break; // TaskSwitcher 02 run
- case 3: Flaga_PokazCzas = false; TaskSwitcher03(); break; // TaskSwitcher 03 run
- case 4: Flaga_PokazCzas = false; TaskSwitcher04(); break; // TaskSwitcher 04 run
- case 5: Flaga_PokazCzas = true; break; // zegar
- case 6: Flaga_PokazCzas = true; break; // zegar
- case 7: Flaga_PokazCzas = true; break; // zegar
- case 8: Flaga_PokazCzas = true; break; // zegar
- case 9: Flaga_PokazCzas = true; break; // zegar
- case 10: Flaga_PokazCzas = true; break; // zegar
- case 11: Flaga_PokazCzas = false; TaskSwitcher11(); break; // TaskSwitcher 11 run
- case 12: Flaga_PokazCzas = true; break; // zegar
- case 13: Flaga_PokazCzas = true; break; // zegar
- case 14: Flaga_PokazCzas = true; break; // zegar
- case 15: Flaga_PokazCzas = false; TaskSwitcher15(); break; // TaskSwitcher 15 run
- case 16: Flaga_PokazCzas = true; break; // zegar
- case 17: Flaga_PokazCzas = false; TaskSwitcher17(); break; // TaskSwitcher 17 run
- case 18: Flaga_PokazCzas = true; break; // zegar
- case 19: Flaga_PokazCzas = true; break; // zegar
- case 20: Flaga_PokazCzas = false; TaskSwitcher20(); break; // TaskSwitcher 20 run
- case 21: Flaga_PokazCzas = false; TaskSwitcher21(); break; // TaskSwitcher 21 run
- case 22: Flaga_PokazCzas = true; break; // zegar
- case 23: Flaga_PokazCzas = false; TaskSwitcher23(); break; // TaskSwitcher 23 run
- case 24: Flaga_PokazCzas = true; break; // zegar
- case 25: Flaga_PokazCzas = false; TaskSwitcher25(); break; // TaskSwitcher 25 run
- case 26: Flaga_PokazCzas = true; break; // zegar
- case 27: Flaga_PokazCzas = false; TaskSwitcher27(); break; // TaskSwitcher 27 run
- case 28: Flaga_PokazCzas = true; break; // zegar
- case 29: Flaga_PokazCzas = true; break; // zegar
- case 30: Flaga_PokazCzas = false; TaskSwitcher30(); break; // TaskSwitcher 30 run
- case 31: Flaga_PokazCzas = false; TaskSwitcher31(); break; // TaskSwitcher 31 run
- case 32: Flaga_PokazCzas = true; break; // zegar
- case 33: Flaga_PokazCzas = true; break; // zegar
- case 34: Flaga_PokazCzas = true; break; // zegar
- case 35: Flaga_PokazCzas = false; TaskSwitcher35(); break; // TaskSwitcher 35 run (szkoła 11:35)
- case 36: Flaga_PokazCzas = true; break; // zegar
- case 37: Flaga_PokazCzas = true; break; // zegar
- case 38: Flaga_PokazCzas = true; break; // zegar
- case 39: Flaga_PokazCzas = true; break; // zegar
- case 40: Flaga_PokazCzas = false; TaskSwitcher40(); break; // TaskSwitcher 40 run (szkoła 11:40)
- case 41: Flaga_PokazCzas = true; break; // zegar
- case 42: Flaga_PokazCzas = true; break; // zegar
- case 43: Flaga_PokazCzas = true; break; // zegar
- case 44: Flaga_PokazCzas = true; break; // zegar
- case 45: Flaga_PokazCzas = false; TaskSwitcher45(); break; // TaskSwitcher 45 run (szkoła 10:45, 12:45)
- case 46: Flaga_PokazCzas = true; break; // zegar
- case 47: Flaga_PokazCzas = true; break; // zegar
- case 48: Flaga_PokazCzas = false; TaskSwitcher48(); break; // TaskSwitcher 48 run
- case 49: Flaga_PokazCzas = true; break; // zegar
- case 50: Flaga_PokazCzas = false; TaskSwitcher50(); break; // TaskSwitcher 50 run (szkoła 9:50)
- case 51: Flaga_PokazCzas = true; break; // zegar
- case 52: Flaga_PokazCzas = true; break; // zegar
- case 53: Flaga_PokazCzas = true; break; // zegar
- case 54: Flaga_PokazCzas = true; break; // zegar
- case 55: Flaga_PokazCzas = false; TaskSwitcher55(); break; // TaskSwitcher 55 run (szkoła 8:55)
- case 56: Flaga_PokazCzas = true; break; // zegar
- case 57: Flaga_PokazCzas = false; TaskSwitcher57(); break; // TaskSwitcher 57 run
- case 58: Flaga_PokazCzas = false; TaskSwitcher58(); break; // TaskSwitcher 58 run
- case 59: Flaga_PokazCzas = true; break; // zegar
- dafault : Flaga_PokazCzas = true; break; // zegar
- }
- }
- // ================================================================================================== //
- // === TaskSetup - wykonywane z SETUP ======================================================= // <- TASK SETUP
- // ================================================================================================== //
- void TaskSetup()
- {
- Task0Callback();
- Task1Callback();
- Task2Callback();
- Task3Callback();
- }
- // ================================================================================================== //
- // === TASK0 - wykonywane co 1 godzinę ====================================================== // <- TASK 0
- // ================================================================================================== //
- void Task0Callback()
- {
- WeatherUpdate(); // aktualizuj dane pogodowe
- M.Dane2Bufor(); // buduj bufory dla MATRYCY
- }
- // ================================================================================================== //
- // === TASK1 - wykonywane co 3 godziny ====================================================== // <- TASK 1
- // ================================================================================================== //
- void Task1Callback()
- {
- DateUpdate(); // aktualizuj datę z serwera
- M.Czas2Bufor(); // buduj bufory czasu
- M.Data2Bufor(); // buduj bufory dla MATRYCY
- if ( indx_temp < 24 ) backup_temperatura[indx_temp++] = pogoda.temperatura; // zapisz temperaturę do tablicy
- else indx_temp = 0; // resetuj licznik
- double srednia = 0;
- for(byte index = 0; index < indx_temp; index ++ ) srednia += backup_temperatura[index];
- char temp[10];
- sprintf(temp, "%.2f", srednia / (indx_temp) );
- tools.PokazWiadomosc("ESP","Temperatura Srednia",temp);
- String record = "[" + czas.SformatowanaData + "][" + czas.SformatowanyCzas
- + "][Temp: " + String(pogoda.temperatura) +"][Temp Średnia: " + String(temp) + "]";
- myLog.append(record.c_str());
- }
- // ================================================================================================== //
- // === TASK2 - wykonywane co 1 minutę ========================================================= // <- TASK 2
- // ================================================================================================== //
- void Task2Callback()
- {
- M.Czas2Bufor(); // buduj bufory czasu
- M.System2Bufor(); // buduj bufory systemu
- #if TERMINAL
- Serial.printf("\n[ESP] [Memory Free] : %u [kB]", ESP.getFreeHeap());
- #endif
- }
- // ================================================================================================== //
- // === TASK3 - wykonywane co 1 sekundę ====================================================== // <- TASK 3
- // ================================================================================================== //
- void Task3Callback()
- {
- TimeUpdate(); // aktualizuj czas i synchronizuj
- if(Flaga_PokazCzas) M.PokazCzas_Typ1(); // pokaż duży zegar na matrycy
- }
- // ================================================================================================== //
- // //
- // F U N K C J E H A R M O N O G R A M U Z A D A Ń C Z A S O W Y C H //
- // //
- // ================================================================================================== //
- // === TASK - wykonywane w 00 minucie ===================================================== // <- TASK SWITCHER 00
- // ================================================================================================== //
- void TaskSwitcher00()
- {
- // ----------------------------------------------------------------------------//
- // 0 8 : 0 0
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 8)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 8 : 00
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 08:00
- case 1: M.WyswietlPogode(); break; // poniedzialek 08:00
- case 2: M.WyswietlPogode(); break; // wtorek 08:00
- case 3: M.ShowLesson("Przyroda"); break; // sroda 08:00
- case 4: M.WyswietlPogode(); break; // czwartek 08:00
- case 5: M.ShowLesson("W-f"); break; // piatek 08:00
- case 6: M.ShowSaturdayMsg(); break; // sobota 08:00
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 1 minucie ====================================================== // <- TASK SWITCHER 1
- // ================================================================================================== //
- void TaskSwitcher01()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 2 minucie ====================================================== // <- TASK SWITCHER 2
- // ================================================================================================== //
- void TaskSwitcher02()
- {
- M.WyswietlSystem(); // wyświetl na Matrycy zasoby system
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 3 minucie ====================================================== // <- TASK SWITCHER 3
- // ================================================================================================== //
- void TaskSwitcher03()
- {
- M.SpriteDemo(); // wyświetl na Matrycy DEMO SPRITE
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 4 minucie ====================================================== // <- TASK SWITCHER 4
- // ================================================================================================== //
- void TaskSwitcher04()
- {
- M.EffectDemo(); // wyświetl na Matrycy DEMO EFFECT
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 11 minucie ===================================================== // <- TASK SWITCHER 11
- // ================================================================================================== //
- void TaskSwitcher11()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 15 minucie ===================================================== // <- TASK SWITCHER 15
- // ================================================================================================== //
- void TaskSwitcher15()
- {
- M.ShowDayMsg();
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 17 minucie ===================================================== // <- TASK SWITCHER 17
- // ================================================================================================== //
- void TaskSwitcher17()
- {
- M.ShowDayMsg();
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 20 minucie ===================================================== // <- TASK SWITCHER 20
- // ================================================================================================== //
- void TaskSwitcher20()
- {
- // ----------------------------------------------------------------------------//
- // 1 2 : 2 0 LEKCJA skonczy się za 5 minut PRZYPOMNIJ
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 12)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 12 : 20
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 12 : 20
- case 1: M.ShowReminderLesson("Za 5 minut konczy sie W-F"); break; // poniedzialek 12 : 20
- case 2: M.ShowReminderLesson("Za 5 minut konczy sie Polski"); break; // wtorek 12 : 20
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Polski"); break; // sroda 12 : 20
- case 4: M.ShowReminderLesson("Za 5 minut konczy sie Informatyka"); break; // czwartek 12 : 20
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie Przyroda"); break; // piatek 12 : 20
- case 6: M.ShowSaturdayMsg(); break; // sobota 12 : 20
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 21 minucie ===================================================== // <- TASK SWITCHER 21
- // ================================================================================================== //
- void TaskSwitcher21()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 23 minucie ===================================================== // <- TASK SWITCHER 23
- // ================================================================================================== //
- void TaskSwitcher23()
- {
- M.ShowDayMsg();
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 25 minucie ===================================================== // <- TASK SWITCHER 25
- // ================================================================================================== //
- void TaskSwitcher25()
- {
- // ----------------------------------------------------------------------------//
- // 1 1 : 2 5 LEKCJA konczy się za 5 minut PRZYPOMNIJ
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 11)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 11 : 25
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 11:25
- case 1: M.ShowReminderLesson("Za 5 minut konczy sie W-F"); break; // poniedzialek 11:25
- case 2: M.ShowReminderLesson("Za 5 minut konczy sie Polski"); break; // wtorek 11:25
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Plastyka"); break; // sroda 11:25
- case 4: M.ShowReminderLesson("Za 5 minut konczy sie Angielski"); break; // czwartek 11:25
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie Polski"); break; // piatek 11:25
- case 6: M.ShowSaturdayMsg(); break; // sobota 11:25
- default : Flaga_PokazCzas = true; break;
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 3 : 2 5 LEKCJA konczy się za 5 minut PRZYPOMNIJ
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 13)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 13: 25
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 13: 25
- case 1: M.ShowReminderLesson("Za 5 minut konczy sie Muzyka"); break; // poniedzialek 13: 25
- case 2: M.ShowReminderLesson("Za 5 minut konczy sie W-F"); break; // wtorek 13: 25
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Angielski"); break; // sroda 13: 25
- case 4: M.ShowReminderLesson("Za 5 minut konczy sie WDŻ"); break; // czwartek 13: 25
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie Religia"); break; // piatek 13: 25
- case 6: M.ShowSaturdayMsg(); break; // sobota 13: 25
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 4 : 2 5 LEKCJA się kończy za 5 minut
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 14)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 14: 25
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 14: 25
- case 1: M.WyswietlPogode(); break; // poniedzialek 14: 25
- case 2: M.ShowReminderLesson("Za 5 minut konczy sie Angielski");
- break; // wtorek 14: 25
- case 3: M.WyswietlPogode(); break; // sroda 14: 25
- case 4: M.WyswietlPogode(); break; // czwartek 14: 25
- case 5: M.WyswietlPogode(); break; // piatek 14: 25
- case 6: M.ShowSaturdayMsg(); break; // sobota 14: 25
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 27 minucie ===================================================== // <- TASK SWITCHER 27
- // ================================================================================================== //
- void TaskSwitcher27()
- {
- M.ShowDayMsg();
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 30 minucie ===================================================== // <- TASK SWITCHER 30
- // ================================================================================================== //
- void TaskSwitcher30()
- {
- // ----------------------------------------------------------------------------//
- // 1 0 : 3 0 PRZYPOMNIJ O zblizajacym sie koncu LEKCJI
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 10)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 10 : 30
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 10 : 30
- case 1: M.ShowReminderLesson("Za 5 minut konczy sie Technika"); break; // poniedzialek 10:30
- case 2: M.ShowReminderLesson("Za 5 minut konczy sie Matematyka"); break; // wtorek 10 : 30
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Matematyka"); break; // sroda 10 : 30
- case 4: M.ShowReminderLesson("Za 5 minut konczy sie Religia"); break; // czwartek 10 : 30
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie Godzina Wychowawcza."); break; // piatek 10 : 30
- case 6: M.ShowSaturdayMsg(); break; // sobota 10 : 30
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 31 minucie ===================================================== // <- TASK SWITCHER 31
- // ================================================================================================== //
- void TaskSwitcher31()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 35 minucie ===================================================== // <- TASK SWITCHER 35
- // ================================================================================================== //
- void TaskSwitcher35()
- {
- // ----------------------------------------------------------------------------//
- // 0 9 : 3 5 LEKCJA KOŃCZY SIĘ za 5 MINUT
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 9)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 09 : 35
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 09 : 35
- case 1: M.ShowReminderLesson("Za 5 minut konczy sie Matematyka"); break; // poniedzialek 09 : 35
- case 2: M.ShowLesson("masz 15 min przerwy"); break; // wtorek 09 : 35
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Historia"); break; // sroda 09 : 35
- case 4: M.ShowReminderLesson("Za 5 minut konczy sie Jezyk Polski"); break; // czwartek 09 : 35
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie Matematyka"); break; // piatek 09 : 35
- case 6: M.ShowSaturdayMsg(); break; // sobota 09 : 35
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 1 : 3 5 LEKCJA zacznie się za 5 minut PRZYPOMNIJ
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 11)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 11 : 35
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 11:35
- case 1: M.ShowReminderLesson("Za 5 minut zaczyna sie W-F"); break; // poniedzialek 11:35
- case 2: M.ShowReminderLesson("Za 5 minut zaczyna sie Polski"); break; // wtorek 11:35
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Polski"); break; // sroda 11:35
- case 4: M.ShowReminderLesson("Za 5 minut zaczyna sie Informatyka"); break; // czwartek 11:35
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie Przyroda"); break; // piatek 11:35
- case 6: M.ShowSaturdayMsg(); break; // sobota 11:35
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 40 minucie ===================================================== // <- TASK SWITCHER 40
- // ================================================================================================== //
- void TaskSwitcher40()
- {
- // ----------------------------------------------------------------------------//
- // 0 8 : 4 0 za 5 minut koniec lekcji
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 8)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 8 : 40
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 08:40
- case 1: M.WyswietlPogode(); break; // poniedzialek 08:40
- case 2: M.WyswietlPogode(); break; // wtorek 08:40
- case 3: M.ShowReminderLesson("Za 5 minut konczy sie Przyroda"); break; // sroda 08:40
- case 4: M.WyswietlPogode(); break; // czwartek 08:40
- case 5: M.ShowReminderLesson("Za 5 minut konczy sie W-f"); break; // piatek 08:40
- case 6: M.ShowSaturdayMsg(); break; // sobota 08:40
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 0 : 4 0 LEKCJA zacznie się za 5 minut PRZYPOMNIJ
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 10)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 10 : 40
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 10:40
- case 1: M.ShowReminderLesson("Za 5 minut zaczyna sie W-F"); break; // poniedzialek 10:40
- case 2: M.ShowReminderLesson("Za 5 minut zaczyna sie Polski"); break; // wtorek 10:40
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Plastyka"); break; // sroda 10:40
- case 4: M.ShowReminderLesson("Za 5 minut zaczyna sie Angielski"); break; // czwartek 10:40
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie Polski"); break; // piatek 10:40
- case 6: M.ShowSaturdayMsg(); break; // sobota 10:40
- default : Flaga_PokazCzas = true; break;
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 1 : 4 0 LEKCJA SIE ROZPOCZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 11)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 8 : 55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 11:40
- case 1: M.ShowLesson("W-F"); break; // poniedzialek 11:40
- case 2: M.ShowLesson("Polski"); break; // wtorek 11:40
- case 3: M.ShowLesson("Polski"); break; // sroda 11:40
- case 4: M.ShowLesson("Informatyka"); break; // czwartek 11:40
- case 5: M.ShowLesson("Przyroda"); break; // piatek 11:40
- case 6: M.ShowSaturdayMsg(); break; // sobota 11:40
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 2 : 4 0 PRZYPOMNIJ O LEKCJI
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 12)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 12: 40
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 12:40
- case 1: M.ShowReminderLesson("Za 5 minut zaczyna sie Muzyka"); break; // poniedzialek 12:40
- case 2: M.ShowReminderLesson("Za 5 minut zaczyna sie W-F"); break; // wtorek 12:40
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Angielski"); break; // sroda 12:40
- case 4: M.ShowReminderLesson("Za 5 minut zaczyna sie WDŻ"); break; // czwartek 12:40
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie Religia"); break; // piatek 12:40
- case 6: M.ShowSaturdayMsg(); break; // sobota 12:40
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 3 : 4 0 PRZYPOMNIJ O LEKCJI
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 13)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 13: 55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 13:40
- case 1: M.WyswietlPogode(); break; // poniedzialek 13:40
- case 2: M.ShowReminderLesson("Za 5 minut zaczyna sie Angielski"); break; // wtorek 13:40
- case 3: M.WyswietlPogode(); break; // sroda 13:40
- case 4: M.WyswietlPogode(); break; // czwartek 13:40
- case 5: M.WyswietlPogode(); break; // piatek 13:40
- case 6: M.ShowSaturdayMsg(); break; // sobota 13:40
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 45 minucie ===================================================== // <- TASK SWITCHER 45
- // ================================================================================================== //
- void TaskSwitcher45()
- {
- // ----------------------------------------------------------------------------//
- // 0 9 : 4 5 PRZYPOMNIJ O LEKCJI
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 9)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 9 : 45
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 9:45
- case 1: M.ShowReminderLesson("Za 5 minut zaczyna sie Technika"); break; // poniedzialek 9:45
- case 2: M.ShowReminderLesson("Za 5 minut zaczyna sie Matematyka"); break; // wtorek 9:45
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Matematyka"); break; // sroda 9:45
- case 4: M.ShowReminderLesson("Za 5 minut zaczyna sie Religia"); break; // czwartek 9:45
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie Godzina Wychowawcza."); break; // piatek 9:45
- case 6: M.ShowSaturdayMsg(); break; // sobota 9:45
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 0 : 4 5 LEKCJA SIE ZACZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 10)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 10 : 45
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 10:45
- case 1: M.ShowLesson("W-F"); break; // poniedzialek 10:45
- case 2: M.ShowLesson("Polski"); break; // wtorek 10:45
- case 3: M.ShowLesson("Plastyka"); break; // sroda 10:45
- case 4: M.ShowLesson("Angielski"); break; // czwartek 10:45
- case 5: M.ShowLesson("Polski"); break; // piatek 10:45
- case 6: M.ShowSaturdayMsg(); break; // sobota 10:45
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 2 : 4 5 LEKCJA SIĘ ZACZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 12)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 12: 45
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 12:45
- case 1: M.ShowLesson("Muzyka"); break; // poniedzialek 12:45
- case 2: M.ShowLesson("W-F"); break; // wtorek 12:45
- case 3: M.ShowLesson("Angielski"); break; // sroda 12:45
- case 4: M.ShowLesson("WDŻ"); break; // czwartek 12:45
- case 5: M.ShowLesson("Religia"); break; // piatek 12:45
- case 6: M.ShowSaturdayMsg(); break; // sobota 12:45
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 1 3 : 4 5 LEKCJA SIĘ ZACZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 13)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 13: 55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 13:45
- case 1: M.WyswietlPogode(); break; // poniedzialek 13:45
- case 2: M.ShowLesson("Angielski"); break; // wtorek 13:45
- case 3: M.WyswietlPogode(); break; // sroda 13:45
- case 4: M.WyswietlPogode(); break; // czwartek 13:45
- case 5: M.WyswietlPogode(); break; // piatek 13:45
- case 6: M.ShowSaturdayMsg(); break; // sobota 13:45
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 48 minucie ===================================================== // <- TASK SWITCHER 48
- // ================================================================================================== //
- void TaskSwitcher48()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 50 minucie ====================================================== // <- TASK SWITCHER 50
- // ================================================================================================== //
- void TaskSwitcher50()
- {
- // ----------------------------------------------------------------------------//
- // 0 8 : 5 0 PRZYPOMNIJ O LEKCJI 5MIN PRZED
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 8)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 8 : 55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 8:50
- case 1: M.ShowReminderLesson("Za 5 minut zaczyna sie Matematyka"); break; // poniedzialek 8:50
- case 2: M.ShowReminderLesson("Za 1 godzine zaczyna sie Matematyka"); break; // wtorek 8:50
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Przyroda"); break; // sroda 8:50
- case 4: M.ShowReminderLesson("Za 5 minut zaczyna sie Jezyk Polski"); break; // czwartek 8:50
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie Matematyka"); break; // piatek 8:50
- case 6: M.ShowSaturdayMsg(); break; // sobota 8:50
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 0 9 : 5 0 LEKCJA SIĘ ZACZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 9)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 9 : 50
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 9:50
- case 1: M.ShowLesson("Technika"); break; // poniedzialek 9:50
- case 2: M.ShowLesson("Matematyka"); break; // wtorek 9:50
- case 3: M.ShowLesson("Matematyka"); break; // sroda 9:50
- case 4: M.ShowLesson("Religia"); break; // czwartek 9:50
- case 5: M.ShowLesson("Godz. Wych."); break; // piatek 9:50
- case 6: M.ShowSaturdayMsg(); break; // sobota 9:50
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 55 minucie ====================================================== // <- TASK SWITCHER 55
- // ================================================================================================== //
- void TaskSwitcher55()
- {
- // ----------------------------------------------------------------------------//
- // 0 7 : 5 5 PRZYPOMNIJ O LEKCJI 5 min PRZED
- // ----------------------------------------------------------------------------//
- if(czas.Godzina == 8)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 07:55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 07:55
- case 1: M.WyswietlPogode(); break; // poniedzialek 07:55
- case 2: M.WyswietlPogode(); break; // wtorek 07:55
- case 3: M.ShowReminderLesson("Za 5 minut zaczyna sie Przyroda");
- break; // sroda 07:55
- case 4: M.WyswietlPogode(); break; // czwartek 07:55
- case 5: M.ShowReminderLesson("Za 5 minut zaczyna sie W-f");
- break; // piatek 07:55
- case 6: M.ShowSaturdayMsg(); break; // sobota 07:55
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- // ----------------------------------------------------------------------------//
- // 0 8 : 5 5 LEKCJA SIĘ ZACZĘŁA
- // ----------------------------------------------------------------------------//
- else if(czas.Godzina == 8)
- {
- Flaga_PokazCzas = false; // wyłącz zegar główny na Matrycy
- switch( czas.DzienTygodnia ) // wykonywane o godz: 8 : 55
- {
- case 0: M.ShowSundayMsg(); break; // niedziela 8:55
- case 1: M.ShowLesson("Matematyka"); break; // poniedzialek 8:55
- case 2: M.ShowLesson("masz 55 min"); break; // wtorek 8:55
- case 3: M.ShowLesson("Historia"); break; // sroda 8:55
- case 4: M.ShowLesson("Jezyk Polski"); break; // czwartek 8:55
- case 5: M.ShowLesson("Matematyka"); break; // piatek 8:55
- case 6: M.ShowSaturdayMsg(); break; // sobota 8:55
- default : Flaga_PokazCzas = true; break; // domyślnie, aczkolwiek nie spełnione
- }
- }
- else Flaga_PokazCzas = true;
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 58 minucie ===================================================== // <- TASK SWITCHER 58
- // ================================================================================================== //
- void TaskSwitcher57()
- {
- M.RandomDemo(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- // === TASK - wykonywane w 58 minucie ===================================================== // <- TASK SWITCHER 58
- // ================================================================================================== //
- void TaskSwitcher58()
- {
- M.WyswietlPogode(); // wyświetl na Matrycy dane pogodowe
- }
- // ================================================================================================== //
- //
- //
- //
- //
- //
- //
- //
- //
- //
- // -------------------------------------------------------------------------------------------------- //
- // --- D A T A U P D A T E --- //
- // -------------------------------------------------------------------------------------------------- //
- // --- aktualizuj datę z serwera : pool.ntp.org ----------------------------------------------------- // <--- aktualizacja daty z serwera NTP
- // -------------------------------------------------------------------------------------------------- //
- void DateUpdate()
- {
- timeClient.update();
- unsigned long epochTime = timeClient.getEpochTime();
- struct tm *ptm = gmtime ((time_t *)&epochTime);
- czas.SformatowanaData = timeClient.getFormattedTime();
- czas.DzienTygodnia = timeClient.getDay();
- czas.DzienMiesiaca = ptm->tm_mday;
- czas.Miesiac = ptm->tm_mon+1;
- czas.Rok = ptm->tm_year+1900;
- #if TERMINAL
- tools.PokazWiadomosc("ESP","Data","Pobrano datę z serwera ntp");
- #endif
- }
- // -------------------------------------------------------------------------------------------------- //
- // --- T I M E U P D A T E --- //
- // -------------------------------------------------------------------------------------------------- //
- // --- aktualizuj czas z serwera : pool.ntp.org ----------------------------------------------------- // <--- aktualizacja czasu z serwera NTP
- // -------------------------------------------------------------------------------------------------- //
- void TimeUpdate()
- {
- timeClient.update();
- czas.Godzina = timeClient.getHours(); // zapisz godzinę z serwera
- czas.Minuta = timeClient.getMinutes(); // zapisz minutę z serwera
- czas.Sekunda = timeClient.getSeconds(); // zapisz sekundę z serwera
- }
- // -------------------------------------------------------------------------------------------------- //
- // --- W E A T H E R U P D A T E --- //
- // -------------------------------------------------------------------------------------------------- //
- // --- aktualizuj pogode z serwera : openwearhermap.org --------------------------------------------- // <--- aktualizacja pogody z serwera OPEN
- // -------------------------------------------------------------------------------------------------- //
- void WeatherUpdate()
- {
- if(WiFi.status()== WL_CONNECTED)
- {
- String serverPath = "http://api.openweathermap.org/data/2.5/weather?q=" + city + ","
- + countryCode + "&APPID=" + openWeatherMapApiKey;
- jsonBuffer = httpGETRequest(serverPath.c_str());
- #if TERMINAL
- //Serial.println(jsonBuffer); // DRUKUJE CAŁY NIESPARSOWY STRING z POGODA
- #endif
- JSONVar myObject = JSON.parse(jsonBuffer);
- if (JSON.typeof(myObject) == "undefined")
- {
- // -------------------------------------------- //
- #if TERMINAL
- Serial.println("Blad parsowania");
- #endif
- // -------------------------------------------- //
- return;
- }
- // ---------------------------------------------- //
- #if TERMINAL
- //Serial.println(myObject);
- #endif
- // ------------------------------------------------------------------- //
- // --- P R Z E T W A R Z A N I E D A N Y C H Z S E R W E R A --- // <--- PARSOWANIE danych z pogody
- // ------------------------------------------------------------------- // <--- PARSING WEATHER ONLY
- double Kelvin = 273.15;
- pogoda.temperatura = myObject["main"]["temp"]; // pobieramy wartość do skruktury
- pogoda.temperatura -= Kelvin; // odejmujemy wartość Kelvin
- pogoda.temperatura_odczuwalna = myObject["main"]["feels_like"];
- pogoda.temperatura_odczuwalna -= Kelvin;
- pogoda.temperatura_minimalna = myObject["main"]["temp_min"];
- pogoda.temperatura_minimalna -= Kelvin;
- pogoda.temperatura_maksymalna = myObject["main"]["temp_max"];
- pogoda.temperatura_maksymalna -= Kelvin;
- pogoda.cisnienie = myObject["main"]["pressure"];
- pogoda.wilgotnosc = myObject["main"]["humidity"];
- pogoda.wiatr = myObject["wind"]["speed"];
- pogoda.zachmurzenie = myObject["clouds"]["all"];
- pogoda.widzialnosc = myObject["visibility"];
- // --- wykorzystana biblioteka TimeLib.h -----------
- sprintf(czas.wschod_slonca, "%02d:%02d",hour(myObject["sys"]["sunrise"]),minute(myObject["sys"]["sunrise"]));
- // --- wykorzystana biblioteka TimeLib.h -----------
- sprintf(czas.zachod_slonca, "%02d:%02d",hour(myObject["sys"]["sunset"]),minute(myObject["sys"]["sunset"]));
- #if TERMINAL
- tools.PokazWiadomosc("ESP","Weather","Pobrano pogodę z serwera openweathermap.org");
- #endif
- }
- }
- // -------------------------------------------------------------------------------------------------- //
- // --- httpGET --- // <--- http GET request
- // -------------------------------------------------------------------------------------------------- //
- String httpGETRequest(const char* serverName) //
- { //
- HTTPClient http; //
- http.begin(serverName); //
- int httpResponseCode = http.GET(); //
- String bufor = "{}"; //
- //
- if ( httpResponseCode > 0 ) //
- { //
- #if TERMINAL //
- //Serial.print("HTTP Response code: "); //
- //Serial.println(httpResponseCode); //
- #endif //
- bufor = http.getString(); //
- } //
- else //
- { //
- #if TERMINAL //
- //Serial.print("Error code: "); //
- //Serial.println(httpResponseCode); //
- #endif //
- } //
- http.end(); //
- return bufor; //
- } //
- // -------------------------------------------------------------------------------------------------- //
Advertisement
Add Comment
Please, Sign In to add comment