Suggestions

Hell Yeh! … :+1:

I did it! :star_struck:

Well I sort of did it. :grimacing:

After reading all the comments in this post I decided to use @dutchman’s code as a base and build off it. My version of it isn’t the best, and it’s a bit laggy but its works. :smiley:

#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#include "credentials.h"

BlynkTimer timer;

int relay1 = 14;
int relay2 = 12;
int relay3 = 13;
int relay4 = 15;
int relay5 = 2;
int relay6 = 0;
int relay7 = 4;
int relay8 = 5;

int relayVButton1 = 0;
int relayVButton2 = 0;
int relayVButton3 = 0;
int relayVButton4 = 0;
int relayVButton5 = 0;
int relayVButton6 = 0;
int relayVButton7 = 0;
int relayVButton8 = 0;

boolean relayState1 = 1;
boolean relayState2 = 1;
boolean relayState3 = 1;
boolean relayState4 = 1;
boolean relayState5 = 1;
boolean relayState6 = 1;
boolean relayState7 = 1;
boolean relayState8 = 1;


WidgetLED led1(10); //virtual led
WidgetLED led2(11); //virtual led
WidgetLED led3(12); //virtual led
WidgetLED led4(13); //virtual led
WidgetLED led5(14); //virtual led
WidgetLED led6(15); //virtual led
WidgetLED led7(16); //virtual led
WidgetLED led8(17); //virtual led

void setup()
{
  Serial.begin(115200);

  Blynk.begin(auth, ssid, pass, server, 8080);

  timer.setInterval(300L, somefunction);

  pinMode(relay1, OUTPUT);
  pinMode(relay2, OUTPUT);
  pinMode(relay3, OUTPUT);
  pinMode(relay4, OUTPUT);
  pinMode(relay5, OUTPUT);
  pinMode(relay6, OUTPUT);
  pinMode(relay7, OUTPUT);
  pinMode(relay8, OUTPUT);

  digitalWrite(relay1, 1);
  digitalWrite(relay2, 1);
  digitalWrite(relay3, 1);
  digitalWrite(relay4, 1);
  digitalWrite(relay5, 1);
  digitalWrite(relay6, 1);
  digitalWrite(relay7, 1);
  digitalWrite(relay8, 1);
}

void somefunction()
{

  if (relayVButton1 > 0)
  {
    relayState1 = !relayState1;
  }
  digitalWrite(relay1, relayState1);


  if (relayVButton2 > 0)
  {
    relayState2 = !relayState2;
  }
  digitalWrite(relay2, relayState2);


  if (relayVButton3 > 0)
  {
    relayState3 = !relayState3;
  }
  digitalWrite(relay3, relayState3);

  if (relayVButton4 > 0)
  {
    relayState4 = !relayState4;
  }
  digitalWrite(relay4, relayState4);


  if (relayVButton5 > 0)
  {
    relayState5 = !relayState5;
  }
  digitalWrite(relay5, relayState5);


  if (relayVButton6 > 0)
  {
    relayState6 = !relayState6;
  }
  digitalWrite(relay6, relayState6);

  if (relayVButton7 > 0)
  {
    relayState7 = !relayState7;
  }
  digitalWrite(relay7, relayState7);


  if (relayVButton8 > 0)
  {
    relayState8 = !relayState8;
  }
  digitalWrite(relay8, relayState8);


  if (digitalRead(relay1) == LOW)
  {
    led1.on();
  }
  else
    led1.off();

  if (digitalRead(relay2) == LOW)
  {
    led2.on();
  }
  else
    led2.off();

  if (digitalRead(relay3) == LOW)
  {
    led3.on();
  }
  else
    led3.off();

  if (digitalRead(relay4) == LOW)
  {
    led4.on();
  }
  else
    led4.off();

  if (digitalRead(relay5) == LOW)
  {
    led5.on();
  }
  else
    led5.off();

  if (digitalRead(relay6) == LOW)
  {
    led6.on();
  }
  else
    led6.off();

  if (digitalRead(relay7) == LOW)
  {
    led7.on();
  }
  else
    led7.off();

  if (digitalRead(relay8) == LOW)
  {
    led8.on();
  }
  else
    led8.off();

}

BLYNK_WRITE(V1)
{
  relayVButton1 = param.asInt();
}
BLYNK_WRITE(V2)
{
  relayVButton2 = param.asInt();
}
BLYNK_WRITE(V3)
{
  relayVButton3 = param.asInt();
}
BLYNK_WRITE(V4)
{
  relayVButton4 = param.asInt();
}
BLYNK_WRITE(V5)
{
  relayVButton5 = param.asInt();
}
BLYNK_WRITE(V6)
{
  relayVButton6 = param.asInt();
}
BLYNK_WRITE(V7)
{
  relayVButton7 = param.asInt();
}
BLYNK_WRITE(V8)
{
  relayVButton8 = param.asInt();
}

void loop() {
  Blynk.run();
  timer.run();
}
1 Like