Hello everyone. I´m new to Blynk and I´m trying to create a program that will work as an automated irrigation system using Blynk´s Automations feature. While trying to create the timer in order to avoid filling the void loop with functions as I read in Blynk documentation I used the example code that they showed there but I´m getting and error: Compilation error: ‘sensorDataSend’ was not declared in this scope. I´m confused with where I should declare it since the example doesn´t show anything like that
#define BLYNK_TEMPLATE_ID ""
#define BLYNK_TEMPLATE_NAME ""
#include <BlynkSimpleEsp32.h>
//Se incluye librería para el WiFi
#include <WiFi.h>
//Se define el código de Blynk
char auth[] ="";
//Se definen nombre de red y contraseña a la que se va a conectar el controlador
const char* ssid = "";
const char* pass = "";
//Se inicializa el temporizador
BlynkTimer timer;
//Se conectan los sensores a los pines 36, 39, 34 y 35
int sensor1 = 36;
int sensor2 = 39;
int sensor3 = 34;
int sensor4 = 35;
//Se conectan los relé a los pines 23, 22, 21 y 19
int led1 = 23;
int led2 = 22;
int led3 = 21;
int led4 = 19;
//Se establecen las condiciones para que los leds se enciendan o apaguen
BLYNK_WRITE(V4)
{
if(param.asInt()==1)
{
digitalWrite(led1, HIGH);
}
else
{
digitalWrite(led1, LOW);
}
}
BLYNK_WRITE(V5)
{
if(param.asInt()==1)
{
digitalWrite(led2, HIGH);
}
else
{
digitalWrite(led2, LOW);
}
}
BLYNK_WRITE(V6)
{
if(param.asInt()==1)
{
digitalWrite(led3, HIGH);
}
else
{
digitalWrite(led3, LOW);
}
}
BLYNK_WRITE(V7)
{
if(param.asInt()==1)
{
digitalWrite(led4, HIGH);
}
else
{
digitalWrite(led4, LOW);
}
}
void setup() {
//Hacer que el temporizador corra cada segundo
timer.setInterval(1000L, sensorDataSend);
Serial.begin(115200);
//Se inicia la conexión a la red WiFi definida
WiFi.begin(ssid, pass);
//delay(2000);
//Mostrar asteriscos mientras se realiza la conexión
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print("*");
}
//Se anuncia cuando ya se haya conectado a la red WiFi y se muestra la dirección IP
Serial.println("");
Serial.println("Se ha conectado a la red WiFi");
Serial.println("Dirección IP: ");
Serial.println(WiFi.localIP());
//Se inicia la conexión a la nube
Blynk.begin(auth, ssid, pass);
// Se establecen los sensores como entrada
pinMode(sensor1, INPUT);
pinMode(sensor2, INPUT);
pinMode(sensor3, INPUT);
pinMode(sensor4, INPUT);
//Se establecen los relé como salida
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
}
//Se crea la función para enviar datos hacia la plataforma
void sensorDataSend{
//Se lee la información del sensor 1 y se envía hacia el pin virtual "V0"
int humedad1=analogread(sensor1);
int porcentaje1 = map(humedad1, 3200, 1600, 0, 100);
Blynk.virtualWrite(V0,porcentaje1);
//Se lee la información del sensor 2 y se envía hacia el pin virtual "V1"
int humedad2=analogread(sensor2);
int porcentaje2 = map(humedad2, 3200, 1600, 0, 100);
Blynk.virtualWrite(V1,porcentaje2);
//Se lee la información del sensor 3 y se envía hacia el pin virtual "V2"
int humedad3=analogread(sensor3);
int porcentaje3 = map(humedad3, 3200, 1600, 0, 100);
Blynk.virtualWrite(V2,porcentaje3);
//Se lee la información del sensor 4 y se envía hacia el pin virtual "V3"
int humedad4=analogread(sensor4);
int porcentaje4 = map(sensor4, 3200, 1600, 0, 100);
Blynk.virtualWrite(V3,porcentaje4);
}
void loop() {
Blynk.run();
timer.run();
}