#define BLYNK_TEMPLATE_ID "TMPL3QpuCS7oJ"
#define BLYNK_TEMPLATE_NAME "waste management"
#define BLYNK_AUTH_TOKEN "D3kAbu86rw1Fwb1ZIWBFmEM_GZhI3XHT"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
// WiFi credentials
char auth[] = "D3kAbu86rw1Fwb1ZIWBFmEM_GZhI3XHT";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run(); // Run Blynk
int16_t moisture = analogRead(7);
String moistureCondition = moisture < 80 ? "DRY" : moisture > 140 ? "WET" : "OK";
int moisturePercent = moisture / 2;
Serial.print("Moisture content: ");
Serial.print(moisturePercent);
Serial.print("%, Condition: ");
Serial.println(moistureCondition);
int16_t nitrogen = analogRead(3) / 2;
Serial.print("Nitrogen: ");
Serial.print(nitrogen);
Serial.print("%, ");
String nitrogenCondition = nitrogen < 30 ? "Nitrogen content is low" : nitrogen > 70 ? "Nitrogen content is high" : "Nitrogen content is good";
Serial.println(nitrogenCondition);
int16_t phosphorus = analogRead(4) / 2;
Serial.print("Phosphorus: ");
Serial.print(phosphorus);
Serial.print("%, ");
String phosphorusCondition = phosphorus < 30 ? "Phosphorus content is low" : phosphorus > 70 ? "Phosphorus content is high" : "Phosphorus content is good";
Serial.println(phosphorusCondition);
int16_t potassium = analogRead(5) / 2;
Serial.print("Potassium: ");
Serial.print(potassium);
Serial.print("%, ");
String potassiumCondition = potassium < 30 ? "Potassium content is low" : potassium > 70 ? "Potassium content is high" : "Potassium content is good";
Serial.println(potassiumCondition);
int16_t pH = analogRead(6) / 2;
Serial.print("pH value: ");
Serial.print(pH);
Serial.print(", ");
String pHCondition = pH < 4 ? "Soil is highly acidic" : pH < 7 && pH >= 4 ? "Soil is slightly acidic" : pH == 7 ? "pH is neutral" : pH > 7 && pH <= 10 ? "Soil is slightly alkaline" : pH > 10 ? "Soil is highly alkaline" : "";
Serial.println(pHCondition);
Serial.println();
// Sending data to Blynk
Blynk.virtualWrite(V1, nitrogen);
Blynk.virtualWrite(V2, phosphorus);
Blynk.virtualWrite(V3, potassium);
Blynk.virtualWrite(V4, pH);
Blynk.virtualWrite(V5, moisturePercent);
delay(10000); // Delay 10 seconds before next read
}