/*
  Tutorial: https://www.hackster.io/brzi/nodemcu-websockets-tutorial-3a2013
  Library : https://github.com/Links2004/arduinoWebSockets
*/
 
 

#include "index.html.h"
 

#define FLOW_SENSOR D2
#define RELAY       D7
#define STATUS_LED  D6
#define BUZZER      D5
#define DPDT        D1

#define RUNNING_TIME 900000

unsigned long currentMillis, previousMillis = 0;
bool pumping = false;

void startPump();
void stopPump();

void setup() {
  pinMode(STATUS_LED, OUTPUT);
  digitalWrite(STATUS_LED, HIGH);
  Serial.begin(115200);
  pinMode(FLOW_SENSOR, INPUT);
  pinMode(RELAY, OUTPUT);
  pinMode(BUZZER, OUTPUT);
  pinMode(DPDT, OUTPUT);
  

}

void loop() {

  if (pumping == true) {
    currentMillis = millis();
    if (currentMillis - previousMillis >= RUNNING_TIME) {
      stopPump();
      previousMillis = currentMillis;
    }
  }
}


/****************************************************************************/
 

void startPump() {
  if (pumping == false) {
    digitalWrite(BUZZER, HIGH);
    digitalWrite(DPDT, HIGH);
    delay(500);
    digitalWrite(DPDT, LOW);
    digitalWrite(BUZZER, LOW);
    pumping = true;
  }
}

void stopPump() {
  digitalWrite(BUZZER, HIGH);
  digitalWrite(RELAY, HIGH);
  delay(3000);
  digitalWrite(RELAY, LOW);
  digitalWrite(BUZZER, LOW);
  pumping = true;
}