#include <SoftwareSerial.h>
#include <Wire.h>
#define BLYNK_TEMPLATE_ID "TMPL37IJF_aXY"
#define BLYNK_TEMPLATE_NAME "pro"
#define BLYNK_AUTH_TOKEN "ouLl5TrL10cmysAKQlclzzG69EHa48Lc"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHT_PIN 27 // Pin connected to the DHT sensor
#define DHT_TYPE DHT22 // Type of DHT sensor (DHT11, DHT21, DHT22)
char auth[] = "ouLl5TrL10cmysAKQlclzzG69EHa48Lc"; // Your Blynk authentication token
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
DHT dht(DHT_PIN, DHT_TYPE);
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
dht.begin();
}
void loop() {
Blynk.run();
float pH;
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
byte val1, val2, val3;
float moisture;
val1 = random(0, 350);
delay(250);
val2 = random(0, 350);
delay(250);
val3 = random(0, 330);
delay(250);
pH = (float)(rand() % 140) / 10.0;
delay(250);
moisture = rand() % 101;
delay(250);
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
} else {
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" °C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println(" %");
Blynk.virtualWrite(V1, temperature);
Blynk.virtualWrite(V2, humidity);
}
Serial.print("Nitrogen: ");
Serial.print(val1);
Serial.println(" mg/kg");
Serial.print("Phosphorous: ");
Serial.print(val2);
Serial.println(" mg/kg");
Serial.print("Potassium: ");
Serial.print(val3);
Serial.println(" mg/kg");
Serial.print("PH value: ");
Serial.print(pH);
Serial.print("\nmoisture content:");
Serial.print(moisture);
Serial.println("%");
delay(10000);
Blynk.virtualWrite(V3, val1);
Blynk.virtualWrite(V4, val2);
Blynk.virtualWrite(V5, val3);
Blynk.virtualWrite(V6, pH);
}