PowerTGS440

NTP

Apr 19th, 2021 (edited)
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 8.13 KB | None | 0 0
  1. extern "C" char* sbrk(int incr);                                    
  2.                                                                  
  3. #include <ESP8266WiFi.h>                                         // biblioteka Wi-Fi
  4. #include <NTPClient.h>                                           // NTP klient (czas)
  5. #include <WiFiUdp.h>                                             // UDP
  6. #include <SPI.h>                                                 // SPI wire dla MATRYCY
  7. #include <ESP8266HTTPClient.h>                                   // HTTP klient  
  8. #include <TaskScheduler.h>                                       // menadżer zadań                
  9. #include <WiFiClient.h>                                          // klient Wi-Fi                                
  10.                                                                  
  11.                      
  12. WiFiUDP ntpUDP;                                                
  13. NTPClient timeClient(ntpUDP, "pool.ntp.org", 7200);                                              
  14.                                                                                                    
  15. void Task0Callback();                                                     // funkcja dla task_0    
  16. void Task1Callback();                                                     // funkcja dla task_1    
  17. void Task2Callback();                                                     // funkcja dla task_2    
  18. void Task3Callback();                                                     // funkcja dla task_2    
  19.                                                                                                    
  20. Task task_0( 3600000, TASK_FOREVER, &Task0Callback);                      // task_0 - co 1 godzinę  
  21. Task task_1(10800000, TASK_FOREVER, &Task1Callback);                      // task_1 - co 3 godziny  
  22. Task task_2(  60000,  TASK_FOREVER, &Task2Callback);                      // task_2 - co 1 minutę  
  23. Task task_3(   1000,  TASK_FOREVER, &Task3Callback);                      // task_3 - co 1 sekundę  
  24.                                                                                                    
  25. Scheduler runner;                                                                                  
  26.                                                                                                    
  27.                                                                                              
  28. const char *ssid     = "DIABLO";                                       // network wifi ssid  
  29. const char *password = "XXXXXXXXXXX";                                  // network wifi password
  30.  
  31. struct datatime                                                                                       //
  32. {                                                                                                     //
  33.     String SformatowanaData;                                           // formated data ------------- //
  34.     int    DzienTygodnia;                                              // day of week --------------- //
  35.     int    DzienMiesiaca;                                              // day of month -------------- //
  36.     int    Miesiac;                                                    // month --------------------- //
  37.     int    Rok;                                                        // year ---------------------- //
  38.     String SformatowanyCzas;                                           // formated time ------------- //
  39.     int    Godzina;                                                    // hour ---------------------- //
  40.     int    Minuta;                                                     // minute -------------------- //
  41.     int    Sekunda;                                                    // seconds ------------------- //    
  42. }
  43. czas;              
  44.  
  45.  
  46. void setup(void)                                                                                  
  47. {                                                                                              
  48.  
  49.     timeClient.begin();                       // Time Client NTP start
  50.  
  51.     WiFi.begin(ssid, password);               // WiFi start connection
  52.  
  53.   // ------------------------------------------------------------------------------------------------ //
  54.                                                                        
  55.   while ( WiFi.status() != WL_CONNECTED )                              // czekaj na połączenie
  56.   {                                                                    
  57.     delay ( 200 );                                                    
  58.     Serial.print ( "." );                                          
  59.   }                                                                                          
  60.   // ------------------------------------------------------------------------------------------------ //
  61.                                                                              
  62.                                                                                        
  63.    runner.init();                                       // inicjalizuj scheluder
  64.                                                                                  
  65.    runner.addTask(task_0);                              // dodaj zadanie do scheluder
  66.    task_0.enable();                                     // włącz zadanie do scheluder
  67.    runner.addTask(task_1);                              // dodaj zadanie do scheluder
  68.    task_1.enable();                                     // włącz zadanie do scheluder
  69.    runner.addTask(task_2);                              // dodaj zadanie do scheluder
  70.    task_2.enable();                                     // włącz zadanie do scheluder
  71.    runner.addTask(task_3);                              // dodaj zadanie do scheluder
  72.    task_3.enable();                                     // włącz zadanie do scheluder                                                                                                                                                        
  73. }                                                                                    
  74.  
  75.  
  76. void loop(void)                                                                                      
  77. {                                                                                                    
  78.                                                                                                      
  79.     runner.execute();                                   // HARMONOGRAM zadań RUNNER                  
  80.  
  81.                              
  82. }                                                                                                    
  83.  
  84. void Task0Callback()            // co jedną godzinę
  85. {
  86.       timeClient.update();                                                                              
  87.       unsigned long epochTime = timeClient.getEpochTime();                                              
  88.       struct tm *ptm = gmtime ((time_t *)&epochTime);                                          
  89.                                                                                            
  90.       czas.SformatowanaData  =   timeClient.getFormattedTime();                                
  91.       czas.DzienTygodnia     =   timeClient.getDay();                                          
  92.       czas.DzienMiesiaca     =   ptm->tm_mday;                                                
  93.       czas.Miesiac           =   ptm->tm_mon+1;                                                
  94.       czas.Rok               =   ptm->tm_year+1900;
  95. }
  96.  
  97. void Task1Callback()            // co 3 godzinę
  98. {
  99.         //
  100. }
  101.  
  102. void Task2Callback()        // co jedną minutę
  103. {
  104.     timeClient.update();                                                            
  105.                                                                                    
  106.     czas.Godzina  =  timeClient.getHours();               // zapisz godzinę z serwera
  107.     czas.Minuta   =  timeClient.getMinutes();             // zapisz minutę z serwera
  108.     czas.Sekunda  =  timeClient.getSeconds();             // zapisz sekundę z serwera
  109.    
  110. }
  111.  
  112. void Task3Callback()            // co jedną sekundę
  113. {
  114.             // coś
  115. }
  116.                                                                                              
  117.  
Add Comment
Please, Sign In to add comment