NodeMCU1.0-Quando desconectado, faça certa ação

You obviously can’t return a result from the device if the device is disconnected, because it has no way of communicating with Blynk.
Blynk automations currently have no way of returning a different value if the device went offline during the execution of the automation.

There are two things you can do…

  1. fix your code and choice of pins, as @John93 has suggested. This will mean that your device won’t go offline because of your badly written code.

  2. add some code which indicates that whatever action was triggered by the automation has completed successfully (positive feedback, rather than reporting that something went wrong).

Pete.

O codigo estava funcionando perfeitamente, o problema é que se ficar sem wifi ou internet e se ele estiver fazendo a automação, ele fica parado. Eu queria saber como posso fazer para que se ele perder comunicação, ele desligue todas as gpios. Porque é um sistema de irrigação

Esses dois casos, não são o que eu preciso, a parte de automação funciona, so preciso que quando ele se desconecta do servidor blynk, ele coloque as gpios em LOW

Esse é o codigo que esta funcionando perfeitamente.

#define BLYNK_TEMPLATE_ID "TMPLjCFDWIeX"
#define BLYNK_DEVICE_NAME "Irrigação"
#define BLYNK_AUTH_TOKEN "TnbdGcU7oP8P_60DGE9p5JYHihn0aEpb"


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

#include <BlynkSimpleEsp8266.h>
#include <DHT.h>

char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Rosane_Dreyer";
char pass[] = "07112716";

#define bomba D2     //BOMBA DA AGUA V0 C
#define valvula1 10  //VALVULA ENTRADA 1 V1 C (SK)
#define caixa1 D4    //CAIXA 1 V2 C ()
#define caixa2 D0    //CAIXA 2 V3 C
#define linha1 D3    //LINHA 1 V4 C
#define linha2 D1    //LINHA 2 V5 C
#define linha3 D5    //LINHA 3 V6 C
#define linha4 D8    //LINHA 4 V7 C
#define linha5 D6    //LINHA 5 V8 C
#define linha6 D7    //LINHA 6 V9 C
#define DHTPIN D9    //sensor DHT11 V10 e V11

// Uncomment whatever type you're using!
#define DHTTYPE DHT11  // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;

// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();  // or dht.readTemperature(true) for Fahrenheit

  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V10, h);
  Blynk.virtualWrite(V11, t);
}

//SAIDAS
//BOMBA DA AGUA
BLYNK_WRITE(V0) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);

  } else {
    digitalWrite(bomba, LOW);
  }
}

//ENTRADA CAIXA DA AGUA
BLYNK_WRITE(V1) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(valvula1, HIGH);

  } else {
    digitalWrite(valvula1, LOW);
  }
}

//CAIXA 1
BLYNK_WRITE(V2) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(caixa1, HIGH);

  } else {
    digitalWrite(caixa1, LOW);
  }
}

//CAIXA 2
BLYNK_WRITE(V3) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(caixa2, HIGH);

  } else {
    digitalWrite(caixa2, LOW);
  }
}

//linha 1
BLYNK_WRITE(V4) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha1, HIGH);
  } else {
    digitalWrite(linha1, LOW);
  }
}
//Linha 2
BLYNK_WRITE(V5) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha2, HIGH);
  } else {
    digitalWrite(linha2, LOW);
  }
}
//Linha 3
BLYNK_WRITE(V6) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha3, HIGH);
  } else {
    digitalWrite(linha3, LOW);
  }
}
//Linha 4
BLYNK_WRITE(V7) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha4, HIGH);
  } else {
    digitalWrite(linha4, LOW);
  }
}

//Linha 5
BLYNK_WRITE(V8) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha5, HIGH);
  } else {
    digitalWrite(linha5, LOW);
  }
}

//Linha 6
BLYNK_WRITE(V9) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(linha6, HIGH);
  } else {
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 1
BLYNK_WRITE(V12) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, HIGH);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 2
BLYNK_WRITE(V13) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, HIGH);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 3
BLYNK_WRITE(V14) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, HIGH);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 4
BLYNK_WRITE(V15) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, HIGH);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 5
BLYNK_WRITE(V16) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, HIGH);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, HIGH);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 6
BLYNK_WRITE(V17) {
  int pinValue = param.asInt();
  //Serial.println(pinValue);
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, HIGH);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, HIGH);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

void setup() {
  pinMode(bomba, OUTPUT);     //BOMBA DA AGUA
  pinMode(valvula1, OUTPUT);  //VALVULA ENTRADA 1
  pinMode(caixa1, OUTPUT);    //CAIXA 1
  pinMode(caixa2, OUTPUT);    //CAIXA 2
  pinMode(linha1, OUTPUT);    //LINHA 1
  pinMode(linha2, OUTPUT);    //LINHA 2
  pinMode(linha3, OUTPUT);    //LINHA 3
  pinMode(linha4, OUTPUT);    //LINHA 4
  pinMode(linha5, OUTPUT);    //LINHA 5
  pinMode(linha6, OUTPUT);    //LINHA 6
  digitalWrite(valvula1, HIGH);

  // Debug console
  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);

  dht.begin();

  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}
void loop() {

  Blynk.run();
  timer.run();

}

So the problem is solved now?

Pete.

Não, estou lendo esse artigo
https://community.blynk.cc/t/blynk-connect-timeout-event-syntax/58576/7
O codigo ta sem essa funcao na qual eu preciso.
Nao tem um meio mais simples que eu consigo interragir conforme a conexão com o servidor?

I don’t see how this link is relevant to your situation.

You could make a regular timed call to check if Blynk.connected() evaluates as true, and if not call a function which sets your GPIOs to LOW.
However, Blynk.connected() will still evaluate as true even after WiFi and the connection to Blynk is lost, until the heartbeat period expires. You can see the heartbeat period in the Device Info tab on the web console, and it’s normally around 45 seconds.

Pete.

Obrigado Pete.
Vou Tentar

Tentei colocar algo assim.

[Unformatted code removed by moderator]

Mas não funcionou.

You need to use triple backs when you post code to the forum.

Pete.

Olá, consegui fazer, desde ja muito obrigado
Segue o meu codigo, para quem quiser usa-lo!

/*
Projeto de Automação de Irrigação para Morangos e Tomates!
Automação pelo Aplicativo e Servidor "BLynk IOT"
Atualizado 06/11/2022 as 20:00

*/
#define BLYNK_TEMPLATE_ID "TMPLjCFDWIeX"
#define BLYNK_DEVICE_NAME "Irrigação"
#define BLYNK_AUTH_TOKEN "TnbdGcU7oP8P_60DGE9p5JYHihn0aEpb"


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

#include <BlynkSimpleEsp8266.h>
#include <DHT.h>
#include <WiFiClient.h>

char auth[] = BLYNK_AUTH_TOKEN;

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Dreyer Haus!";
char pass[] = "07112716";

#define bomba D2     //BOMBA DA AGUA V0 C
#define valvula1 10  //VALVULA ENTRADA 1 V1 C (SK)
#define caixa1 D4    //CAIXA 1 V2 C ()
#define caixa2 D0    //CAIXA 2 V3 C
#define linha1 D3    //LINHA 1 V4 C
#define linha2 D1    //LINHA 2 V5 C
#define linha3 D5    //LINHA 3 V6 C
#define linha4 D8    //LINHA 4 V7 C
#define linha5 D6    //LINHA 5 V8 C
#define linha6 D7    //LINHA 6 V9 C
#define DHTPIN D9    //sensor DHT11 V10 e V11

// Tipo de Sensor DHT!
#define DHTTYPE DHT11  // DHT 11
//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;

//Propriedades para optenção da Leitura de Umidade e Temperatura
void sendSensor() {
  float h = dht.readHumidity();
  float t = dht.readTemperature();  

  if (isnan(h) || isnan(t)) {
    Serial.println("Erro no Sensor de Temperatura!");
    return;
  }
//pinos virtuais do Blynk para obtenção da Leitura do Sensor
  Blynk.virtualWrite(V10, h);
  Blynk.virtualWrite(V11, t);
}

BLYNK_CONNECTED() {
  // Requisita a sincronização dos pinos
  Blynk.syncAll();
  int value = millis() / 1000;
}


//SAIDAS com seus respectivos Pinos Virtuais
//BOMBA DA AGUA
BLYNK_WRITE(V0) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);

  } else {
    digitalWrite(bomba, LOW);
  }
}

//ENTRADA CAIXA DA AGUA
BLYNK_WRITE(V1) {
  int pinValue = param.asInt();
    if (pinValue == 1) {
    digitalWrite(valvula1, HIGH);

  } else {
    digitalWrite(valvula1, LOW);
  }
}

//CAIXA 1
BLYNK_WRITE(V2) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(caixa1, HIGH);

  } else {
    digitalWrite(caixa1, LOW);
  }
}

//CAIXA 2
BLYNK_WRITE(V3) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(caixa2, HIGH);

  } else {
    digitalWrite(caixa2, LOW);
  }
}

//linha 1
BLYNK_WRITE(V4) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha1, HIGH);
  } else {
    digitalWrite(linha1, LOW);
  }
}
//Linha 2
BLYNK_WRITE(V5) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha2, HIGH);
  } else {
    digitalWrite(linha2, LOW);
  }
}
//Linha 3
BLYNK_WRITE(V6) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha3, HIGH);
  } else {
    digitalWrite(linha3, LOW);
  }
}
//Linha 4
BLYNK_WRITE(V7) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha4, HIGH);
  } else {
    digitalWrite(linha4, LOW);
  }
}

//Linha 5
BLYNK_WRITE(V8) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha5, HIGH);
  } else {
    digitalWrite(linha5, LOW);
  }
}

//Linha 6
BLYNK_WRITE(V9) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(linha6, HIGH);
  } else {
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 1
BLYNK_WRITE(V12) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, HIGH);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 2
BLYNK_WRITE(V13) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, HIGH);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 3
BLYNK_WRITE(V14) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, HIGH);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 4
BLYNK_WRITE(V15) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, LOW);
    digitalWrite(caixa1, HIGH);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, HIGH);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 5
BLYNK_WRITE(V16) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, HIGH);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, HIGH);
    digitalWrite(linha6, LOW);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

//Processo linha 6
BLYNK_WRITE(V17) {
  int pinValue = param.asInt();
  if (pinValue == 1) {
    digitalWrite(bomba, HIGH);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, HIGH);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, HIGH);

  } else {
    digitalWrite(bomba, LOW);
    digitalWrite(valvula1, HIGH);
    digitalWrite(caixa1, LOW);
    digitalWrite(caixa2, LOW);
    digitalWrite(linha1, LOW);
    digitalWrite(linha2, LOW);
    digitalWrite(linha3, LOW);
    digitalWrite(linha4, LOW);
    digitalWrite(linha5, LOW);
    digitalWrite(linha6, LOW);
  }
}

void connection_check() {
  if (Blynk.connected() == true) {
    Serial.println("Servidor Conectado!");
  }

  else if (Blynk.connected() == false) {
    Serial.print("Servidor Desconectado!");
    Blynk.connect();
  }
} 
  void setup() {
    pinMode(bomba, OUTPUT);     //BOMBA DA AGUA
    pinMode(valvula1, OUTPUT);  //VALVULA ENTRADA 1
    pinMode(caixa1, OUTPUT);    //CAIXA 1
    pinMode(caixa2, OUTPUT);    //CAIXA 2
    pinMode(linha1, OUTPUT);    //LINHA 1
    pinMode(linha2, OUTPUT);    //LINHA 2
    pinMode(linha3, OUTPUT);    //LINHA 3
    pinMode(linha4, OUTPUT);    //LINHA 4
    pinMode(linha5, OUTPUT);    //LINHA 5
    pinMode(linha6, OUTPUT);    //LINHA 6
    digitalWrite(valvula1, HIGH);

    // Debug console
    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);

    dht.begin();
    Blynk.connect();
    // Setup a function to be called every second
    timer.setInterval(600000L, sendSensor);
    timer.setInterval(40000L, connection_check);
  }
  void loop() {

    timer.run();
    if (Blynk.connected() == true) {
      Blynk.run();
    }
    if (Blynk.connected() == false) {
      digitalWrite(bomba, LOW);
      digitalWrite(valvula1, HIGH);
      digitalWrite(caixa1, LOW);
      digitalWrite(caixa2, LOW);
      digitalWrite(linha1, LOW);
      digitalWrite(linha2, LOW);
      digitalWrite(linha3, LOW);
      digitalWrite(linha4, LOW);
      digitalWrite(linha5, LOW);
      digitalWrite(linha6, LOW);
    }
  }

Your void loop is a mess once again, and the use of this type of check in the void loop serves no purpose when you use Blynk.begin…

Pete.

Obrigado. Ja fiz esse ajuste.

Desculpa a demora.
Ficou rodando por um tempo com esse codigo, mas agora apresenta um erro, segue codigo.

/*

Projeto de Automação de Irrigação para Morangos e Tomates!

Automação pelo Aplicativo e Servidor "BLynk IOT"

Esp e pcf8574

Atualizado 24/07/2023 as 21:20

*/

#define BLYNK_TEMPLATE_ID "TMPLj***"

#define BLYNK_DEVICE_NAME "Irrigação"

#define BLYNK_AUTH_TOKEN "TnbdGcU7oP8P_***"

// Comment this out to disable prints and save space

#define BLYNK_PRINT Serial

#include <pcf8574.h>

#include <BlynkSimpleEsp8266.h>

#include <DHT.h>

#include <WiFiClient.h>

#include <ESP8266WiFi.h>

PCF8574 pcf(0x38);

char auth[] = BLYNK_AUTH_TOKEN;

// WIFI.

//WiFiManager wifiManager;  //Objeto de manipulação do wi-fi

//char ssid[] = "Ang***";

//char pass[] = "12345***";

char ssid[] = "Ron***";

char pass[] = "9717***";

#define bomba D5       //BOMBA DA AGUA V0 C

#define valvula1 D6    //VALVULA ENTRADA 1

#define hibernacao D0  //CAIXA 2 V3 C

#define DHTPIN D9      //sensor DHT11 V10 e V11

#define Connect D7     //led indicação da conexao ao servidor

// Tipo de Sensor DHT!

#define DHTTYPE DHT11  // DHT 11

//#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321

//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;

//Propriedades para optenção da Leitura de Umidade e Temperatura

void sendSensor() {

  float h = dht.readHumidity();

  float t = dht.readTemperature();

  if (isnan(h) || isnan(t)) {

    Serial.println("Erro no Sensor de Temperatura!");

    return;

  }

  //pinos virtuais do Blynk para obtenção da Leitura do Sensor

  Blynk.virtualWrite(V10, h);

  Blynk.virtualWrite(V11, t);

}

BLYNK_CONNECTED() {

  // Requisita a sincronização dos pinos

  Blynk.syncAll();

  int value = millis() / 1000;

}

//SAIDAS com seus respectivos Pinos Virtuais

//BOMBA DA AGUA

BLYNK_WRITE(V0) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    digitalWrite(bomba, LOW);

  } else {

    digitalWrite(bomba, HIGH);

  }

}

//ENTRADA CAIXA DA AGUA

BLYNK_WRITE(V1) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    digitalWrite(valvula1, LOW);

  } else {

    digitalWrite(valvula1, HIGH);

  }

}

//CAIXA 1

BLYNK_WRITE(V2) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(caixa1, LOW);

    digitalWrite(pcf, 0, LOW);

  } else {

    //    digitalWrite(caixa1, HIGH);

    digitalWrite(pcf, 0, HIGH);

  }

}

//CAIXA 2

BLYNK_WRITE(V3) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(caixa2, LOW);

    digitalWrite(pcf, 1, LOW);

  } else {

    //    digitalWrite(caixa2, HIGH);

    digitalWrite(pcf, 1, HIGH);

  }

}

//linha 1

BLYNK_WRITE(V4) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha1, LOW);

    digitalWrite(pcf, 2, LOW);

  } else {

    //    digitalWrite(linha1, HIGH);

    digitalWrite(pcf, 2, HIGH);

  }

}

//Linha 2

BLYNK_WRITE(V5) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha2, LOW);

    digitalWrite(pcf, 3, LOW);

  } else {

    //    digitalWrite(linha2, HIGH);

    digitalWrite(pcf, 3, HIGH);

  }

}

//Linha 3

BLYNK_WRITE(V6) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha3, LOW);

    digitalWrite(pcf, 4, LOW);

  } else {

    //    digitalWrite(linha3, HIGH);

    digitalWrite(pcf, 4, HIGH);

  }

}

//Linha 4

BLYNK_WRITE(V7) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha4, LOW);

    digitalWrite(pcf, 5, LOW);

  } else {

    //    digitalWrite(linha4, HIGH);

    digitalWrite(pcf, 5, HIGH);

  }

}

//Linha 5

BLYNK_WRITE(V8) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha5, LOW);

    digitalWrite(pcf, 6, LOW);

  } else {

    //    digitalWrite(linha5, HIGH);

    digitalWrite(pcf, 6, HIGH);

  }

}

//Linha 6

BLYNK_WRITE(V9) {

  int pinValue = param.asInt();

  if (pinValue == 1) {

    //    digitalWrite(linha6, LOW);

    digitalWrite(pcf, 7, LOW);

  } else {

    //    digitalWrite(linha6, HIGH);

    digitalWrite(pcf, 7, HIGH);

  }

}

void connection_check() {

  if (Blynk.connected() == true) {

    Serial.println("Servidor Conectado!");

    digitalWrite(Connect, HIGH);

  }

  else if (Blynk.connected() == false) {

    Serial.println("Servidor Desconectado!");

    digitalWrite(bomba, HIGH);     //Bomba da Água

    digitalWrite(valvula1, HIGH);  //Entrada Caixa da Água

    digitalWrite(pcf, 0, HIGH);    //Saída Caixa da Água 1

    digitalWrite(pcf, 1, HIGH);    //Saída Caixa da Água 2

    digitalWrite(pcf, 2, HIGH);    //Linha 1

    digitalWrite(pcf, 3, HIGH);    //Linha 2

    digitalWrite(pcf, 4, HIGH);    //Linha 3

    digitalWrite(pcf, 5, HIGH);    //Linha 4

    digitalWrite(pcf, 6, HIGH);    //Linha 5

    digitalWrite(pcf, 7, HIGH);    //Linha 6

//    Blynk.connect();

  }

}

void setup() {

  pinMode(bomba, OUTPUT);       //BOMBA DA AGUA

  pinMode(valvula1, OUTPUT);    //VALVULA ENTRADA 1

  pinMode(pcf, 0, OUTPUT);      //CAIXA 1

  pinMode(pcf, 1, OUTPUT);      //CAIXA 2

  pinMode(pcf, 2, OUTPUT);      //LINHA 1

  pinMode(pcf, 3, OUTPUT);      //LINHA 2

  pinMode(pcf, 4, OUTPUT);      //LINHA 3

  pinMode(pcf, 5, OUTPUT);      //LINHA 4

  pinMode(pcf, 6, OUTPUT);      //LINHA 5

  pinMode(pcf, 7, OUTPUT);      //LINHA 6

  pinMode(hibernacao, OUTPUT);  //hibernação

  pinMode(Connect, OUTPUT);     //Status wifi

  digitalWrite(bomba, HIGH);

  digitalWrite(valvula1, HIGH);

  digitalWrite(hibernacao, HIGH);

  //Debug console

  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);

  dht.begin();

  Blynk.connect();

  // Setup a function to be called every second

//  timer.setInterval(600000L, sendSensor);

  timer.setInterval(40000L, connection_check);

}

void loop() {

  timer.run();

  Blynk.run();

  }
 

Erro:

[4406] Connected to WiFi
[4407] IP: 192.168.1.113
[4407] 
    ___  __          __
   / _ )/ /_ _____  / /__
  / _  / / // / _ \/  '_/
 /____/_/\_, /_//_/_/\_\
        /___/ v1.2.0 on ESP8266

 #StandWithUkraine    https://bit.ly/swua


[4417] Connecting to blynk.cloud:80
[4718] Ready (ping: 135ms).

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

Soft WDT reset

Exception (4):
epc1=0x40100557 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>
epc1=0x40100557 epc2=0x00000000 epc3=0x00000000 excvaddr=0x00000000 depc=0x00000000

>>>stack>>>

ctx: cont
sp: 3ffffe10 end: 3fffffd0 offset: 0160
3fffff70:  00004650 3ffeef2c 00000001 3ffef23c  
3fffff80:  00004650 000013be 3ffeeee0 402020db  
3fffff90:  3ffe85d1 3ffeeee0 00004650 402022e7  
3fffffa0:  40208770 7101a8c0 feefeffe feefeffe  
3fffffb0:  3fffdad0 00000000 3ffef210 40204cb8  
3fffffc0:  feefeffe feefeffe 3fffdab0 401010ed  
<<<stack<<<

--------------- CUT HERE FOR EXCEPTION DECODER ---------------

 ets Jan  8 2013,rst cause:2, boot mode:(3,6)

load 0x4010f000, len 3424, room 16 
tail 0
chksum 0x2e
load 0x3fff20b8, len 40, room 8 
tail 0
chksum 0x2b
csum 0x2b
v000479c0
~ld

Maybe power supply, try an other :thinking:

What does the Exception Decoder show?

Have you tried disconnecting all of the hardware from your NodeMCU and seeing if that solves the problem?

Pete.

Eu troquei de fonte e nada.
Tentei instalar o excention Decoder mas apresenta erro.

Activating extension 'ESP Exception Decoder' failed: Cannot find module 'c:\Users\ronia.arduinoIDE\plugins\esp-exception-decoder-1.0.2.vsix\dist\extension.js' Require stack: - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\core\lib\node\dynamic-require.js - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\plugin-ext\lib\hosted\node\plugin-host-rpc.js - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\plugin-ext\lib\hosted\node\plugin-host.js

1 Like

I’d suggest you try re-installing the exception decoder.

Pete.

Apresenta o seguinte erro:

Activating extension 'ESP Exception Decoder' failed: Cannot find module 'c:\Users\ronia.arduinoIDE\plugins\esp-exception-decoder-1.0.2.vsix\dist\extension.js' Require stack: - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\core\lib\node\dynamic-require.js - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\plugin-ext\lib\hosted\node\plugin-host-rpc.js - C:\Program Files\Arduino IDE\resources\app\node_modules@theia\plugin-ext\lib\hosted\node\plugin-host.js

Segue link que esttou usando:
https://github.com/dankeboy36/esp-exception-decoder

I think this is the correct link…

and if you’re having issues with the correct version then it will probably be because you haven’t followed the installation instructions correctly.

Pete.