Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed wave_player mbed-rtos MFRC522 SDFileSystem TextLCD keypad DHT11
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 }
Generated on Thu Jul 14 2022 07:42:59 by
1.7.2