@tjohansen if you are worried about “time collisions” perhaps look at setTimeout() whereby function 2 will be called X ms after function 1 finishes, then function 3, function 4 etc.
You set one setInterval() and at the end of the called function have a setTimeout() to the next function and at the end of that function another setTimeout() to the next function etc.
So setTimeout() runs each time setInterval() kicks in and it doesn’t just run once.
Senario 1
does it do sendSensor1 and then wait 3020 milisecs and the do sendSonsor2?
Senario 2
or does it wait 3003 milisecs and then do sendSensor1
and then after 6 milisecs it does sendSensor3
and then after 3 milisecs it does sendSensor4
and then after 4 milisecs it does sendUptime
and then after 4 milisecs it does sendSensor2
etc…
void sendSensor1()
{
sensors1.requestTemperatures();
Blynk.virtualWrite(1, sensors1.getTempCByIndex(0) + 6.5); //adjusted with 6.5 celsius because measuring outside of tube
int callFunction2 = timer.setTimeout(1000, sendSensor2) // TWO not ONE
}
void sendSensor2()
{
// your sensor2 code here
int callFunction3 = timer.setTimeout(1000, sendSensor3) // THREE
}