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);
}