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