Soil Moisture cant display on virtual blynk

Hey guys i need your help
So, i want to make a monitoring system using blynk app.
It can monitor soil moisture, air humidity and temperature.
But something wrong in my blynk app. It cant show the soil moisture sensor. I dont know if the code or the blynk app is wrong, please help guys.

Im using :
• Nodemcu ESP8266, DHT 22 Sensor, Soil Moisture sensor (im using the A0,VCC, and GND)
• Smartphone Android
• Blynk server or local server
• Blynk Library version

heres the code


#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <SPI.h>
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h>
#include <DHT.h>

// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = "9wiBL8RDQjWOnIHOaCIn4Szb0Ekw_n2Z"; //Enter the Auth code which was send by Blink

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "GARPU_SIOMAY";  //Enter your WIFI Name
char pass[] = "katasandi";  //Enter your WIFI Password

#define DHTPIN 2          // Digital pin 4
const int sensorpin=A0;
int sensorvalue=0;
int outputvalue=0;
// Uncomment whatever type you're using!
//#define DHTTYPE DHT11     // DHT 11
#define DHTTYPE DHT22   // DHT 22, AM2302, AM2321
//#define DHTTYPE DHT21   // DHT 21, AM2301

DHT dht(DHTPIN, DHTTYPE);
SimpleTimer timer;
const int sensorPin = A0;
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
void sendSensor()
{
  float h = dht.readHumidity();
  float t = dht.readTemperature(); // or dht.readTemperature(true) for Fahrenheit
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
    return;
  }
  // You can send any value at any time.
  // Please don't send more that 10 values per second.
  Blynk.virtualWrite(V5, h);  //V5 is for Humidity
  Blynk.virtualWrite(V6, t);  //V6 is for Temperature
  }

void sendSensor2()
{
  int sensorvalue=analogRead(sensorpin);
  outputvalue=map(sensorvalue,0,1023,0,100);

  if(outputvalue>74)
  {
       Serial.println("water your plant");
       Serial.print(outputvalue);
       Blynk.notify("water your plant");
       delay(1000); 
  }
  else if(outputvalue<45)
  {
       Serial.println("soil is wet enough to water");
       Serial.print(outputvalue);
       Blynk.notify("soil is wet enough to water");
       delay(1000);

}
Blynk.virtualWrite(V1, outputvalue);
}

void setup()
{
  Serial.begin(9600); // See the connection status in Serial Monitor
  Blynk.begin(auth, ssid, pass);  
  dht.begin();
  // Setup a function to be called every second
  timer.setInterval(1000L, sendSensor);
}

void loop()
{ 
  Blynk.run(); // Initiates Blynk
  timer.run(); // Initiates SimpleTimer
}

You are missing a similar timer to call your sendSensor2 function, which takes your soil moisture readings and sends them to Blynk.

However, you MUST remove the delays from this function, and use a flag and maybe a timeout timer (preferably in a lambda function) to prevent sending multiple notifications too quickly.

Also, reading the DHT once every second isn’t a great idea, they are slow sensors that don’t like to be read too frequently.

Pete.

Thank you sir, i forgot the timer.
Anyway, still i dont know how to make a delay using flag or timeout timer, i just know to make the delay into a thousand second, so the notification will notify in any minutes.
For the DHT, do you have any idea for the code?

Sorry but i want to add something to indicating the moisture with LED.
If moisture are high, Yellow LED will on, if not Green LED will off

Try searching this forum, you’ll find plenty of examples.

Pete.

It’s not really a Blynk related question, but you’d need to declare the pins that the LEDs are connected to as OUTPUT in a pinMode statement in void setup.
You’d then do a digitalWrite HIGH or LOW to turn them on or off, depending on how you’ve wired them.

Pete.

Thank you sir, you really help me, now it works!

Well done on getting it working.

A word of warning, these soil moisture sensors will start to corrode after a while. I think the voltage flowing between the terminals cause the elements in the soil to affect the terminals of the sensor.
You also need to waterproof the connections at the top if you want consistent results.

Pete.

Hey! Have a similar issue but it isn’t displaying the changing values of the Soil moisture sensor.
Please do help!

@Nmv I’d suggest that you create a new “Need help…” topic, but before you do you should read this…

Pete.