Marvas / Mbed 2 deprecated guvenlik_sistemi

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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "MFRC522.h"
00003 #include "TextLCD.h"
00004 #include "Keypad.h"
00005 #include "rtos.h"
00006 #include <string.h>
00007 #include <iostream>
00008 #include "SDFileSystem.h"
00009 #include "DHT11.h"
00010 #include "wave_player.h"
00011 //Thread sicaklik;
00012 //https://audio.online-convert.com/convert-to-wav
00013 Timer isizaman;
00014  volatile char deger;//değişken bütün bloklarda kullanılabilecek şekle geldi. Public yapıldı
00015  DHT11 isi(D9);
00016 
00017 AnalogOut DACout(PA_4);
00018 wave_player waver(&DACout);
00019 
00020 SDFileSystem sd(PC_12, PC_11, PC_10, PD_2, "sd"); // mosi, miso, sclk, cs(scl)
00021 DigitalOut lamba(PA_13);//sinyal pini pa_13
00022 DigitalOut klima(PA_14);
00023 AnalogIn ldr(A5);
00024 float ldroku;
00025 unsigned char c;    
00026 
00027 Serial pc(USBTX,USBRX);
00028 Serial bt(A0,A1);
00029 char gelen[10]={0}; ;//10 adet kapasiteli değişken tanımlandı
00030 char metinbt[10];
00031 string veri;
00032 uint8_t  sayacbt=0;
00033 uint8_t abt,pckontrol=0;
00034 TextLCD lcd(D7, D6, D5, D4, D3, D2); // rs, e, d4-d7
00035 DigitalOut led(LED1);
00036 void girismetot();
00037 
00038 
00039 char x,sifre[4];
00040 uint8_t sayac=0;
00041 char key_table[] = { '1', '2', '3', 'A',
00042                      '4', '5', '6', 'B',
00043                      '7', '8', '9', 'C',
00044                      '*', '0', '#', 'D'
00045                    };
00046 
00047 //KL25Z Pins for MFRC522 SPI interface
00048 #define SPI_MOSI    D11
00049 #define SPI_MISO    D12
00050 #define SPI_SCLK    D13
00051 #define SPI_CS      D10//sda
00052 // KL25Z Pin for MFRC522 reset
00053 #define MF_RESET    A0//rsT
00054 // KL25Z Pins for Debug UART port
00055 
00056 DigitalOut bzr(PC_8);
00057 MFRC522    RfChip   (SPI_MOSI, SPI_MISO, SPI_SCLK, SPI_CS, MF_RESET);
00058 
00059 void girismetot()
00060 {
00061          FILE *wave_file;   
00062     wave_file=fopen("/sd/hosgeldiniz.wav","r");
00063     waver.play(wave_file);
00064     fclose(wave_file);
00065        time_t seconds = time(NULL);
00066     lamba=0;
00067     lcd.cls();
00068     printf("\n Giris basarili");
00069     lcd.printf("Giris basarili");
00070     for (int i = 0; i < 1000; i++ ) { //frekans oluşturuldu
00071         // 1 / 2000 = 500uS, 250us + 250us - olacak. 50% duty cycle
00072         bzr=1;
00073         wait_us(200);
00074         bzr=0;
00075         wait_us(200);
00076     }
00077     sayac=0;
00078     for(uint8_t x=0; x<4; x++) {
00079         sifre[x]=0;
00080     }
00081     wait(2);
00082     lcd.cls();
00083         ldroku=ldr.read();
00084   if(ldroku<0.50)
00085   lamba=1;
00086   else
00087   lamba=0;
00088   if(deger>30)
00089   klima=1;
00090   else
00091   klima=0;
00092   //sd karta yazma
00093   FILE *fp = fopen("/sd/ornek.txt", "a");
00094     if(fp == NULL) {
00095         error("Yazma icin dosya acilamadi \n");
00096     }
00097      else
00098     {
00099     
00100              fprintf(fp, "%s,\n Giris yapan: %X,%X,%X,%X",ctime(&seconds),RfChip.uid.uidByte[0],RfChip.uid.uidByte[1],RfChip.uid.uidByte[2],RfChip.uid.uidByte[3]);
00101         
00102   
00103     fclose(fp); //Dosya kapat
00104  
00105     pc.printf("Yazma islemi bitti! \n");
00106     
00107            pc.printf("Okuma islemi basladi! \n");          
00108       FILE *fpr = fopen("/sd/ornek.txt", "r");
00109       //Okunacak dosya seçildi  
00110  
00111  //file end of. Okuma işlemi bitene kadar devam et. 
00112  //Dosya sonuna kadar okumaya devam et.
00113       while (!feof(fpr)){                    
00114            c=fgetc(fpr);                        
00115            printf("%c",c);
00116       }
00117       fclose(fpr);   
00118       }  
00119 }
00120 /*
00121 void sicaklikmetodu()
00122 {
00123     while(1)
00124     {
00125          deger = isi.readData();
00126           pc.printf("T:%d, H:%d\r\n", isi.readTemperature(), isi.readHumidity());
00127            wait(2);
00128         }
00129     }*/
00130 int main(void)
00131 { //set_time(1558438679); 
00132   isizaman.start();
00133       pc.baud(38400);
00134  
00135     bt.baud(38400);
00136     wait(1);
00137         //sicaklik.start(sicaklikmetodu);
00138  mkdir("/sd", 0777);
00139     Keypad key(PC_4, PB_13, PB_14, PB_15, PB_1, PB_2, PB_12, PA_11);
00140     uint32_t key_num;
00141     // Init. RC522 Chip
00142     RfChip.PCD_Init();
00143 
00144     while (true) {
00145        
00146         while ((key_num = key.read()) != 0) {
00147             sifre[sayac]=*(key_table + key_num-1);
00148             
00149             lcd.locate(sayac,1);
00150             lcd.printf("*");
00151             sayac++;
00152             if(sayac==3)
00153             if(sifre[0]=='1' && sifre[1]=='2' && sifre[2]=='3' && sifre[3]=='A') {
00154                 girismetot();
00155 
00156             } else if(sifre[0]!='1' && sifre[1]!='2' && sifre[2]!='3' && sifre[3]!='A')
00157                 lcd.printf("Giris basarisiz");
00158 
00159             printf("%c\n", *(key_table + key_num-1));
00160             // sayi[0]=*(key_table + key_num-1); printf("%f",sayi[0]);
00161         }
00162         // Look for new cards
00163         if ( ! RfChip.PICC_IsNewCardPresent()) {
00164                   time_t seconds = time(NULL);
00165                if(pc.readable()>0 ){//seri portta veri varmı?
00166   veri=pc.getc();
00167     pc.printf("%c",veri); 
00168             /*pc.scanf("%s",gelen);
00169            pc.printf("%s \n",gelen);*/
00170 
00171         }
00172      
00173       if(isizaman.read()>2)
00174       {
00175           
00176            lcd.locate(0,0);
00177            deger = isi.readData();
00178           lcd.printf("ISI:%d, NEM:%d", isi.readTemperature(), isi.readHumidity());
00179           lcd.printf("  ");
00180            isizaman.reset();
00181           }
00182     
00183             continue;
00184         }
00185 
00186         // Select one of the cards
00187         if ( ! RfChip.PICC_ReadCardSerial()) {
00188             wait_ms(500);
00189             continue;
00190         }
00191 
00192 
00193         // Print Card UID
00194         printf("Card UID: ");
00195         for (uint8_t i = 0; i < RfChip.uid.size; i++) {
00196             printf(" %X", RfChip.uid.uidByte[i]);
00197         }
00198         if(RfChip.uid.uidByte[0]==0x93 && RfChip.uid.uidByte[1]==0x84 && RfChip.uid.uidByte[2]==0xB7 && RfChip.uid.uidByte[3]==0x2E)
00199 
00200         {
00201             girismetot();
00202         } else
00203             printf("\n Giris basarisiz!!!");
00204         printf("\n\r");
00205 
00206         // Print Card type
00207         uint8_t piccType = RfChip.PICC_GetType(RfChip.uid.sak);
00208         printf("PICC Type: %s \n\r", RfChip.PICC_GetTypeName(piccType));
00209        
00210     }
00211 }