我是 Arduino 的绝对初学者,但我目前正在从事物联网项目。目标是查看温度和湿度是否在几分钟内发生剧烈变化。
我正在使用 ESP 8266、DHT11 和 BLYNK 应用程序。
我有以下代码,在其中我延迟了两次温度读数之间的时间,以计算它们之间的差异。我知道 delay() 不是一个好的工作方式,所以我尝试用 millis() 计时器重写它。但它不工作!tempA 与 tempB 保持一致。
有人能告诉我,它应该是什么样子吗?
unsigned long previousMillis = 0;
const long interval = 5000;
void tempChange()
{
float tempA;
float tempB;
float tempDiff;
unsigned long currentMillis = millis();
tempA = dht.readTemperature();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
tempB = dht.readTemperature();
}
Serial.print(tempA);
Serial.print(" ");
Serial.println(tempB);
}
void setup()
{
dht.begin();
timer.setInterval(5000L, tempChange);
}
void loop()
{
Blynk.run();
timer.run();
}
如果您知道任何更好的方法,记录随时间的变化,我愿意接受。这只是我想出的最好(或最坏)的想法。
谢谢!