#define BLYNK_TEMPLATE_ID "TMPL37IJF_aXY"
#define BLYNK_TEMPLATE_NAME "pro"
#define BLYNK_AUTH_TOKEN "ouLl5TrL10cmysAKQlclzzG69EHa48Lc"
#define BLYNK_PRINT Serial
#include <SoftwareSerial.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
char auth[] = "ouLl5TrL10cmysAKQlclzzG69EHa48Lc";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop()
{
int16_t i = analogRead(7);
String msg = i < 80 ? "DRY" : i > 140 ? "WET" : "OK";
int msg1 = i/2;
Serial.print("moisture content:");
Serial.print(msg1);
Serial.print("%");
Serial.print(", condition:");
Serial.println(msg);
int16_t Nitrogen = analogRead(3)/2;
Serial.print("Nitrogen:");
Serial.print(Nitrogen);
Serial.print("%, ");
String n = Nitrogen < 30 ? "Nitrogen content is low" : Nitrogen > 70 ? "Nitrogen content is high" : "Nitrogen content is good";
Serial.println(n);
int16_t phosphorus = analogRead(4)/2;
Serial.print("phosphorus:");
Serial.print(phosphorus);
Serial.print("%, ");
String p = phosphorus < 30 ? "phosphorus content is low" : phosphorus > 70 ? "phosphorus content is high" : "phosphorus content is good";
Serial.println(p);
int16_t Potassium = analogRead(5)/2;
Serial.print("Potassium:");
Serial.print(Potassium);
Serial.print("%, ");
String k = Potassium < 30 ? "Potassium content is low" : Potassium > 70 ? "Potassium content is high" : "Potassium content is good";
Serial.println(k);
int16_t pH = analogRead(6)/2;
Serial.print("pH value:");
Serial.print(pH);
Serial.print(", ");
String ph = pH < 4 ? "soil is highly acidity " :pH < 7 and pH > 3 ? "slightly acidity":pH == 7 ?"pH is neutral":pH >7 and pH <= 10 ? "soil is slightly alkaline": pH > 10 ? "soil is highly alkaline" : "";
Serial.println(ph);
Serial.print("\n");
Blynk.virtualWrite(V1, Nitrogen);
Blynk.virtualWrite(V2, phosphorus);
Blynk.virtualWrite(V3, Potassium);
Blynk.virtualWrite(V4, pH);
Blynk.virtualWrite(V5, msg1);
delay(10000);
}