Bank Account Security System
Dependencies: FatFileSystemSD mbed
main.cpp
- Committer:
- Dhruv_Varun
- Date:
- 2012-10-11
- Revision:
- 0:7e4786a3584b
File content as of revision 0:7e4786a3584b:
# include <mbed.h> #include <mpr121.h> #include <string> #include <list> #include <mpr121.h> #include "TextLCD.h" #include <stdio.h> #include <stdlib.h> #include <sstream> #include <iostream> #include "ID12RFID.h" #include "Camera_LS_Y201.h" #include "SDFileSystem.h" TextLCD lcd(p15, p16, p17, p18, p19, p20); //ID12RFID rfid(p14); DigitalOut led1(LED1); DigitalOut led2(LED2); DigitalOut led3(LED3); DigitalOut led4(LED4); bool test1 = false; bool test2 = false; //int a=0; int counter1=0; int Code[4]= {0,0,0,0}; int Code2[4]; int flag=0; int a=0; int b=0; int enter=0; int end=0; int c=0; int chk1=0; int a1=0; int r=0; InterruptIn interrupt(p26); // Setup the i2c bus on pins 9 and 10 I2C i2c(p9, p10); // Setup the Mpr121: // constructor(i2c object, i2c address of the mpr121) Mpr121 mpr121(&i2c, Mpr121::ADD_VSS); ID12RFID rfid(p14); // uart rx #define USE_SDCARD 1 #if USE_SDCARD #define FILENAME "/sd/IMG_%04d.jpg" SDFileSystem fs(p5, p6, p7, p8, "sd"); #else #define FILENAME "/local/IMG_%04d.jpg" LocalFileSystem fs("local"); #endif Camera_LS_Y201 cam1(p28, p27); typedef struct work { FILE *fp; } work_t; work_t work; /** * Callback function for readJpegFileContent. * * @param buf A pointer to a buffer. * @param siz A size of the buffer. */ void callback_func(int done, int total, uint8_t *buf, size_t siz) { fwrite(buf, siz, 1, work.fp); static int n = 0; int tmp = done * 100 / total; if (n != tmp) { n = tmp; lcd.cls(); lcd.printf("Writing...: %3d%%", n); //wait(3); // ////newline(); } } /** * Capture. * * @param cam A pointer to a camera object. * @param filename The file name. * * @return Return 0 if it succeed. */ int capture(Camera_LS_Y201 *cam, char *filename) { /* * Take a picture. */ if (cam->takePicture() != 0) { return -1; } lcd.cls(); lcd.printf("Captured."); wait(3); // //newline(); /* * Open file. */ work.fp = fopen(filename, "wb"); if (work.fp == NULL) { return -2; } /* * Read the content. */ lcd.printf("%s", filename); wait(3); ////newline(); if (cam->readJpegFileContent(callback_func) != 0) { fclose(work.fp); return -3; } fclose(work.fp); /* * Stop taking pictures. */ cam->stopTakingPictures(); return 0; } //DigitalOut led1(LED1); //TextLCD lcd(p15, p16, p17, p18, p19, p20); // rs, e, d4-d7 // Key hit/release interrupt routine void fallInterrupt() { int key_code=0; int i=0; int value=mpr121.read(0x00); value +=mpr121.read(0x01)<<8; // LED demo mod i=0; // puts key number out to LEDs for demo for (i=0; i<12; i++) { if (((value>>i)&0x01)==1) { // led4=0; b=1; key_code=i+1; if(key_code==12) { end=1; c=0; } else if(key_code==11) { enter=1; c=0; } else { //a=i; if(counter1 < 4) { Code[counter1] = i; counter1++; } if(counter1==4) { Code2[0]=Code[0]; Code2[1]=Code[1]; Code2[2]=Code[2]; Code2[3]=Code[3]; Code[0]=0; Code[1]=0; Code[2]=0; Code[3]=0; counter1=0; } c++; } /* led4=key_code & 0x01; led3=(key_code>>1) & 0x01; led2=(key_code>>2) & 0x01; led1=(key_code>>3) & 0x01;*/ led4=1; } //if(led4) //led4=0; } } int main() { interrupt.fall(&fallInterrupt); interrupt.mode(PullUp); while(1) { //Code[4]={0,0,0,0}; lcd.cls(); lcd.printf("Welcome to Chase Bank"); wait(4); lcd.cls(); lcd.printf("Please tap your card"); wait(3); if(rfid.readable()) { lcd.cls(); a=rfid.read(); a1=a; lcd.printf("RFID Tag number : %d\n", a); wait(3); led1=1; } else { lcd.cls(); lcd.printf("card not read properly"); wait(3); a=0; } if(a==36905538 || a==36910393) { test1=true; lcd.cls(); lcd.printf("Valid Card detected\n"); wait(3); lcd.printf("Card ID:- %d",a); wait(3); lcd.cls(); lcd.printf("Level 1 cleared"); wait(2); lcd.cls(); lcd.printf("test1--%d",test1); wait(2); } if(test1 && a!=0) { lcd.cls(); lcd.printf("Enter 4 digit pin code"); wait(10); if(b==1) { //lcd.cls(); if(c==1) { lcd.cls(); lcd.printf("one key pressed"); wait(2); } else if(c==2) { lcd.cls(); lcd.printf("second key pressed"); wait(2); } else if(c==3) { lcd.cls(); lcd.printf("third key pressed"); wait(2); } else if(c==4) { lcd.cls(); lcd.printf("fourth key pressed"); wait(2); lcd.cls(); lcd.printf("press enter to submit"); wait(3); } if(enter) { lcd.cls(); lcd.printf("checking"); wait(2); /*lcd.printf("%d",Code2[3]); wait(3); lcd.printf("a=",a1); wait(2);*/ if(a1==36905538) chk1=40; else if (a1==36910393) chk1=41; if(chk1==40) { if(Code2[0]==1 && Code2[1]==2 && Code2[2]==3 && Code2[3]==4) { lcd.cls(); lcd.printf("PINCODE ACCEPTED"); wait(5); test2=true; lcd.cls(); lcd.printf("LEVEL 2 Cleared"); wait(3); lcd.cls(); lcd.printf("Welcome MR. Db"); wait(4); lcd.cls(); lcd.printf("your amount is 125$"); wait(3); //break; } else { lcd.cls(); lcd.printf("Intruder Alert"); wait(5); ////////////////////start of capture lcd.cls(); lcd.printf("Camera module"); wait(1); //newline(); lcd.cls(); lcd.printf("Resetting..."); wait(1); //newline(); wait(1); if (cam1.reset() == 0) { lcd.cls(); lcd.printf("Reset OK."); wait(1); //////newline(); } else { lcd.cls(); lcd.printf("Reset fail."); wait(2); ////////newline(); error("Reset fail."); } wait(1); int cnt = 0; char fname[64]; snprintf(fname, sizeof(fname) - 1, FILENAME, cnt); int r = capture(&cam1, fname); if (r == 0) { lcd.cls(); lcd.printf("[%04d]:OK.", cnt); ////newline(); led1=1; } else { lcd.cls(); lcd.printf("[%04d]:NG. (code=%d)", cnt, r); ////newline(); error("Failure."); led2=1; } cnt++; ////////////////end of capture while(r!=10) { if(r%2!=0) { led1=1; led2=0; led3=1; led4=0; } if(r%2==0) { led1=0; led2=1; led3=0; led4=1; } r++; wait(1); } if(r==10) r=0; // } break; } } else if(chk1==41) { if(Code2[0]==5 && Code2[1]==6 && Code2[2]==7 && Code2[3]==8) { lcd.cls(); lcd.printf("PINCODE ACCEPTED"); wait(5); test2=true; lcd.printf("LEVEL 2 Cleared"); wait(3); lcd.cls(); lcd.printf("Welcome MR. Db"); wait(4); lcd.printf("your amount is 125$"); wait(3); //break; } else { lcd.cls(); lcd.printf("Intruder Alert"); wait(5); ////////start of capture lcd.cls(); lcd.printf("Camera module"); //newline(); lcd.cls(); lcd.printf("Resetting..."); //newline(); wait(1); if (cam1.reset() == 0) { lcd.cls(); lcd.printf("Reset OK."); wait(2);////newline(); } else { lcd.cls(); lcd.printf("Reset fail."); wait(2);////newline(); error("Reset fail."); } wait(1); int cnt = 0; char fname[64]; snprintf(fname, sizeof(fname) - 1, FILENAME, cnt); int r = capture(&cam1, fname); if (r == 0) { lcd.cls(); lcd.printf("[%04d]:OK.", cnt); wait(2);////newline(); led1=1; } else { lcd.cls(); lcd.printf("[%04d]:NG. (code=%d)", cnt, r); wait(2);////newline(); error("Failure."); led2=1; } cnt++; /////////////end of capture while(r!=10) { if(r%2!=0) { led1=1; led2=0; led3=1; led4=0; } if(r%2==0) { led1=0; led2=1; led3=0; led4=1; } r++; wait(1); } if(r==10) r=0; //break; } } enter=0; } //end of enter else if(end) { lcd.cls(); lcd.printf("ending"); wait(3); end=0; } //end of end }//end of b==1 } } }