Dear Blynk community,
I would like to know if someone could help me, I am using the code below with Arduino Mega 2560 + Ethernet Shield W5100, it receives the serial data from a Slave arduino uno over Serial1 port on Mega.
It works just fine, but after a day or many hours it disconnects from Blynk and stay offline, to restore the connection I need to press the reset button on Mega, I suspect that could be something on Serial1 like a limbo?
//#define BLYNK_DEBUG
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEthernet.h>
#define W5100_CS 10
#define SDCARD_CS 4
BlynkTimer timer0, timer1, timer2;
int pjn1, sid, ok[10], rssi, i, i1, maxtemp[10], mintemp[10], led[10];
float st, snr, tempmax[10], tempmin[10], batp, batv;
int pjn = 001; //Numero do projeto
char auth[] = "XXX"; //Autenticador
WidgetLED led1(V1); //SENSOR 1 Status LED
WidgetLED led2(V2); //SENSOR 2 Status LED
WidgetLED led3(V3); //SENSOR 3 Status LED
WidgetLED led4(V4); //SENSOR 4 Status LED
WidgetLED led5(V5); //SENSOR 5 Status LED
WidgetLED led6(V6); //SENSOR 6 Status LED
WidgetLED led7(V7); //SENSOR 7 Status LED
WidgetLED led8(V8); //SENSOR 8 Status LED
WidgetLED led9(V9); //SENSOR 9 Status LED
WidgetLED led10(V10); //SENSOR 10 Status LED
#define BLYNK_GREEN "#23C48E"
#define BLYNK_BLUE "#04C0F8"
#define BLYNK_YELLOW "#ED9D00"
#define BLYNK_RED "#D3435C"
#define BLYNK_DARK_BLUE "#5F7CD8"
BLYNK_CONNECTED() {Blynk.syncVirtual(V21); //SENSOR 1 - Get Virtual pin values from server
Blynk.syncVirtual(V31); //SENSOR 1
Blynk.syncVirtual(V22); //SENSOR 2 - Get Virtual pin values from server
Blynk.syncVirtual(V32); //SENSOR 2
Blynk.syncVirtual(V23); //SENSOR 3 - Get Virtual pin values from server
Blynk.syncVirtual(V33); //SENSOR 3
Blynk.syncVirtual(V24); //SENSOR 4 - Get Virtual pin values from server
Blynk.syncVirtual(V34); //SENSOR 4
Blynk.syncVirtual(V25); //SENSOR 5 - Get Virtual pin values from server
Blynk.syncVirtual(V35); //SENSOR 5
Blynk.syncVirtual(V26); //SENSOR 6 - Get Virtual pin values from server
Blynk.syncVirtual(V36); //SENSOR 6
Blynk.syncVirtual(V27); //SENSOR 7 - Get Virtual pin values from server
Blynk.syncVirtual(V37); //SENSOR 7
Blynk.syncVirtual(V28); //SENSOR 8 - Get Virtual pin values from server
Blynk.syncVirtual(V38); //SENSOR 8
Blynk.syncVirtual(V29); //SENSOR 9 - Get Virtual pin values from server
Blynk.syncVirtual(V39); //SENSOR 9
Blynk.syncVirtual(V30); //SENSOR 10 - Get Virtual pin values from server
Blynk.syncVirtual(V40); //SENSOR 10
}
BLYNK_WRITE(V21){tempmax[1] = param.asDouble();} // SENSOR 1 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V31){tempmin[1] = param.asDouble();} // SENSOR 1 assigning incoming value from pin to a variable
BLYNK_WRITE(V22){tempmax[2] = param.asDouble();} // SENSOR 2 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V32){tempmin[2] = param.asDouble();} // SENSOR 2 assigning incoming value from pin to a variable
BLYNK_WRITE(V23){tempmax[3] = param.asDouble();} // SENSOR 3 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V33){tempmin[3] = param.asDouble();} // SENSOR 3 assigning incoming value from pin to a variable
BLYNK_WRITE(V24){tempmax[4] = param.asDouble();} // SENSOR 4 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V34){tempmin[4] = param.asDouble();} // SENSOR 4 assigning incoming value from pin to a variable
BLYNK_WRITE(V25){tempmax[5] = param.asDouble();} // SENSOR 5 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V35){tempmin[5] = param.asDouble();} // SENSOR 5 assigning incoming value from pin to a variable
BLYNK_WRITE(V26){tempmax[6] = param.asDouble();} // SENSOR 6 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V36){tempmin[6] = param.asDouble();} // SENSOR 6 assigning incoming value from pin to a variable
BLYNK_WRITE(V27){tempmax[7] = param.asDouble();} // SENSOR 7 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V37){tempmin[7] = param.asDouble();} // SENSOR 7 assigning incoming value from pin to a variable
BLYNK_WRITE(V28){tempmax[8] = param.asDouble();} // SENSOR 8 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V38){tempmin[8] = param.asDouble();} // SENSOR 8 assigning incoming value from pin to a variable
BLYNK_WRITE(V29){tempmax[9] = param.asDouble();} // SENSOR 9 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V39){tempmin[9] = param.asDouble();} // SENSOR 9 assigning incoming value from pin to a variable
BLYNK_WRITE(V30){tempmax[10] = param.asDouble();} // SENSOR 10 Store min and max limit from server, assigning incoming value from pin to a variable
BLYNK_WRITE(V40){tempmin[10] = param.asDouble();} // SENSOR 10 assigning incoming value from pin to a variable
void setup()
{
Serial1.begin(9600);
pinMode(SDCARD_CS, OUTPUT);
digitalWrite(SDCARD_CS, HIGH); // Deselect the SD card
Blynk.begin(auth);
timer0.setInterval(70000L, myTimerEvent0); //70 seconds between each internet connection check
timer1.setInterval(180000L, myTimerEvent1); //180 seconds between each sensor status check
led1.on();
led1.setColor(BLYNK_RED);
led2.on();
led2.setColor(BLYNK_RED);
led3.on();
led3.setColor(BLYNK_RED);
led4.on();
led4.setColor(BLYNK_RED);
led5.on();
led5.setColor(BLYNK_RED);
led6.on();
led6.setColor(BLYNK_RED);
led7.on();
led7.setColor(BLYNK_RED);
led8.on();
led8.setColor(BLYNK_RED);
led9.on();
led9.setColor(BLYNK_RED);
led10.on();
led10.setColor(BLYNK_RED);
}
void loop(){
Blynk.run();
if (Serial1.available()) { //If there is serial data, read and store
if (Serial1.find("PJN")){
pjn1 = Serial1.parseInt();
}
if (Serial1.find("SID")){
sid = Serial1.parseInt();
}
if (Serial1.find("OK")){
ok[sid] = Serial1.parseInt();
}
if (Serial1.find("ST")){
st = Serial1.parseFloat();
st = st/100;
}
if (Serial1.find("RSSI")){
rssi = Serial1.parseInt();
}
if (Serial1.find("SNR")){
snr = Serial1.parseFloat();
snr = snr/100;
}
if (Serial1.find("BATP")){
batp = Serial1.parseFloat();
}
if (Serial1.find("BATV")){
batv = Serial1.parseFloat();
}
else {
char C = Serial.read();
}
i1 = 1;
}
Serial1.flush();
if ((pjn1 == pjn) && (i1 == 1)){
//Sensor 1
if ((sid == 1) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V11, st); }
if ((sid == 1) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V41, rssi);}
if ((sid == 1) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V51, snr); }
if ((sid == 1) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V61, batp);}
if ((sid == 1) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V71, batv);}
if ((sid == 1) && (ok[sid] == 1) && (led[sid] == 0)){
led1.setColor(BLYNK_GREEN);
Blynk.email("Sensor 1 ONLINE", "Sensor 1 OK");
Blynk.notify("Sensor 1 ONLINE");
led[1] = 1;
}
//Sensor 2
if ((sid == 2) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V12, st); }
if ((sid == 2) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V42, rssi);}
if ((sid == 2) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V52, snr); }
if ((sid == 2) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V62, batp);}
if ((sid == 2) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V72, batv);}
if ((sid == 2) && (ok[sid] == 1) && (led[sid] == 0)){
led2.setColor(BLYNK_GREEN);
Blynk.email("Sensor 2 ONLINE", "Sensor 2 OK");
Blynk.notify("Sensor 2 ONLINE");
led[2] = 1;
}
//Sensor 3
if ((sid == 3) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V13, st); }
if ((sid == 3) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V43, rssi);}
if ((sid == 3) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V53, snr); }
if ((sid == 3) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V63, batp);}
if ((sid == 3) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V73, batv);}
if ((sid == 3) && (ok[sid] == 1) && (led[sid] == 0)){
led3.setColor(BLYNK_GREEN);
Blynk.email("Sensor 3 ONLINE", "Sensor 3 OK");
Blynk.notify("Sensor 3 ONLINE");
led[3] = 1;
}
//Sensor 4
if ((sid == 4) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V14, st); }
if ((sid == 4) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V44, rssi);}
if ((sid == 4) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V54, snr); }
if ((sid == 4) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V64, batp);}
if ((sid == 4) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V74, batv);}
if ((sid == 4) && (ok[sid] == 1) && (led[sid] == 0)){
led4.setColor(BLYNK_GREEN);
Blynk.email("Sensor 4 ONLINE", "Sensor 4 OK");
Blynk.notify("Sensor 4 ONLINE");
led[4] = 1;
}
//Sensor 5
if ((sid == 5) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V15, st); }
if ((sid == 5) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V45, rssi);}
if ((sid == 5) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V55, snr); }
if ((sid == 5) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V65, batp);}
if ((sid == 5) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V75, batv);}
if ((sid == 5) && (ok[sid] == 1) && (led[sid] == 0)){
led5.setColor(BLYNK_GREEN);
Blynk.email("Sensor 5 ONLINE", "Sensor 5 OK");
Blynk.notify("Sensor 5 ONLINE");
led[5] = 1;
}
//Sensor 6
if ((sid == 6) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V16, st); }
if ((sid == 6) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V46, rssi);}
if ((sid == 6) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V56, snr); }
if ((sid == 6) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V66, batp);}
if ((sid == 6) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V76, batv);}
if ((sid == 6) && (ok[sid] == 1) && (led[sid] == 0)){
led6.setColor(BLYNK_GREEN);
Blynk.email("Sensor 6 ONLINE", "Sensor 6 OK");
Blynk.notify("Sensor 6 ONLINE");
led[6] = 1;
}
//Sensor 7
if ((sid == 7) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V17, st); }
if ((sid == 7) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V47, rssi);}
if ((sid == 7) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V57, snr); }
if ((sid == 7) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V67, batp);}
if ((sid == 7) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V77, batv);}
if ((sid == 7) && (ok[sid] == 1) && (led[sid] == 0)){
led7.setColor(BLYNK_GREEN);
Blynk.email("Sensor 7 ONLINE", "Sensor 7 OK");
Blynk.notify("Sensor 7 ONLINE");
led[7] = 1;
}
//Sensor 8
if ((sid == 8) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V18, st); }
if ((sid == 8) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V48, rssi);}
if ((sid == 8) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V58, snr); }
if ((sid == 8) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V68, batp);}
if ((sid == 8) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V78, batv);}
if ((sid == 8) && (ok[sid] == 1) && (led[sid] == 0)){
led8.setColor(BLYNK_GREEN);
Blynk.email("Sensor 8 ONLINE", "Sensor 8 OK");
Blynk.notify("Sensor 8 ONLINE");
led[8] = 1;
}
//Sensor 9
if ((sid == 9) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V19, st); }
if ((sid == 9) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V49, rssi);}
if ((sid == 9) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V59, snr); }
if ((sid == 9) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V69, batp);}
if ((sid == 9) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V79, batv);}
if ((sid == 9) && (ok[sid] == 1) && (led[sid] == 0)){
led9.setColor(BLYNK_GREEN);
Blynk.email("Sensor 9 ONLINE", "Sensor 9 OK");
Blynk.notify("Sensor 9 ONLINE");
led[9] = 1;
}
//Sensor 10
if ((sid == 10) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V20, st); }
if ((sid == 10) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V50, rssi);}
if ((sid == 10) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V60, snr); }
if ((sid == 10) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V70, batp);}
if ((sid == 10) && (ok[sid] == 1) && (batp > 0)){Blynk.virtualWrite(V80, batv);}
if ((sid == 10) && (ok[sid] == 1) && (led[sid] == 0)){
led10.setColor(BLYNK_GREEN);
Blynk.email("Sensor 10 ONLINE", "Sensor 10 OK");
Blynk.notify("Sensor 10 ONLINE");
led[10] = 1;
}
if ((sid == 1) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){Blynk.email("Temperatura 1 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 1 Alta");
maxtemp[sid] = 1; }
if ((sid == 1) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){Blynk.email("Temperatura 1 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 1 Baixa");
mintemp[sid] = 1; }
if ((sid == 2) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 2 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 2 Alta");
maxtemp[sid] = 1; }
if ((sid == 2) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 2 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 2 Baixa");
mintemp[sid] = 1; }
if ((sid == 3) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 3 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 3 Alta");
maxtemp[sid] = 1; }
if ((sid == 3) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 3 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 3 Baixa");
mintemp[sid] = 1; }
if ((sid == 4) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 4 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 4 Alta");
maxtemp[sid] = 1; }
if ((sid == 4) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 4 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 4 Baixa");
mintemp[sid] = 1; }
if ((sid == 5) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 5 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 5 Alta");
maxtemp[sid] = 1; }
if ((sid == 5) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 5 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 5 Baixa");
mintemp[sid] = 1; }
if ((sid == 6) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 6 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 6 Alta");
maxtemp[sid] = 1; }
if ((sid == 6) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 6 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 6 Baixa");
mintemp[sid] = 1; }
if ((sid == 7) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 7 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 7 Alta");
maxtemp[sid] = 1; }
if ((sid == 7) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 7 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 7 Baixa");
mintemp[sid] = 1; }
if ((sid == 8) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 8 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 8 Alta");
maxtemp[sid] = 1; }
if ((sid == 8) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 8 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 8 Baixa");
mintemp[sid] = 1; }
if ((sid == 9) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 9 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 9 Alta");
maxtemp[sid] = 1; }
if ((sid == 9) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 9 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 9 Baixa");
mintemp[sid] = 1; }
if ((sid == 10) && (ok[sid] == 1) && (st > tempmax[sid]) && (maxtemp[sid] < 1)){ Blynk.email("Temperatura 10 - Alta", "O valor de temperatura máxima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 10 Alta");
maxtemp[sid] = 1; }
if ((sid == 10) && (ok[sid] == 1) && (st < tempmin[sid]) && (mintemp[sid] < 1)){ Blynk.email("Temperatura 10 - Baixa", "O valor de temperatura mĂnima definida pelo aplicativo foi atingido!");
Blynk.notify("Temperatura 10 Baixa");
mintemp[sid] = 1; }
if ((sid == 1) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 1) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 2) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 2) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 3) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 3) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 4) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 4) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 5) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 5) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 6) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 6) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 7) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 7) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 8) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 8) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 9) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 9) && (st > tempmin[sid])) { mintemp[sid] = 0;}
if ((sid == 10) && (st < tempmax[sid])) { maxtemp[sid] = 0;}
if ((sid == 10) && (st > tempmin[sid])) { mintemp[sid] = 0;}
i1 = 0;
}
//} //End of serial read event
timer0.run(); // Initiates BlynkTimer
timer1.run(); // Initiates BlynkTimer
} //End of main LOOP event
void myTimerEvent0(){ //Loop to check internet connection
if ((Blynk.connected() == true) && (i == 0)) { //Check if Blynk is connected to internet and send message
Blynk.email("Blynk ONLINE!", "A conexĂŁo com a internet foi estabelecida com sucesso!");
Blynk.notify("Blynk ONLINE");
digitalWrite(7, HIGH);
i = 1;
}
if (Blynk.connected() == false) {
i = 0;
}
}
void myTimerEvent1(){ //Loop to check if sensors are alive
if ((ok[1] == 0) && (led[1] == 1)){
led1.setColor(BLYNK_RED);
Blynk.email("Sensor 1 OFFLINE", "Sensor 1 Sem resposta!");
Blynk.notify("Sensor 1 OFFLINE");
led[1] = 0;
}
if ((ok[2] == 0) && (led[2] == 1)){
led2.setColor(BLYNK_RED);
Blynk.email("Sensor 2 OFFLINE", "Sensor 2 Sem resposta!");
Blynk.notify("Sensor 2 OFFLINE");
led[2] = 0;
}
if ((ok[3] == 0) && (led[3] == 1)){
led3.setColor(BLYNK_RED);
Blynk.email("Sensor 3 OFFLINE", "Sensor 3 Sem resposta!");
Blynk.notify("Sensor 3 OFFLINE");
led[3] = 0;
}
if ((ok[4] == 0) && (led[4] == 1)){
led4.setColor(BLYNK_RED);
Blynk.email("Sensor 4 OFFLINE", "Sensor 4 Sem resposta!");
Blynk.notify("Sensor 4 OFFLINE");
led[4] = 0;
}
if ((ok[5] == 0) && (led[5] == 1)){
led5.setColor(BLYNK_RED);
Blynk.email("Sensor 5 OFFLINE", "Sensor 5 Sem resposta!");
Blynk.notify("Sensor 5 OFFLINE");
led[5] = 0;
}
if ((ok[6] == 0) && (led[6] == 1)){
led6.setColor(BLYNK_RED);
Blynk.email("Sensor 6 OFFLINE", "Sensor 6 Sem resposta!");
Blynk.notify("Sensor 6 OFFLINE");
led[6] = 0;
}
if ((ok[7] == 0) && (led[7] == 1)){
led7.setColor(BLYNK_RED);
Blynk.email("Sensor 7 OFFLINE", "Sensor 7 Sem resposta!");
Blynk.notify("Sensor 7 OFFLINE");
led[7] = 0;
}
if ((ok[8] == 0) && (led[8] == 1)){
led8.setColor(BLYNK_RED);
Blynk.email("Sensor 8 OFFLINE", "Sensor 8 Sem resposta!");
Blynk.notify("Sensor 8 OFFLINE");
led[8] = 0;
}
if ((ok[9] == 0) && (led[9] == 1)){
led9.setColor(BLYNK_RED);
Blynk.email("Sensor 9 OFFLINE", "Sensor 9 Sem resposta!");
Blynk.notify("Sensor 9 OFFLINE");
led[9] = 0;
}
if ((ok[10] == 0) && (led[10] == 1)){
led10.setColor(BLYNK_RED);
Blynk.email("Sensor 10 OFFLINE", "Sensor 10 Sem resposta!");
Blynk.notify("Sensor 10 OFFLINE");
led[10] = 0;
}
ok[1] = 0;
ok[2] = 0;
ok[3] = 0;
ok[4] = 0;
ok[5] = 0;
ok[6] = 0;
ok[7] = 0;
ok[8] = 0;
ok[9] = 0;
ok[10] = 0;
}