System otwierania drzwi kodem cyfrowym.

System otwierania drzwi kodem cyfrowym.

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Cześć :) Jest to mój pierwszy post na Majsterkowie. Chciałbym Wam pokazać jak zrobić prosty system otwierania drzwi 4-cyfrowym kodem z użyciem Arduino. Taki układ możemy zamontować do drzwi używając serwa. W kodzie nie ma użytego serwa ale łatwo można go dodać :) Tak jak powiedziałem zamek jest zabezpieczony 4- cyfrowym kodem który sami możemy ustawić. Wyświetlacz będzie nas komunikował o tym czy hasło zostało dobrze wpisane czy źle.

Musimy ustawić 4-cyfrowe hasło, jest to 13 linijka w kodzie. Zmieniamy te 4 cyfry.

Do wykonania zadania będziemy potrzebowali:

  • Arduino        Link
  • Klawiatura numeryczna       Link
  • Buzzer      Link
  • Wyświetlacz LCD z konwerterem I2C        Link    lub sam konwerter    Link
  • Płytkę stykową     Link

Więc zaczynamy :)

Tutaj jest schemat wykonany w Fritzingu:

keypad

Podłączamy klawiaturę zgodnie z schematem:

FEIDH6KG69MUR5Y.MEDIUM

Rezystory to 10 KΩ, ale można je odpuścić.

Skecz:      (jest to trochę zmodyfikowany przykładowy skecz)

#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

#define BACKLIGHT_PIN 3
const int buzzer = 12;

LiquidCrystal_I2C	lcd(0x27,2,1,0,4,5,6,7);

Password password = Password( "3781" );

// Define the Keymap
const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
{'4','5','6'},
  {'7','8','9'},
{'#','0','*'}
};
byte rowPins[ROWS] = {5, 4, 3, 2}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {8, 7, 6}; //connect to the column pinouts of the keypad


// Create the Keypad
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

void setup(){

  pinMode(buzzer, OUTPUT);
Serial.begin(9600);
  lcd.begin (16,2);
lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
lcd.home();
  lcd.print("WPISZ HASLO:");
lcd.setCursor(0,1);
  keypad.addEventListener(keypadEvent); //add an event listener for this keypad

}

void cls() {
lcd.clear();
  lcd.home();
lcd.print("WPISZ HASLO:");
  lcd.setCursor(0,1); }

void loop(){

   keypad.getKey();

}  

void keypadEvent(KeypadEvent eKey){
switch (keypad.getState()){
    case PRESSED:
Serial.print("Pressed: ");
	Serial.println(eKey);
lcd.print('*');
	switch (eKey){
case '*': checkPassword(); break;
	  case '#': password.reset(); cls(); break;
default: password.append(eKey);
     }
}
}

void checkPassword(){
if (password.evaluate()){
    Serial.println("Sukces");
lcd.print("Sukces");
    delay(5000);
cls();
    password.reset();
}else{
    Serial.println("ZLE haslo");
lcd.print("ZLE haslo");
    digitalWrite(buzzer,HIGH);
delay(2000);
    cls();
digitalWrite(buzzer,LOW);
    password.reset();
}

}

 

Dla wyjaśnienia, buzzer podpinamy pod pin 12, lcd tak jak wskazuje konwerter czyli SCL do SCL i SDA do SDA, klawiaturę tak jak na schemacie.

Po wgraniu programu i po podłączenia zasilania powinno to wyglądać tak:

20150704_145357

Gdy wpisujemy hasło:

20150704_145413

Sukces:

20150704_145417

Złe hasło:

20150704_145429

 

To by było na tyle z tego poradnika myślę że się spodobał, w razie wątpliwości proszę pytać w komentarzach :)

 

INFORMACJA: Poniższy post nie wydostał się z Poczekalni :(

Ocena: 5/5 (głosów: 1)

Podobne posty

5 komentarzy do “System otwierania drzwi kodem cyfrowym.

  • Majsterkowo schodzi na psy… Sam piszesz, że to jest zmodyfikowany przykład, to poco to tu publikujesz, chyba każdy po 2h bawienia się Arduino i podstawami programowania potrafi coś takiego zrobić, szczególnie wykorzystując gotowe biblioteki.

    Widać, że potrzebujesz rabatu do Botlandu… czego ludzie nie zrobią dla hajsu….

    Jeżeli chodzi o sam wpis, to następnym razem pamiętaj o lepszej jakości zdjęć i żeby nie były poruszone jak to ostatnie.

    Odpowiedz
  • Zgadzam się z Mateuszem Jarosem. Chyba każdy kto wykonał już kilka projektów z iście genialną platformą jaką jest Arduino wie już, jak zrobić coś takiego.
    Dodatkowo powinieneś dać równolegle z buzzerem zaporowo jakąś diodę shottky’ego.
    P.S Bloody do laptopa??? :/

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?