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