Advertisement
Ruddog

Timer

Mar 30th, 2018
411
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.29 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2. #include <TimeLib.h>
  3. #include <WiFiUdp.h>
  4.  
  5. String  ClientRequest;
  6. IPAddress staticIP707_10(192,168,86,10);
  7. IPAddress gateway707_10(192,168,86,1);
  8. IPAddress subnet707_10(255,255,255,0);
  9.  
  10. WiFiServer server(80);
  11. int MT;
  12. int DY;
  13. int YR;
  14. int HR;
  15. int MN;
  16. int SC;
  17. int MN_Timer;
  18. int storeMins;
  19. int timerMinsSet;
  20. int setHR = 9;
  21. int setMN = 48;
  22. int dur_Timer_MN = setMN + 1;
  23.  
  24. char ntpServerName[] = "us.pool.ntp.org";
  25. int timeZone = -7;
  26. WiFiUDP Udp;
  27. unsigned int localPort = 8888;
  28. time_t getNtpTime();
  29.  
  30. void printDigits(int digits);
  31. void sendNTPpacket(IPAddress &address);
  32. int digitalClockDisplay(char m){
  33. int interm;
  34.  
  35. if (m=='h'){
  36. interm=hour();
  37. return interm;
  38. }
  39. if (m=='m'){
  40. interm=minute();
  41. return interm;
  42. }
  43. if (m=='s'){
  44. interm=second();
  45. return interm;
  46. }
  47. if (m=='j'){
  48. interm=day();
  49. return interm;
  50. }
  51. if (m=='n'){
  52. interm=month();
  53. return interm;
  54. }
  55. if (m=='y'){
  56. interm=year();
  57. return interm;
  58. }
  59. }
  60.  
  61.  /*-------- NTP code ----------*/
  62. const int NTP_PACKET_SIZE = 48; // NTP time is in the first 48 bytes of message
  63. byte packetBuffer[NTP_PACKET_SIZE]; //buffer to hold incoming & outgoing packets
  64. time_t getNtpTime()
  65. {
  66. IPAddress ntpServerIP; // NTP server's ip address
  67. while (Udp.parsePacket() > 0) ; // discard any previously received packets
  68. Serial.println("Transmit NTP Request");
  69. // get a random server from the pool
  70. WiFi.hostByName(ntpServerName, ntpServerIP);
  71. Serial.print(ntpServerName);
  72. Serial.print(":");
  73. Serial.println(ntpServerIP);
  74. sendNTPpacket(ntpServerIP);
  75. uint32_t beginWait = millis();
  76. while (millis() - beginWait < 1500) {
  77. int size = Udp.parsePacket();
  78. if (size >= NTP_PACKET_SIZE) {
  79. Serial.println("Receive NTP Response");
  80. Udp.read(packetBuffer, NTP_PACKET_SIZE);  // read packet into the buffer
  81. unsigned long secsSince1900;
  82. // convert four bytes starting at location 40 to a long integer
  83. secsSince1900 =  (unsigned long)packetBuffer[40] << 24;
  84. secsSince1900 |= (unsigned long)packetBuffer[41] << 16;
  85. secsSince1900 |= (unsigned long)packetBuffer[42] << 8;
  86. secsSince1900 |= (unsigned long)packetBuffer[43];
  87. return secsSince1900 - 2208988800UL + timeZone * SECS_PER_HOUR;
  88. }
  89. }
  90. Serial.println("No NTP Response :-(");
  91. return 0; // return 0 if unable to get the time
  92. }
  93. void sendNTPpacket(IPAddress &address)
  94. {
  95. memset(packetBuffer, 0, NTP_PACKET_SIZE);
  96. packetBuffer[0] = 0b11100011;   // LI, Version, Mode
  97. packetBuffer[1] = 0;     // Stratum, or type of clock
  98. packetBuffer[2] = 6;     // Polling Interval
  99. packetBuffer[3] = 0xEC;  // Peer Clock Precision
  100. packetBuffer[12] = 49;
  101. packetBuffer[13] = 0x4E;
  102. packetBuffer[14] = 49;
  103. packetBuffer[15] = 52;
  104. Udp.beginPacket(address, 123); //NTP requests are to port 123
  105. Udp.write(packetBuffer, NTP_PACKET_SIZE);
  106. Udp.endPacket();
  107. }
  108.  
  109. void setup()
  110. {
  111.   ClientRequest = "";
  112.  
  113. Serial.begin(115200);
  114.   WiFi.disconnect();
  115.   delay(3000);
  116.   Serial.println("START");
  117.    WiFi.begin("SSID","PASSWORD");
  118.   while ((!(WiFi.status() == WL_CONNECTED))){
  119.     delay(300);
  120.     Serial.print("..");
  121.  
  122.   }
  123.   Serial.println("Connected");
  124.   WiFi.config(staticIP707_10, gateway707_10, subnet707_10);
  125.   Serial.println("Your IP is");
  126.   Serial.println((WiFi.localIP().toString()));
  127.   server.begin();
  128.  
  129. Udp.begin(localPort);
  130. setSyncProvider(getNtpTime);
  131. setSyncInterval(300);
  132. }
  133.  
  134.  
  135. void loop()
  136. {
  137.   Serial.println();
  138.   (MT=digitalClockDisplay('n'));
  139.   (DY=digitalClockDisplay('j'));
  140.   (YR=digitalClockDisplay('y'));
  141.  
  142.   (HR=digitalClockDisplay('h'));
  143.   (MN=digitalClockDisplay('m'));
  144.   (SC=digitalClockDisplay('s'));
  145.  
  146.   Serial.print(MT);
  147.   Serial.print('-');
  148.   Serial.print(DY);
  149.   Serial.print('-');
  150.   Serial.println(YR);
  151.   Serial.print(HR);
  152.   Serial.print(':');
  153.   Serial.print(MN);
  154.   Serial.print(':');
  155.   Serial.println(SC);
  156.   delay(5000);
  157.  
  158.   ////////////////////////////////////////////////////////////
  159.  
  160.   if(HR == setHR && MN <= dur_Timer_MN){
  161.   //digitalWrite(output5, HIGH); //Turn on I/O pin
  162.   Serial.print("Turn on I/O pin");
  163.   }else{
  164.   Serial.print("Turn off I/O pin");
  165.   //digitalWrite(output5, LOW); //Turn ff I/O pin
  166.  
  167.   }
  168.   //////////////////////////////////////////////////////////
  169.  
  170.     WiFiClient client = server.available();
  171.     if (!client) { return; }
  172.     while(!client.available()){  delay(1); }
  173.     ClientRequest = (client.readStringUntil('\r'));
  174.     client.flush();
  175.  
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement