#define BLYNK_TEMPLATE_ID "YOUR_TEMPLATE_ID"
#define BLYNK_TEMPLATE_NAME "Password_Control"
#define BLYNK_AUTH_TOKEN "YOUR_BLYNK_AUTH_TOKEN"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <Keypad.h>
// Konfigurasi Wi-Fi
char ssid[] = "YourWiFiSSID"; // Ganti dengan SSID Wi-Fi
char pass[] = "YourWiFiPassword"; // Ganti dengan password Wi-Fi
// Pin untuk relay, LED, buzzer
int relayPin1 = 23;
int relayPin2 = 22;
int ledPin = 2;
int buzzerPin = 19;
// Password yang benar
String correctPassword = "1234"; // Ganti dengan password yang diinginkan
// Variabel untuk menyimpan input password dari Keypad
String inputPassword = "";
// Pin untuk Keypad
const byte ROW_NUM = 4; // Jumlah baris pada keypad
const byte COLUMN_NUM = 4; // Jumlah kolom pada keypad
char keys[ROW_NUM][COLUMN_NUM] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pin_rows[ROW_NUM] = {32, 33, 25, 26}; // Pin baris pada ESP32
byte pin_column[COLUMN_NUM] = {14, 27, 22, 21}; // Pin kolom pada ESP32
Keypad keypad = Keypad( makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM );
// Fungsi untuk mengontrol Relay 1 berdasarkan password
void checkPassword() {
if (inputPassword == correctPassword) {
digitalWrite(relayPin1, HIGH); // Nyalakan Relay 1
tone(buzzerPin, 1000, 500); // Bunyi buzzer jika password benar
delay(500);
noTone(buzzerPin); // Matikan buzzer
} else {
digitalWrite(relayPin1, LOW); // Matikan Relay 1
tone(buzzerPin, 500, 500); // Bunyi buzzer jika password salah
delay(500);
noTone(buzzerPin); // Matikan buzzer
}
}
BLYNK_WRITE(V1) { // Virtual Pin V1 untuk Relay 2
int relay2State = param.asInt();
if (relay2State == 1) {
digitalWrite(relayPin2, HIGH); // Nyalakan Relay 2
} else {
digitalWrite(relayPin2, LOW); // Matikan Relay 2
}
}
BLYNK_WRITE(V2) { // Virtual Pin V2 untuk LED
int ledState = param.asInt();
if (ledState == 1) {
digitalWrite(ledPin, HIGH); // Nyalakan LED
} else {
digitalWrite(ledPin, LOW); // Matikan LED
}
}
void setup() {
// Inisialisasi pin
pinMode(relayPin1, OUTPUT);
pinMode(relayPin2, OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzerPin, OUTPUT);
// Memulai komunikasi serial untuk debugging
Serial.begin(115200);
// Koneksi Wi-Fi dan Blynk
Blynk.begin("YOUR_BLYNK_AUTH_TOKEN", ssid, pass);
// Menyiapkan pin untuk relay dan LED
digitalWrite(relayPin1, LOW);
digitalWrite(relayPin2, LOW);
digitalWrite(ledPin, LOW);
digitalWrite(buzzerPin, LOW);
}
void loop() {
// Cek input dari keypad
char key = keypad.getKey();
if (key) {
if (key == '#') { // Jika tombol '#' ditekan, cek password
checkPassword();
inputPassword = ""; // Reset input password
} else if (key == '*') { // Reset password jika tombol '*' ditekan
inputPassword = "";
} else {
inputPassword += key; // Tambahkan karakter ke password input
}
}
Blynk.run(); // Jalankan Blynk
}