How to take some variable from blynk write function and use in other function?

code
i want to use "setzemlja " from blynk write function in "nemavode"function???

//dodavanje svih library
#include <Wire.h>
#include <WiFi101.h>
#include <BlynkSimpleMKR1000.h>
char auth[] = "uONnbVMb9P7C1-0YkgYCLLhvU0IF1Oso";  // Enter your Blynk auth token here
char ssid[] = "Arduino";   // Enter your WiFi SSID here
char pass[] = "zanettii";   // Enter your WiFi password here

#include "DHT.h"
 #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16, 2);
//pin dht11
#define DHTPIN 0  
//vrsta dhta   
#define DHTTYPE DHT11  
#define BLYNK_PRINT Serial
DHT dht(DHTPIN, DHTTYPE);
int relej=1;
int vlagaset=0;
BlynkTimer timer;
//funkcija setane vrijednosti zraka preko blynk aplikacije
BLYNK_WRITE(V3)
{  
  int setzraka=param.asInt();
  Serial.print("set vlaga zraka je ");
    Serial.println(setzraka);
   Blynk.virtualWrite(2, setzraka);
}
//funkcija setane vrijednostizemlje preko blynk aplikacije
BLYNK_WRITE(V5)
{  
   int zemlja = analogRead(A1);
  
   int zemlja1 = map(zemlja, 0, 1023, 0, 100);
    
  float humidity = dht.readHumidity();
  int setzemlja=param.asInt();
  Serial.print("setana  zemlje je ");
    Serial.println(setzemlja );
     
}
void nemavode(){
  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;
  }
  int setzraka=param.asInt();
  Serial.println(t);
  Blynk.virtualWrite(V1, setzraka);
  Blynk.virtualWrite(V5, setzemlja);
    Serial.print("setzraka : ");
    Serial.print(setzraka);
    Serial.print("    setzemlja ");
    Serial.println(setzemlja);


  if(t > 20){
    Serial.println("    salje se");
    //Blynk.email("vackadavid@gmail.com", "Alert", "Temperature over 28C!");
    Blynk.logEvent("razina_vode","Treba natočiti vodu u 2 kantu");
  }
}

//postavljane izlaza pumpi(releja)
 #define pum2  7
#define pum1  8
//sve varijable postavljene
int provjera2=0;
 int provjera1=0;
int osvjezi=0;
int h3=0;
int odvlazivac=7;
int udaljenost1=0;
int trajanje1;
int udaljenost2=0;
int trajanje2;

//ulazi i izlazi ultrazvučnih senzora
#define trigPin1 9
#define echoPin1 10
#define trigPin2 2
#define echoPin2 3


 
void setup() {
 
  Serial.begin(9600);//pokretanje Serial Monitor
  //postavljane L2C displaya
  lcd.init();
  lcd.backlight();
  lcd.clear();

  Serial.begin(9600);
  //definiranje ulaza i izlaza
  pinMode(A2,INPUT);
  pinMode(odvlazivac, OUTPUT);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(pum1, OUTPUT);
  pinMode(pum2, OUTPUT);
  digitalWrite(pum1, HIGH);
  digitalWrite(pum2, HIGH);
}
 
//ocitanje vode u prvoj kanti sa ultrasonic senzorom
void daljina1(){
  digitalWrite(trigPin1, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);

  trajanje1= pulseIn(echoPin1, HIGH);
  udaljenost1 = trajanje1 * 0.034 / 2;
  Serial.print("Udaljen1: ");
  Serial.println(udaljenost1);
  delay(100);  
}

//ocitanje vode u drugoj kanti sa ultrasonic senzorom
 void daljina2(){
  digitalWrite(trigPin2, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin2, LOW);

  trajanje2 = pulseIn(echoPin2, HIGH);
  udaljenost2 = trajanje2 * 0.034 / 2;
  Serial.print("Udaljen2: ");
   Serial.println(udaljenost2);
  delay(100);  
}
 //ocitanje vlage zemlje,pustanje i gasenje druge pumpe za navodnjavanje cvijeta
void vlagacvijet(){

  

   int value = analogRead(A1);
  Serial.println(value);

  delay(500);
 
  Serial.println(value);
  //ako je vlaga manja od potrebne za biljku neka senzor ardi
  if (value < 150) {
    digitalWrite(2, LOW);
     lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("PUMPA UKLJUCENA ");
    lcd.setCursor(0, 1);
    lcd.print("VLAGA: MALA");
    daljina2();
    //neka pumpa radi sve dok je vlaga manja i dok ima dovoljne vode da pumpa radi
    while(analogRead(A1) < 150 && udaljenost2<16){
      daljina2();
      lcd.setCursor(0, 1);
      int value = analogRead(A1);
   Serial.print("Moisture2: ");
  Serial.println(value);
     digitalWrite(pum2,LOW);
     Serial.println("pumpa2 radi ovo ");
          provjera2=1;
         provjera1=0;
      digitalWrite(pum1,HIGH);
     Serial.println("pumpa1 neradi ovo ");
     daljina2();
    }
    // ispisuje ako u 2 kanti nema dovoljno vode,a cvijeće treba zaliti da se voda dolije u 2 kantu
    if (udaljenost2>14){
      lcd.clear();
       lcd.setCursor(0, 0);
    lcd.print("nema  vode  ");
    Serial.println("nema dovoljno vode  ");
    lcd.setCursor(0, 1);
    lcd.print("doli  u 2 kantu");
    Serial.println(" doli vode u 2 kantu ");
    delay(2000);
    }
    Serial.println("pumpa2 neradi dovoljno zaliveno ");
    //pumpa neradi ako je vlaga dovoljna ili ako nema dovoljno vode za rad pumpe
  } else {
    if (udaljenost2>14){
      lcd.clear();
       lcd.setCursor(0, 0);
    lcd.print("nema dovoljno vode  ");
    lcd.setCursor(0, 1);
    lcd.print("doli vode u 2 kantu");
    }
    digitalWrite(2, HIGH);
     lcd.clear();
       lcd.setCursor(0, 0);
    lcd.print("PUMPA ISKLJUCENA ");
    lcd.setCursor(0, 1);
    lcd.print("VLAGA: PROSJECNA");
    digitalWrite(pum2,HIGH);
    Serial.println("pumpa2 neradi ");
         provjera2=0;
provjera1=0;
  }
 // ispisuje na lcd dali pumpa radi i stanje vlage
  if (value < 150) {
     lcd.clear();
     lcd.setCursor(0, 0);
    lcd.print("PUMPA UKLJUCENA ");
    lcd.setCursor(0, 1);
    lcd.print("VLAGA: MALA");
    // ispisuje na lcd dali pumpa radi i stanje vlage
  } else if (value > 300 && value < 650) {
     lcd.clear();
     lcd.setCursor(0, 0);
    lcd.print("PUMPA ISKLJUCENA ");
    lcd.setCursor(0, 1);
    lcd.print("VLAGA:PROSJECNA");
    Serial.println("pumpa2 neradi ");
         provjera2=0;
    digitalWrite(pum2,HIGH);
   // ispisuje na lcd dali pumpa radi i stanje vlage
  } else if (value > 650) {
    lcd.clear();
     lcd.setCursor(0, 0);
    lcd.print("PUMPA ISKLJUCENA ");
    lcd.setCursor(0, 1);
    lcd.print("VLAGA: VELIKA");
    digitalWrite(pum2,HIGH);
    Serial.println("pumpa2 neradi ");
     provjera2=0;
    
  }
}
//funcija za prvu kantu
void kanta1(){
  //ako ima dovoljno vode i ako u drugoj kanti nema previše vode 
  if (udaljenost1<15 && udaljenost2>10  ){
     Serial.println("ušo sam ");
     // ponavlja sve dok u kanta1 ima dovoljno vode  i dok kanta 2 nije puna 
  while (udaljenost1<15 && udaljenost2>5 ){

    digitalWrite(pum1,LOW);
    digitalWrite(pum2,HIGH);
    Serial.println("pumpa1 radi ");
   provjera1=1;
    daljina1();
    delay(100);
}


}
//ako uvijeti nisu ispunjeni pumpa 1 neće raditi
else {
   Serial.println("pumpa 1 nemoze raditi ");
   delay(2000);
}
}


void loop() {
 daljina1();
 daljina2();
 kanta1();

 delay(1000);
 daljina2();
  vlagacvijet();
  delay(1000);


  
}

@nacka301 Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```

Copy and paste these if you can’t find the correct symbol on your keyboard.

Pete.

can you help me pls

As I said to you yesterday…

You aren’t doing that, you’re saving the data to a local variable, which means that it’s not available outside of the BLYNK_WRITE(Vpin) function…

If you want setzraka to be available outside of BLYNK_WRITE(V3) then you need to declare int setzraka outside of a function, preferable near the top of your code with your other variable declarations, and remove the int from the beginning of int setzraka in BLYNK_WRITE(V3) to avoid re-declaring a local copy of the setzraka variable.

I also said…

but you’ve disregarded that advice.
You should read this…

and re-write your sketch to remove all of the delays and to use BlynkTimer instead, and also use BlynkTimer to call the functions that are currently in your void loop.

Pete.

where to call my other function instead of in the void loop?
and on the mkr1000 , mkr going shutdown a program,do you known how to fix that

#include <Wire.h>
#include <WiFi101.h>
#include <BlynkSimpleMKR1000.h>
#define BLYNK_TEMPLATE_ID "TMPL4WhNcdGhV"
#define BLYNK_DEVICE_NAME "Reciklator vlage"
#define BLYNK_AUTH_TOKEN "8g3KSML8wbpIbDVXLOOCmhuUPWK2Y1bI"
char auth[] = "8g3KSML8wbpIbDVXLOOCmhuUPWK2Y1bI";  // Blynk auth token 
char ssid[] = "Arduino";   //  WiFi SSID 
char pass[] = "zanettii";   // WiFi password

#include "DHT.h"
 #include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16, 2);
//pin dht11
#define DHTPIN 9
//vrsta dhta   
#define DHTTYPE DHT11  
#define BLYNK_PRINT Serial;
DHT dht(DHTPIN, DHTTYPE);

BlynkTimer timer;
//funkcija setane vrijednosti zraka preko blynk aplikacije

//postavljane izlaza pumpi(releja)
 #define pum2  7
#define pum1  8
//sve varijable postavljene
int ultra=0;
int provjera2=0;
 int provjera1=0;
int osvjezi=0;
int h3=0;
int odvlazivac=6;
int udaljenost1=0;
int trajanje1;
int udaljenost2=0;
int trajanje2;
int zemlja=0;
int zemlja1=0;
int setzemlja=0;
int vlagaset=0;
int setzraka=0;
float humidity;
int t,h;
//ulazi i izlazi ultrazvučnih senzora
#define trigPin1 3
#define echoPin1 2
#define trigPin2 5
#define echoPin2 4




 
void setup() {
  
  Serial.begin(9600);//pokretanje Serial Monitor
  //postavljane L2C displaya
  lcd.init();
  lcd.backlight();
  lcd.clear();
Blynk.begin(auth, ssid, pass);
  dht.begin();
  timer.setInterval(2500L, nemavode);
  Serial.begin(9600);
  //definiranje ulaza i izlaza
  pinMode(A2,INPUT);
  pinMode(odvlazivac, OUTPUT);
  pinMode(trigPin1, OUTPUT);
  pinMode(echoPin1, INPUT);
  pinMode(trigPin2, OUTPUT);
  pinMode(echoPin2, INPUT);
  pinMode(pum1, OUTPUT);
  pinMode(pum2, OUTPUT);
 // digitalWrite(pum1, HIGH);
// digitalWrite(pum2, HIGH);

}








 BLYNK_WRITE(V3)
{  
 setzraka=param.asInt();
 Serial.print("setzraka : ");
 Serial.println(setzraka);
}
//funkcija setane vrijednostizemlje preko blynk aplikacije
BLYNK_WRITE(V5)
{  
  zemlja = analogRead(A1);
  zemlja1 = map(zemlja, 0, 1023, 0, 1000);
    
  humidity = dht.readHumidity();
  setzemlja=param.asInt();
  Serial.print("setana  zemlje je ");
  Serial.println(setzemlja );
  
     
}



void nemavode(){
   Blynk.logEvent("razina_vode","Treba natočiti vodu u 2 kantu");

}



//ocitanje vode u prvoj kanti sa ultrasonic senzorom
void daljina1(){
   Blynk.syncVirtual(V3);
    Blynk.syncVirtual(V5);
  digitalWrite(trigPin1, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);

  trajanje1= pulseIn(echoPin1, HIGH);
  udaljenost1 = trajanje1 * 0.034 / 2;
  Serial.print("Udaljen1: ");
  Serial.println(udaljenost1);
  
 /*  lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Udaljen2: ");
     Serial.println(udaljenost1);
   
    lcd.setCursor(0, 1);
    lcd.print("Udaljen2:");
     Serial.println(udaljenost1);*/
     
}



//ocitanje vode u drugoj kanti sa ultrasonic senzorom
 void daljina2(){
   Blynk.syncVirtual(V3);
    Blynk.syncVirtual(V5);
  digitalWrite(trigPin2, LOW);
  delayMicroseconds(5);
  digitalWrite(trigPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin2, LOW);

  trajanje2 = pulseIn(echoPin2, HIGH);
  udaljenost2 = trajanje2 * 0.034 / 2;
  Serial.print("Udaljen2: ");
   Serial.println(udaljenost2);
  delay(100);  
  /*  lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Udaljen2: ");
     Serial.println(udaljenost2);
   
    lcd.setCursor(0, 1);
    lcd.print("Udaljen2:");
     Serial.println(udaljenost2);*/
}



//ocitanje vlage zemlje,pustanje i gasenje druge pumpe za navodnjavanje cvijeta
  void isusivac(){
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("isusivac");
   
    lcd.setCursor(0, 1);
    lcd.print("neradi");
    delay(2000);
  //ocitava vrijednosti sa dht senzora
 
  t = dht.readTemperature();
  h = dht.readHumidity();

  Serial.println("vlaga////////////////////////////////");

  Serial.println(h);
  Serial.println(t);
  Blynk.virtualWrite(V0, t);  // Send temperature value to Blynk App
  Blynk.virtualWrite(V1, h); // Send humidity value to Blynk App
  zemlja = analogRead(A1);
  
  zemlja1 = map(zemlja, 0, 1023, 0, 100);
  Serial.println(zemlja1);

  Serial.println("vlaga zemlje");
  Serial.println(zemlja1);
  Blynk.syncVirtual(V3);



// ako je vlaga u prostoriji veća od postavljene onda se pali osvježivac
  if (setzraka<h){
    while(setzraka<h){
       h = dht.readHumidity();
       Blynk.virtualWrite(V1, h); 
    osvjezi=1;
    digitalWrite(odvlazivac,LOW);
    //digitalWrite(pum1, HIGH);
    //digitalWrite(pum2, HIGH);
    Serial.println("osvjezi 1-------------------------------"); 
    
    }

  }
  //vlaga je u prostoriji je zadovoljavajuća i netreba isušivati zrak
  else{
    osvjezi=0;
     digitalWrite(odvlazivac,HIGH); 
     /*digitalWrite(pum1, HIGH);
     digitalWrite(pum2, HIGH);*/
     Serial.println("osvjezi 0////////////////////////////////");
     }

 
  
 }

 
 
void vlagacvijet(){
  Blynk.syncVirtual(V5);
 Serial.println("-------------------------------------------------- ");
  Serial.println(setzemlja);
  Serial.println("-------------------------------------------------->>>>>>>>>>>>>>>>>>>>>>> ");
  Serial.print(zemlja1);
  delay(1000);
  zemlja = analogRead(A1);
  zemlja1 = map(zemlja, 0, 1023, 0, 1000);
  Serial.println(zemlja1);
  delay(500);
  Serial.println("vlaga zemlje");
  Serial.println(zemlja1);
  Blynk.virtualWrite(V4, zemlja1);

  
  //ako je vlaga manja od potrebne za biljku neka senzor radi
  if (zemlja1 < setzemlja) {
    digitalWrite(2, LOW);
     lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("vlaga manja: ");
    lcd.print(zemlja1);
    lcd.setCursor(0, 1);
    lcd.print("od setane:");
    lcd.print(setzemlja);
    daljina2();


    //neka pumpa radi sve dok je vlaga manja i dok ima dovoljne vode da pumpa radi
    while(zemlja1 < setzemlja && udaljenost2<16){
       zemlja = analogRead(A1);
  
    zemlja1 = map(zemlja, 0, 1023, 0, 1000);
  Serial.println(zemlja1);
  Blynk.virtualWrite(V4, zemlja1);
      lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("vlaga manja: ");
    lcd.print(zemlja1);
    lcd.setCursor(0, 1);
    lcd.print("od setane:");
    lcd.print(setzemlja);
    daljina2();
       Serial.println("-------------------------------------------------- ");
        Serial.print(setzemlja);
      daljina2();
      lcd.setCursor(0, 1);
      zemlja1 = analogRead(A1);
      
   Serial.print("Moisture2: ");
  Serial.println(zemlja1);
     digitalWrite(pum2,LOW);
     Serial.println("pumpa2 radi ovo ");
          provjera2=1;
         provjera1=0;
      digitalWrite(pum1,HIGH);
     Serial.println("pumpa1 neradi ovo ");
     daljina2();
    }
  }
  
   // ispisuje ako u 2 kanti nema dovoljno vode,a cvijeće treba zaliti da se voda dolije u 2 kantu
    if(udaljenost2>16){
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print(udaljenost2);
    lcd.setCursor(0, 1);
    lcd.print("prevelika udaljenost");
    nemavode();
 
    }
    
    //pumpa neradi ako je vlaga dovoljna ili ako nema dovoljno vode za rad pumpe
    else if (zemlja1 > setzemlja){
      lcd.clear();
       lcd.setCursor(0, 0);
    lcd.print("dovoljno vode  ");
    lcd.setCursor(0, 1);
    lcd.print("cvijece dovoljno");
     
  }
  else{
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("udaljenost  ");
    lcd.print(udaljenost2);
  
  }
}

void novikrug(){
  //digitalWrite(odvlazivac,HIGH); 
     digitalWrite(pum1, HIGH);
     digitalWrite(pum2, HIGH);
   lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("novi krug: ");
   
    lcd.setCursor(0, 1);
    lcd.print("nista neradi");
    delay(2000);
}

//funcija za prvu kantu
void kanta1(){
  //ako ima dovoljno vode i ako u drugoj kanti nema previše vode 
  if (udaljenost1<15 && udaljenost2>10  ){
     Serial.println("ušo sam ");
     // ponavlja sve dok u kanta1 ima dovoljno vode  i dok kanta 2 nije puna 
  while (udaljenost1<15 && udaljenost2>12 ){
  daljina1();
  daljina2();
   digitalWrite(pum2,HIGH);
    digitalWrite(pum1,LOW);
  // digitalWrite(odvlazivac,HIGH);
    Serial.println("pumpa1 radi ");
   provjera1=1;
    daljina1();
    delay(100);
}


}
//ako uvijeti nisu ispunjeni pumpa 1 neće raditi
else {
  digitalWrite(pum2,HIGH);
    digitalWrite(pum1,HIGH);
    //digitalWrite(odvlazivac,HIGH);
   Serial.println("pumpa 1 nemoze raditi ");
   delay(200);
}
}



void loop() {
  Blynk.run();
 timer.run();
  novikrug();
isusivac();
 daljina1();
 daljina2();
 kanta1();
daljina2();
 daljina1();
vlagacvijet();
 nemavode();


 
}

If you’d bothered to click the “keep your void loop clean” link that I provided then you would understand how to define the interval timers in your void loop to achieve this.

I have no idea what this means.

Pete.

on link is what if i need to send blynk. I have function that dont send anything to blynk app where that function to call???

This sentence makes no sense to me I’m afraid.

If English isn’t your first language then maybe you should write your questions in your native language and we’ll use an online translator to try to understand your issues better.

Pete.

Same as functions that do send to BLYNK. All functions should be called using a timer regardless if they send data to BLYNK.

my mkr1000 going shutdown program when i send him 3 digital pin in HIGH with Vin power supply of 5V.

So not a Blynk related issue then?

Pete.