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

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.

Eu fiz conforme esta ai no link, porem nao reconhece no arduino, IDE 2.1.1.

You’ll need to find a different solution then.

Pete.

Agora esta me apresentando outro problema:
Eu já reinstalei a biblioteca e salvei em outro local, mesmo erro.

In file included from d:\Documentos\Arduino\libraries\Blynk\src/BlynkApiArduino.h:14,
                 from d:\Documentos\Arduino\libraries\Blynk\src/BlynkSimpleEsp8266.h:24,
                 from D:\Documentos\Arduino\IRRIGACAO_Catia_Deuner_pft8574_copy_20230726180340\IRRIGACAO_Catia_Deuner_pft8574_copy_20230726180340.ino:16:
d:\Documentos\Arduino\libraries\Blynk\src/Blynk/BlynkApi.h:39:6: error: #error "Please specify your BLYNK_TEMPLATE_ID and BLYNK_TEMPLATE_NAME"
   39 |     #error "Please specify your BLYNK_TEMPLATE_ID and BLYNK_TEMPLATE_NAME"
      |      ^~~~~

exit status 1

Compilation error: exit status 1

It’s telling you that it can’t find these two lines of code in your sketch…

Probably because you’ve opened a new example sketch and you haven’t inserted the two or three lines of firmware configuration into the new sketch.

If you read the error message carefully you’ll see that it explains this…

Pete.

Consegui abrir o Exception Decoder

Exception 4: Level1Interrupt: Level-1 interrupt as indicated by set level-1 bits in the INTERRUPT register
PC: 0x40100546: millis() at C:\Users\ronia\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_wiring.cpp:176
EXCVADDR: 0x00000000

Decoding stack results
0x40205d92:  is in __delay(unsigned long) (C:\Users\ronia\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266/coredecls.h:77).
0x402012c5: BlynkArduinoClientGen<Client>::connected() at d:\Documentos\Arduino\libraries\Blynk\src/Adapters\BlynkArduinoClient.h:128
0x40201469:  is in BlynkProtocol<BlynkArduinoClientGen<Client> >::run(bool) (d:\Documentos\Arduino\libraries\Blynk\src/Adapters/BlynkArduinoClient.h:129).
0x40202150:  is in BlynkProtocol<BlynkArduinoClientGen<Client> >::connect(unsigned int) (d:\Documentos\Arduino\libraries\Blynk\src/Blynk/BlynkProtocol.h:54).
0x40202348: setup() at c:\users\ronia\appdata\local\arduino15\packages\esp8266\tools\xtensa-lx106-elf-gcc\3.1.0-gcc10.3-e5f9fec\xtensa-lx106-elf\include\c++\10.3.0\new:175
0x402051e8: loop_wrapper() at C:\Users\ronia\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.1.2\cores\esp8266\core_esp8266_main.cpp:255

Pelo que entendi, tem algum problema no "BLYNK_CONNECT:

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

Eu comentei essa linha do millis(), mas nao deu certo.
Oque eu posso fazer para dar certo?
No app ele fica online mas não consigo controlar suas saidas

I’m totally confused now.

You say that your device is showing as online, but you seem to be saying that you have an error being displayed in your serial monitor and that you’ve now managed to decide that error.

How can your device be online if it’s thrown an exception error?

I suggest you give a full explanation and post your full sketch and full serial output, along with any other useful information that will help it make sense to us.

Pete.

Segue:


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

// 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.



char ssid[] = "Ron....";
char pass[] = "97.....";


#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;
//  int value = delay() / 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();
  }

Errro Apresentado no Serial:

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

 #StandWithUkraine    https://bit.ly/swua


[4416] Connecting to blynk.cloud:80
[4712] Ready (ping: 135ms).

--------------- CUT HERE FOR EXCEPTION DECODER ---------------
Soft WDT reset

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

>>>stack>>>

ctx: cont
sp: 3ffffdb0 end: 3fffffd0 offset: 0160
3fffff10:  00001f8a 00000000 00001f8a 00000000  
3fffff20:  00000000 007b3629 00004650 3ffef26c  
3fffff30:  00000000 00001f8a c8f5c28f 3ffef26c  
3fffff40:  00004650 00000000 00000000 40205d6a  
3fffff50:  00004650 00000000 3ffeef48 402012c5  
3fffff60:  00000000 00000000 3ffeef10 40201430  
3fffff70:  00004650 3ffeef5c 00000001 3ffef26c  
3fffff80:  00004650 00001336 3ffeef10 40202124  
3fffff90:  3ffe85d1 3ffeef10 00004650 4020231c  
3fffffa0:  40208c78 7101a8c0 feefeffe feefeffe  
3fffffb0:  3fffdad0 00000000 3ffef240 402051c0  
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
v00047ed0
~ld
�a�n�r��n|�l�l`bbrl�nb�nl`�rl�l��[78] Connecting to ......

Ele apresenta os erros no Monitor Serial, no app e na web aparecem como online, mas não consigo fazer nada, quando aciono, não responde.
Ja testei com 2 NodeMCU 1.0

I’ve never come across a NodeMCU with a pin labelled D9, it’s usually labelled Rx.
Can you explain more about the actual connections you have to your board?

Have you tried running the NodeMCU with only the USB cable connected?

I’m also very confused by the way that you’re using the Blynk.connect() command in your sketch. This is normally only used when Blynk.begin() is not used, and you establish your own WiFi connection then use the Blynk.config() command.

I suspect that removing the Blynk.connect() and all of the connection checking code may help the situation.

Pete.

Ola, eu tirei o Blynk.connect() e funcionou.
Como posso colocar um led para piscar quando ele não esta conectado ao servidor?
Eu consegui colocar um led, quando ele ta conectado, esse led se liga, quando esta desconectado, desliga. tem algum geito de fazer ele piscar quando esta desconectado.
Sobre a descrição dos pinos, sim funciona, pelo menos para mim funcionou desta forma…
agradeço a compreensão de todos. Obrigado.

You could try using the Ticker library to flash your LED.

However, you code will never cope with a situation where the device can’t connect to either WiFi or the Blynk server at startup, because the Blynk.begin command is blocking, and all code execution will halt at that point.
Far better to manage your own WiFi connection and use Blynk.config and Blynk.connect if you want offline code execution.

Pete.

Obrigado. Vou deixar assim. Ta funcionando.