Arduino ile Şifreli Kapı yapımı

Ardinio uno ile c++ ile makina diline kod yazarak istediğiniz robot akıllı ev sistemi yapabilirsiniz. ardinio kücük bir bilgisayar ve bu bilgisayara siz sensörler veya dış eklentilerle komutlar verebilir alabilirsiniz. bugun sizinle Şifreli kapı nasıl yapılır buna bakacağız

Gerekli malzemeler.

–Ardinio uno

–Serve Motor(kac derece döneceğini belirleyebilirsiniz)

–Lcd Ekran (görüntü için kullanılacak)

–Ses Buzzer

–iki adet led

–Role 220 elektirik ac kapa için(Relay)

–Keypad (kütüphaneyi indirerek araclar menüsünden import edin)

–kablolar

Yazılım için Arduino İDE indirin


Aşağıdaki şemaya göre bağlantılarınızı yapın

Asağıdaki kodları programa yapıştırın ve kendi incelemeyi yapın.


#include<Keypad.h> 
#include <LiquidCrystal.h>
#include<Servo.h>
#define role 4  //role
Servo servo;
#define yled 5   //sarı led
#define kled 6   // kırmızı  led
#define buzzer 6

LiquidCrystal lcd(12, 11, 10, 9, 8, 7);//(rs, enable, d4, d5, d6, d7)
// ( vss:GND ,VDD:+5V,VO:POT ,RW:GND,A:+5V,K:GND)

const byte satir = 4;  //rows
const byte sutun = 4;  //columbs
char sifre[4] = {'3', '3', '3', '3'}; 
char sifre1[4]; 
char tus;  
int i = 0;  
char tus_takimi[4][4] = {  
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};

byte satir_pins[4] = {A0, A1, A2, A3};  
byte sutun_pins[4] = {A4, A5, 3, 2};    

Keypad tuss_takimi = Keypad(makeKeymap(tus_takimi), satir_pins, sutun_pins, 4, 4);  


byte customChar9[8] = { 
  
  0b11111, 
  0b11111,
  0b11111,  
  0b11111,
  0b11111,
  0b11111,
  0b11111,
  0b11111
};
byte customChar8[8] = {
  0b11110,
  0b11110,
  0b11110,
  0b11110,
  0b11110,
  0b11110,
  0b11110,
  0b11110
};
byte customChar7[8] = {
  0b11100,
  0b11100,
  0b11100,
  0b11100,
  0b11100,
  0b11100,
  0b11100,
  0b11100
};
byte customChar6[8] = {
  0b11000,
  0b11000,
  0b11000,
  0b11000,
  0b11000,
  0b11000,
  0b11000,
  0b11000
};
byte customChar5[8] = {
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10000,
  0b10000
};
byte customChar4[8] = {
  0b00001,
  0b00011,
  0b00011,
  0b00111,
  0b00111,
  0b01111,
  0b01111,
  0b11111
};
byte customChar3[8] = {
  0b00000,
  0b00010,
  0b00010,
  0b00110,
  0b00110,
  0b01110,
  0b01110,
  0b11110
};
byte customChar2[8] = {
  0b00000,
  0b00000,
  0b00000,
  0b00100,
  0b00100,
  0b01100,
  0b01100,
  0b11100
};
byte customChar1[8] = {
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b01000,
  0b01000,
  0b11000
};

byte customChar0[8] = {
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b00000,
  0b10000
};

void setup() {
  pinMode(role, OUTPUT);
  servo.attach(13);
  pinMode(yled, OUTPUT);  
  pinMode(buzzer, OUTPUT);
  pinMode(kled, OUTPUT);
  lcd.createChar(0, customChar0);
  lcd.createChar(1, customChar1);
  lcd.createChar(2, customChar2);
  lcd.createChar(3, customChar3);
  lcd.createChar(4, customChar4);
  lcd.createChar(5, customChar5);
  lcd.createChar(6, customChar6);
  lcd.createChar(7, customChar7);
  lcd.createChar(8, customChar8);
  lcd.createChar(9, customChar9);
  lcd.begin(16, 2); // LCD BEGAN
  lcd.clear();  //Clear screen
  lcd.clear();
  lcd.setCursor(1, 0);
  lcd.print("AYLAS");//Clear screen
  
  for (int i = 1; i <= 13; i++)  //baslangic efecti
  {


    for (int k = 6; k <= 9; k++)
    {
      lcd.setCursor(i, 1); lcd.write((uint8_t)k);
      delay(100);

    }

  }

  lcd.clear();
  lcd.setCursor(0, 0); 
  lcd.print("Hasan Aylas");
  lcd.setCursor(0, 1);
  lcd.print("SIFRELI KAPI");   
  delay(2000);
  lcd.clear();  
  lcd.setCursor(0, 0); 
  lcd.print("SIFREYI GIRINIZ:");    
  Serial.begin(9600);
  Serial.println("Hos geldiniz");   
  Serial.println("Sifreyi giriniz");  
}

void loop() {
  servo.write(0);
  
digitalWrite(kled,LOW);
digitalWrite(yled,LOW);
  tus = tuss_takimi.getKey();  

  if (tus)   
  {
    sifre1[i++] = tus; 

    lcd.setCursor(i, 1); 
    lcd.print("*");   
    digitalWrite(buzzer,HIGH);
delay(100);
digitalWrite(buzzer,LOW);// 
  }

  if (i == 4)
  { delay(200);
    char sifre[4] = {'3', '3', '3', '3'}; 
 
    if ((strncmp(sifre1, sifre, 4) == 0))  
    {
      lcd.clear();
      lcd.setCursor(0, 0);
      servo.write(180);
      lcd.print("SIFRE DOGRU!"); 
      digitalWrite(yled, HIGH);
      digitalWrite(role,HIGH);   //  //röle pinine high veriyoruz böylece no com ucuna bağladığınız hattan akım geçmez, ama nc com ile bağlantı yaparsanız bu durumda akım geçer.
      delay(2000); // 2 Saniye Bekle 
      digitalWrite(role, LOW); // röle pinine low veriyoruz böylece no com ucuna bağladığınız hattan akım geçer, ama nc com ile bağlantı yaparsanız bu durumda akım geçmez.
      delay(2000);
      digitalWrite(kled, LOW);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(100);
      digitalWrite(buzzer, HIGH);
      delay(100);
      digitalWrite(buzzer, LOW);
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 0); 
      lcd.print("SIFREYI GIRINIZ");  
      i = 0;
    }

    else
    {
      lcd.clear();
      lcd.setCursor(0, 0); 
      lcd.print("SIFRE YANLIS!!!");  
      digitalWrite(yled, LOW);
      digitalWrite(kled, HIGH);
      digitalWrite(buzzer, HIGH);
      delay(1000);
      digitalWrite(buzzer, LOW);
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 0); 
      lcd.print("SIFREYI GIRINIZ"); //şifre :
      i = 0;
    }
  }
}

Ardinio Hocam Youtube kanalana teşekkür edererim.

1 comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir