#define BLYNK_TEMPLATE_ID "TMPL350dy52xP"
#define BLYNK_TEMPLATE_NAME "EV Battery Monitoring"
#define BLYNK_AUTH_TOKEN "r10NzS0ar9LTjT3OxUEYd_-2ACBSlvgk"
#include <LiquidCrystal.h>
#include <BlynkSimpleEsp8266.h>
#include <ESP8266WiFi.h>
// Define pins
#define TRIGGER_PIN1 2
#define ECHO_PIN1 3
#define TRIGGER_PIN2 4
#define ECHO_PIN2 5
#define OUTPUT_PIN1 6
#define OUTPUT_PIN2 7
#define DISTANCE_THRESHOLD 10 // Distance threshold in cm
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
// Replace with your Blynk Auth Token
char auth[] = "YourAuthToken";
// Replace with your WiFi credentials
char ssid[] = "YourNetworkName";
char pass[] = "YourPassword";
void setup() {
// Initialize Serial for debugging
Serial.begin(9600);
// Initialize pins
pinMode(TRIGGER_PIN1, OUTPUT);
pinMode(ECHO_PIN1, INPUT);
pinMode(TRIGGER_PIN2, OUTPUT);
pinMode(ECHO_PIN2, INPUT);
pinMode(OUTPUT_PIN1, OUTPUT);
pinMode(OUTPUT_PIN2, OUTPUT);
// Initialize LCD
lcd.begin(16, 2);
lcd.print("Slot-1 off");
lcd.setCursor(0, 1);
lcd.print("Slot-2 off");
// Initialize Blynk
Blynk.begin(auth, ssid, pass);
}
void loop() {
Blynk.run(); // Run Blynk
float duration1, distance1, duration2, distance2;
// Sensor 1
digitalWrite(TRIGGER_PIN1, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN1, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN1, LOW);
duration1 = pulseIn(ECHO_PIN1, HIGH);
distance1 = (duration1 / 2.0) / 29.1; // Calculate distance in cm
// Sensor 2
digitalWrite(TRIGGER_PIN2, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN2, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN2, LOW);
duration2 = pulseIn(ECHO_PIN2, HIGH);
distance2 = (duration2 / 2.0) / 29.1; // Calculate distance in cm
// Update Slot-1 status
if (distance1 < DISTANCE_THRESHOLD) {
lcd.setCursor(0, 0);
lcd.print("Slot-1 charging");
digitalWrite(OUTPUT_PIN1, HIGH);
Blynk.virtualWrite(V1, "Slot-1 charging");
} else {
lcd.setCursor(0, 0);
lcd.print("Slot-1 off ");
digitalWrite(OUTPUT_PIN1, LOW);
Blynk.virtualWrite(V1, "Slot-1 off");
}
// Update Slot-2 status
if (distance2 < DISTANCE_THRESHOLD) {
lcd.setCursor(0, 1);
lcd.print("Slot-2 charging");
digitalWrite(OUTPUT_PIN2, HIGH);
Blynk.virtualWrite(V2, "Slot-2 charging");
} else {
lcd.setCursor(0, 1);
lcd.print("Slot-2 off ");
digitalWrite(OUTPUT_PIN2, LOW);
Blynk.virtualWrite(V2, "Slot-2 off");
}
delay(1000); // Adjust delay as needed for your application
}