guvenlik sistemi

Dependencies:   mbed wave_player mbed-rtos MFRC522 SDFileSystem TextLCD keypad DHT11

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?

UserRevisionLine numberNew 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 }