#include <Adafruit_NeoPixel.h>
#include <SPI.h>
#include <BlynkSimpleEsp8266.h>
#include <ESP8266WiFi.h>

#define DATAPIN 14
#define NEOPIXELPIN 15
#define LEDPIN 12
#define NUMPIXELS 60
#define BLYNK_PRINT Serial
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, DATAPIN, NEO_GRB + NEO_KHZ800);
char auth[] = "AuthToken";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "WifiName";
char pass[] = "Password";
int brightness,R,G,B;
//Light states
int neopixelstate = 0;
int ledstate = 0;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
pixels.begin();
pixels.setBrightness(50);
pinMode(NEOPIXELPIN,OUTPUT);
pinMode(LEDPIN,OUTPUT);
digitalWrite(NEOPIXELPIN,LOW);
digitalWrite(LEDPIN,LOW);
pixels.show();
}
BLYNK_WRITE(V2)
{
if(neopixelstate == 1){
 R = param[0].asInt();
 G = param[1].asInt();
 B = param[2].asInt();
Serial.println(R);
Serial.println(G);
Serial.println(B);
for(int i=0;i<NUMPIXELS;i++){
  
pixels.setPixelColor(i, pixels.Color(R,G,B));
pixels.show();

}
}
}
BLYNK_WRITE(V1){
  brightness = param.asInt();
  pixels.setBrightness(brightness);
  pixels.show();
  
}
BLYNK_WRITE(V3){
   neopixelstate = param.asInt();
  
   if(neopixelstate == 1){
    digitalWrite(NEOPIXELPIN,HIGH);
    pixels.setBrightness(brightness);
    for(int i=0;i<NUMPIXELS;i++){
  
   pixels.setPixelColor(i, pixels.Color(R,G,B));
   pixels.show();

    }
    }
   else{
    pixels.setBrightness(0);
    pixels.show();
    digitalWrite(NEOPIXELPIN,LOW);
    }
}
BLYNK_WRITE(V4){
   ledstate = param.asInt();
   Serial.println(ledstate);
   if(ledstate == 1)
     digitalWrite(LEDPIN,HIGH);
   else
     digitalWrite(LEDPIN,LOW); 
}

void loop()
{
   Blynk.run();

}
