Hello guys, I have a problem when I try to read a YF-s201 sensor on a ESP32 DevBoard, the board cannot read any sensor data. I don’t know if the problem is in the code or if there is a problem in the board, please help, thanks.
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <TimeLib.h>
#include <WidgetRTC.h>
#include "math.h"
BlynkTimer timer;
WidgetRTC rtc;
char auth[] = "xxxxxx";
char ssid[] = "xxxxxx";
char pass[] = "xxxxxx";
BLYNK_CONNECTED() {
rtc.begin();
}
volatile int NumPulsos;
const int sensorPin= 2;
float factor_conversion=7.11;
float volumen=0;
long dt=0;
long t0=0;
byte sensorInterrupt = 0;
void ContarPulsos ()
{
NumPulsos++;
}
int ObtenerFrecuecia()
{
int frecuencia;
NumPulsos = 0;
interrupts();
delay(1000);
noInterrupts();
frecuencia=NumPulsos;
return frecuencia;
}
void clockDisplay()
{
String currentTime = String(hour()) + ":" + minute() + ":" + second();
String currentDate = String(day()) + " " + month() + " " + year();
Serial.print("Current time: ");
Serial.print(currentTime);
Serial.print(" ");
Serial.print(currentDate);
Serial.println();
}
void sendSensor()
{
float frecuencia=ObtenerFrecuecia();
float caudal_L_m=frecuencia/factor_conversion;
dt=millis()-t0;
t0=millis();
volumen=volumen+(caudal_L_m/60)*(dt/1000);
Serial.print ("Caudal: ");
Serial.print (caudal_L_m,3);
Serial.print ("L/min\tVolumen: ");
Serial.print (volumen,3);
Serial.println (" L");
Blynk.virtualWrite(V0, caudal_L_m);
Blynk.virtualWrite(V1, volumen);
}
void setup()
{
Serial.begin(9600);
pinMode(sensorPin, INPUT);
attachInterrupt(0,ContarPulsos,RISING);
t0=millis();
Blynk.begin(auth, ssid, pass);
setSyncInterval(10 * 60);
timer.setInterval(1000L, sendSensor);
timer.setInterval(10000L, clockDisplay);
}
void loop()
{
Blynk.run();
timer.run();
}