Advertisement
Double_G

seven_segment_clock_with_ESP32_and_NTP.ino

Oct 3rd, 2018
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.03 KB | None | 0 0
  1. //include necessary library
  2. #include <WiFi.h>         // WiFi library for network
  3. #include <TimeLib.h>      // Time library for time
  4. #include <NtpClientLib.h> // NTP Client library fot network time
  5.  
  6. //define pin in/out
  7. #define b 0   //b segment
  8. #define a 2   //a segment
  9. #define f 4   //f segment
  10. #define g 5   //g segment
  11. #define c 12  //c segment
  12. #define d 13  //d segment
  13. #define e 14  //e segment
  14. #define d1 15 //1st digit
  15. #define d2 16 //2nd digit
  16. #define d3 17 //3rd digit
  17. #define d4 18 //4th digit
  18.  
  19. //declaring variables and constants
  20. const char* ssid     = "Your_WiFi_SSID";       // wifi SSD
  21. const char* password = "WiFi_Password";        // wifi password
  22.  
  23. String NTPServer = "NTP_Server";               // NTP server address
  24. int8_t minutesTimeZone = 0;
  25. int8_t timeZone = 1;                           // timezone in central europe (hour)
  26.  
  27. String hour1, hour2, minute1, minute2, timer, number;
  28. byte digit = 1;                                //digit (display counter)
  29.  
  30. void setup() {
  31.  
  32.   Serial.begin(115200);                        //initilaising serial port for debug
  33.  
  34.   WiFi.begin(ssid, password);                  //initialize WiFi
  35.  
  36.   Serial.print("Connecting to Wifi:");         //show connecting status on debug port
  37.  
  38.   while (WiFi.status() != WL_CONNECTED) {
  39.     delay(500);
  40.     Serial.print(".");
  41.   }
  42.  
  43.   Serial.print("Connected!!!");
  44.    
  45.   NTP.begin (NTPServer, timeZone, true, minutesTimeZone);   // initialize NTP
  46.   NTP.setInterval (1200);                                   // sync interval
  47.  
  48. //set pin to output
  49.   pinMode(a, OUTPUT);
  50.   pinMode(b, OUTPUT);
  51.   pinMode(c, OUTPUT);
  52.   pinMode(d, OUTPUT);
  53.   pinMode(e, OUTPUT);
  54.   pinMode(f, OUTPUT);
  55.   pinMode(g, OUTPUT);
  56.   pinMode(d1, OUTPUT);
  57.   pinMode(d2, OUTPUT);
  58.   pinMode(d3, OUTPUT);
  59.   pinMode(d4, OUTPUT);
  60. }
  61.  
  62. void loop ()                                                    //entering to loop
  63. {
  64.  
  65.   timer = NTP.getTimeDateString ();     //get current time
  66.   hour1 = (timer.substring(0,1));       //parsing from data hour 1st digit
  67.   hour2 = (timer.substring(1,2));       //parsing from data hour 2nd digit
  68.   minute1 = (timer.substring(3,4));     //parsing from data minute 1st digit
  69.   minute2 = (timer.substring(4,5));     //parsing from data minute 2nd digit
  70.  
  71.  
  72.   if (digit == 1)                                           //if digit(display) is 1, then set 1st digit active other inactive
  73.   {
  74.   digitalWrite(d1,HIGH);  
  75.   digitalWrite(d2,LOW);
  76.   digitalWrite(d3,LOW);
  77.   digitalWrite(d4,LOW);
  78.   number = hour1;
  79.   displaydigit();                                           //call seven segment driver
  80.   }
  81.    
  82.     if (digit == 2)                                         //if digit(display) is 2, then set 2nd digit active other inactive             
  83.   {
  84.   digitalWrite(d1,LOW);                          
  85.   digitalWrite(d2,HIGH);
  86.   digitalWrite(d3,LOW);
  87.   digitalWrite(d4,LOW);
  88.   number = hour2;
  89.   displaydigit();                                           //call seven segment driver
  90.   }
  91.    
  92.     if (digit == 3)                                         //if digit(display) is 3, then set 3rd digit active other inactive
  93.   {  
  94.   digitalWrite(d1,LOW);  
  95.   digitalWrite(d2,LOW);
  96.   digitalWrite(d3,HIGH);
  97.   digitalWrite(d4,LOW);
  98.   number = minute1;        
  99.   displaydigit();                                           //call seven segment driver
  100.   }    
  101.  
  102.     if (digit == 4)                                         //if digit(display) is 4, then set 4nd digit active other inactive
  103.   {
  104.   digitalWrite(d1,LOW);  
  105.   digitalWrite(d2,LOW);
  106.   digitalWrite(d3,LOW);
  107.   digitalWrite(d4,HIGH);  
  108.   number = minute2;
  109.   displaydigit();                                           //call seven segment driver
  110.   digit=0;                                                  //reset digit(display) counter
  111.   }
  112.  
  113.   digit = digit+1;                                          //increasing digit(display)counter
  114. }
  115.  
  116. void displaydigit()                                         //seven segment driver
  117. {
  118.   if (number == "0" & digit == 1 )                          //no displaying 0(zero) if first digit is 0 (expample: morning 08:42)
  119.   {
  120.     digitalWrite(a,LOW);
  121.     digitalWrite(b,LOW);
  122.     digitalWrite(c,LOW);
  123.     digitalWrite(d,LOW);
  124.     digitalWrite(e,LOW);
  125.     digitalWrite(f,LOW);
  126.     digitalWrite(g,LOW);
  127.     }
  128.    
  129.     if (number == "0" & digit > 1 )                         //else display 0(zero)
  130.     {
  131.     digitalWrite(a,HIGH);
  132.     digitalWrite(b,HIGH);
  133.     digitalWrite(c,HIGH);
  134.     digitalWrite(d,HIGH);
  135.     digitalWrite(e,HIGH);
  136.     digitalWrite(f,HIGH);
  137.     digitalWrite(g,LOW);
  138.     }
  139.       if (number == "1")
  140.   {
  141.     digitalWrite(a,LOW);
  142.     digitalWrite(b,HIGH);
  143.     digitalWrite(c,HIGH);
  144.     digitalWrite(d,LOW);
  145.     digitalWrite(e,LOW);
  146.     digitalWrite(f,LOW);
  147.     digitalWrite(g,LOW);
  148.     }
  149.       if (number == "2")
  150.   {
  151.     digitalWrite(a,HIGH);
  152.     digitalWrite(b,HIGH);
  153.     digitalWrite(c,LOW);
  154.     digitalWrite(d,HIGH);
  155.     digitalWrite(e,HIGH);
  156.     digitalWrite(f,LOW);
  157.     digitalWrite(g,HIGH);
  158.     }
  159.       if (number == "3")
  160.   {
  161.     digitalWrite(a,HIGH);
  162.     digitalWrite(b,HIGH);
  163.     digitalWrite(c,HIGH);
  164.     digitalWrite(d,HIGH);
  165.     digitalWrite(e,LOW);
  166.     digitalWrite(f,LOW);
  167.     digitalWrite(g,HIGH);
  168.     }
  169.       if (number == "4")
  170.   {
  171.     digitalWrite(a,LOW);
  172.     digitalWrite(b,HIGH);
  173.     digitalWrite(c,HIGH);
  174.     digitalWrite(d,LOW);
  175.     digitalWrite(e,LOW);
  176.     digitalWrite(f,HIGH);
  177.     digitalWrite(g,HIGH);
  178.     }
  179.   if (number == "5")
  180.   {
  181.     digitalWrite(a,HIGH);
  182.     digitalWrite(b,LOW);
  183.     digitalWrite(c,HIGH);
  184.     digitalWrite(d,HIGH);
  185.     digitalWrite(e,LOW);
  186.     digitalWrite(f,HIGH);
  187.     digitalWrite(g,HIGH);
  188.     }    
  189.       if (number == "6")
  190.   {
  191.     digitalWrite(a,HIGH);
  192.     digitalWrite(b,LOW);
  193.     digitalWrite(c,HIGH);
  194.     digitalWrite(d,HIGH);
  195.     digitalWrite(e,HIGH);
  196.     digitalWrite(f,HIGH);
  197.     digitalWrite(g,HIGH);
  198.     }
  199.       if (number == "7")
  200.   {
  201.     digitalWrite(a,HIGH);
  202.     digitalWrite(b,HIGH);
  203.     digitalWrite(c,HIGH);
  204.     digitalWrite(d,LOW);
  205.     digitalWrite(e,LOW);
  206.     digitalWrite(f,LOW);
  207.     digitalWrite(g,LOW);
  208.     }
  209.       if (number == "8")
  210.   {
  211.     digitalWrite(a,HIGH);
  212.     digitalWrite(b,HIGH);
  213.     digitalWrite(c,HIGH);
  214.     digitalWrite(d,HIGH);
  215.     digitalWrite(e,HIGH);
  216.     digitalWrite(f,HIGH);
  217.     digitalWrite(g,HIGH);
  218.     }
  219.       if (number == "9")
  220.   {
  221.     digitalWrite(a,HIGH);
  222.     digitalWrite(b,HIGH);
  223.     digitalWrite(c,HIGH);
  224.     digitalWrite(d,HIGH);
  225.     digitalWrite(e,LOW);
  226.     digitalWrite(f,HIGH);
  227.     digitalWrite(g,HIGH);
  228.     }
  229. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement