#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL68C_ekwHb"
#define BLYNK_TEMPLATE_NAME "monitoring listrik"
#define BLYNK_AUTH_TOKEN "I8dfXLs2Cmxuc-zEH8myvphQUrFwaZr6"
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <Wire.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define POTENTIOMETER_PIN 34 // Pin connected to the potentiometer wiper
LiquidCrystal_I2C lcd(0x27, 16, 2); // Alamat I2C umumnya adalah 0x27
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int relayPin2 = 5; // Pin yang mengendalikan Relay 2
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
lcd.init();
lcd.backlight();
// Inisialisasi pin-pi untuk relay sebagai OUTPUT
pinMode(relayPin2, OUTPUT);
Blynk.virtualWrite(V0, 0); // Buka tutu pintu air
Blynk.virtualWrite(V1, 0); //keadaan pintu air
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Selamat Datang!");
delay(3000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("AI");
lcd.setCursor(0, 1);
lcd.print("2206");
delay(3000);
}
void loop() {
Blynk.run();
int potentiometerValue = analogRead(POTENTIOMETER_PIN);
float voltage = (float)potentiometerValue / 4095.0 * 100.0; // Map potentiometer value to voltage range
delay(500); // Delay between readings
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("VOLTAGE: " + String(voltage, 2) + " V");
// Menghidupkan Relay 1 (lampu pemanas) berdasarkan kondisi suhu (voltage)
if (voltage >2) {
digitalWrite(relayPin2, HIGH); // Hidupkan Relay 1
lcd.setCursor(0, 1);
lcd.print("LAMPU 1 ON");
Blynk.virtualWrite(V0, String(voltage));
}
if (voltage <2) {
digitalWrite(relayPin2, LOW); // Hidupkan Relay 1
lcd.setCursor(0, 1);
lcd.print("LAMPU 1 OFF");
Blynk.virtualWrite(V0, String(voltage));
}
}