or perhaps better still like this:
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#include <SimpleTimer.h>
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "c4b698c712034338b2778cc1752196bb";
// Set your LED and physical button pins here
SimpleTimer timer;
void checkPhysicalButton30();void checkPhysicalButton31();void checkPhysicalButton32();void checkPhysicalButton33();void checkPhysicalButton34();void checkPhysicalButton35();
void checkPhysicalButton36();void checkPhysicalButton37();void checkPhysicalButton38();void checkPhysicalButton39();void checkPhysicalButton40();void checkPhysicalButton41();
void checkPhysicalButton42();void checkPhysicalButton43();void checkPhysicalButton44();void checkPhysicalButton45();void checkPhysicalButton46();void checkPhysicalButton47();
void checkPhysicalButton48();void checkPhysicalButton49();void checkPhysicalButton50();void checkPhysicalButton51();void checkPhysicalButton25();void checkPhysicalButton26();
void checkPhysicalButton27();void checkPhysicalButton28();void checkPhysicalButton29();
int btnPin30 = A0; int ledPin30 = 30;int ledState30 = LOW;int btnState30 = HIGH;
int btnPin31 = A1; int ledPin31 = 31;int ledState31 = LOW;int btnState31 = HIGH;
int btnPin32 = A2; int ledPin32 = 32;int ledState32 = LOW;int btnState32 = HIGH;
int btnPin33 = A3; int ledPin33 = 33;int ledState33 = LOW;int btnState33 = HIGH;
int btnPin34 = A4; int ledPin34 = 34;int ledState34 = LOW;int btnState34 = HIGH;
int btnPin35 = A5; int ledPin35 = 35;int ledState35 = LOW;int btnState35 = HIGH;
int btnPin36 = A6; int ledPin36 = 36;int ledState36 = LOW;int btnState36 = HIGH;
int btnPin37 = A7; int ledPin37 = 37;int ledState37 = LOW;int btnState37 = HIGH;
int btnPin38 = A8; int ledPin38 = 38;int ledState38 = LOW;int btnState38 = HIGH;
int btnPin39 = A9; int ledPin39 = 39;int ledState39 = LOW;int btnState39 = HIGH;
int btnPin40 = A10;int ledPin40 = 40;int ledState40 = LOW;int btnState40 = HIGH;
int btnPin41 = A11;int ledPin41 = 41;int ledState41 = LOW;int btnState41 = HIGH;
int btnPin42 = A12;int ledPin42 = 42;int ledState42 = LOW;int btnState42 = HIGH;
int btnPin43 = A13;int ledPin43 = 43;int ledState43 = LOW;int btnState43 = HIGH;
int btnPin44 = A14;int ledPin44 = 44;int ledState44 = LOW;int btnState44 = HIGH;
int btnPin45 = A15;int ledPin45 = 45;int ledState45 = LOW;int btnState45 = HIGH;
int btnPin46 = 22; int ledPin46 = 46;int ledState46 = LOW;int btnState46 = HIGH;
int btnPin47 = 23; int ledPin47 = 47;int ledState47 = LOW;int btnState47 = HIGH;
int btnPin48 = 24; int ledPin48 = 48;int ledState48 = LOW;int btnState48 = HIGH;
int btnPin49 = 2; int ledPin49 = 49;int ledState49 = LOW;int btnState49 = HIGH;
int btnPin50 = 3; int ledPin50 = 50;int ledState50 = LOW;int btnState50 = HIGH;
int btnPin51 = 4; int ledPin51 = 51;int ledState51 = LOW;int btnState51 = HIGH;
int btnPin25 = 5; int ledPin25 = 25;int ledState25 = LOW;int btnState25 = HIGH;
int btnPin26 = 6; int ledPin26 = 26;int ledState26 = LOW;int btnState26 = HIGH;
int btnPin27 = 7; int ledPin27 = 27;int ledState27 = LOW;int btnState27 = HIGH;
int btnPin28 = 8; int ledPin28 = 28;int ledState28 = LOW;int btnState28 = HIGH;
int btnPin29 = 9; int ledPin29 = 29;int ledState29 = LOW;int btnState29 = HIGH;
void setup()
{
Serial.begin(9600); // See the connection status in Serial Monitor
Blynk.begin(auth);
/*pinMode(ledPin30, OUTPUT);pinMode(btnPin30, INPUT_PULLUP);digitalWrite(ledPin30, ledState30);timer.setInterval(100L, checkPhysicalButton30);
pinMode(ledPin31, OUTPUT);pinMode(btnPin31, INPUT_PULLUP);digitalWrite(ledPin31, ledState31);timer.setInterval(100L, checkPhysicalButton31);
pinMode(ledPin32, OUTPUT);pinMode(btnPin32, INPUT_PULLUP);digitalWrite(ledPin32, ledState32);timer.setInterval(100L, checkPhysicalButton32);
pinMode(ledPin33, OUTPUT);pinMode(btnPin33, INPUT_PULLUP);digitalWrite(ledPin33, ledState33);timer.setInterval(100L, checkPhysicalButton33);
pinMode(ledPin34, OUTPUT);pinMode(btnPin34, INPUT_PULLUP);digitalWrite(ledPin34, ledState34);timer.setInterval(100L, checkPhysicalButton34);
pinMode(ledPin35, OUTPUT);pinMode(btnPin35, INPUT_PULLUP);digitalWrite(ledPin35, ledState35);timer.setInterval(100L, checkPhysicalButton35);
*/pinMode(ledPin36, OUTPUT);pinMode(btnPin36, INPUT_PULLUP);digitalWrite(ledPin36, ledState36);timer.setInterval(100L, checkPhysicalButton36);
pinMode(ledPin37, OUTPUT);pinMode(btnPin37, INPUT_PULLUP);digitalWrite(ledPin37, ledState37);timer.setInterval(100L, checkPhysicalButton37);
pinMode(ledPin38, OUTPUT);pinMode(btnPin38, INPUT_PULLUP);digitalWrite(ledPin38, ledState38);timer.setInterval(100L, checkPhysicalButton38);
pinMode(ledPin39, OUTPUT);pinMode(btnPin39, INPUT_PULLUP);digitalWrite(ledPin39, ledState39);timer.setInterval(100L, checkPhysicalButton39);
pinMode(ledPin40, OUTPUT);pinMode(btnPin40, INPUT_PULLUP);digitalWrite(ledPin40, ledState40);timer.setInterval(100L, checkPhysicalButton40);
pinMode(ledPin41, OUTPUT);pinMode(btnPin41, INPUT_PULLUP);digitalWrite(ledPin41, ledState41);timer.setInterval(100L, checkPhysicalButton41);
pinMode(ledPin42, OUTPUT);pinMode(btnPin42, INPUT_PULLUP);digitalWrite(ledPin42, ledState42);timer.setInterval(100L, checkPhysicalButton42);
pinMode(ledPin43, OUTPUT);pinMode(btnPin43, INPUT_PULLUP);digitalWrite(ledPin43, ledState43);timer.setInterval(100L, checkPhysicalButton43);
pinMode(ledPin44, OUTPUT);pinMode(btnPin44, INPUT_PULLUP);digitalWrite(ledPin44, ledState44);timer.setInterval(100L, checkPhysicalButton44);
pinMode(ledPin45, OUTPUT);pinMode(btnPin45, INPUT_PULLUP);digitalWrite(ledPin45, ledState45);timer.setInterval(100L, checkPhysicalButton45);
pinMode(ledPin46, OUTPUT);pinMode(btnPin46, INPUT_PULLUP);digitalWrite(ledPin46, ledState46);timer.setInterval(100L, checkPhysicalButton46);
pinMode(ledPin47, OUTPUT);pinMode(btnPin47, INPUT_PULLUP);digitalWrite(ledPin47, ledState47);timer.setInterval(100L, checkPhysicalButton47);
pinMode(ledPin48, OUTPUT);pinMode(btnPin48, INPUT_PULLUP);digitalWrite(ledPin48, ledState48);timer.setInterval(100L, checkPhysicalButton48);
pinMode(ledPin49, OUTPUT);pinMode(btnPin49, INPUT_PULLUP);digitalWrite(ledPin49, ledState49);timer.setInterval(100L, checkPhysicalButton49);
pinMode(ledPin50, OUTPUT);pinMode(btnPin50, INPUT_PULLUP);digitalWrite(ledPin50, ledState50);timer.setInterval(100L, checkPhysicalButton50);
pinMode(ledPin51, OUTPUT);pinMode(btnPin51, INPUT_PULLUP);digitalWrite(ledPin51, ledState51);timer.setInterval(100L, checkPhysicalButton51);
pinMode(ledPin25, OUTPUT);pinMode(btnPin25, INPUT_PULLUP);digitalWrite(ledPin25, ledState25);timer.setInterval(100L, checkPhysicalButton25);
pinMode(ledPin26, OUTPUT);pinMode(btnPin26, INPUT_PULLUP);digitalWrite(ledPin26, ledState26);timer.setInterval(100L, checkPhysicalButton26);
pinMode(ledPin27, OUTPUT);pinMode(btnPin27, INPUT_PULLUP);digitalWrite(ledPin27, ledState27);timer.setInterval(100L, checkPhysicalButton27);
pinMode(ledPin28, OUTPUT);pinMode(btnPin28, INPUT_PULLUP);digitalWrite(ledPin28, ledState28);timer.setInterval(100L, checkPhysicalButton28);
pinMode(ledPin29, OUTPUT);pinMode(btnPin29, INPUT_PULLUP);digitalWrite(ledPin29, ledState29);timer.setInterval(100L, checkPhysicalButton29);
}
// Every time we connect to the cloud...
BLYNK_CONNECTED() {
Blynk.syncVirtual(V30);Blynk.syncVirtual(V31);Blynk.syncVirtual(V32);Blynk.syncVirtual(V33);Blynk.syncVirtual(V34);Blynk.syncVirtual(V35);Blynk.syncVirtual(V36);Blynk.syncVirtual(V37);
Blynk.syncVirtual(V38);Blynk.syncVirtual(V39);Blynk.syncVirtual(V40);Blynk.syncVirtual(V41);Blynk.syncVirtual(V42);Blynk.syncVirtual(V43);Blynk.syncVirtual(V44);Blynk.syncVirtual(V45);
Blynk.syncVirtual(V43);Blynk.syncVirtual(V44);Blynk.syncVirtual(V45);Blynk.syncVirtual(V46);Blynk.syncVirtual(V47);Blynk.syncVirtual(V48);Blynk.syncVirtual(V49);Blynk.syncVirtual(V50);
Blynk.syncVirtual(V51);Blynk.syncVirtual(V25);Blynk.syncVirtual(V26);Blynk.syncVirtual(V27);Blynk.syncVirtual(V28);Blynk.syncVirtual(V29);
//Blynk.syncVirtual(V52);Blynk.syncVirtual(V53);
}
/*BLYNK_WRITE(V30) {ledState30 = param.asInt();digitalWrite(ledPin30, ledState30);}
void checkPhysicalButton30(){if(digitalRead(btnPin30) == LOW){if(btnState30 != LOW){ledState30 = !ledState30;digitalWrite(ledPin30,ledState30);Blynk.virtualWrite(V30,ledState30);}btnState30 = LOW;} else {btnState30 = HIGH;}}
BLYNK_WRITE(V31) {ledState31 = param.asInt();digitalWrite(ledPin31, ledState31);}
void checkPhysicalButton31(){if(digitalRead(btnPin31) == LOW){if(btnState31 != LOW){ledState31 = !ledState31;digitalWrite(ledPin31,ledState31);Blynk.virtualWrite(V31,ledState31);}btnState31 = LOW;} else {btnState31 = HIGH;}}
BLYNK_WRITE(V32) {ledState32 = param.asInt();digitalWrite(ledPin32, ledState32);}
void checkPhysicalButton32(){if(digitalRead(btnPin32) == LOW){if(btnState32 != LOW){ledState32 = !ledState32;digitalWrite(ledPin32,ledState32);Blynk.virtualWrite(V32,ledState32);}btnState32 = LOW;} else {btnState32 = HIGH;}}
BLYNK_WRITE(V33) {ledState33 = param.asInt();digitalWrite(ledPin33, ledState33);}
void checkPhysicalButton33(){if(digitalRead(btnPin33) == LOW){if(btnState33 != LOW){ledState33 = !ledState33;digitalWrite(ledPin33,ledState33);Blynk.virtualWrite(V33,ledState33);}btnState33 = LOW;} else {btnState33 = HIGH;}}
BLYNK_WRITE(V34) {ledState34 = param.asInt();digitalWrite(ledPin34, ledState34);}
void checkPhysicalButton34(){if(digitalRead(btnPin34) == LOW){if(btnState34 != LOW){ledState34 = !ledState34;digitalWrite(ledPin34,ledState34);Blynk.virtualWrite(V34,ledState34);}btnState34 = LOW;} else {btnState34 = HIGH;}}
BLYNK_WRITE(V35) {ledState35 = param.asInt();digitalWrite(ledPin35, ledState35);}
void checkPhysicalButton35(){if(digitalRead(btnPin35) == LOW){if(btnState35 != LOW){ledState35 = !ledState35;digitalWrite(ledPin35,ledState35);Blynk.virtualWrite(V35,ledState35);}btnState35 = LOW;} else {btnState35 = HIGH;}}
*/BLYNK_WRITE(V36) {ledState36 = param.asInt();digitalWrite(ledPin36, ledState36);}
void checkPhysicalButton36(){if(digitalRead(btnPin36) == LOW){if(btnState36 != LOW){ledState36 = !ledState36;digitalWrite(ledPin36,ledState36);Blynk.virtualWrite(V36,ledState36);}btnState36 = LOW;} else {btnState36 = HIGH;}}
BLYNK_WRITE(V37) {ledState37 = param.asInt();digitalWrite(ledPin37, ledState37);}
void checkPhysicalButton37(){if(digitalRead(btnPin37) == LOW){if(btnState37 != LOW){ledState37 = !ledState37;digitalWrite(ledPin37,ledState37);Blynk.virtualWrite(V37,ledState37);}btnState37 = LOW;} else {btnState37 = HIGH;}}
BLYNK_WRITE(V38) {ledState38 = param.asInt();digitalWrite(ledPin38, ledState38);}
void checkPhysicalButton38(){if(digitalRead(btnPin38) == LOW){if(btnState38 != LOW){ledState38 = !ledState38;digitalWrite(ledPin38,ledState38);Blynk.virtualWrite(V38,ledState38);}btnState38 = LOW;} else {btnState38 = HIGH;}}
BLYNK_WRITE(V39) {ledState39 = param.asInt();digitalWrite(ledPin39, ledState39);}
void checkPhysicalButton39(){if(digitalRead(btnPin39) == LOW){if(btnState39 != LOW){ledState39 = !ledState39;digitalWrite(ledPin39,ledState39);Blynk.virtualWrite(V39,ledState39);}btnState39 = LOW;} else {btnState39 = HIGH;}}
BLYNK_WRITE(V40) {ledState40 = param.asInt();digitalWrite(ledPin40, ledState40);}
void checkPhysicalButton40(){if(digitalRead(btnPin40) == LOW){if(btnState40 != LOW){ledState40 = !ledState40;digitalWrite(ledPin40,ledState40);Blynk.virtualWrite(V40,ledState40);}btnState40 = LOW;} else {btnState40 = HIGH;}}
BLYNK_WRITE(V41) {ledState41 = param.asInt();digitalWrite(ledPin41, ledState41);}
void checkPhysicalButton41(){if(digitalRead(btnPin41) == LOW){if(btnState41 != LOW){ledState41 = !ledState41;digitalWrite(ledPin41,ledState41);Blynk.virtualWrite(V41,ledState41);}btnState41 = LOW;} else {btnState41 = HIGH;}}
BLYNK_WRITE(V42) {ledState42 = param.asInt();digitalWrite(ledPin42, ledState42);}
void checkPhysicalButton42(){if(digitalRead(btnPin42) == LOW){if(btnState42 != LOW){ledState42 = !ledState42;digitalWrite(ledPin42,ledState42);Blynk.virtualWrite(V42,ledState42);}btnState42 = LOW;} else {btnState42 = HIGH;}}
BLYNK_WRITE(V43) {ledState43 = param.asInt();digitalWrite(ledPin43, ledState43);}
void checkPhysicalButton43(){if(digitalRead(btnPin43) == LOW){if(btnState43 != LOW){ledState43 = !ledState43;digitalWrite(ledPin43,ledState43);Blynk.virtualWrite(V43,ledState43);}btnState43 = LOW;} else {btnState43 = HIGH;}}
BLYNK_WRITE(V44) {ledState44 = param.asInt();digitalWrite(ledPin44, ledState44);}
void checkPhysicalButton44(){if(digitalRead(btnPin44) == LOW){if(btnState44 != LOW){ledState44 = !ledState44;digitalWrite(ledPin44,ledState44);Blynk.virtualWrite(V44,ledState44);}btnState44 = LOW;} else {btnState44 = HIGH;}}
BLYNK_WRITE(V45) {ledState45 = param.asInt();digitalWrite(ledPin45, ledState45);}
void checkPhysicalButton45(){if(digitalRead(btnPin45) == LOW){if(btnState45 != LOW){ledState45 = !ledState45;digitalWrite(ledPin45,ledState45);Blynk.virtualWrite(V45,ledState45);}btnState45 = LOW;} else {btnState45 = HIGH;}}
BLYNK_WRITE(V46) {ledState46 = param.asInt();digitalWrite(ledPin46, ledState46);}
void checkPhysicalButton46(){if(digitalRead(btnPin46) == LOW){if(btnState46 != LOW){ledState46 = !ledState46;digitalWrite(ledPin46,ledState46);Blynk.virtualWrite(V46,ledState46);}btnState46 = LOW;} else {btnState46 = HIGH;}}
BLYNK_WRITE(V47) {ledState47 = param.asInt();digitalWrite(ledPin47, ledState47);}
void checkPhysicalButton47(){if(digitalRead(btnPin47) == LOW){if(btnState47 != LOW){ledState47 = !ledState47;digitalWrite(ledPin47,ledState47);Blynk.virtualWrite(V47,ledState47);}btnState47 = LOW;} else {btnState47 = HIGH;}}
BLYNK_WRITE(V48) {ledState48 = param.asInt();digitalWrite(ledPin48, ledState48);}
void checkPhysicalButton48(){if(digitalRead(btnPin48) == LOW){if(btnState48 != LOW){ledState48 = !ledState48;digitalWrite(ledPin48,ledState48);Blynk.virtualWrite(V48,ledState48);}btnState48 = LOW;} else {btnState48 = HIGH;}}
BLYNK_WRITE(V49) {ledState49 = param.asInt();digitalWrite(ledPin49, ledState49);}
void checkPhysicalButton49(){if(digitalRead(btnPin49) == LOW){if(btnState49 != LOW){ledState49 = !ledState49;digitalWrite(ledPin49,ledState49);Blynk.virtualWrite(V49,ledState49);}btnState49 = LOW;} else {btnState49 = HIGH;}}
BLYNK_WRITE(V50) {ledState50 = param.asInt();digitalWrite(ledPin50, ledState50);}
void checkPhysicalButton50(){if(digitalRead(btnPin50) == LOW){if(btnState50 != LOW){ledState50 = !ledState50;digitalWrite(ledPin50,ledState50);Blynk.virtualWrite(V50,ledState50);}btnState50 = LOW;} else {btnState50 = HIGH;}}
BLYNK_WRITE(V51) {ledState51 = param.asInt();digitalWrite(ledPin51, ledState51);}
void checkPhysicalButton51(){if(digitalRead(btnPin51) == LOW){if(btnState51 != LOW){ledState51 = !ledState51;digitalWrite(ledPin51,ledState51);Blynk.virtualWrite(V51,ledState51);}btnState51 = LOW;} else {btnState51 = HIGH;}}
BLYNK_WRITE(V25) {ledState25 = param.asInt();digitalWrite(ledPin25, ledState25);}
void checkPhysicalButton25(){if(digitalRead(btnPin25) == LOW){if(btnState25 != LOW){ledState25 = !ledState25;digitalWrite(ledPin25,ledState25);Blynk.virtualWrite(V25,ledState25);}btnState25 = LOW;} else {btnState25 = HIGH;}}
BLYNK_WRITE(V26) {ledState26 = param.asInt();digitalWrite(ledPin26, ledState26);}
void checkPhysicalButton26(){if(digitalRead(btnPin26) == LOW){if(btnState26 != LOW){ledState26 = !ledState26;digitalWrite(ledPin26,ledState26);Blynk.virtualWrite(V26,ledState26);}btnState26 = LOW;} else {btnState26 = HIGH;}}
BLYNK_WRITE(V27) {ledState27 = param.asInt();digitalWrite(ledPin27, ledState27);}
void checkPhysicalButton27(){if(digitalRead(btnPin27) == LOW){if(btnState27 != LOW){ledState27 = !ledState27;digitalWrite(ledPin27,ledState27);Blynk.virtualWrite(V27,ledState27);}btnState27 = LOW;} else {btnState27 = HIGH;}}
BLYNK_WRITE(V28) {ledState28 = param.asInt();digitalWrite(ledPin28, ledState28);}
void checkPhysicalButton28(){if(digitalRead(btnPin28) == LOW){if(btnState28 != LOW){ledState28 = !ledState28;digitalWrite(ledPin28,ledState28);Blynk.virtualWrite(V28,ledState28);}btnState28 = LOW;} else {btnState28 = HIGH;}}
BLYNK_WRITE(V29) {ledState29 = param.asInt();digitalWrite(ledPin29, ledState29);}
void checkPhysicalButton29(){if(digitalRead(btnPin29) == LOW){if(btnState29 != LOW){ledState29 = !ledState29;digitalWrite(ledPin29,ledState29);Blynk.virtualWrite(V29,ledState29);}btnState29 = LOW;} else {btnState29 = HIGH;}}
void loop()
{
Blynk.run(); // Run Blynk
timer.run(); // Run SimpleTimer
}