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

  This is a simple demo of sending and receiving some data.
  Be sure to check out other examples!
 *************************************************************/

// Template ID, Device Name and Auth Token are provided by the Blynk.Cloud
// See the Device Info tab, or Template settings
#define BLYNK_TEMPLATE_ID           "TMPLe_R8goqf"
#define BLYNK_DEVICE_NAME           "Quickstart Device"
#define BLYNK_AUTH_TOKEN            "SEptoJUlW6CWNCRBqj1uqs39oeWgQFkA"


// Comment this out to disable prints and save space
#define BLYNK_PRINT Serial


#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>

char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Praktikum-5";
char pass[] = "";

BlynkTimer timer;

// This function is called every time the Virtual Pin 0 state changes
BLYNK_WRITE(V0)
{
// Set incoming value from pin V0 to a variable
  if (param.asInt()==1) {
  digitalWrite (23, HIGH);
  }
  else {
  digitalWrite(23, LOW);
  }
}
BLYNK_WRITE(V1)
{
// Set incoming value from pin V0 to a variable
  if (param.asInt()==1) {
  digitalWrite (5, HIGH);
  }
  else {
  digitalWrite(5, LOW);
  }
}
BLYNK_WRITE(V2)
{
// Set incoming value from pin V0 to a variable
  if (param.asInt()==1) {
  digitalWrite (2, HIGH);
  }
  else {
  digitalWrite(2, LOW);
  }
}

// This function is called every time the device is connected to the Blynk.Cloud
BLYNK_CONNECTED()
{
  // Change Web Link Button message to "Congratulations!"
  Serial.println("Connected");
  Blynk.syncVirtual(V0,V1,V2);
}

// This function sends Arduino's uptime every second to Virtual Pin 2.
void myTimerEvent()
{
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V2, millis() / 1000);
}

void setup()
{
  // Debug console
  pinMode(23, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(2, OUTPUT);
  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass);
  // You can also specify server:
  //Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
  //Blynk.begin(auth, ssid, pass, IPAddress(192,168,1,100), 8080);

  // Setup a function to be called every second
  timer.setInterval(1000L, myTimerEvent);
}

void loop()
{
  Blynk.run();
  timer.run();
  // You can inject your own code or combine it with other sketches.
  // Check other examples on how to communicate with Blynk. Remember
  // to avoid delay() function!
}