Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang bisa digunakan untuk pengaman pintu atau lemari dengan fitur yaitu password dan eeprom. alat ini bisa jadi solusi untuk menjadikan rumah anda menjadi smart home atau smart key karena tidak perlu menggunakan kunci konvensional untuk buka tutup pintu melainkan hanya menggunakan password untuk buka tutup pintunya dengan solenoid door lock. untuk lebih jelasnya berikut adalah program dan daftar komponennya.
a. Arduino Uno
b. Lcd 16x2 + I2C
c. Keypad 4x4
d. Relay Modul
e. Program Arduino IDE
#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
#include <EEPROM.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
char customKey;
const byte ROWS = 4;
const byte COLS = 4;
int nilai;
int passwd;
int relay = 12;
int bt;
int buzzer = A0;
char keys[ROWS][COLS] = {
{'D', 'C', 'B', 'A'},
{'#', '9', '6', '3'},
{'0', '8', '5', '2'},
{'*', '7', '4', '1'}
};
byte rowPins[ROWS] = {4,5,6,7};
byte colPins[COLS] = {8,9,10,11};
Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
// put your setup code here, to run once:
lcd.begin();
lcd.clear();
lcd.noCursor();
pinMode(relay,OUTPUT);
pinMode(buzzer,OUTPUT);
pinMode(A3,INPUT_PULLUP);
digitalWrite(relay,HIGH);
digitalWrite(buzzer,LOW);
passwd = EEPROM.read(0);
}
void loop() {
bt = digitalRead(A3);
if(bt == 0){
digitalWrite(relay,LOW);
delay(3000);
digitalWrite(relay,HIGH);
}
lcd.setCursor(0,0);
lcd.print("Password");
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9')
{
nilai = nilai * 10 + (customKey - '0');
lcd.setCursor(0,1);
lcd.print(nilai);
}
if (customKey == 'A'){
lcd.clear();
delay(1000);
nilai = 0;
passwd = 0;
savepasswd();
}
if (customKey == 'C'){
lcd.clear();
delay(1000);
nilai = 0;
}
if (customKey == 'D'){
lcd.clear();
delay(1000);
if(nilai == passwd){
lcd.setCursor(0,0);
lcd.print("Pintu Terbuka");
lcd.setCursor(0,1);
lcd.print("Passwd Benar");
digitalWrite(relay,LOW);
delay(3000);
digitalWrite(relay,HIGH);
lcd.clear();
nilai = 0;
}
else{
lcd.setCursor(0,0);
lcd.print("Pintu Tertutup");
lcd.setCursor(0,1);
lcd.print("Passwd Salah");
digitalWrite(relay,HIGH);
digitalWrite(buzzer,HIGH);
delay(3000);
digitalWrite(buzzer,LOW);
lcd.clear();
nilai = 0;
}
}
}
void savepasswd(){
lcd.setCursor(0,0);
lcd.print("Set Passwd");
customKey = customKeypad.getKey();
if(customKey >= '0' && customKey <= '9')
{
passwd = passwd * 10 + (customKey - '0');
lcd.setCursor(0,1);
lcd.print(passwd);
}
if (customKey == 'B'){
lcd.clear();
delay(1000);
EEPROM.write(0, passwd);
return;
}
if (customKey == 'C'){
lcd.clear();
delay(1000);
passwd = 0;
}
savepasswd();
}
f. VIDEO HASILNYA