guvenlik sistemi
Dependencies: mbed wave_player mbed-rtos MFRC522 SDFileSystem TextLCD keypad DHT11
main.cpp@0:d20cd68db570, 2019-05-21 (annotated)
- Committer:
- marvas
- Date:
- Tue May 21 11:50:19 2019 +0000
- Revision:
- 0:d20cd68db570
- Child:
- 1:f01aa6d55b26
guvenlik sistemi
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marvas | 0:d20cd68db570 | 1 | #include "mbed.h" |
marvas | 0:d20cd68db570 | 2 | #include "MFRC522.h" |
marvas | 0:d20cd68db570 | 3 | #include "TextLCD.h" |
marvas | 0:d20cd68db570 | 4 | #include "Keypad.h" |
marvas | 0:d20cd68db570 | 5 | #include "rtos.h" |
marvas | 0:d20cd68db570 | 6 | #include <string.h> |
marvas | 0:d20cd68db570 | 7 | #include <iostream> |
marvas | 0:d20cd68db570 | 8 | #include "SDFileSystem.h" |
marvas | 0:d20cd68db570 | 9 | SDFileSystem sd(PC_12, PC_11, PC_10, PD_2, "sd"); // mosi, miso, sclk, cs(scl) |
marvas | 0:d20cd68db570 | 10 | DigitalOut lamba(PA_13);//sinyal pini pa_13 |
marvas | 0:d20cd68db570 | 11 | DigitalOut klima(PA_14); |
marvas | 0:d20cd68db570 | 12 | AnalogIn ldr(A5); |
marvas | 0:d20cd68db570 | 13 | float ldroku; |
marvas | 0:d20cd68db570 | 14 | unsigned char c; |
marvas | 0:d20cd68db570 | 15 | |
marvas | 0:d20cd68db570 | 16 | Thread btt; |
marvas | 0:d20cd68db570 | 17 | Serial pc(USBTX,USBRX); |
marvas | 0:d20cd68db570 | 18 | Serial bt(A0,A1); |
marvas | 0:d20cd68db570 | 19 | char gelen[10]={0}; ;//10 adet kapasiteli değişken tanımlandı |
marvas | 0:d20cd68db570 | 20 | char metinbt[10]; |
marvas | 0:d20cd68db570 | 21 | string veri; |
marvas | 0:d20cd68db570 | 22 | uint8_t sayacbt=0; |
marvas | 0:d20cd68db570 | 23 | uint8_t abt,pckontrol=0; |
marvas | 0:d20cd68db570 | 24 | TextLCD lcd(D7, D6, D5, D4, D3, D2); // rs, e, d4-d7 |
marvas | 0:d20cd68db570 | 25 | DigitalOut led(LED1); |
marvas | 0:d20cd68db570 | 26 | void girismetot(); |
marvas | 0:d20cd68db570 | 27 | |
marvas | 0:d20cd68db570 | 28 | |
marvas | 0:d20cd68db570 | 29 | char x,sifre[4]; |
marvas | 0:d20cd68db570 | 30 | uint8_t sayac=0; |
marvas | 0:d20cd68db570 | 31 | char key_table[] = { '1', '2', '3', 'A', |
marvas | 0:d20cd68db570 | 32 | '4', '5', '6', 'B', |
marvas | 0:d20cd68db570 | 33 | '7', '8', '9', 'C', |
marvas | 0:d20cd68db570 | 34 | '*', '0', '#', 'D' |
marvas | 0:d20cd68db570 | 35 | }; |
marvas | 0:d20cd68db570 | 36 | |
marvas | 0:d20cd68db570 | 37 | //KL25Z Pins for MFRC522 SPI interface |
marvas | 0:d20cd68db570 | 38 | #define SPI_MOSI D11 |
marvas | 0:d20cd68db570 | 39 | #define SPI_MISO D12 |
marvas | 0:d20cd68db570 | 40 | #define SPI_SCLK D13 |
marvas | 0:d20cd68db570 | 41 | #define SPI_CS D10//sda |
marvas | 0:d20cd68db570 | 42 | // KL25Z Pin for MFRC522 reset |
marvas | 0:d20cd68db570 | 43 | #define MF_RESET A0//rsT |
marvas | 0:d20cd68db570 | 44 | // KL25Z Pins for Debug UART port |
marvas | 0:d20cd68db570 | 45 | |
marvas | 0:d20cd68db570 | 46 | DigitalOut bzr(PC_8); |
marvas | 0:d20cd68db570 | 47 | MFRC522 RfChip (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET); |
marvas | 0:d20cd68db570 | 48 | |
marvas | 0:d20cd68db570 | 49 | void girismetot() |
marvas | 0:d20cd68db570 | 50 | { |
marvas | 0:d20cd68db570 | 51 | time_t seconds = time(NULL); |
marvas | 0:d20cd68db570 | 52 | lamba=0; |
marvas | 0:d20cd68db570 | 53 | lcd.cls(); |
marvas | 0:d20cd68db570 | 54 | printf("\n Giris basarili"); |
marvas | 0:d20cd68db570 | 55 | lcd.printf("Giris basarili"); |
marvas | 0:d20cd68db570 | 56 | for (int i = 0; i < 1000; i++ ) { //frekans oluşturuldu |
marvas | 0:d20cd68db570 | 57 | // 1 / 2000 = 500uS, 250us + 250us - olacak. 50% duty cycle |
marvas | 0:d20cd68db570 | 58 | bzr=1; |
marvas | 0:d20cd68db570 | 59 | wait_us(200); |
marvas | 0:d20cd68db570 | 60 | bzr=0; |
marvas | 0:d20cd68db570 | 61 | wait_us(200); |
marvas | 0:d20cd68db570 | 62 | } |
marvas | 0:d20cd68db570 | 63 | sayac=0; |
marvas | 0:d20cd68db570 | 64 | for(uint8_t x=0; x<4; x++) { |
marvas | 0:d20cd68db570 | 65 | sifre[x]=0; |
marvas | 0:d20cd68db570 | 66 | } |
marvas | 0:d20cd68db570 | 67 | wait(2); |
marvas | 0:d20cd68db570 | 68 | lcd.cls(); |
marvas | 0:d20cd68db570 | 69 | ldroku=ldr.read(); |
marvas | 0:d20cd68db570 | 70 | if(ldroku<0.50) |
marvas | 0:d20cd68db570 | 71 | lamba=1; |
marvas | 0:d20cd68db570 | 72 | else |
marvas | 0:d20cd68db570 | 73 | lamba=0; |
marvas | 0:d20cd68db570 | 74 | |
marvas | 0:d20cd68db570 | 75 | //sd karta yazma |
marvas | 0:d20cd68db570 | 76 | FILE *fp = fopen("/sd/ornek.txt", "w"); |
marvas | 0:d20cd68db570 | 77 | if(fp == NULL) { |
marvas | 0:d20cd68db570 | 78 | error("Yazma icin dosya acilamadi \n"); |
marvas | 0:d20cd68db570 | 79 | } |
marvas | 0:d20cd68db570 | 80 | else |
marvas | 0:d20cd68db570 | 81 | { |
marvas | 0:d20cd68db570 | 82 | |
marvas | 0:d20cd68db570 | 83 | fprintf(fp, "%s,%x",ctime(&seconds),RfChip.uid.uidByte[0]); |
marvas | 0:d20cd68db570 | 84 | |
marvas | 0:d20cd68db570 | 85 | |
marvas | 0:d20cd68db570 | 86 | fclose(fp); //Dosya kapat |
marvas | 0:d20cd68db570 | 87 | |
marvas | 0:d20cd68db570 | 88 | pc.printf("Yazma islemi bitti! \n"); |
marvas | 0:d20cd68db570 | 89 | |
marvas | 0:d20cd68db570 | 90 | pc.printf("Okuma islemi basladi! \n"); |
marvas | 0:d20cd68db570 | 91 | FILE *fpr = fopen("/sd/ornek.txt", "r"); |
marvas | 0:d20cd68db570 | 92 | //Okunacak dosya seçildi |
marvas | 0:d20cd68db570 | 93 | |
marvas | 0:d20cd68db570 | 94 | //file end of. Okuma işlemi bitene kadar devam et. |
marvas | 0:d20cd68db570 | 95 | //Dosya sonuna kadar okumaya devam et. |
marvas | 0:d20cd68db570 | 96 | while (!feof(fpr)){ |
marvas | 0:d20cd68db570 | 97 | c=fgetc(fpr); |
marvas | 0:d20cd68db570 | 98 | printf("%c",c); |
marvas | 0:d20cd68db570 | 99 | } |
marvas | 0:d20cd68db570 | 100 | fclose(fpr); |
marvas | 0:d20cd68db570 | 101 | } |
marvas | 0:d20cd68db570 | 102 | } |
marvas | 0:d20cd68db570 | 103 | int main(void) |
marvas | 0:d20cd68db570 | 104 | { //set_time(1558438679); |
marvas | 0:d20cd68db570 | 105 | |
marvas | 0:d20cd68db570 | 106 | pc.baud(38400); |
marvas | 0:d20cd68db570 | 107 | |
marvas | 0:d20cd68db570 | 108 | bt.baud(38400); |
marvas | 0:d20cd68db570 | 109 | mkdir("/sd", 0777); |
marvas | 0:d20cd68db570 | 110 | Keypad key(PC_4, PB_13, PB_14, PB_15, PB_1, PB_2, PB_12, PA_11); |
marvas | 0:d20cd68db570 | 111 | uint32_t key_num; |
marvas | 0:d20cd68db570 | 112 | // Init. RC522 Chip |
marvas | 0:d20cd68db570 | 113 | RfChip.PCD_Init(); |
marvas | 0:d20cd68db570 | 114 | |
marvas | 0:d20cd68db570 | 115 | while (true) { |
marvas | 0:d20cd68db570 | 116 | |
marvas | 0:d20cd68db570 | 117 | while ((key_num = key.read()) != 0) { |
marvas | 0:d20cd68db570 | 118 | sifre[sayac]=*(key_table + key_num-1); |
marvas | 0:d20cd68db570 | 119 | sayac++; |
marvas | 0:d20cd68db570 | 120 | lcd.printf("*"); |
marvas | 0:d20cd68db570 | 121 | if(sifre[0]=='1' && sifre[1]=='2' && sifre[2]=='3' && sifre[3]=='A') { |
marvas | 0:d20cd68db570 | 122 | girismetot(); |
marvas | 0:d20cd68db570 | 123 | |
marvas | 0:d20cd68db570 | 124 | } else if(sifre[0]!='1' && sifre[1]!='2' && sifre[2]!='3' && sifre[3]!='A') |
marvas | 0:d20cd68db570 | 125 | lcd.printf("Giris basarisiz"); |
marvas | 0:d20cd68db570 | 126 | |
marvas | 0:d20cd68db570 | 127 | printf("%c\n", *(key_table + key_num-1)); |
marvas | 0:d20cd68db570 | 128 | // sayi[0]=*(key_table + key_num-1); printf("%f",sayi[0]); |
marvas | 0:d20cd68db570 | 129 | } |
marvas | 0:d20cd68db570 | 130 | // Look for new cards |
marvas | 0:d20cd68db570 | 131 | if ( ! RfChip.PICC_IsNewCardPresent()) { |
marvas | 0:d20cd68db570 | 132 | time_t seconds = time(NULL); |
marvas | 0:d20cd68db570 | 133 | while(pc.readable()>0 ){//seri portta veri varmı? |
marvas | 0:d20cd68db570 | 134 | veri=pc.getc(); |
marvas | 0:d20cd68db570 | 135 | pc.printf("%s",veri); |
marvas | 0:d20cd68db570 | 136 | /*pc.scanf("%s",gelen); |
marvas | 0:d20cd68db570 | 137 | pc.printf("%s \n",gelen);*/ |
marvas | 0:d20cd68db570 | 138 | |
marvas | 0:d20cd68db570 | 139 | } |
marvas | 0:d20cd68db570 | 140 | |
marvas | 0:d20cd68db570 | 141 | continue; |
marvas | 0:d20cd68db570 | 142 | } |
marvas | 0:d20cd68db570 | 143 | |
marvas | 0:d20cd68db570 | 144 | // Select one of the cards |
marvas | 0:d20cd68db570 | 145 | if ( ! RfChip.PICC_ReadCardSerial()) { |
marvas | 0:d20cd68db570 | 146 | wait_ms(500); |
marvas | 0:d20cd68db570 | 147 | continue; |
marvas | 0:d20cd68db570 | 148 | } |
marvas | 0:d20cd68db570 | 149 | |
marvas | 0:d20cd68db570 | 150 | |
marvas | 0:d20cd68db570 | 151 | // Print Card UID |
marvas | 0:d20cd68db570 | 152 | printf("Card UID: "); |
marvas | 0:d20cd68db570 | 153 | for (uint8_t i = 0; i < RfChip.uid.size; i++) { |
marvas | 0:d20cd68db570 | 154 | printf(" %X", RfChip.uid.uidByte[i]); |
marvas | 0:d20cd68db570 | 155 | } |
marvas | 0:d20cd68db570 | 156 | if(RfChip.uid.uidByte[0]==0x93 && RfChip.uid.uidByte[1]==0x84 && RfChip.uid.uidByte[2]==0xB7 && RfChip.uid.uidByte[3]==0x2E) |
marvas | 0:d20cd68db570 | 157 | |
marvas | 0:d20cd68db570 | 158 | { |
marvas | 0:d20cd68db570 | 159 | girismetot(); |
marvas | 0:d20cd68db570 | 160 | } else |
marvas | 0:d20cd68db570 | 161 | printf("\n Giris basarisiz!!!"); |
marvas | 0:d20cd68db570 | 162 | printf("\n\r"); |
marvas | 0:d20cd68db570 | 163 | |
marvas | 0:d20cd68db570 | 164 | // Print Card type |
marvas | 0:d20cd68db570 | 165 | uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak); |
marvas | 0:d20cd68db570 | 166 | printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType)); |
marvas | 0:d20cd68db570 | 167 | wait_ms(500); |
marvas | 0:d20cd68db570 | 168 | } |
marvas | 0:d20cd68db570 | 169 | } |