Thank you all, all problem solved.
#include <Blynk.h>
#define BLYNK_PRINT Serial
#include <SimpleDHT.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
char auth[]="8e6dd1b016088";
char ssid[]="iPhone";
char pass[]="12345678999";
const int moist_pin =A0;
int fan = D0;
int valve = D1;
int dht = D2;
int SensorValuePercent = 0;
SimpleDHT11 dht11(dht);
BlynkTimer timer;
void setup() {
Serial.begin(9600);
pinMode(fan,OUTPUT);
pinMode(valve,OUTPUT);
pinMode(moist_pin,INPUT);
Blynk.begin(auth, ssid, pass);
timer.setInterval(2000L, temperature);
delay(100);
timer.setInterval(2000L, soilMoisture);
}
void temperature(){
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
Serial.print("Current temperature: ");
Serial.print((int)temperature); Serial.print(" *C, ");
WidgetLED led1(V4);
if (temperature <= 30){
digitalWrite(fan,LOW);
led1.off();
}
if (temperature >= 31){
digitalWrite(fan,HIGH);
led1.on();
}
if (temperature >= 35){
Blynk.notify("Temperature Too High");
digitalWrite(fan,HIGH);
led1.on();
}
Blynk.virtualWrite(V1, temperature);
}
void soilMoisture() {
float moisture_percentage;
int moist_analog;
moist_analog = analogRead(moist_pin);
moist_analog = map(moist_analog, 0, 1023, 100, 0);
Serial.print(moist_analog);
Serial.print("&\n\n");
Blynk.virtualWrite(V3,moist_analog);
WidgetLED led2(V5);
if (moist_analog <= 10){
digitalWrite(valve,HIGH);
led2.on();
}
else {
digitalWrite(valve,LOW);
led2.off();
}
}
void loop() {
Blynk.run();
timer.run();
}