kapi guvenlik uygulamasi(RFID,KEypad,LCD,BUZZER,ROLE)
Dependencies: mbed MFRC522 TextLCD keypad
main.cpp@1:cb5c15635617, 2019-12-15 (annotated)
- Committer:
- marvas
- Date:
- Sun Dec 15 06:44:00 2019 +0000
- Revision:
- 1:cb5c15635617
- Parent:
- 0:568acc58974f
- Child:
- 2:961790ab9dbb
kapi guvenlik uygulamasi(RFID,KEypad,LCD,BUZZER,ROLE)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
detay | 0:568acc58974f | 1 | #include "mbed.h" |
detay | 0:568acc58974f | 2 | #include "TextLCD.h" |
detay | 0:568acc58974f | 3 | #include "Keypad.h" |
marvas | 1:cb5c15635617 | 4 | #include <iostream> |
marvas | 1:cb5c15635617 | 5 | #include "MFRC522.h" |
marvas | 1:cb5c15635617 | 6 | |
marvas | 1:cb5c15635617 | 7 | //KL25Z Pins for MFRC522 SPI interface |
marvas | 1:cb5c15635617 | 8 | #define SPI_MOSI PA_7 //Master output slave input |
marvas | 1:cb5c15635617 | 9 | #define SPI_MISO PA_6 //Master input slave Output |
marvas | 1:cb5c15635617 | 10 | #define SPI_SCLK PA_5 //SCK Clock pulse saat darbesi |
marvas | 1:cb5c15635617 | 11 | #define SPI_CS PB_6 //SDA data pini |
marvas | 1:cb5c15635617 | 12 | // KL25Z Pin for MFRC522 reset |
marvas | 1:cb5c15635617 | 13 | #define MF_RESET PC_7 //RST |
marvas | 1:cb5c15635617 | 14 | |
marvas | 1:cb5c15635617 | 15 | MFRC522 RfChip(SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET); |
marvas | 1:cb5c15635617 | 16 | DigitalOut bzr(PB_7); |
marvas | 1:cb5c15635617 | 17 | DigitalOut role(PA_5); |
marvas | 1:cb5c15635617 | 18 | char sifre[4]; |
marvas | 1:cb5c15635617 | 19 | uint8_t sayac=0; |
marvas | 1:cb5c15635617 | 20 | uint8_t hata=3; |
marvas | 1:cb5c15635617 | 21 | char basilantus; |
detay | 0:568acc58974f | 22 | TextLCD lcd(PB_0,PA_4,PC_3,PC_2,PB_3,PA_10); |
detay | 0:568acc58974f | 23 | Keypad key(PC_12, PC_10, PC_11,PD_2,PA_13,PA_14,PA_15,PC_8); |
marvas | 1:cb5c15635617 | 24 | char key_table[] = { |
marvas | 1:cb5c15635617 | 25 | '1', '2', '3', 'A', |
marvas | 1:cb5c15635617 | 26 | '4', '5', '6', 'B', |
marvas | 1:cb5c15635617 | 27 | '7', '8', '9', 'C', |
marvas | 1:cb5c15635617 | 28 | '*', '0', '#', 'D' |
detay | 0:568acc58974f | 29 | }; |
marvas | 1:cb5c15635617 | 30 | |
marvas | 1:cb5c15635617 | 31 | void hatametodu() |
marvas | 1:cb5c15635617 | 32 | { |
detay | 0:568acc58974f | 33 | |
marvas | 1:cb5c15635617 | 34 | lcd.cls(); |
marvas | 1:cb5c15635617 | 35 | bzr=0; |
marvas | 1:cb5c15635617 | 36 | role=0; |
marvas | 1:cb5c15635617 | 37 | lcd.printf("Giris basarisiz"); |
marvas | 1:cb5c15635617 | 38 | for(uint8_t x=0; x<20; x++) { |
marvas | 1:cb5c15635617 | 39 | bzr=1; |
marvas | 1:cb5c15635617 | 40 | wait_ms(50); |
marvas | 1:cb5c15635617 | 41 | bzr=0; |
marvas | 1:cb5c15635617 | 42 | wait_ms(10); |
marvas | 1:cb5c15635617 | 43 | } |
marvas | 1:cb5c15635617 | 44 | hata--; |
marvas | 1:cb5c15635617 | 45 | if(hata==0) { |
marvas | 1:cb5c15635617 | 46 | lcd.cls(); |
marvas | 1:cb5c15635617 | 47 | hata=3; |
marvas | 1:cb5c15635617 | 48 | for(uint8_t sure=10; sure>0; sure--) { |
marvas | 1:cb5c15635617 | 49 | lcd.locate(0,0); |
marvas | 1:cb5c15635617 | 50 | lcd.printf("%d",sure); |
marvas | 1:cb5c15635617 | 51 | lcd.printf(" "); |
marvas | 1:cb5c15635617 | 52 | wait(1); |
marvas | 1:cb5c15635617 | 53 | } |
marvas | 1:cb5c15635617 | 54 | |
marvas | 1:cb5c15635617 | 55 | } |
detay | 0:568acc58974f | 56 | } |
detay | 0:568acc58974f | 57 | |
marvas | 1:cb5c15635617 | 58 | int main() |
marvas | 1:cb5c15635617 | 59 | { |
marvas | 1:cb5c15635617 | 60 | // Init. RC522 Chip |
marvas | 1:cb5c15635617 | 61 | RfChip.PCD_Init(); |
marvas | 1:cb5c15635617 | 62 | uint32_t key_num; |
marvas | 1:cb5c15635617 | 63 | while(true) { |
marvas | 1:cb5c15635617 | 64 | |
marvas | 1:cb5c15635617 | 65 | while ((key_num = key.read()) != 0) { |
marvas | 1:cb5c15635617 | 66 | bzr=1; |
marvas | 1:cb5c15635617 | 67 | wait_ms(10); |
marvas | 1:cb5c15635617 | 68 | bzr=0; |
marvas | 1:cb5c15635617 | 69 | sifre[sayac]=*(key_table + key_num-1); |
marvas | 1:cb5c15635617 | 70 | sayac++; |
marvas | 1:cb5c15635617 | 71 | lcd.printf("*"); |
marvas | 1:cb5c15635617 | 72 | cout<<*(key_table + key_num-1)<<endl; |
marvas | 1:cb5c15635617 | 73 | if(sayac==4) { |
marvas | 1:cb5c15635617 | 74 | sayac=0; |
marvas | 1:cb5c15635617 | 75 | if(sifre[0]=='1' && sifre[1]=='2' && sifre[2]=='3' && sifre[3]=='A') { |
marvas | 1:cb5c15635617 | 76 | role=1; |
marvas | 1:cb5c15635617 | 77 | hata=3; |
marvas | 1:cb5c15635617 | 78 | lcd.cls(); |
marvas | 1:cb5c15635617 | 79 | lcd.printf("Giris basarili"); |
marvas | 1:cb5c15635617 | 80 | wait(3); |
marvas | 1:cb5c15635617 | 81 | role=0; |
marvas | 1:cb5c15635617 | 82 | lcd.cls(); |
marvas | 1:cb5c15635617 | 83 | } else { |
marvas | 1:cb5c15635617 | 84 | hatametodu(); |
marvas | 1:cb5c15635617 | 85 | } |
marvas | 1:cb5c15635617 | 86 | lcd.cls(); |
marvas | 1:cb5c15635617 | 87 | }//if(sayac==4) { |
marvas | 1:cb5c15635617 | 88 | |
marvas | 1:cb5c15635617 | 89 | }// while ((key_num = key.read()) != 0) { |
marvas | 1:cb5c15635617 | 90 | |
marvas | 1:cb5c15635617 | 91 | // Look for new cards |
marvas | 1:cb5c15635617 | 92 | if ( ! RfChip.PICC_IsNewCardPresent()) { |
marvas | 1:cb5c15635617 | 93 | wait_ms(100); |
marvas | 1:cb5c15635617 | 94 | continue; |
marvas | 1:cb5c15635617 | 95 | } |
marvas | 1:cb5c15635617 | 96 | |
marvas | 1:cb5c15635617 | 97 | |
marvas | 1:cb5c15635617 | 98 | |
marvas | 1:cb5c15635617 | 99 | // Select one of the cards |
marvas | 1:cb5c15635617 | 100 | if ( ! RfChip.PICC_ReadCardSerial()) { |
marvas | 1:cb5c15635617 | 101 | wait_ms(100); |
marvas | 1:cb5c15635617 | 102 | continue; |
marvas | 1:cb5c15635617 | 103 | } |
marvas | 1:cb5c15635617 | 104 | |
marvas | 1:cb5c15635617 | 105 | // Print Card UID |
marvas | 1:cb5c15635617 | 106 | printf("Kart ID: "); |
marvas | 1:cb5c15635617 | 107 | for (uint8_t i = 0; i < RfChip.uid.size; i++) { |
marvas | 1:cb5c15635617 | 108 | printf(" %X", RfChip.uid.uidByte[i]); |
marvas | 1:cb5c15635617 | 109 | } |
marvas | 1:cb5c15635617 | 110 | printf("\n"); |
marvas | 1:cb5c15635617 | 111 | |
marvas | 1:cb5c15635617 | 112 | //kendi kartınızı id'si olacak |
marvas | 1:cb5c15635617 | 113 | if(RfChip.uid.uidByte[0]==0x76 && RfChip.uid.uidByte[1]==0x45 && RfChip.uid.uidByte[2]==0x55 && RfChip.uid.uidByte[3]==0xF5) { |
marvas | 1:cb5c15635617 | 114 | hata=3; |
marvas | 1:cb5c15635617 | 115 | bzr=1; |
marvas | 1:cb5c15635617 | 116 | lcd.cls(); |
marvas | 1:cb5c15635617 | 117 | lcd.printf("Hosgeldiniz Ayse"); |
marvas | 1:cb5c15635617 | 118 | wait(2); |
marvas | 1:cb5c15635617 | 119 | bzr=0; |
marvas | 1:cb5c15635617 | 120 | lcd.cls(); |
marvas | 1:cb5c15635617 | 121 | } else { |
marvas | 1:cb5c15635617 | 122 | hatametodu(); |
marvas | 1:cb5c15635617 | 123 | } |
marvas | 1:cb5c15635617 | 124 | |
marvas | 1:cb5c15635617 | 125 | |
marvas | 1:cb5c15635617 | 126 | // Print Card type |
marvas | 1:cb5c15635617 | 127 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
marvas | 1:cb5c15635617 | 128 | printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType)); |
marvas | 1:cb5c15635617 | 129 | |
marvas | 1:cb5c15635617 | 130 | }// while(true) { |
marvas | 1:cb5c15635617 | 131 | |
marvas | 1:cb5c15635617 | 132 | return 0; |
marvas | 1:cb5c15635617 | 133 | }//main |