The receiver's code for Home Security with RF

Dependencies:   Camera_LS_Y201 SDFileSystem Servo hmac_md5 mbed

main.cpp

Committer:
jsobchuk3
Date:
2014-12-08
Revision:
0:bbfc7c781872

File content as of revision 0:bbfc7c781872:

#include "mbed.h"
#include "Servo.h"
#include "hmac_md5.h"
#include "Camera_LS_Y201.h"
#include "Speaker.h"
AnalogIn ir(p20);
DigitalOut myled2(LED2);
Serial pc(USBTX,USBRX);
Serial rf(p9,p10);
Servo myservo(p23);
Speaker mySpeaker(p18);
Timer t;
int takepic(int);
int camInit(void);

int main() {
    pc.baud(1200);
    rf.baud(1200);
    char code = 0;
    char codebuf[32];
    int cnt = 0;
    int unlocked = 0;
    int matching = 0;
    
    int i =0;
     char key[4] = "Dhr";
    for (i = 0; i < 4; i++) {
        key[i] = (key[i] + 5); 
    }
    char key2[4] = {0};
    key2[0] = key[0];
    key2[1] = key[1];
    key2[2] = key[2];
    for (i = 0; i < 4; i++) {
        key2[i] = (key2[i] + 5); 
    }
    char key3[4] = {0};
    key3[0] = key2[0];
    key3[1] = key2[1];
    key3[2] = key2[2];
    for (i = 0; i < 4; i++) {
        key3[i] = (key3[i] + 5); 
    }

    char received[3] = {0};
    
    camInit(); 
    
    while(1) {
        if (rf.readable()) {
            myled2 = 1;
            matching = 0;
            
            //Ignore Sync pattern and do not pass on to PC
                int i = 0;
                
                //Clear the buffer
                for(i = 0; i < 32; i++) {
                    codebuf[i] = 0;
                }
                
                for(i = 0; i < 32; i++) {
                    code = rf.getc(); 
                    if(code != 0xAA) {
                        codebuf[i] = code;
                        pc.printf("codebuf[%d] = %c\r\n", i, codebuf[i]);
                    }
                }
                
                for(i = 0; i < 30; i++) {
                    if(codebuf[i] == key[0]) {
                        if(codebuf[i+1] == key[1]) {
                            if(codebuf[i+2] == key[2]) {
                                received[0] = codebuf[i];
                                received[1] = codebuf[i+1];
                                received[2] = codebuf[i+2];
                                matching = 1;
                                break;
                            }
                        }
                    }
                    if(codebuf[i] == key2[0]) {
                        if(codebuf[i+1] == key2[1]) {
                            if(codebuf[i+2] == key2[2]) {
                                received[0] = codebuf[i];
                                received[1] = codebuf[i+1];
                                received[2] = codebuf[i+2];
                                matching = 2;
                                break;
                            }
                        }
                    }
                    if(codebuf[i] == key3[0]) {
                        if(codebuf[i+1] == key3[1]) {
                            if(codebuf[i+2] == key3[2]) {
                                received[0] = codebuf[i];
                                received[1] = codebuf[i+1];
                                received[2] = codebuf[i+2];
                                matching = 3;
                                break;
                            }
                        }
                    }
                }
             
                myled2 = 0;
            if(matching) {

                pc.printf("Unlocking door\r\n");
                mySpeaker.PlayNote(800.0, 0.5, 1.0);
                // Turn servo
                myservo = unlocked;
                wait(1);
                unlocked = !unlocked;
                
                if (matching  == 1) {
                    for (i = 0; i < 4; i++) {
                        key[i] = (key[i] + 5); 
                    }
                }
                if (matching  == 2) {
                    for (i = 0; i < 4; i++) {
                        key[i] = (key2[i] + 5); 
                    }
                }
                if (matching  == 3) {
                    for (i = 0; i < 4; i++) {
                        key[i] = (key3[i] + 5); 
                    }
                }
                
                    key2[0] = key[0];
                    key2[1] = key[1];
                    key2[2] = key[2];
                    
                    for (i = 0; i < 4; i++) {
                        key2[i] = (key2[i] + 5); 
                    }
                    
                    
                    key3[0] = key2[0];
                    key3[1] = key2[1];
                    key3[2] = key2[2];
                    for (i = 0; i < 4; i++) {
                        key3[i] = (key3[i] + 5); 
                    }

                takepic(cnt);

                cnt++;
            }
            
            
            
          
        }
    } 
}