问题描述
水流传感器与esp8266接口。我只想知道流过的水量。但是当我将传感器与esp8266连接时,它才开始读取。它不会打扰水流。我不知道为什么会这样...
这是我的代码
'''
#define SENSOR D2
long currentMillis = 0;
long prevIoUsMillis = 0;
int interval = 1000;
boolean ledState = LOW;
float calibrationFactor =4.5;
volatile byte pulseCount;
byte pulse1Sec = 0;
float flowRate;
unsigned int flowMilliLitres;
unsigned long totalMilliLitres;
void IRAM_ATTR pulseCounter()
{
pulseCount++;
}
void setup()
{
Serial.begin(115200);
pinMode(LED_BUILTIN,OUTPUT);
pinMode(SENSOR,INPUT_PULLUP);
pulseCount = 0;
flowRate = 0.0;
flowMilliLitres = 0;
totalMilliLitres = 0;
prevIoUsMillis = 0;
attachInterrupt(digitalPinToInterrupt(SENSOR),pulseCounter,FALLING);
}
void loop()
{
currentMillis = millis();
if (currentMillis - prevIoUsMillis > interval) {
pulse1Sec = pulseCount;
pulseCount = 0;
Serial.println(pulse1Sec);
Serial.println(prevIoUsMillis);
Serial.println(millis());
flowRate = ((1000.0 / (millis() - prevIoUsMillis)) * pulse1Sec)
calibrationFactor;
prevIoUsMillis = millis();
flowMilliLitres = (flowRate / 60) * 1000;
totalMilliLitres += flowMilliLitres;
Serial.print("Flow rate: ");
Serial.print(int(flowRate));
Serial.print("L/min");
Serial.print("\t");
Serial.print("Output Liquid Quantity: ");
Serial.print(totalMilliLitres);
Serial.print("mL / ");
Serial.print(totalMilliLitres / 1000);
Serial.println("L");
}
}
'''
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)