#define BLYNK_TEMPLATE_ID "TMPL3J4sfwZPh"
#define BLYNK_TEMPLATE_NAME "iot proj"
#define BLYNK_AUTH_TOKEN "wsuxzZP5knLaQtNSAtY1pmkDervTH_u4"
#include <BlynkSimpleEsp32.h>
#include <ThingSpeak.h>
#include <WiFi.h>
// Declare global variables
WiFiClient client;
// Replace these with your actual values
String ssid = "network unavailable";
String password = "123456789";
String apiKey = "V46OKHYC2R3560KV";
String blynkAuth = "wsuxzZP5knLaQtNSAtY1pmkDervTH_u4";
long channelID = 2334764; // Replace with your ThingSpeak channel ID
// Declare sensor pins
const int Tur_PIN = 34; // Turbidity
#define PH_PIN 35 // pH
#define DHT_PIN 33 // Temperature
// Declare warning LEDs
const int pHWarningAxit = 2; // Red LED
const int pHWarningbazo = 18; // Green LED
const int TurWarning = 4; // Orange LED for Turbidity
const int TempWarning = 5; // Yellow LED for Temperature
float turbidity;
float phValue;
float temp;
void setup() {
Serial.begin(9600);
// Connect to Wi-Fi
Blynk.begin(blynkAuth, ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void Turbidity() {
int Tur = analogRead(Tur_PIN);
turbidity = map(Tur, 0, 4095, 0, 100);
Serial.print("Turbidity: ");
Serial.println(turbidity);
delay(100);
if (turbidity < 20) {
Serial.println("Low Turbidity");
digitalWrite(TurWarning, LOW);
} else if (turbidity >= 20 && turbidity < 50) {
Serial.println("Moderate Turbidity");
digitalWrite(TurWarning, HIGH);
} else if (turbidity >= 50) {
Serial.println("High Turbidity");
digitalWrite(TurWarning, HIGH);
}
}
void Temperature() {
int Temp = analogRead(DHT_PIN);
temp = map(Temp, 0, 4095, 0, 100);
Serial.print("Temperature: ");
Serial.println(temp);
delay(100);
if (temp < 20) {
Serial.println("Low Temperature");
digitalWrite(TempWarning, LOW);
} else if (temp >= 20 && temp < 50) {
Serial.println("Moderate Temperature");
digitalWrite(TempWarning, HIGH);
} else if (temp >= 50) {
Serial.println("High Temperature");
digitalWrite(TempWarning, HIGH);
}
}
void pHRate() {
int phR = analogRead(PH_PIN);
phValue = map(phR, 0, 4095, 0, 14);
Serial.print("pH Value: ");
Serial.println(phValue);
delay(100);
if (phValue >= 6.5 && phValue <= 8.5) {
Serial.println("Optimal pH");
digitalWrite(pHWarningAxit, LOW);
digitalWrite(pHWarningbazo, LOW);
} else if (phValue < 6.5) {
Serial.println("Low pH");
digitalWrite(pHWarningAxit, HIGH);
digitalWrite(pHWarningbazo, LOW);
} else if (phValue > 8.5) {
Serial.println("High pH");
digitalWrite(pHWarningbazo, HIGH);
digitalWrite(pHWarningAxit, LOW);
}
}
void loop() {
Blynk.run();
Turbidity();
pHRate();
Temperature();
// Send data to ThingSpeak
ThingSpeak.writeField(2334762, 1, phValue, apiKey);
ThingSpeak.writeField(2334761, 2, temp, apiKey);
ThingSpeak.writeField(2334763, 3, turbidity, apiKey);
delay(5000);
}