Stazione meteo si blocca dopo qualche giorno

Dando un'occhiata al codice, diciamo che come @cotestatnt ha segnalato, questo tipo di if() non hanno proprio senso:

  //reset di tempo_start_lettura_sensori in caso di overflow di millis che si azzera
  if (millis()-tempo_start_lettura_sensori<0) {
    tempo_start_lettura_sensori = millis();
  }

Intanto perché la differenza tra due unsigned non sarà mai minore di zero, come ha già detto, al massimo puoi fare:

  if (millis() < tempo_start_lettura_sensori) {
    tempo_start_lettura_sensori = millis();
  }

Ma in caso di overflow non è neanche necessario fare questo perché facendo "(millis()-tempo_start_lettura_sensori)" si ottiene comunque il tempo totale in millisecondi, anche se millis() è minore di tempo_start_lettura_sensori.

Poi non entro in dettaglio sul discorso connessione anche perché non ho mai avuto questo tipo di problemi (tantomeno con ESP32), ma a me sembra che quando manca la connessione "if (WiFi.status() != WL_CONNECTED)" non serva fare ogni volta "WiFi.begin(SSID, PASSWORD);". Ma per questa cosa resto in sola lettura, perché sono curioso.. :wink:

Ho trovato un errore che stava sul codice sopra indicato: la scheda esegue la lettura dei sensori ogni "intervallo_lettura_sensori", ma l'invio dei dati avviene ogni 10 letture.
Quindi indicando il codice come sopra, riavviava la scheda ogni 2 letture ma l'invio dei dati avveniva alla decima.
Quindi si continuava a riavviare senza dare il tempo alla scheda di effettuare mai nessun invio.

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