#define BLYNK_TEMPLATE_ID "TMPL68o6-3Hna"
#define BLYNK_TEMPLATE_NAME "Water Quality Monitoring"
#define BLYNK_AUTH_TOKEN "xaRRwZQs0V0-Q8iktfDysk28OrFUFRqY"
#define BLYNK_PRINT Serial
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <OneWire.h> // For DS18B20
#include <DallasTemperature.h> // For DS18B20
// Blynk credentials
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
// Pin definitions
#define TDS_PIN 34
#define TURBIDITY_PIN 35
#define PH_PIN 32
#define TEMP_PIN 23 // For DS18B20
// LCD setup
LiquidCrystal_I2C lcd(0x27, 16, 2); // Change address and size if necessary
// Temperature Sensor setup
OneWire oneWire(TEMP_PIN);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(115200);
Blynk.begin(auth, ssid, pass);
sensors.begin();
// Initialize LCD with columns and rows
lcd.begin(16, 2); // 16 columns and 2 rows
lcd.backlight(); // Turn on the backlight
}
void loop() {
Blynk.run();
// Simulate sensor readings
int tdsValue = analogRead(TDS_PIN);
int turbidityValue = analogRead(TURBIDITY_PIN);
int phValue = analogRead(PH_PIN);
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
// Display data on LCD
lcd.setCursor(0, 0);
lcd.print("TDS: ");
lcd.print(tdsValue);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print("C");
// Send data to Blynk
Blynk.virtualWrite(V1, tdsValue); // Simulated TDS Sensor
Blynk.virtualWrite(V2, turbidityValue); // Simulated Turbidity Sensor
Blynk.virtualWrite(V3, phValue); // Simulated pH Sensor
Blynk.virtualWrite(V4, temperature); // Temperature Sensor
delay(1000); // Update every second
}
Loading
ds18b20
ds18b20