#define BLYNK_TEMPLATE_ID "TMPL3bmDyc_Ph"
#define BLYNK_TEMPLATE_NAME "soil nutrition monitoring system"
#define BLYNK_AUTH_TOKEN "N1h31b1RTYHoD3rfUpc1x56B3Eg4TiBL"
#define BLYNK_PRINT Serial
#include <DHTesp.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int dhtPin = 13;
int nitro = 34;
int phos = 35;
int potas = 32;
struct previousValues{
int temperature ;
int humidity ;
int nitro;
int phos ;
int potas ;
};
previousValues potValues = {0,0,0,0,0};
DHTesp dht;
BLYNK_WRITE(V0){
}
BLYNK_WRITE(V1){
}
BLYNK_WRITE(V2){
}
BLYNK_WRITE(V3){
}
BLYNK_WRITE(V4){
}
void setup() {
Serial.begin(9600);
Serial.print("Connecting to WiFi");
WiFi.begin("Wokwi-GUEST", "", 6);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
Blynk.begin(auth,ssid,pass);
dht.setup(dhtPin, DHTesp::DHT22);
}
void loop() {
TempAndHumidity dhtData = dht.getTempAndHumidity();
float temperature = dhtData.temperature;
float humidity = dhtData.humidity;
float nitrogenValue = analogRead(nitro);
float phosphorusValue = analogRead(phos);
float potassiumValue = analogRead(potas);
if(potValues.temperature!=temperature)
Blynk.virtualWrite(V0,temperature);
if(potValues.humidity!=humidity){
Blynk.virtualWrite(V1,humidity);}
if(potValues.nitro!=nitrogenValue)
Blynk.virtualWrite(V2,nitrogenValue/4095 *100);
if(potValues.phos!=phosphorusValue)
Blynk.virtualWrite(V3,phosphorusValue/4095 *100);
if(potValues.potas!=potassiumValue)
Blynk.virtualWrite(V4,potassiumValue/4095 *100);
potValues = {temperature,humidity,(nitrogenValue/4095 *100),(phosphorusValue/4095 *100),(potassiumValue/4095 *100)};
delay(2000);
}