     {
       flowTapPin0Value = 0;
       digitalWrite(ledPin, HIGH);
-      instantPulseCountT0++;
-      pulseCountT0--;
-      if(pulseCountT0 < 0) //never go below 0
-        pulseCountT0 = 0;
-    }
-  }
-  
-  currentSecondT0 = Time.second();
-  if(currentSecondT0 != previousSecondT0)
-  {
-      instantPulseCountT0 = 0;
-      if(previousPulseCountT0 != pulseCountT0)
-        flowingT0 = 1;
+      T0.instantPulseCount++;
+      T0.pulseCount--;
+      if(T0.pulseCount < 0) //never go below 0
+        T0.pulseCount = 0;
+    }
+  }
+  
+  T0.currentSecond = Time.second();
+  if(T0.currentSecond != T0.previousSecond)
+  {
+      T0.instantPulseCount = 0;
+      if(T0.previousPulseCount != T0.pulseCount)
+        T0.flowing = 1;
       else
-        flowingT0 = 0;
-      previousPulseCountT0 = pulseCountT0;
-      previousSecondT0 = currentSecondT0;
-  }
-}
-
-void pinValT1(int pin)
-{
-  if(digitalRead(pin) == HIGH)
+        T0.flowing = 0;
+      T0.previousPulseCount = T0.pulseCount;
+      T0.previousSecond = T0.currentSecond;
+  }
+}
+
+void pinValT1()
+{
+  if(digitalRead(T1.flowPin) == HIGH)
   {
     if(flowTapPin1Value == 0)
     {

  for(int i=0; i<PIXEL_COUNT; i++)
  {
    if(stripNum == 0)
      stripT0.setPixelColor(i, getTapColor(&percentFullT0));
    else if(stripNum == 1)
      stripT1.setPixelColor(i, getTapColor(&percentFullT1));
    else if(stripNum == 2)
      stripT2.setPixelColor(i, getTapColor(&percentFullT2));
  }

  if(stripNum == 0)

// #include "neopixel/neopixel.h"
#include "neopixel.h"

#define EEPROM_ADDR_T0 0
#define EEPROM_ADDR_T1 20
#define EEPROM_ADDR_T2 40

#define PIXEL_TYPE WS2812B
#define PIXEL_COUNT 14

struct TapObject
{
  int pulseCount;
  int maxPulseCount;
  int instantPulseCount;
  int previousPulseCount;
  int flowing;
  int percentFull;
  int currentSecond;
  int previousSecond;
  int animationStep;
  int flowPin;
  int ledPin;
};

//initialize taps
TapObject T0 = {1000, 1000, 0, 0, 0, 100, 1, 0, 0, D6, D3};
TapObject T1 = {1000, 1000, 0, 0, 0, 100, 1, 0, 0, D5, D2};
TapObject T2 = {1000, 1000, 0, 0, 0, 100, 1, 0, 0, D4, D1};

int ledPin = D7;

Adafruit_NeoPixel stripT0 = Adafruit_NeoPixel(PIXEL_COUNT, T0.ledPin, PIXEL_TYPE);
Adafruit_NeoPixel stripT1 = Adafruit_NeoPixel(PIXEL_COUNT, T1.ledPin, PIXEL_TYPE);
Adafruit_NeoPixel stripT2 = Adafruit_NeoPixel(PIXEL_COUNT, T2.ledPin, PIXEL_TYPE);

int flowTapPin0Value = 0;
int flowTapPin1Value = 0;
int flowTapPin2Value = 0; 

String *strArr = new String[20];

int handlePost(String command);

