Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern "C" char* sbrk(int incr);
- #include <ESP8266WiFi.h> // biblioteka Wi-Fi
- #include <NTPClient.h> // NTP klient (czas)
- #include <WiFiUdp.h> // UDP
- #include <SPI.h> // SPI wire dla MATRYCY
- #include <ESP8266HTTPClient.h> // HTTP klient
- #include <TaskScheduler.h> // menadżer zadań
- #include <WiFiClient.h> // klient Wi-Fi
- WiFiUDP ntpUDP;
- NTPClient timeClient(ntpUDP, "pool.ntp.org", 7200);
- 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;
- const char *ssid = "DIABLO"; // network wifi ssid
- const char *password = "XXXXXXXXXXX"; // network wifi password
- struct datatime //
- { //
- String SformatowanaData; // formated data ------------- //
- int DzienTygodnia; // day of week --------------- //
- int DzienMiesiaca; // day of month -------------- //
- int Miesiac; // month --------------------- //
- int Rok; // year ---------------------- //
- String SformatowanyCzas; // formated time ------------- //
- int Godzina; // hour ---------------------- //
- int Minuta; // minute -------------------- //
- int Sekunda; // seconds ------------------- //
- }
- czas;
- void setup(void)
- {
- timeClient.begin(); // Time Client NTP start
- WiFi.begin(ssid, password); // WiFi start connection
- // ------------------------------------------------------------------------------------------------ //
- while ( WiFi.status() != WL_CONNECTED ) // czekaj na połączenie
- {
- delay ( 200 );
- Serial.print ( "." );
- }
- // ------------------------------------------------------------------------------------------------ //
- 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
- }
- void loop(void)
- {
- runner.execute(); // HARMONOGRAM zadań RUNNER
- }
- void Task0Callback() // co jedną godzinę
- {
- 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;
- }
- void Task1Callback() // co 3 godzinę
- {
- //
- }
- void Task2Callback() // co jedną minutę
- {
- 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
- }
- void Task3Callback() // co jedną sekundę
- {
- // coś
- }
Add Comment
Please, Sign In to add comment