I have a calibration sequence in the setup section of my code. If I have the calibration loop run for longer than 10 or 20 seconds, it disconnects from the cloud temporarily, then reconnects. It’s not really a problem, but not exactly desireable. I’m wondering what exactly causes this and what is the cleanest way to correct it is?
int calibrationTime = 60000;
void setup() {
pinMode(proximityPin1, INPUT);
pinMode(proximityPin2, INPUT);
pinMode(ledPin, OUTPUT);
Threashold1 = calibrate(proximityPin1);
delay(1000);
Threashold2 = calibrate(proximityPin2);
}
int calibrate(int pinToCalibrate) {
calibrationValue = analogRead(pinToCalibrate);
Particle.publish("Starting Calibration", String(calibrationValue));
timerStart = millis();
while (millis() < (timerStart + calibrationTime)) {
if ((millis() % 1000) > 500) {
digitalWrite(ledPin, HIGH);
}
else digitalWrite(ledPin, LOW);
calibrationCheck = analogRead(pinToCalibrate);
if (calibrationCheck > calibrationValue) {
calibrationValue = calibrationCheck;
}
}
digitalWrite(ledPin, LOW);
Particle.publish("Calibration Complete", String(calibrationValue));
return (calibrationValue);
}