Problems with Particle Photon and Blynk

I’m new in Blynk community and am facing serious problems with Blynk and Particle Photon, I don’ t know what to do. All routines that made using the two together had problems. Very different from when I use Blink on ESP8266, to my surprise very stable and have not had any problems so far.
Below follows the source code that I’m having trouble it is a simple source code, but at all times the WDT operates on this code. In other code also using Photon and Blynk the hardware lock and the light stops flashing and the hardware is frozen. I’ve done everything and I have no more idea than done. Anyone have any suggestions for me? I have even turned off the Particle server to have no problems, but without success. The source code speak for themselves.
I’m connecting 3 hardware. 2 Photon and ESP8266, only stable is the ESP.
The following are the codes that are making trouble.

Main Photon: (more complex)
// This #include statement was automatically added by the Particle IDE.
//#define BLYNK_PRINT Serial
#include “blynk/BlynkSimpleParticle.h”
#include “blynk/blynk.h”

SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);
STARTUP(WiFi.selectAntenna(ANT_AUTO)); 
STARTUP(System.enableFeature(FEATURE_RETAINED_MEMORY));

// Variáveis utilizadas no equipamento
  retained char alarmeStatus = '1';
  retained char cercaStatus = '7';
  char auth[] = "xxxxxxxxxxxxxxxxxx"; 
  
  const char ALARME_DESCONECTADO = '0';
  const char ALARME_DESATIVADO = '1';
  const char ALARME_ATIVADO = '2';
  const char ALARME_DISPARADO = '3';
  const char CERCA_DESCONECTADA = '6';
  const char CERCA_DESLIGADA = '7';
  const char CERCA_LIGADA = '8';
  
  // Define nome para entradas e saídas:
  //Saidas:
  int S_Alarme =  D6;                 // Saída Controle Alarme
  int S_Cerca =  D5;                  // Saída Controle Cerca
  int St_Alarme =  D4;                // Saída Controle Led Alarme
  int St_Cerca =  D3;                 // Saída Controle Led Cerca
  int LStatus =  D7;                  // Saída Led Status do Equipamento
  int LPortao =  D2;                  // Saída Led do Portão
  int LLuz =  A5;                     // Saída Led Luz Externa  

  //Entradas:
  int E_Sirene = D0;                  // Sinal de Entrada Sirene
  int Bot = D1;                       // Sinal de Entrada Botão
  
  int StatusE_Sirene;                       // Estado da Entrada 1
  int UltimoStatusE_Sirene = LOW;           // Estado anterior da Entrada 1
  int ContadorE_Sirene = 0;                 // Verificador de quantas vezes a Entrada 1 foi acionada   
  int EnvioStatus = LOW;                    // Estado dos comandos
  int StatusEnvio;                          // Estado da Entrada 1
  int UltimoStatusEnvio = LOW;              // Estado anterior da Entrada 1
  int LeStatus;                             // Estado atual da ntrada 1
  int SaidaStatus1 = LOW;            
  int SaidaStatus2 = LOW;     
  int SaidaStatus3 = LOW;            
  int SaidaStatus4 = LOW;  
  int BloqSaida = 0;
  int SinalStatus = LOW;  
  
  // Definições do Status do Alarme:
  unsigned int ControleAlarme = 0;  
  unsigned int ControleCerca = 0;  

  unsigned long TempoE_Sirene = 0;          // Tempo da Entrada 1
  unsigned long UltimoTempoE_Sirene = 0;    // Último momento em que o Entrada 1 foi atualizado
  unsigned long DebounceE_Sirene = 150;     // Tempo do filtro Entrada 1, aumentar se ocorrer irregularidades
  unsigned long TempoEnvio = 0;             // Tempo da Entrada 1
  unsigned long UltimoTempoEnvio = 0;       // Último momento em que o Entrada 1 foi atualizado
  unsigned long DebounceEnvio = 5000;       // Tempo do filtro Entrada 1, aumentar se ocorrer irregularidades
  unsigned long IntervaloNormal = 1000;
  unsigned long IntervaloDisparado = 1500;
  unsigned long PrevioMillis = 0;
  unsigned long TempoSinalAtual = 0; 
  unsigned long MillisAtual = millis();
  unsigned long ContDisparo = 0;  
  unsigned long ContSinal = 0;
  unsigned long ContIni = 0;

  double temp = 0.0;
  double humd = 0.0;
  double tempFundo = 0.0;
  double humdSolo = 0.0;  

  bool inicio = true;
  bool BtTrava = false;
  bool PLed = false;
  bool Primeira = false;
  bool PrimeiraBlynk = true;

  Timer timer1(2000, Atualiza);             // Tempo e Rotina do Temporizador
  Timer timer2(60000, Alerta);              // Tempo e Rotina do Temporizador
  Timer timer3(100, AlertaLed);             // Tempo e Rotina do Temporizador
  
  ApplicationWatchdog wd(60000, System.reset);

//Canais Virtuais do Blynk
  WidgetBridge bridge1(V3);                 // Canal Virtual da Ponte
  WidgetBridge bridge2(V14);                 // Canal Virtual da Ponte
  
  WidgetLCD lcd(V0);                        // Canal Virtual do LCD Virtual
  
  WidgetLED LedAlarme(V5);                  //LED Virtual no APP
  WidgetLED LedCerca(V6);                   //LED Virtual no APP
  WidgetLED LedDisparo1(V7);                //LED Virtual no APP
  WidgetLED LedDisparo2(V8);                //LED Virtual no APP
    

void setup() {
    
  // Serial.begin(115200);                      // Inicia a Serial
 //  delay(500);
   WiFi.on();                               // Liga a Módulo WiFi com as credenciais pré definidas
   delay(250);
   WiFi.connect();                          // Conecta à Rede WiFi
   
   pinMode(E_Sirene, INPUT);                // Indica que é entrada
   pinMode(Bot, INPUT);                     // Indica que é entrada
   pinMode(S_Alarme, OUTPUT);               // Indica que é saída
   pinMode(S_Cerca, OUTPUT);                // Indica que é saída
   pinMode(St_Alarme, OUTPUT);              // Indica que é saída
   pinMode(St_Cerca, OUTPUT);               // Indica que é saída
   pinMode(LStatus, OUTPUT);                // Indica que é saída
   pinMode(LPortao, OUTPUT);                // Indica que é saída
   pinMode(LPortao, OUTPUT);                // Indica que é saída
   pinMode(LLuz, OUTPUT);                   // Indica que é saída
   digitalWrite(S_Alarme, LOW);             // Desliga Saída ao Iniciar
   digitalWrite(S_Cerca, LOW);              // Desliga Saída ao Iniciar
   digitalWrite(St_Alarme, LOW);            // Desliga Saída ao Iniciar
   digitalWrite(St_Cerca, LOW);             // Desliga Saída ao Iniciar
   digitalWrite(LPortao, LOW);              // Desliga Saída ao Iniciar
   digitalWrite(LLuz, LOW);                 // Desliga Saída ao Iniciar
 
   digitalWrite(LStatus, HIGH);             // Liga Saída
    
   waitUntil(WiFi.ready);                   // Agaurda conectar a WiFi
   
   Blynk.begin(auth);                       // Faz Autenticação no Servidor Blynk
      
   digitalWrite(LStatus, LOW);              // Desliga Saída
   
   waitUntil(Blynk.connect);                // Agaurda Conectar no Servidor Blink

   timer1.start();                          // Inicia Rotina Temporizador
   timer2.start();                          // Inicia Rotina Temporizador
   timer3.start();                          // Inicia Rotina Temporizador

   delay(500);                              // Tempo
}

// Rotinas do Blynk
BLYNK_CONNECTED() 
{
    bridge1.setAuthToken("yyyyyyyyyyyyyyyyyyyyyyyyyyyy");
    bridge2.setAuthToken("zzzzzzzzzzzzzzzzzzzzzzzzzzzz");
    if (PrimeiraBlynk) 
    {
        Blynk.syncAll();
        digitalWrite(LStatus, HIGH);              // Desliga Saída
        PrimeiraBlynk = false;
    }
}

//Verifica  Botão Virtual do Alarme
BLYNK_WRITE(V1)
{  
    if(param.asInt() != 0)
    {
        if( LeStatus == LOW )
        {
            ContadorE_Sirene = 0;
            ControleAlarme = 1;
            SinalStatus = LOW;
            UltimoTempoEnvio = millis();
            LeStatus = HIGH;    
        }
    }
}

// Verifica Botão Virtual da Cerca
BLYNK_WRITE(V2)
{  
//Enviado pelo Cliente Liga Cerca
    if(param.asInt() != 0)
    {
        if( LeStatus == LOW )
        {
            ContadorE_Sirene = 0;
            ControleCerca = 1;
            SinalStatus = LOW;
            UltimoTempoEnvio = millis();
            LeStatus = HIGH;    
        }
    }  
}

// Verifica Cera
BLYNK_WRITE(V4)
{ 
  if(param.asInt() > 0)
  {
      BtTrava = true;
      bridge1.digitalWrite(14, HIGH);
      digitalWrite(LPortao, HIGH);

  }
  else
  {
      bridge1.digitalWrite(14, LOW);
      digitalWrite(LPortao, LOW);
      BtTrava = false;
  }
}

BLYNK_READ(V9)
{  
  Blynk.virtualWrite(V9, temp);
  bridge1.virtualWrite(V8, 1);
}

BLYNK_READ(V10)
{  
  Blynk.virtualWrite(V10, humd);
  bridge1.virtualWrite(V9, 1);
}

//Luz Externa
BLYNK_WRITE(V11)
{ 
  if(param.asInt() > 0)
  {
      bridge1.digitalWrite(12, HIGH);
      digitalWrite(LLuz, HIGH);

  }
  else
  {
      bridge1.digitalWrite(12, LOW);
      digitalWrite(LLuz, LOW);
  }
  
}

BLYNK_WRITE(V12)
{ 
    if(param.asDouble() != 0)
    {    
        temp = param.asDouble();
    }
}

BLYNK_WRITE(V13)
{ 
    if(param.asDouble() != 0)
    {
        humd = param.asDouble();
    }
}    

BLYNK_READ(V15)
{  
  Blynk.virtualWrite(V15, tempFundo);
  bridge2.virtualWrite(V1, 1);
}

BLYNK_READ(V16)
{  
  Blynk.virtualWrite(V16, humdSolo);
  bridge2.virtualWrite(V2, 1);
}

BLYNK_WRITE(V17)
{  
    if(param.asInt() != 0)
    {
        Particle.connect();
    }  
}

BLYNK_WRITE(V18)
{  
    if(param.asInt() != 0)
    {
        Particle.disconnect();
    }  
}

BLYNK_WRITE(V19)
{    
    if(param.asDouble() != 0)
    {
        tempFundo = param.asDouble();
    }
}

BLYNK_WRITE(V20)
{ 
    if(param.asDouble() != 0)
    {
        humdSolo = param.asDouble();
    }
}  


// Temporizadores de algumas funções
void Atualiza()
{
    if(alarmeStatus != ALARME_DISPARADO)
    {
        if(alarmeStatus == ALARME_ATIVADO) 
        {
            lcd.print(0, 0, "Alarme    Ligado");
            LedAlarme.on();
        }
        if(alarmeStatus != ALARME_ATIVADO) 
        {
            lcd.print(0, 0, "Alarme Desligado");
            LedAlarme.off();
        }
        if(cercaStatus == CERCA_LIGADA) 
        {
            lcd.print(0, 1, "Cerca     Ligada");
            LedCerca.on();
        }
        if(cercaStatus != CERCA_LIGADA) 
        {
            lcd.print(0, 1, "Cerca  Desligada");
            LedCerca.off();
        }
    }
    else
    {
        lcd.print(0, 0, "ALARME DISPARADO"); 
        lcd.print(0, 1, "Verificar Camera"); 
        LedDisparo1.on();
        LedDisparo2.on();
    }
}

void Alerta()
{
    if(alarmeStatus == ALARME_DISPARADO)
    {
        Blynk.notify("Alarme Disparado!");
    }
}

void AlertaLed()
{
    if(alarmeStatus == ALARME_DISPARADO)
    {
        PLed = !PLed;
        digitalWrite(LStatus, PLed);
    }
    if(inicio == true)
    {
        ContIni ++;
        PLed = !PLed;
        digitalWrite(LStatus, PLed);
    }
}

// Loop Principal do Programa
void loop()
{
    Blynk.run();
    Geral();
    wd.checkin();
    if(!WiFi.ready())
    {
        digitalWrite(LStatus, LOW);             // Desliga Saída
        delay(250);
        WiFi.connect();
    }
    if(WiFi.ready() && !Blynk.connected())
    {
        PrimeiraBlynk = true;
        digitalWrite(LStatus, LOW);             // Desliga Saída
        delay(250);
        Blynk.connect();
    }
 
  if(inicio == true)
  {
    if(ContIni <= 50)
    {
        if(ContIni <= 1)lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 0, "Home Automotion "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        lcd.print(0, 1, "Particle Photon "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
    }
    if(ContIni > 50 && ContIni <= 100)
    {
        if(ContIni <= 51)lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 0, "   By Haltech   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        lcd.print(0, 1, "   Blynk-V2.0   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
    }
    if(ContIni > 100)
    {
        lcd.clear(); //Use it to clear the LCD Widget
        ContIni = 0;
        inicio = false;
        Atualiza();
    }
  }
  else
  {
    if(BtTrava == false)
     {
        if(digitalRead(Bot) == LOW)
        {
            if(digitalRead(LPortao) == LOW)
            {
                bridge1.virtualWrite(V10, 1);
                digitalWrite(LPortao, HIGH);
            }
        }
        else
        {
            if(digitalRead(LPortao) == HIGH)
            {
                //bridge1.virtualWrite(V10, 0);
                digitalWrite(LPortao, LOW);
            }
        }
     }
  }
}

//Rotina Geral do Equipamento
void Geral()
{
  if(alarmeStatus != ALARME_DISPARADO && inicio == false)  digitalWrite(LStatus, HIGH);
    // Tempo de Retorno da Sirene antes de limpar o status
  if (LeStatus == HIGH) 
  {
   if ((millis() - UltimoTempoEnvio) > DebounceEnvio) 
   {
      ContadorE_Sirene = 0;
      lcd.clear(); //Use it to clear the LCD Widget
      lcd.print(0, 0, "Sirene nao resp."); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
      lcd.print(0, 1, "Comando. Verific"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
      Serial.println("Sirene nao respondeu ao comando.");
      Serial.println("Limpando Contador e Status");
      SinalStatus = LOW;
      ControleAlarme = 0;
      ControleCerca = 0;
      UltimoTempoEnvio = 0;
      BloqSaida = 0;
      LeStatus = LOW;
   }
  }
  
  // Leitura da Porta de Entrada da Sirene  
  //Verifica se veio o Pulso do Navegador para pulsar o controle do alarme
  if (digitalRead(E_Sirene)!= UltimoStatusE_Sirene) 
  {
    UltimoTempoE_Sirene = millis();
  }
  if ((millis() - UltimoTempoE_Sirene) > DebounceE_Sirene) 
  {
    if (digitalRead(E_Sirene) != StatusE_Sirene) 
    {
      StatusE_Sirene = digitalRead(E_Sirene);
      if(StatusE_Sirene == LOW)
      {
        ContadorE_Sirene++;
        Serial.print("Pulso da Sirene:");
        lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 0, "Pulso da Sirene:"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        lcd.print(0, 1, ContadorE_Sirene); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        Serial.println(ContadorE_Sirene, DEC);
        SinalStatus = HIGH;
        TempoSinalAtual = millis();
      }
    } 
  }
  
// Trata Sinal de Entrada, para saber o Status do Alarme 
 if(SinalStatus == HIGH)
 {
   if(((millis() - TempoSinalAtual)>= 1000) && ((millis() - TempoSinalAtual)<= 1500)&& (StatusE_Sirene == HIGH))
   {
     if(ContadorE_Sirene == 1)
     {
       if(ControleAlarme >= 1)
       {
        alarmeStatus = ALARME_ATIVADO;  
        lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 0, "Alarme    Ligado"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        if(cercaStatus == CERCA_LIGADA) lcd.print(0, 1, "Cerca     Ligada");
        if(cercaStatus != CERCA_LIGADA) lcd.print(0, 1, "Cerca  Desligada");
        Serial.println("Alarme Ativado!");
        LedAlarme.on();
        ControleAlarme = 0;
        BloqSaida = 0;
        LeStatus = LOW;
       }
       if(ControleCerca >= 1)
       {
        cercaStatus = CERCA_LIGADA;  
        lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 1, "Cerca     Ligada"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        if(alarmeStatus == ALARME_ATIVADO) lcd.print(0, 0, "Alarme    Ligado");
        if(alarmeStatus != ALARME_ATIVADO) lcd.print(0, 0, "Alarme Desligado");
        Serial.println("Cerca Ligada ");
        LedCerca.on();
        ControleCerca = 0;
        BloqSaida = 0; 
        LeStatus = LOW;   
       }
     }
     if(ContadorE_Sirene == 2)
     {
       if(ControleAlarme >= 1)
       {
        alarmeStatus = ALARME_DESATIVADO;  
        Serial.println("Alarme Desativado!");
        lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 0, "Alarme Desligado"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        if(cercaStatus == CERCA_LIGADA) lcd.print(0, 1, "Cerca     Ligada");
        if(cercaStatus != CERCA_LIGADA) lcd.print(0, 1, "Cerca  Desligada");
        LedDisparo1.off();
        LedDisparo2.off();
        LedAlarme.off();
        ControleAlarme = 0;
        BloqSaida = 0;
        LeStatus = LOW;
       }
   
       if(ControleCerca >= 1)
       {
        cercaStatus = CERCA_DESLIGADA;  
        Serial.println("Cerca Desligada!");
        lcd.clear(); //Use it to clear the LCD Widget
        lcd.print(0, 1, "Cerca  Desligada"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
        if(alarmeStatus == ALARME_ATIVADO) lcd.print(0, 0, "Alarme    Ligado");
        if(alarmeStatus != ALARME_ATIVADO) lcd.print(0, 0, "Alarme Desligado");
        LedCerca.off(); //LED Virtual no APP
        ControleCerca = 0;
        BloqSaida = 0;
        LeStatus = LOW;
       }
     }
     ContadorE_Sirene = 0;
     SinalStatus = LOW;
   }
   if(((millis() - TempoSinalAtual)> 1500) && ((millis() - TempoSinalAtual)< 5000)&& (StatusE_Sirene == HIGH))
   {
     ContadorE_Sirene = 0;
     BloqSaida = 0;
     LeStatus = LOW;
     SinalStatus = LOW;
   }

   if(((millis() - TempoSinalAtual)>= 5000) && (StatusE_Sirene == LOW))
   {
       Serial.println("Disparado o Alarme");
       lcd.clear(); //Use it to clear the LCD Widget
       lcd.print(0, 0, "ALARME DISPARADO"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
       lcd.print(0, 1, "Verificar Camera"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
       Blynk.notify("Alarme Disparado!");
       LedAlarme.off();
       LedCerca.off();
       LedDisparo1.on();
       LedDisparo2.on();
       alarmeStatus = ALARME_DISPARADO;
       cercaStatus = CERCA_DESLIGADA;
       ContadorE_Sirene = 0;
       SinalStatus = LOW;
       BloqSaida = 0;
       LeStatus = LOW;
    }
  }
  // Verifica e Trata Controles do Alarme:
  if(ControleAlarme == 1 && BloqSaida == 0)
  { 
    MillisAtual = millis(); 
    if(alarmeStatus != ALARME_ATIVADO && alarmeStatus != ALARME_DISPARADO)
    {
      if(MillisAtual - PrevioMillis > IntervaloNormal) 
      {
        PrevioMillis = MillisAtual;   
        if (SaidaStatus1 == LOW)
        {
          Serial.println("Comando Enviado para Ativar Alarme.");          
          lcd.clear(); //Use it to clear the LCD Widget
          lcd.print(0, 0, "COMANDO PARA:   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")          
          lcd.print(0, 1, "ATIVAR ALARME   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          digitalWrite(S_Alarme, HIGH);
          SaidaStatus1 = HIGH;
        }
        else
        {
          digitalWrite(S_Alarme, LOW);
          SaidaStatus1 = LOW;
          BloqSaida = 1;
        }
      }
    }
    if(alarmeStatus != ALARME_DESATIVADO && alarmeStatus != ALARME_DISPARADO)
    {
      if(MillisAtual - PrevioMillis > IntervaloNormal) 
      {
        PrevioMillis = MillisAtual;   
        if (SaidaStatus2 == LOW)
        {
          Serial.println("Comando Enviado para Desativar Alarme.");
          lcd.clear(); //Use it to clear the LCD Widget
          lcd.print(0, 0, "COMANDO PARA:   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          lcd.print(0, 1, "DESATIVAR ALARME"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          digitalWrite(S_Alarme, HIGH);
          SaidaStatus2 = HIGH;
        }
        else
        {
          digitalWrite(S_Alarme, LOW);
          SaidaStatus2 = LOW;
          BloqSaida = 1;
        }
      }
    }
    if(alarmeStatus != ALARME_DESATIVADO && alarmeStatus == ALARME_DISPARADO)
    {
      if(MillisAtual - PrevioMillis > IntervaloDisparado) 
      {
        PrevioMillis = MillisAtual;   
        if (SaidaStatus2 == LOW)
        {
          Serial.println("Comando Enviado para Desativar Alarme.");
          lcd.clear(); //Use it to clear the LCD Widget
          lcd.print(0, 0, "COMANDO PARA:   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")          
          lcd.print(0, 1, "DESATIVAR GERAL "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          digitalWrite(S_Alarme, HIGH);
          SaidaStatus2 = HIGH;
        }
        else
        {
          digitalWrite(S_Alarme, LOW);
          SaidaStatus2 = LOW;
          BloqSaida = 1; 
        }
      }
    }
  }
  if(ControleCerca == 1 && BloqSaida == 0)
  { 
    MillisAtual = millis(); 
    if(cercaStatus != CERCA_LIGADA)
    {
      if(MillisAtual - PrevioMillis > IntervaloNormal) 
      {
        PrevioMillis = MillisAtual;   
        if (SaidaStatus3 == LOW)
        {
          lcd.clear(); //Use it to clear the LCD Widget
          lcd.print(0, 0, "COMANDO PARA:   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")          
          lcd.print(0, 1, "ATIVAR CERCA ELE"); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          Serial.println("Comando Enviado para Ativar Cerca."); 
          digitalWrite(S_Cerca, HIGH);
          SaidaStatus3 = HIGH;
        }
        else
        {
          digitalWrite(S_Cerca, LOW);
          SaidaStatus3 = LOW;
          BloqSaida = 1; 
        }
      }
    }
    if(cercaStatus != CERCA_DESLIGADA)
    {
      if(MillisAtual - PrevioMillis > IntervaloNormal) 
      {
        PrevioMillis = MillisAtual;   
        if (SaidaStatus4 == LOW)
        {
          lcd.clear(); //Use it to clear the LCD Widget
          lcd.print(0, 0, "COMANDO PARA:   "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")          
          lcd.print(0, 1, "DESATIVAR CERCA "); // use: (position X: 0-15, position Y: 0-1, "Message you want to print")
          Serial.println("Comando Enviado para Desativar Cerca.");
          digitalWrite(S_Cerca, HIGH);
          SaidaStatus4 = HIGH;
        }
        else
        {
          digitalWrite(S_Cerca, LOW);
          SaidaStatus4 = LOW;
          BloqSaida = 1;  
        }
      }
    }
  }

  //Verifica Status da Entrada da Sirene  
  UltimoStatusE_Sirene = digitalRead(E_Sirene);  
  //Indica o Estado nos Leds
  if (alarmeStatus == ALARME_ATIVADO)
  {
    digitalWrite(St_Alarme, HIGH);
  }
  else
  {
    digitalWrite(St_Alarme, LOW);
  }
  if (cercaStatus == CERCA_LIGADA)
  {
    digitalWrite(St_Cerca, HIGH);
  }
  else
  {
    digitalWrite(St_Cerca, LOW);
  }
}

Second Photon: (Very Simple Code)

#define BLYNK_PRINT Serial
#include "blynk/BlynkSimpleParticle.h"
#include "blynk/blynk.h"
#include "PietteTech_DHT/PietteTech_DHT.h"
#include "SparkFunMAX17043/SparkFunMAX17043.h"


SYSTEM_MODE(SEMI_AUTOMATIC);
SYSTEM_THREAD(ENABLED);
STARTUP(WiFi.selectAntenna(ANT_AUTO));

// system defines
#define DHTTYPE  DHT22              // Sensor type DHT11/21/22/AM2301/AM2302
#define DHTPIN   2         	    // Digital pin for communications

char auth[] = "aaaaaaaaaaaaaaaaa"; 

int UmidadePin = A0;
long int UmidadeValor = 0; 
long int h1 = 0;
float h2 = 0.00;

int LStatus =  D7;                  // Saída Led Status do Equipamento
int result = 0;

bool PrimeiraBlynk = true;

//declaration
void dht_wrapper(); // must be declared before the lib initialization

// Lib instantiate
PietteTech_DHT DHT(DHTPIN, DHTTYPE, dht_wrapper);
ApplicationWatchdog wd(30000, System.reset);


//Canais Virtuais do Blynk
  WidgetBridge bridge1(V0);                 // Canal Virtual da Ponte
  WidgetLED led1(V10); //LED Virtual no APP

void setup()
{
   	// Set up the MAX17043 LiPo fuel gauge:
	lipo.begin(); // Initialize the MAX17043 LiPo fuel gauge

	// Quick start restarts the MAX17043 in hopes of getting a more accurate
	// guess for the SOC.
	lipo.quickStart();

	// We can set an interrupt to alert when the battery SoC gets too low.
	// We can alert at anywhere between 1% - 32%:
    lipo.setThreshold(20); // Set alert threshold to 20%.
	
    Serial.begin(115200);                      // Inicia a Serial
    delay(500);
    WiFi.on();                               // Liga a Módulo WiFi com as credenciais pré definidas
    delay(250);
    WiFi.connect();                          // Conecta à Rede WiFi
    
    pinMode(LStatus, OUTPUT);                // Indica que é saída
    //pinMode(C, INPUT);                // Indica que é saída

    digitalWrite(LStatus, HIGH);             // Liga Saída

    waitUntil(WiFi.ready);                   // Agaurda conectar a WiFi
   
    digitalWrite(LStatus, LOW);             // Liga Saída 
    
    Blynk.begin(auth);                       // Faz Autenticação no Servidor Blynk
      
    digitalWrite(LStatus, LOW);              // Desliga Saída
   
    waitUntil(Blynk.connect);                // Agaurda Conectar no Servidor Blink
    
}


// This wrapper is in charge of calling
// must be defined like this for the lib work
void dht_wrapper() 
{
    DHT.isrCallback();
}

// Rotinas do Blynk
BLYNK_CONNECTED() 
{
    bridge1.setAuthToken("bbbbbbbbbbbbbbbbbb");
    if (PrimeiraBlynk) 
    {
        Blynk.syncAll();
        digitalWrite(LStatus, HIGH);             // Liga Saída
        PrimeiraBlynk = false;
    }
}

BLYNK_WRITE(V1)
{  
  if(param.asInt() > 0)
  {
    result = DHT.acquireAndWait(); 
    bridge1.virtualWrite(V19, DHT.getCelsius());
    Blynk.virtualWrite(V1, 0);
  }
}

BLYNK_WRITE(V2)
{  
  if(param.asInt() > 0)
  {
    h1 = (map(analogRead(UmidadePin), 4095, 1900, 0, 10000));
    h2 = h1;
    h2 = h2 / 100;
    bridge1.virtualWrite(V20, h2);
    Blynk.virtualWrite(V2, 0);
  }
}

BLYNK_READ(V3) 
{
  result = DHT.acquireAndWait();
  Blynk.virtualWrite(V3, DHT.getCelsius());
}

BLYNK_READ(V4) 
{
  h1 = (map(analogRead(UmidadePin), 4095, 1900, 0, 10000));
  h2 = h1;
  h2 = h2 / 100;
  Blynk.virtualWrite(V4, h2);
}

BLYNK_READ(V5) 
{
  Blynk.virtualWrite(V5, analogRead(UmidadePin));
}

BLYNK_WRITE(V6)
{  
    if(param.asInt() != 0)
    {
        Particle.connect();
    }  
}

BLYNK_WRITE(V7)
{  
    if(param.asInt() != 0)
    {
        Particle.disconnect();
        digitalWrite(LStatus, LOW);             // Desliga Saída
        //System.reset();
        Blynk.disconnect();
        WiFi.disconnect();
    }  
}


BLYNK_READ(V8) 
{
    Blynk.virtualWrite(V8, lipo.getVoltage());
    if (lipo.getAlert() == false)
    {
        led1.off();
    }
    else
    {
        led1.on();
    }
}

BLYNK_READ(V9) 
{
    Blynk.virtualWrite(V9, lipo.getSOC());
}

void loop()
{
    Blynk.run();
    wd.checkin();
    if(!WiFi.ready())
    {
        digitalWrite(LStatus, LOW);             // Desliga Saída
        delay(250);
        WiFi.connect();
    }
    if(WiFi.ready() && !Blynk.connected())
    {
        PrimeiraBlynk = true;
        digitalWrite(LStatus, LOW);             // Desliga Saída
        delay(250);
        Blynk.connect();
    }
}

Thank you for the help everyone. I wait a help you.

Wow, lot’s of code :wink:
I suggest you starting with a simple example sketch, and then add you functionality step by step to see where it breaks.

Good afternoon vhymanskyy.
The second code is simple and yet it does not work properly. Even with active WDT it locks and does not work properly. Honestly I’m lost, I found that these modules would be much more stable than the ESP8266 and to my surprise was not exactly what happened.
Still awaiting any suggestions.

Thank you.

Try removing alot of the code till it works then slowly add lines back in till it breaks again and report back with those findings.