#include <Keypad.h>
#include <Servo.h>
const int servoPin = 10;
const int redLedPin = 13;
const int greenLedPin = 12;
Servo vrataServo;
bool vrataOtvorena = false;
unsigned long vrataOtvorenaVreme = 0;
const unsigned long vremeOtvaranja = 5000;
const byte ROWS = 4;
const byte COLS = 4;
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5};
byte colPins[COLS] = {6, 7, 8, 9};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
const String password = "1234";
String unos = "";
void posaljiSMS() {
Serial.println("SMS: Vrata su otvorena!");
}
void setup() {
Serial.begin(9600);
vrataServo.attach(servoPin);
vrataServo.write(0);
vrataOtvorena = false;
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
Serial.println("Unesite lozinku na keypad.");
}
void loop() {
char key = keypad.getKey();
if (key) {
Serial.print("Pritisnuto: ");
Serial.println(key);
if (key == '#') {
if (unos == password && !vrataOtvorena) {
Serial.println("Tacna lozinka!");
vrataServo.write(90);
vrataOtvorena = true;
vrataOtvorenaVreme = millis();
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
posaljiSMS();
} else {
Serial.println("SMS: Pogresna lozinka!");
}
unos = "";
} else if (key == '*') {
unos = "";
Serial.println("Unos resetovan.");
} else {
unos += key;
Serial.print("Trenutni unos: ");
Serial.println(unos);
}
}
if (vrataOtvorena && (millis() - vrataOtvorenaVreme >= vremeOtvaranja)) {
vrataServo.write(0);
vrataOtvorena = false;
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
}
}