#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL2EwQWyaX3"
#define BLYNK_TEMPLATE_NAME "distance"
#define BLYNK_AUTH_TOKEN "m0EWaNfX3pPocyT4uXh3ABw5_KpYa0cc"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define trigPin 15
#define echoPin 4
#define ev1Pin 2
#define ev2Pin 5
LiquidCrystal_I2C lcd = LiquidCrystal_I2C(0x27, 16, 2); // Utilisez lcd au lieu de LCD
long echo;
float distance;
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ev1Pin, OUTPUT);
pinMode(ev2Pin, OUTPUT);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Hello Mutiara");
lcd.setCursor(0, 1);
lcd.print("Ini essay no 4");
// Initialiser l'écran LCD
lcd.begin(16, 2);
lcd.clear();
lcd.print("Distance: ");
}
void loop() {
Blynk.run();
readSensor();
}
void readSensor() {
digitalWrite(trigPin, LOW);
delayMicroseconds(10);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
echo = pulseIn(echoPin, HIGH);
distance = (echo / 2.0) / 29.0;
// Mettez à jour la lecture du capteur dans l'application Blynk
Blynk.virtualWrite(V0, distance);
// Contrôle du château d'eau en fonction de la distance
if (distance < 20) {
// Active EV1 (Remplissage)
digitalWrite(ev1Pin, HIGH);
// Désactive EV2 (Sortie)
digitalWrite(ev2Pin, LOW);
}
// Si la distance est supérieure à 95, déclencher le remplissage
if (distance > 95) {
// Active EV1 (Remplissage)
digitalWrite(ev1Pin, LOW);
// Désactive EV2 (Sortie)
digitalWrite(ev2Pin, HIGH);
delay(5000); // Attendez un certain temps (5 secondes)
}
// Mettez à jour l'affichage sur l'écran LCD
lcd.setCursor(0, 1);
lcd.print(distance);
lcd.print(" cm ");
}