//ne radi ovo dobro ali probajte vi nesto
//nisam pratio kod sanaseg projekta
#include <Keypad.h>
#include <Servo.h>
// Pinovi za servo i LED
const int servoPin = 10; // promijenjen sa 9 da ne smeta keypad
const int redLedPin = 12;
const int greenLedPin = 13;
// Servo objekt
Servo vrataServo;
bool vrataOtvorena = false;
// Definicija keypad matrice (4x4)
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'}
};
// Promijenjeni pinovi (keypad sad koristi 2–9, servo je na 10)
byte rowPins[ROWS] = {5, 4, 3, 2}; // redovi
byte colPins[COLS] = {6, 7, 8, 9}; // kolone
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Lozinka
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); // zatvoreno
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 == '#') { // potvrda
if (unos == password && !vrataOtvorena) {
Serial.println("Lozinka tačna! Otvaram vrata.");
vrataServo.write(90); // otvori
vrataOtvorena = true;
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
posaljiSMS();
} else {
Serial.println("Pogrešna lozinka ili već otvoreno.");
}
unos = "";
} else if (key == '*') {
unos = "";
Serial.println("Unos resetovan.");
} else {
unos += key;
Serial.print("Trenutni unos: ");
Serial.println(unos);
}
}
}