(ช่วยทีครับมือใหม่) อยากควบคุม Relay ตามเงื่อนไข

เช่น ปั้มน้ำทำงานเมือค่าความชื้นในดินน้อย ใช้ควบคู่กับแอพ Blynk น่ะครับ

#define BLYNK_TEMPLATE_ID "TMPLILF06iiT"
#define BLYNK_DEVICE_NAME "project"
#define BLYNK_FIRMWARE_VERSION        "0.1.0"
#define BLYNK_PRINT Serial

//#define BLYNK_DEBUG

#define APP_DEBUG
#include "BlynkEdgent.h"
#include <DHT.h>

#define FLOW1 16
#define DHTPIN   4  // DHT22 Sensor            
#define DHTTYPE DHT22           // DHT22 if useDHT22
DHT dht(DHTPIN, DHTTYPE);

float t; //วัดอุณหภูมิ
float h; //วัดความชื้น
int s1; //วัดความชื่นในดิน1
int s2; //วัดความชื่นในดิน2
int totalAllSoil; 

#define Relay1 19 //pump
#define Relay2 18 //vlaue2
#define Relay3 5  //vlaue1
#define Relay4 21 //fan

#define BUTTON1    V3  //pump
#define BUTTON2    V4  //vlaue2
#define BUTTON3    V5  //vlaue1
#define BUTTON4    V6  //fan

////////////////////////////////////BUTTON////////////////////////////////////
  BLYNK_WRITE(BUTTON1) 
  {
  if (param.asInt()==1)
  {
    digitalWrite(Relay1, HIGH);
  }
  if (param.asInt()==0)
  {
    digitalWrite(Relay1, LOW);
  }
  }

  BLYNK_WRITE(BUTTON2) 
  {
  if (param.asInt()==1)
  {
    digitalWrite(Relay2, HIGH);
  }
  if (param.asInt()==0)
  {
    digitalWrite(Relay2, LOW);
  }
  }

  BLYNK_WRITE(BUTTON3) 
  {
  if (param.asInt()==1)
  {
    digitalWrite(Relay3, HIGH);
  }
  if (param.asInt()==0)
  {
    digitalWrite(Relay3, LOW);
  }
  }

  BLYNK_WRITE(BUTTON4) {
  if (param.asInt()==1)
  {
    digitalWrite(Relay4, HIGH);
  }
  if ((param.asInt()==0) )
  {
    digitalWrite(Relay4, LOW);
  }
  
  }
////////////////////////////////////BUTTON////////////////////////////////////



void setup()
{
  Serial.begin(9600);
  delay(100);
  BlynkEdgent.begin(); 

  pinMode(FLOW1, INPUT);
  pinMode(DHTPIN, INPUT);
  
  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
 
  digitalWrite(Relay1, HIGH);
  digitalWrite(Relay2, HIGH);
  digitalWrite(Relay3, HIGH);
  digitalWrite(Relay4, HIGH);
}

void SENSERDHT()
{
  h = dht.readHumidity(); //รับค่าความชื้น
  t = dht.readTemperature(); //รับค่าอุณหภูมิ
  
  Serial.print("Humidity = "); //แสงค่าความชิ้นในอากาศในSerial
  Serial.print(h);
  Serial.print("%  \n");
  
  Serial.print("temperature = "); //แสดงค่าอุณหภูมิในSerial
  Serial.print(t); 
  Serial.print("°c\n");
  delay(500); 
  
  Blynk.virtualWrite(V0, t);  //แสดงค่าอุณหภูมิในBlynk
  Blynk.virtualWrite(V1, h);  //แสดงค่าความชื้นในอากาศในBlynk
}

void SENSERSOIL()
{
  
  s1 = map(analogRead(A6), 0, 1023, 0, 100); //แมพค่าเพื่อให้อ่านจาก 1023 เป็น 100
  s2 = map(analogRead(A7), 0, 1023, 0, 100); //แมพค่าเพื่อให้อ่านจาก 1023 เป็น 100

  Serial.print("Soil moisture1 = "); //แสดงค่าความชื้นในดินใน Serial
  Serial.print(s1);
  Serial.print("%  \n");

  Serial.print("Soil moisture2 = "); //แสดงค่าความชื้นในดินใน Serial
  Serial.print(s2);
  Serial.print("%  \n");
  delay(500);

  Serial.print("Soil moistureALL = "); //แสดงค่าความชื้นในดินใน Serial
  Serial.print(totalAllSoil);
  Serial.print("%  \n");
  delay(500);
  
  totalAllSoil = (s1+s2)/2;

  Blynk.virtualWrite(V2, s1); //แสดงค่าความชื้นในดินในBlynk
  Blynk.virtualWrite(V13, s2); //แสดงค่าความชื้นในดินในBlynk
  Blynk.virtualWrite(V14, totalAllSoil); //แสดงค่าความชื้นในดินใน เอาสองค่ามาหาค่าเฉลี่ยBlynk
  
}

void SENSERFLOW()
{
  //สูตรคำนวณหาค่าการไหลผ่าน
  uint32_t pulse = pulseIn(FLOW1, HIGH); 
  float Hz = 1/(2*pulse*pow(10,-6));
  float flow = 7.2725*(float)Hz + 3.2094;
  float TotalFlow1 ;
  TotalFlow1 = flow/60;
  //สูตรคำนวณหาค่าการไหลผ่าน
  
  Serial.print(Hz); //แสดงค่าความการไหลของน้ำในSerial
  Serial.print("Hz\t");
  Serial.print(flow/60);
  Serial.println(" L/minute\t\n");
  delay(500);

  Blynk.virtualWrite(V7, TotalFlow1); //แสดงค่าการไหลของน้ำในBlynk
}

void loop() 
{
  BlynkEdgent.run();
  Blynk.run();
  SENSERDHT();
  SENSERSOIL();
  SENSERFLOW();
  
}ข้อความก่อนจัดรูปแบบ