ESP32 Desconectando do WIFI

O ESP8266 é um microcontrolador do fabricante chinês Espressif que inclui capacidade de comunicação por Wi-Fi.
PHResende
Novato
Mensagens: 1
Registrado em: 17/Jan/2019, 13:12

ESP32 Desconectando do WIFI

Mensagem por PHResende » 23/Jan/2019, 14:26

Olá Pessoal!
Estou tendo problemas de desconexão com meu nodeMCU ESP8266. Estou usando o nodemcu, relés, firebase e appinventor. Consigo controlar o nodeMCU perfeitamente, porém após algum tempo, o nodeMCU pára de responder aos comandos. Antes de criar o app usei o Blynk para controlar meu nodeMCU e funcionava normalmente sem interrupções. Gostaria de saber se alguém pode me ajudar ou pelo menos apontar um caminho. Segue meu código caso alguém se disponibilize em ajudar! Vlw!!!

Código: Selecionar todos

#include <ESP8266WiFi.h>                   
#include <FirebaseArduino.h>
#include <ArduinoJson.h>            //Biblioteca ArduinoJson - Versão máxima 5.13.4 - Acima dessa versão ocorre erro de comunicação com o Firebase

#define FIREBASE_HOST "xxxxxxxxxxx"                      //URL do projeto no Firebase (Sem o "http:" , "\" e "/"
#define FIREBASE_AUTH "xxxxxxxxxxxx"  		      //Chave secreta do Database do Firebase

#define WIFI_SSID "xxxxxxxxxx"                               //SSID da rede WiFi para conexão
#define WIFI_PASSWORD "xxxxxxxxxxxx"                  //Senha da rede WiFi para conexão 

#define Relay1 16 //D0
#define Relay2 5  //D1
#define Relay3 0  //D3
#define Relay4 2  //D4
int rel1,rel2,rel3,rel4;

void setup() 
{
  Serial.begin(115200);                     // Seta o baud rate 115200 do monitor serial para comunicação
  pinMode(Relay1,OUTPUT);
  pinMode(Relay2,OUTPUT);
  pinMode(Relay3,OUTPUT);
  pinMode(Relay4,OUTPUT);
  digitalWrite(Relay1,HIGH);
  digitalWrite(Relay2,HIGH);
  digitalWrite(Relay3,HIGH);
  digitalWrite(Relay4,HIGH);
  
  
  WiFi.begin(WIFI_SSID,WIFI_PASSWORD);      //Conexão com o WiFi
  Serial.print("Connectando: ");
  while (WiFi.status()!=WL_CONNECTED){
    Serial.print(".");
    delay(500);
  }
  Serial.println();
  Serial.print("Connectado: ");
  Serial.println(WiFi.localIP());

  Firebase.begin(FIREBASE_HOST,FIREBASE_AUTH);
  
  Firebase.setInt("EXT1",0);                 //Ao ligar o módulo, seta as variáveis no Firebase em 0
  Firebase.setInt("EXT2",0); 
  Firebase.setInt("EXT3",0); 
  Firebase.setInt("EXT4",0); 
  
}
void firebasereconnect()                    //Variável de reconexão ao Firebase
{
  Serial.println("Tentando se reconectar!");
  Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
  }

void loop() 
{
  if (Firebase.failed())                    //Reconecta ao Firebase caso ocorra algum erro
      {
      Serial.print("Erro na conexão com o Firebase:");
      Serial.println(Firebase.error());
      firebasereconnect();
      return;
      }
      
  rel1=Firebase.getString("EXT1").toInt();  //Lê o valor da variavel EXT1 no banco de dados do Firebase
  rel2=Firebase.getString("EXT2").toInt();  //Lê o valor da variavel EXT2 no banco de dados do Firebase
  rel3=Firebase.getString("EXT3").toInt();  //Lê o valor da variavel EXT3 no banco de dados do Firebase
  rel4=Firebase.getString("EXT4").toInt();  //Lê o valor da variavel EXT4 no banco de dados do Firebase
  
  if(rel1 == 1)                            // Se o status é 1, ligar relé 1
     {
      digitalWrite(Relay1,LOW);
      Serial.println("Relay 1 ON");
    }
 if(rel1 == 0)                             // Se o status é 0, desligar o relé 1
    {                                      
      digitalWrite(Relay1,HIGH);
      Serial.println("Relay 1 OFF");
    }
if(rel2 == 1)                              // Se o status é 1, ligar relé 2
     {
      digitalWrite(Relay2,LOW);
      Serial.println("Relay 4 ON");
      delay(500); 
      digitalWrite(Relay2,HIGH);           //Após 1/2 segundo desligar relé 2 - Uso para abrir um portão eletrônico.
      Serial.println("Relay 4 OFF"); 
      Firebase.setInt("EXT2",0);
    }
 /*if(rel2 == 0)                             // Se o status é 1, desligar relé 2
    {                                      
      digitalWrite(Relay2,HIGH);
      Serial.println("Relay 2 OFF");
    }*/
if(rel3 == 1)                              // Se o status é 1, ligar relé 3
     {
      digitalWrite(Relay3,LOW);
      Serial.println("Relay 3 ON");
    }
if(rel3 == 0)                              // Se o status é 0, desligar relé 3
    {                                      
      digitalWrite(Relay3,HIGH);
      Serial.println("Relay 3 OFF");
    }
 if(rel4 == 1)                             // Se o status é 1, ligar relé 4
     {
      digitalWrite(Relay4,LOW);
      Serial.println("Relay 4 ON");
      delay(1000); 
      digitalWrite(Relay4,HIGH);           //Após 1 segundo desligar relé 4 - Uso para abrir um portão eletrônico.
      Serial.println("Relay 4 OFF"); 
      Firebase.setInt("EXT4",0);
    }
}

Responder