Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2020
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.01 KB | None | 0 0
  1. #include <Wire.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Adafruit_SSD1306.h>
  4. #define SCREEN_WIDTH 128 // OLED display width, in pixels
  5. #define SCREEN_HEIGHT 32 // OLED display height, in pixels
  6. Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
  7.  
  8.  
  9. #include <ESP8266WebServer.h>
  10. #include <NTPClient.h>
  11. #include <WiFiUdp.h>
  12. const long utcOffsetInSeconds = 3600;
  13. const char* ssid       = "Nigeria";
  14. const char* password   = "hondamsx125";      
  15. WiFiUDP ntpUDP;
  16. NTPClient timeClient(ntpUDP, "pool.ntp.org", utcOffsetInSeconds);
  17. ESP8266WebServer server(80);   //Web server object. Will be listening in port 80 (default for HTTP)
  18.  
  19. String strAlarmHour = "";
  20. String strAlarmMinute = "";
  21. bool AlarmON = false;
  22. const int buttonPin = 3;
  23. int LED = 16; // output D0
  24. int displayMode = 0;
  25. int buttonState;
  26.  
  27. void StartAlarm() {
  28. AlarmON = true;
  29. digitalWrite(LED, HIGH);
  30. delay(1000);
  31. digitalWrite(LED, LOW);
  32. Serial.println("function startalarm started");
  33. }
  34.  
  35. void indexhtml()  {
  36. String noAlarmSet = "No alarm has been set";
  37. strAlarmHour = server.arg("hour");
  38. strAlarmMinute= server.arg("minute");
  39. if (strAlarmHour == "") {
  40.   String aHTML ="<!DOCTYPE html><html><body><h1>hello world</h1><form target=\"_self\" method=\"GET\">Hour:<br><input type=\"number\" name=\"hour\" min=\"0\" max=\"23\"><br>Minute:<br><input type=\"number\" name=\"minute\" min=\"0\" max=\"59\"<br><br><input type=\"submit\" value=\"Submit\"></form>";
  41.   String bHTML ="</body></html>";
  42.   String preHTML = aHTML + noAlarmSet + bHTML;
  43.   const char *html = preHTML.c_str();
  44.   server.send(200, "text/html", html);
  45. }else {
  46.   String aHTML ="<!DOCTYPE html><html><body><h1>hello world</h1><form target=\"_self\" method=\"GET\">Hour:<br><input type=\"number\" name=\"hour\" min=\"0\" max=\"23\"><br>Minute:<br><input type=\"number\" name=\"minute\" min=\"0\" max=\"59\"<br><br><input type=\"submit\" value=\"Submit\"></form>";
  47.   String bHTML ="</body></html>";
  48.   String preHTML = aHTML + strAlarmHour + ":" + strAlarmMinute + bHTML;
  49.   const char *html = preHTML.c_str();
  50.   server.send(200, "text/html", html);
  51. }
  52. }
  53.  
  54.  
  55. void setup() {
  56.  
  57. Serial.begin(9600);
  58. pinMode(buttonPin, INPUT);
  59. pinMode(LED, OUTPUT); // Sets LED pin(D0) as a output
  60. digitalWrite(LED, LOW); // Sets LED OFF
  61. WiFi.begin(ssid, password); //Connect to the WiFi network
  62.  
  63. while (WiFi.status() != WL_CONNECTED) { //Wait for connection
  64.  
  65. delay(500);
  66. Serial.println("Waiting to connect…");
  67.  
  68. }
  69.  
  70. Serial.print("IP address: ");
  71. Serial.println(WiFi.localIP());  //Print the local IP to access the server
  72. server.on("/", indexhtml);
  73.  
  74. server.begin();                                       //Start the server
  75. Serial.println("Server listening");  
  76. if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Address 0x3D for 128x64
  77.   Serial.println(F("SSD1306 allocation failed"));
  78.   for(;;);
  79. }
  80. }
  81.  
  82.  
  83. void loop() {
  84. timeClient.update();
  85. int currentHours = (timeClient.getHours());
  86. int currentMinutes = (timeClient.getMinutes());
  87. int currentSeconds = (timeClient.getSeconds());
  88. int alarmHour = strAlarmHour.toInt();
  89. int alarmMinute = strAlarmMinute.toInt();
  90. int alarmSecond = 0;
  91.  
  92. int totalCurrentSeconds = currentHours*3600 + currentMinutes*60 + currentSeconds;
  93.  
  94. int totalAlarmSeconds = alarmHour*3600 + alarmMinute*60 + alarmSecond;
  95.  
  96. int totalRemainingSeconds = totalAlarmSeconds - totalCurrentSeconds;
  97.  
  98. int remainingSeconds = totalRemainingSeconds % 60;
  99.  
  100. int remainingMinutes = totalRemainingSeconds / 60;
  101. remainingMinutes = remainingMinutes%60;
  102.  
  103. int remainingHours = totalRemainingSeconds / 3600;
  104.  
  105. if (remainingHours < 0 && remainingMinutes < 0 && remainingSeconds < 0) {
  106.   remainingHours = remainingHours + 24;
  107.   remainingMinutes = remainingMinutes + 60;
  108.   remainingSeconds = remainingSeconds + 60;
  109. }
  110.  
  111. buttonState = digitalRead(buttonPin);
  112. if (buttonState == LOW) {
  113.   displayMode++;
  114.   delay(500);
  115. }
  116.  
  117. if (currentHours == alarmHour && currentMinutes  == alarmMinute)  {
  118.   if (!AlarmON) {
  119.   StartAlarm();
  120.   }
  121. }else
  122. {
  123.   AlarmON = false;
  124. }
  125.  
  126. display.setTextColor(WHITE);
  127. display.setCursor(10, 0);
  128. display.clearDisplay();
  129. if (displayMode == 0) {
  130.   display.setTextSize(1);
  131.   display.println("Current time:");
  132.   display.setTextSize(2);
  133.   display.print(currentHours);
  134.   display.print(":");
  135.   display.print(currentMinutes);
  136.   display.print(":");
  137.   display.println(currentSeconds);
  138. }else if (displayMode == 1) {
  139.   display.setTextSize(1);
  140.   display.println("Remaining time:");
  141.   display.setTextSize(2);
  142.   display.print(remainingHours);
  143.   display.print(":");
  144.   display.print(remainingMinutes);
  145.   display.print(":");
  146.   display.println(remainingSeconds);
  147. }else {
  148.   displayMode = 0;
  149. }
  150. display.display();
  151.  
  152. /*
  153. display.setTextColor(WHITE);
  154. display.setCursor(10, 0);
  155. display.clearDisplay();
  156. display.setTextSize(1);
  157. display.println("Time:");
  158. display.setTextSize(2);
  159. display.println(currentHours);
  160. display.print(":");
  161. display.print(currentMinutes);
  162. display.print(":");
  163. display.println(currentSeconds);
  164. display.display();
  165. */
  166.  
  167. server.handleClient();    //Handling of incoming requests
  168.  
  169. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement