PowerTGS440

matrix NodeMCU 1.0 (ESP8266) simple clock

Jun 13th, 2021
605
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 27.71 KB | None | 0 0
  1. // ------------------------------------------------------------------------------------------------------------------- //
  2. //                                                                                                                     //
  3. // Simple ESP8266 NodeMCU 1.0 MATRIX-CLOCK by TOMASZ MAJCHER (TRANSLINE GROUP POAND)                                   //
  4. //                                                                                                                     //
  5. // e-mail  : [email protected]                                                                               //
  6. // licence : DonationWare                                                                                              //
  7. // paypal  : @TomaszMajcher                                                                                            //
  8. // www     : https://esp32dev.blogspot.com/                                                                            //
  9. //                                                                                                                     //
  10. // ------------------------------------------------------------------------------------------------------------------- //
  11. //
  12. // v1.0 Free-Lite (13.06.2021) by Tomasz Majcher
  13. //
  14. // download library (MD_PAROLA BID DIGIT !!!) from https://pastebin.com/tuxnqmW2
  15. // replace file : 'D_MAX72xx_font.cpp'  in  'C:\USERS\UserName\Documents\Arduino\libraries\MD_MAX82XX\src'
  16. // ------------------------------------------------------------------------------------------------------------------- //
  17. //
  18. // GND   <---> GND
  19. // VCC   <---> Vin
  20. // CLK   <---> D5 (NodeMCU)
  21. // DAT   <---> D7 (NodeMCU)
  22. // CS    <---> D8 (NodeMCU)
  23. //
  24. // ------------------------------------------------------------------------------------------------------------------- //
  25. // --- L A N G U A G E   S E T U P ----------------------------------------------------------------------------------- //
  26. // ------------------------------------------------------------------------------------------------------------------- //
  27.  
  28. #define LANGUAGE 0                                            // 0 (Polish), 1 (English), 2 (Germany)
  29.                                                              
  30. #if LANGUAGE == 0                                                
  31.     #define POLISH 1
  32.     #define ENGLISH 0
  33.     #define GERMANY 0                                          
  34. #endif
  35.  
  36. #if LANGUAGE == 1                                                      
  37.     #define POLISH 0                                        
  38.     #define ENGLISH 1
  39.     #define GERMANY 0
  40. #endif
  41.  
  42. #if LANGUAGE == 2
  43.     #define POLISH 0
  44.     #define ENGLISH 0
  45.     #define GERMANY 1
  46. #endif      
  47.  
  48. // ------------------------------------------------------------------------------------------------------------------- //
  49. // --- M A C R O   D E F I N E --------------------------------------------------------------------------------------- //
  50. // ------------------------------------------------------------------------------------------------------------------- //
  51.  
  52. #define ARRAY_SIZE(a)   (sizeof(a) / sizeof((a)[0]))
  53.  
  54. const char *ssid     = "XXXXXX";                                       // network wifi ssid  
  55. const char *password = "XXXXXXXXXXX";                                  // network wifi password
  56.  
  57. // ------------------------------------------------------------------------------------------------------------------- //
  58. // --- I N C L U D E   L I B R A R Y --------------------------------------------------------------------------------- //
  59. // ------------------------------------------------------------------------------------------------------------------- //
  60.  
  61. extern "C" char* sbrk(int incr);
  62.  
  63. #include <ESP8266WiFi.h>                                         // biblioteka Wi-Fi
  64. #include <NTPClient.h>                                           // NTP klient (Time)
  65. #include <WiFiUdp.h>                                             // UDP dla NTP (Time)
  66. #include <TaskScheduler.h>                                       // scheluder
  67. #include <TimeLib.h>
  68. #include <Arduino.h>
  69. #include <MD_Parola.h>                                                                    
  70. #include <MD_MAX72xx.h>
  71.  
  72. #define SERIAL true
  73. #define SerialSpeed 57600
  74.  
  75. // ------------------------------------------------------------------------------------------------------------------- //    
  76. // ---    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                          --- //
  77. // ------------------------------------------------------------------------------------------------------------------- //
  78.                                                            
  79. #define HARDWARE_TYPE MD_MAX72XX::FC16_HW                  
  80. #define MAX_DEVICES 8                                            // ilość wyświetlaczy ( 8 )
  81. #define CLK_PIN     D5                                           // CLK (SCK) PIN D5 na ESP2886
  82. #define DATA_PIN    D7                                           // DATA (MOSI) PIN D7 na ESP2886
  83. #define CS_PIN      D8                                           // CS (SS) PIND D8 na ESP2886
  84.                                                                  // GND do G na ESP2886
  85.                                                                  // VCC do 3V na ESP2886
  86.  
  87. MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);                          
  88.  
  89.  
  90. // ------------------------------------------------------------------------------------------------------------------- //
  91. // --- P R O T O T Y P Y --------------------------------------------------------------------------------------------- //
  92. // ------------------------------------------------------------------------------------------------------------------- //
  93.  
  94. void Task0Callback();                                                     // funkcja dla task_0    
  95. void Task1Callback();                                                     // funkcja dla task_1    
  96. void Task2Callback();                                                     // funkcja dla task_2    
  97. void Task3Callback();                                                     // funkcja dla task_3    
  98.  
  99. // ------------------------------------------------------------------------------------------------------------------- //
  100. // --- Z A D A N I A   S C H E L U D E R ' A ------------------------------------------------------------------------- //
  101. // ------------------------------------------------------------------------------------------------------------------- //
  102.                                                                                                    
  103. Task task_0( 3600000, TASK_FOREVER, &Task0Callback);                      // task_0 - co 1 godzinę  
  104. Task task_1(  60000,  TASK_FOREVER, &Task1Callback);                      // task_1 - co 1 minutę  
  105. Task task_2(   1000,  TASK_FOREVER, &Task2Callback);                      // task_2 - co 1 sekundę  
  106. Task task_3(  90000,  TASK_FOREVER, &Task3Callback);                      // task_3 - co 90 sekund
  107.                                                                                                    
  108. Scheduler runner;    
  109.  
  110. // ------------------------------------------------------------------------------------------------------------------- //
  111. //                                                *** DIGITS ***                                                       //
  112. // ------------------------------------------------------------------------------------------------------------------- //
  113.  
  114. //   DUŻE CYFRY                      0     1     2     3     4     5     6     7      8      9            
  115. const char * BigDigit[10]      = { "\27", "\1", "\2", "\3", "\4", "\5", "\6", "\7", "\10", "\11" };  
  116.  
  117. //   NORMALNE CYFRY                  0      1      2      3      4      5      6      7      8      9            
  118. const char * MediumDigit[10]  = { "\60", "\61", "\62", "\63", "\64", "\65", "\66", "\67", "\70", "\71" };  
  119.                                                                                                
  120. //   MAŁE CYFRY                     0      1      2      3      4      5      6      7      8      9  
  121. const char * LittleDigit[10]  = { "\12", "\13", "\14", "\15", "\16", "\17", "\20", "\21", "\22", "\23" };      
  122.  
  123. // ------------------------------------------------------------------------------------------------------------------- //
  124. //                                              *** WiFi Reconect ***                                                  //
  125. // ------------------------------------------------------------------------------------------------------------------- //
  126.  
  127. unsigned long previousMillis = 0;
  128. unsigned long interval = 30000;
  129.  
  130. // ------------------------------------------------------------------------------------------------------------------- //
  131. //                                              *** STRUKTURA Time ***                                                 //
  132. // ------------------------------------------------------------------------------------------------------------------- //
  133.  
  134. struct TIME_DATA
  135. {
  136.     int Hour = 0;
  137.     int Minute  = 0;
  138.     int Second = 0;
  139.     String FormatedData  = "NULL";
  140.     String ShortData = "NULL";
  141.     String LongData = "NULL";
  142.     int DayOfTheWeek = 0;
  143.     int DayOfTheMonth = 0;
  144.     int Month = 0;
  145.     int Year = 0;
  146. }
  147. Time;
  148.  
  149.  
  150. // ------------------------------------------------------------------------------------------------------------------- //
  151. //                                              *** STRUKTURA DZIEN ***                                                //
  152. // ------------------------------------------------------------------------------------------------------------------- //
  153.  
  154. #if POLISH
  155.     const char Day_0 [] = "Niedziela";
  156.     const char Day_1 [] = "Poniedzialek";
  157.     const char Day_2 [] = "Wtorek";
  158.     const char Day_3 [] = "Sroda";
  159.     const char Day_4 [] = "Czwartek";
  160.     const char Day_5 [] = "Piatek";
  161.     const char Day_6 [] = "Sobota";
  162. #endif
  163.  
  164. #if ENGLISH
  165.     const char Day_0 [] = "Sunday";
  166.     const char Day_1 [] = "Monday";
  167.     const char Day_2 [] = "Tuesday";
  168.     const char Day_3 [] = "Wednesday";
  169.     const char Day_4 [] = "Thursday";
  170.     const char Day_5 [] = "Friday";
  171.     const char Day_6 [] = "Saturday";
  172. #endif
  173.  
  174. #if GERMANY
  175.     const char Day_0 [] = "Sonntag";
  176.     const char Day_1 [] = "Montag";
  177.     const char Day_2 [] = "Dienstag";
  178.     const char Day_3 [] = "Mittwoch";
  179.     const char Day_4 [] = "Donnerstag";
  180.     const char Day_5 [] = "Freitag";
  181.     const char Day_6 [] = "Samstag";
  182. #endif
  183.  
  184. const char * const DAY[] = { Day_0, Day_1, Day_2, Day_3, Day_4, Day_5, Day_6 }; // dni tygodnia [0..6]
  185.  
  186. // ------------------------------------------------------------------------------------------------------------------- //
  187. //                                              *** STRUKTURA MONTH ***                                                //
  188. // ------------------------------------------------------------------------------------------------------------------- //
  189.  
  190. #if POLISH
  191.     const char MONTH_0  [] = "NULL";
  192.     const char MONTH_1  [] = "Styczen";
  193.     const char MONTH_2  [] = "Luty";
  194.     const char MONTH_3  [] = "Marzec";
  195.     const char MONTH_4  [] = "Kwiecien";
  196.     const char MONTH_5  [] = "Maj";
  197.     const char MONTH_6  [] = "Czerwiec";
  198.     const char MONTH_7  [] = "Lipiec";
  199.     const char MONTH_8  [] = "Sierpien";
  200.     const char MONTH_9  [] = "Wrzesien";
  201.     const char MONTH_10 [] = "Pazdziernik";
  202.     const char MONTH_11 [] = "Listopad";
  203.     const char MONTH_12 [] = "Grudzien";
  204. #endif
  205.  
  206. #if ENGLISH
  207.     const char MONTH_0  [] = "NULL";
  208.     const char MONTH_1  [] = "January";
  209.     const char MONTH_2  [] = "February";
  210.     const char MONTH_3  [] = "March";
  211.     const char MONTH_4  [] = "April";
  212.     const char MONTH_5  [] = "May";
  213.     const char MONTH_6  [] = "June";
  214.     const char MONTH_7  [] = "July";
  215.     const char MONTH_8  [] = "August";
  216.     const char MONTH_9  [] = "September";
  217.     const char MONTH_10 [] = "October";
  218.     const char MONTH_11 [] = "November";
  219.     const char MONTH_12 [] = "December";
  220. #endif
  221.  
  222. #if GERMANY
  223.     const char MONTH_0  [] = "NULL";
  224.     const char MONTH_1  [] = "Januar";
  225.     const char MONTH_2  [] = "Februar";
  226.     const char MONTH_3  [] = "März";
  227.     const char MONTH_4  [] = "April";
  228.     const char MONTH_5  [] = "Mai";
  229.     const char MONTH_6  [] = "Juni";
  230.     const char MONTH_7  [] = "Juli";
  231.     const char MONTH_8  [] = "August";
  232.     const char MONTH_9  [] = "September";
  233.     const char MONTH_10 [] = "Oktober";
  234.     const char MONTH_11 [] = "November";
  235.     const char MONTH_12 [] = "Dezember";
  236. #endif
  237.    
  238.     const char * const MONTH[] = { MONTH_0, MONTH_1, MONTH_2, MONTH_3, MONTH_4, MONTH_5, MONTH_6,
  239.                                    MONTH_7, MONTH_8, MONTH_9, MONTH_10, MONTH_11, MONTH_12 };
  240.  
  241.  
  242.  
  243.  
  244.    
  245.  
  246. WiFiUDP ntpUDP;                                                
  247. NTPClient timeClient(ntpUDP, "pool.ntp.org", 3600);  
  248.  
  249. // ------------------------------------------------------------------------------------------------------------------- //
  250. // --- Task0Callback() ----------------------------------------------------------------------------------------------- //
  251. // ------------------------------------------------------------------------------------------------------------------- //
  252.  
  253. void Task0Callback()
  254. {
  255.     timeClient.update();                                                                              
  256.    
  257.     unsigned long epochTime = timeClient.getEpochTime();                                              
  258.     struct tm *ptm = gmtime ( (time_t *) &epochTime );                                          
  259.                                                                                                
  260.     Time.DayOfTheWeek      =   timeClient.getDay();                                          
  261.     Time.DayOfTheMonth     =   ptm->tm_mday;                                                
  262.     Time.Month             =   ptm->tm_mon+1;                                                
  263.     Time.Year              =   ptm->tm_year+1900;
  264.  
  265.     Time.FormatedData  
  266.                    =   String(DAY[Time.DayOfTheWeek])
  267.                    +   ", "
  268.                    +   String(Time.DayOfTheMonth)
  269.                    +   " "
  270.                    +   String(MONTH[Time.Month])
  271.                    +   " "
  272.                    +   String(Time.Year);    
  273.  
  274.     Time.ShortData = String(Time.DayOfTheMonth)
  275.                    +   " "
  276.                    +   String(MONTH[Time.Month])
  277.                    +   " "
  278.                    +   String(Time.Year);  
  279.  
  280.     Time.LongData  =   String(DAY[Time.DayOfTheWeek])
  281.                    +   " "
  282.                    +   String(Time.DayOfTheMonth)
  283.                    +   "/"
  284.                    +   String(Time.Month);
  285.  
  286.     // --- formatowanie długości wyświetlanej daty ---
  287.  
  288.     if ( strlen(Time.LongData.c_str()) < 15 ) // jesli uda sie dokleci /RRRR
  289.     {
  290.         Time.LongData += "/" +   String(Time.Year);
  291.     }
  292.     else
  293.     if ( strlen(Time.LongData.c_str()) < 18 ) // jesli nie uda się dokleić /RRRR doklej /RR
  294.     {
  295.       Time.LongData += "/" +   String(Time.Year % 100);
  296.     }
  297.     else
  298.     if ( strlen(Time.LongData.c_str()) < 17 ) // jesli nie uda sie dokleic /RR
  299.     {
  300.       // nie rób nic :-)
  301.     }
  302.  
  303.     // -----------------------------------------------                  
  304.  
  305.     #if SERIAL                                                                                  
  306.         Serial.printf("\n\n[ESP] [TASK0] Data NTP  \t: %s ", Time.FormatedData.c_str());        
  307.     #endif          
  308. }
  309.  
  310. // ------------------------------------------------------------------------------------------------------------------- //
  311. // --- Task1Callback() ----------------------------------------------------------------------------------------------- //
  312. // ------------------------------------------------------------------------------------------------------------------- //
  313.  
  314. void Task1Callback()
  315. {
  316.     #if SERIAL
  317.         String bufor;
  318.        
  319.         if (Time.Hour < 10)
  320.         {
  321.             bufor =  "0";
  322.             bufor += String(Time.Hour);
  323.         }
  324.         else
  325.         {
  326.             bufor = String(Time.Hour);
  327.         }
  328.  
  329.         bufor += ":";
  330.  
  331.         if (Time.Minute < 10)
  332.         {
  333.             bufor +=  "0";
  334.             bufor += String(Time.Minute);
  335.         }
  336.         else
  337.         {
  338.             bufor += String(Time.Minute);
  339.         }
  340.  
  341.         if (Time.Hour < 12) bufor += " AM";
  342.         else                bufor += " PM";
  343.        
  344.         Serial.printf("\n\n[ESP] [TASK1] [Time NTP] \t: %s", bufor.c_str());
  345.         Serial.printf("\n[ESP] [TASK1] [Memory Free]     : %u [kB]", ESP.getFreeHeap());      
  346.         Serial.printf("\n[ESP] [TASK1] [CPU frequency]   : %u [MHz]",ESP.getCpuFreqMHz());  
  347.         Serial.printf("\n[ESP] [TASK1] [WiFi IP]         : "); Serial.print(WiFi.localIP() );
  348.         Serial.printf("\n[ESP] [TASK1] [LongData]  \t: %s ", Time.LongData.c_str());
  349.         Serial.printf("\n[ESP] [TASK1] [ShortData] \t: %s ", Time.ShortData.c_str());
  350.        
  351.     #endif        
  352. }
  353.  
  354. // ------------------------------------------------------------------------------------------------------------------- //
  355. // --- Task2Callback() ----------------------------------------------------------------------------------------------- //
  356. // ------------------------------------------------------------------------------------------------------------------- //
  357.  
  358. void Task2Callback()
  359. {
  360.     timeClient.update();                                                            
  361.                                                                                    
  362.     Time.Hour    =  timeClient.getHours()+1;             // zapisz godzinę z serwera
  363.     Time.Minute  =  timeClient.getMinutes();             // zapisz minutę z serwera
  364.     Time.Second  =  timeClient.getSeconds();             // zapisz sekundę z serwera
  365.  
  366.     char TimeBufor[20] = " TOMEK ";                      // bufor do przechowywania czasu          
  367.                                                                                                      
  368.     strcpy(TimeBufor, BigDigit[Time.Hour / 10]);                                                      
  369.     strcat(TimeBufor, BigDigit[Time.Hour % 10]);                                                  
  370.                                                                                                      
  371.     if(Time.Second % 2)  strcat(TimeBufor, "\24");                                                  
  372.     else                 strcat(TimeBufor, "\26");                                                  
  373.                                                                                                      
  374.     strcat(TimeBufor, BigDigit[Time.Minute / 10]);                                                  
  375.     strcat(TimeBufor, BigDigit[Time.Minute % 10]);                                                  
  376.                                                                                                      
  377.     strcat(TimeBufor, "\25");                                                                        
  378.                                                                                                      
  379.     strcat(TimeBufor, BigDigit[Time.Second / 10]);                                                  
  380.     strcat(TimeBufor, BigDigit[Time.Second % 10]);                                                  
  381.                                                                                                      
  382.     P.displayText(TimeBufor, PA_CENTER, 50, 1000, PA_PRINT, PA_PRINT);                              
  383.     P.displayAnimate();  
  384. }
  385.  
  386. // ------------------------------------------------------------------------------------------------------------------- //
  387. // --- Task3Callback() ----------------------------------------------------------------------------------------------- //
  388. // ------------------------------------------------------------------------------------------------------------------- //
  389.  
  390. void Task3Callback()
  391. {
  392.    
  393. }
  394.  
  395. // ------------------------------------------------------------------------------------------------------------------- //
  396. // --- stat Wi-Fi ---------------------------------------------------------------------------------------------------- //
  397. // ------------------------------------------------------------------------------------------------------------------- //
  398.  
  399. void statWiFi()
  400. {
  401.     switch (WiFi.status())
  402.     {
  403.         case WL_NO_SSID_AVAIL:
  404.                             #if SERIAL
  405.                                 #if ENGLISH
  406.                                     Serial.printf("\nConfigured SSID cannot be reached");
  407.                                 #endif
  408.                                 #if POLISH
  409.                                     Serial.printf("\nNie można osiągnąć skonfigurowanego identyfikatora SSID");
  410.                                 #endif
  411.                                 #if GERMANY
  412.                                     Serial.printf("\nKonfigurierte SSID ist nicht erreichbar");
  413.                                 #endif
  414.                             #endif        
  415.                             break;
  416.                            
  417.         case WL_CONNECTED:
  418.                             #if SERIAL
  419.                                 #if ENGLISH
  420.                                     Serial.printf("\nConnection successfully established");
  421.                                     Serial.printf("\nYour IP : %s", WiFi.localIP().toString().c_str());
  422.                                     Serial.printf("\nReceived Signal Strength Indication : %d", WiFi.RSSI());
  423.                                 #endif
  424.                                 #if POLISH
  425.                                     Serial.printf("\nPomyślnie nawiązano połączenie");
  426.                                     Serial.printf("\nTwój adres IP : %s", WiFi.localIP().toString().c_str());
  427.                                     Serial.printf("\nWskazanie siły odbieranego sygnału : %d", WiFi.RSSI());
  428.                                 #endif
  429.                                 #if GERMANY
  430.                                     Serial.printf("\nVerbindung erfolgreich hergestellt");
  431.                                     Serial.printf("\nDeine IP-Adresse : %s", WiFi.localIP().toString().c_str());
  432.                                     Serial.printf("\nAnzeige der empfangenen Signalstärke : %d", WiFi.RSSI());                                
  433.                                 #endif
  434.                             #endif
  435.                             break;
  436.                            
  437.         case WL_CONNECT_FAILED:
  438.                             #if SERIAL
  439.                                 #if ENGLISH
  440.                                     Serial.printf("\nConnection failed");
  441.                                 #endif
  442.                                 #if POLISH
  443.                                     Serial.printf("\nPołączenie nieudane");
  444.                                 #endif
  445.                                 #if GERMANY
  446.                                     Serial.printf("\nVerbindung fehlgeschlagen");
  447.                                 #endif
  448.                             #endif
  449.                             break;
  450.     }      
  451. }
  452.  
  453. // ------------------------------------------------------------------------------------------------------------------- //
  454. // --- init Wi-Fi ---------------------------------------------------------------------------------------------------- //
  455. // ------------------------------------------------------------------------------------------------------------------- //
  456.  
  457. void initWiFi()
  458. {
  459.     WiFi.mode(WIFI_STA);
  460.     WiFi.begin(ssid, password);
  461.  
  462.     #if SERIAL    
  463.         #if ENGLISH
  464.             Serial.printf("\nConnecting to WiFi ..");
  465.         #endif
  466.         #if POLISH
  467.             Serial.printf("\nŁącze z siecią WiFi ..");
  468.         #endif
  469.         #if GERMANY
  470.             Serial.printf("\nNetzwerkverbindung mit WLAN ..");
  471.         #endif
  472.     #endif
  473.    
  474.     while (WiFi.status() != WL_CONNECTED)
  475.     {
  476.         Serial.print('.');
  477.         delay(200);
  478.     }
  479.  
  480.     statWiFi();
  481.        
  482.     WiFi.setAutoReconnect(true);
  483.     WiFi.persistent(true);
  484.  
  485.    
  486. }
  487.  
  488. // ------------------------------------------------------------------------------------------------------------------- //
  489. // --- reconect Wi-Fi ------------------------------------------------------------------------------------------------ //
  490. // ------------------------------------------------------------------------------------------------------------------- //
  491.  
  492. void reconectWifi()
  493. {
  494.     unsigned long currentMillis = millis();
  495.    
  496.     if ((WiFi.status() != WL_CONNECTED) && (currentMillis - previousMillis >=interval))
  497.     {
  498.         #if SERIAL
  499.             #if ENGLISH
  500.                 Serial.println("Reconnecting to WiFi...");
  501.             #endif
  502.             #if POLISH
  503.                 Serial.println("Ponowne łączenie z Wi-Fi...");
  504.             #endif
  505.             #if GERMANY
  506.                 Serial.println("Erneut mit WLAN verbinden...");
  507.             #endif
  508.         #endif
  509.        
  510.         WiFi.disconnect();
  511.         WiFi.begin(ssid, password);
  512.        
  513.         statWiFi();
  514.        
  515.         previousMillis = currentMillis;
  516.   }
  517. }
  518.  
  519. // ------------------------------------------------------------------------------------------------------------------- //
  520. // --- SerialTypeWriter ---------------------------------------------------------------------------------------------- //
  521. // ------------------------------------------------------------------------------------------------------------------- //
  522.  
  523. void SerialTypeWriter(const String & message, unsigned int wait)
  524. {
  525.     for(const char c : message)
  526.     {
  527.         Serial.print(c);    
  528.         delay(wait);  
  529.     }
  530. }
  531.  
  532. // ------------------------------------------------------------------------------------------------------------------- //
  533. // --- S E T U P ----------------------------------------------------------------------------------------------------- //
  534. // ------------------------------------------------------------------------------------------------------------------- //
  535.  
  536. void setup()
  537. {
  538.     #if SERIAL
  539.         Serial.begin(SerialSpeed);
  540.     #endif
  541.  
  542.    
  543.    initWiFi();
  544.  
  545.    runner.init();                                       // inicjalizuj scheluder
  546.                                                                                  
  547.    runner.addTask(task_0);                              // dodaj zadanie do scheluder
  548.    task_0.enable();                                     // włącz zadanie do scheluder
  549.    runner.addTask(task_1);                              // dodaj zadanie do scheluder
  550.    task_1.enable();                                     // włącz zadanie do scheluder
  551.    runner.addTask(task_2);                              // dodaj zadanie do scheluder
  552.    task_2.enable();                                     // włącz zadanie do scheluder
  553.    runner.addTask(task_3);                              // dodaj zadanie do scheluder
  554.    task_3.enable();                                     // włącz zadanie do scheluder
  555.    
  556.  
  557.    // --- WYWOŁAJ TERAZ --------------------- //
  558.  
  559.    Task0Callback();
  560.    Task1Callback();  
  561.    Task3Callback();
  562.  
  563.    // --------------------------------------- //
  564.  
  565.    P.begin();
  566.    P.setIntensity(1);
  567.  
  568. }
  569.  
  570. // ------------------------------------------------------------------------------------------------------------------- //
  571. // --- L O O P ------------------------------------------------------------------------------------------------------- //
  572. // ------------------------------------------------------------------------------------------------------------------- //
  573.  
  574. void loop()
  575. {
  576.     runner.execute();     // scheluder init
  577.     reconectWifi();       // check Wi-Fi status
  578. }
Advertisement
Add Comment
Please, Sign In to add comment