Esp32 disconnecting from arduino cloud

Hello, I was using the esp32 for monitoring, for a few days it worked correctly, but recently the device is only offline, I thought it was a problem with the board, but when using a new one the problem persists, I no longer know what to do, I will leave a picture of what it always looks like when you try to call and the code is done

#include <ArduinoIoTCloud.h>
#include <Arduino_ConnectionHandler.h>
#include <Wire.h>  //Biblioteca para Comunicação I2C (sensores)
#include <ACS712.h>


const char DEVICE_LOGIN_NAME[]  = "9b97343f-6f53-47cc-a80e-c311c0a09b7c";

const char SSID[]               = "XXXX";    // Network SSID (name)
const char PASS[]               = "XXXX";    // Network password (use for WPA, or use as key for WEP)
const char DEVICE_KEY[]  = "JFWJHIDBDVUSOLNPGVC2";    // Secret device password

void onNivelaguaChange();
void onCorrenteRmsChange();

CloudPercentage nivelagua;
CloudElectricCurrent correnteRms; //Armazenar a corrente medida pelo sensor

const int sensorACS712 = 34; // Pino ao qual o sensor ACS712 está conectado
int amostragem =1000;
int sensorValue_aux = 0;
float valorSensorACS712 = 0;
float valorCorrente = 0;
float voltsporUnidade = 0.004887586;// 5%1023
//const int sensorOffset = 2500; // Valor do offset do sensor ACS712, ajuste conforme necessário
//- Para 30A, sensibilidade = 0.066; 
//- Para 20A, sensibilidade = 0.100; 
//- Para 5A,  sensibilidade = 0.185;
float sensibilidade = 0.100;; // Sensibilidade do sensor ACS712 de 20A



void initProperties(){
  ArduinoCloud.setBoardId(DEVICE_LOGIN_NAME);
  ArduinoCloud.setSecretDeviceKey(DEVICE_KEY);
  ArduinoCloud.addProperty(nivelagua, READWRITE, ON_CHANGE, onNivelaguaChange);
  ArduinoCloud.addProperty(correnteRms, READWRITE, ON_CHANGE, onCorrenteRmsChange);
}

WiFiConnectionHandler ArduinoIoTPreferredConnection(SSID, PASS);

#define sensor1Value 12
#define sensor2Value 13
#define sensor3Value 14

void setup() {
  //VALOR REFERENCIAL
 // analogReference(DEFAULT); 
  // Initialize serial and wait for port to open:
  Serial.begin(9600);

pinMode(sensor1Value, INPUT);
pinMode(sensor2Value, INPUT);
pinMode(sensor3Value, INPUT);
pinMode(sensorACS712, INPUT);

  // Initialize Wi-Fi connection
  WiFi.begin(SSID, PASS);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
  }
  // This delay gives the chance to wait for a Serial Monitor without blocking if none is found
  delay(1500);
  
 
  // Defined in thingProperties.h
  initProperties();

  // Connect to Arduino IoT Cloud
  ArduinoCloud.begin(ArduinoIoTPreferredConnection);
  

  setDebugMessageLevel(2);
  ArduinoCloud.printDebugInfo();
}

void loop() {
  ArduinoCloud.update();
  // Your code here 
  onNivelaguaChange(); //Verifica o nível da água através dos sensores instalados 
  delay(2000);
  //onCorrenteRmsChange();//Verifica a corrente eletrica do sensor
  //delay(5000); // Send data every 5 seconds
  
}

void onNivelaguaChange()  { //Verificando o nivel de água
  if ((digitalRead(sensor1Value) == HIGH) && (digitalRead(sensor2Value) == LOW) && (digitalRead(sensor3Value) == LOW)) {
    nivelagua = 33;
  } else if ((digitalRead(sensor1Value) == HIGH) && (digitalRead(sensor2Value) == HIGH) && (digitalRead(sensor3Value) == LOW)) {
    nivelagua = 66;
  } else if ((digitalRead(sensor1Value) == HIGH) && (digitalRead(sensor2Value) == HIGH) && (digitalRead(sensor3Value) == HIGH)) {
    nivelagua = 100;
  } else {
    nivelagua = 0;
  }
  Serial.println("Valor medido do nivel: ");
  Serial.print(nivelagua);
  delay(1000);
}

void onCorrenteRmsChange() {
valorSensorACS712 =0;
  
for(int i=0; i < amostragem ; i++){
      // le o sensor na pino analogico A0 e ajusta o valor lido ja que a saída do sensor é 
      //(1023)vcc/2 para corrente =0
      sensorValue_aux = (analogRead(sensorACS712) -511.5); 
      
      // somam os quadrados das leituras (É valido para DC e AC).
      valorSensorACS712 += pow(sensorValue_aux,2); 
      
      //-----------------CORRENTE DC---------------------------------------
      //Somente para medir corrente DC
      ///valorSensorACS712 += sensorValue_aux ;
     
      //UM PEQUENO INTERVALO ENTRE AS LEITURAS 
      delay(2000);
  }
// CALCULO QUE MEDE A CORRENTE MÉDIA
 // finaliza o calculo da méida quadratica e ajusta o valor lido para volts
  valorSensorACS712 = (sqrt(valorSensorACS712/ amostragem)) * voltsporUnidade; 
  
  //-----------------CORRENTE DC---------------------------------------
  //Somente para medir corrente DC
  //valorSensorACS712 = (valorSensorACS712/ amostragem) * voltsporUnidade; 
  
  // calcula a corrente considerando a sensibilidade do sernsor (100 mV por amper)
  valorCorrente = (valorSensorACS712/sensibilidade);

  correnteRms = valorCorrente;

  Serial.println("Valor medido da corrente: ");
  Serial.print(correnteRms);

  delay(2000);
}

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.