Hi! It’s my first time to use Blynk and I’m having a hard time figuring out the problem with the code. My project is an Automatic Hydroponics Irrigation. When the HC-SR04 sensed a distance>=10, then the farmer will be notified thru blynk push notification and the pump will be turned on. I’m not that good in programming so I can’t figure out what’s wrong. I would really appreciate your help. Thank you in advance!
Arduino IDE says this error:
Arduino: 1.8.7 (Windows 8.1), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, 4M (no SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"
YESFINAL:132:3: error: expected unqualified-id before 'void'
^
YESFINAL:132:3: error: expected constructor, destructor, or type conversion before 'void'
In file included from C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk/BlynkApi.h:18:0,
from C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk.h:14,
from C:\Users\name\Documents\COLLEGEfiles\IoT Projects\HYDROPONICS\YESFINAL\YESFINAL.ino:18:
C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk/BlynkHandlers.h:152:5: error: expected unqualified-id before 'void'
void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m)
^
C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk/BlynkHandlers.h:160:31: note: in expansion of macro 'BLYNK_WRITE_2'
#define BLYNK_WRITE(pin) BLYNK_WRITE_2(pin)
^
C:\Users\name\Documents\COLLEGEfiles\IoT Projects\HYDROPONICS\YESFINAL\YESFINAL.ino:110:1: note: in expansion of macro 'BLYNK_WRITE'
BLYNK_WRITE(V7)
^
C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk/BlynkHandlers.h:152:5: error: expected constructor, destructor, or type conversion before 'void'
void BlynkWidgetWrite ## pin (BlynkReq BLYNK_UNUSED &request, const BlynkParam BLYNK_UNUSED ¶m)
^
C:\Users\name\Documents\Arduino\libraries\Blynk-0.6.1\src/Blynk/BlynkHandlers.h:160:31: note: in expansion of macro 'BLYNK_WRITE_2'
#define BLYNK_WRITE(pin) BLYNK_WRITE_2(pin)
^
C:\Users\name\Documents\COLLEGEfiles\IoT Projects\HYDROPONICS\YESFINAL\YESFINAL.ino:110:1: note: in expansion of macro 'BLYNK_WRITE'
BLYNK_WRITE(V7)
^
exit status 1
expected unqualified-id before 'void'
HERE IS THE CODE
//Define Pin Numbers
const int trigPin = 3;
const int echoPin = 5;
const int PumpPin = 6; //relay --OUTPUT
const int PumpButton = 7; //V7 IN BLYNK --INPUT
const int waterTankH =25.4; //Water Tank Height in cm
const int waterTankL =75; //Water Tank Length in cm
const int waterTankW =50; //Water Tank Width in cm
//Define Variables
long duration;
int distance;
int volume;
#include <ESP8266WiFi.h>
#include <Blynk.h>
#include <BlynkSimpleEsp8266.h>
//WiFi Connection//
char auth [] =" ";
char ssid [] =" ";
char pass [] =" ";
//TIMER//
BlynkTimer timer;
void MeasureCm()
{
//clears the trigPin
digitalWrite(trigPin,LOW);
delayMicroseconds(2);
//sets the trigPin on HIGH state for 10 microseconds
digitalWrite (trigPin,HIGH);
delayMicroseconds(10);
digitalWrite(trigPin,LOW);
//Calculating the distance and volume
distance=duration*0.034/2;
{
if(distance>=10)
{
volume=((waterTankH*waterTankL*waterTankW)-(distance*waterTankL*waterTankW))/1000; //volume in Litres
}
else
{
if(distance<10)
{
volume=93; //Volume when Tank is set to overflow --- not the exact volume
}
}
}
//SEND DATA TO BLYNK
Blynk.virtualWrite(V2,distance); //virtual pin 2 in Blynk -- Level V
Blynk.virtualWrite(V4,volume); //virtual pin 4 in Blynk -- SuperChart
}
//PUSH NOTIFICATION
void notifyOndistance()
{
if(distance>=10)
{
Blynk.notify("Water is low. Turn Pump On.");
}
else
{
if(distance==9)
{
Blynk.notify("Water is high. Turn Pump Off.");
}
}
}
void setup()
{
Serial.begin(9600);
Blynk.begin(auth,ssid,pass);
pinMode(trigPin,OUTPUT);
pinMode(echoPin,INPUT);
pinMode(PumpPin,OUTPUT);
pinMode(PumpButton,INPUT_PULLUP); //V7 in Blynk -Button for pump water
digitalWrite(PumpPin,LOW);
timer.setInterval(5000,MeasureCm);
}
void loop()
{
timer.run(); //initiates SimpleTimer
Blynk.run(); //initiates Blynk
}
**//PUMP REMOTE CONTROL//**
BLYNK_WRITE(V7)
{
int i=param.asInt();
if(i=1)
{
pumpStatus=!pumpStatus;
aplyCmd();
}
}
void aplyCmd()
{
if(pumpStatus==1)
{
Blynk.notify("Hydroponics: Warning==>>Pump On");
digitalWrite(PumpPin, HIGH);
}
else
{
digitalWrite(PumpPin,LOW);
}
}
**//AUTOMATICALL CONTROL THE PLANTATION BASED ON SENSOR READING//**
void autoControlPlantation()
{
if(distance>=10)
{
turnPumpOn();
}
}
//TURN PUMP ON FOR A CERTAIN AMOUNT OF TIME
void turnPumpOn()
{
TimePumpOn=180;
pumpStatus=1;
aplyCmd;
delay(TimePumpOn*1000);
pumpStatus=0;
aplyCmd();
}