
The code for the home base station.
Fork of HC05_send by
main.cpp@0:c3b88e0b90bf, 2018-03-04 (annotated)
- Committer:
- lmpell
- Date:
- Sun Mar 04 23:03:00 2018 +0000
- Revision:
- 0:c3b88e0b90bf
- Child:
- 1:f475551471a5
This is for nathan schwartz;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lmpell | 0:c3b88e0b90bf | 1 | #include "mbed.h" |
lmpell | 0:c3b88e0b90bf | 2 | |
lmpell | 0:c3b88e0b90bf | 3 | Timeout response; |
lmpell | 0:c3b88e0b90bf | 4 | |
lmpell | 0:c3b88e0b90bf | 5 | DigitalOut green(LED_GREEN); |
lmpell | 0:c3b88e0b90bf | 6 | DigitalOut red(LED_RED); |
lmpell | 0:c3b88e0b90bf | 7 | DigitalIn sw2(SW2); |
lmpell | 0:c3b88e0b90bf | 8 | DigitalIn motion(D7); |
lmpell | 0:c3b88e0b90bf | 9 | Serial pc(USBTX, USBRX ); |
lmpell | 0:c3b88e0b90bf | 10 | |
lmpell | 0:c3b88e0b90bf | 11 | Serial blue(PTC15, PTC14); //tx, rx |
lmpell | 0:c3b88e0b90bf | 12 | |
lmpell | 0:c3b88e0b90bf | 13 | void Alert() { |
lmpell | 0:c3b88e0b90bf | 14 | printf("TimeOut\n\r"); |
lmpell | 0:c3b88e0b90bf | 15 | green = 1; |
lmpell | 0:c3b88e0b90bf | 16 | red = 0; |
lmpell | 0:c3b88e0b90bf | 17 | int run = 1000; |
lmpell | 0:c3b88e0b90bf | 18 | while(run--){ |
lmpell | 0:c3b88e0b90bf | 19 | blue.putc('F'); |
lmpell | 0:c3b88e0b90bf | 20 | } |
lmpell | 0:c3b88e0b90bf | 21 | printf("Alert Sent\n\r"); |
lmpell | 0:c3b88e0b90bf | 22 | /* |
lmpell | 0:c3b88e0b90bf | 23 | run = 100; |
lmpell | 0:c3b88e0b90bf | 24 | while(run--){ |
lmpell | 0:c3b88e0b90bf | 25 | blue.putc('G'); |
lmpell | 0:c3b88e0b90bf | 26 | } |
lmpell | 0:c3b88e0b90bf | 27 | printf("Turned off\n\r"); |
lmpell | 0:c3b88e0b90bf | 28 | */ |
lmpell | 0:c3b88e0b90bf | 29 | } |
lmpell | 0:c3b88e0b90bf | 30 | |
lmpell | 0:c3b88e0b90bf | 31 | |
lmpell | 0:c3b88e0b90bf | 32 | int main() |
lmpell | 0:c3b88e0b90bf | 33 | { |
lmpell | 0:c3b88e0b90bf | 34 | int i = 0; |
lmpell | 0:c3b88e0b90bf | 35 | //char r[5] = {'a'}; |
lmpell | 0:c3b88e0b90bf | 36 | char send = 'Z'; |
lmpell | 0:c3b88e0b90bf | 37 | char hold = 'a'; |
lmpell | 0:c3b88e0b90bf | 38 | char correct = 'C'; |
lmpell | 0:c3b88e0b90bf | 39 | |
lmpell | 0:c3b88e0b90bf | 40 | pc.baud(9600); |
lmpell | 0:c3b88e0b90bf | 41 | blue.baud(9600); |
lmpell | 0:c3b88e0b90bf | 42 | printf("Master Connecting to Slave:\n\r"); |
lmpell | 0:c3b88e0b90bf | 43 | |
lmpell | 0:c3b88e0b90bf | 44 | while (send!='R') { |
lmpell | 0:c3b88e0b90bf | 45 | |
lmpell | 0:c3b88e0b90bf | 46 | blue.putc(send); |
lmpell | 0:c3b88e0b90bf | 47 | wait(0.5f); // wait a small period of time |
lmpell | 0:c3b88e0b90bf | 48 | |
lmpell | 0:c3b88e0b90bf | 49 | if(blue.readable()) |
lmpell | 0:c3b88e0b90bf | 50 | { |
lmpell | 0:c3b88e0b90bf | 51 | while(hold!='X'){ |
lmpell | 0:c3b88e0b90bf | 52 | hold = blue.getc(); |
lmpell | 0:c3b88e0b90bf | 53 | } |
lmpell | 0:c3b88e0b90bf | 54 | if(hold=='X') |
lmpell | 0:c3b88e0b90bf | 55 | { |
lmpell | 0:c3b88e0b90bf | 56 | printf("Ack Recieved from Slave: Sytem Ready!\n\r"); |
lmpell | 0:c3b88e0b90bf | 57 | send = 'R'; //System Ready |
lmpell | 0:c3b88e0b90bf | 58 | } |
lmpell | 0:c3b88e0b90bf | 59 | } |
lmpell | 0:c3b88e0b90bf | 60 | wait(0.5f); // wait a small period of time |
lmpell | 0:c3b88e0b90bf | 61 | i++; // increment the variable |
lmpell | 0:c3b88e0b90bf | 62 | green = !green; // toggle a led |
lmpell | 0:c3b88e0b90bf | 63 | } |
lmpell | 0:c3b88e0b90bf | 64 | |
lmpell | 0:c3b88e0b90bf | 65 | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
lmpell | 0:c3b88e0b90bf | 66 | while(1) |
lmpell | 0:c3b88e0b90bf | 67 | { |
lmpell | 0:c3b88e0b90bf | 68 | while(motion) |
lmpell | 0:c3b88e0b90bf | 69 | { |
lmpell | 0:c3b88e0b90bf | 70 | printf("Motion Detected\n\r"); |
lmpell | 0:c3b88e0b90bf | 71 | |
lmpell | 0:c3b88e0b90bf | 72 | if(sw2==1){ |
lmpell | 0:c3b88e0b90bf | 73 | response.attach(&Alert, 2.0); |
lmpell | 0:c3b88e0b90bf | 74 | blue.putc('A'); |
lmpell | 0:c3b88e0b90bf | 75 | green=0; |
lmpell | 0:c3b88e0b90bf | 76 | red = 0; |
lmpell | 0:c3b88e0b90bf | 77 | } |
lmpell | 0:c3b88e0b90bf | 78 | else{ |
lmpell | 0:c3b88e0b90bf | 79 | printf("Sw2 pressed\n\r"); |
lmpell | 0:c3b88e0b90bf | 80 | response.detach(); |
lmpell | 0:c3b88e0b90bf | 81 | printf("Correct Password\n\r"); |
lmpell | 0:c3b88e0b90bf | 82 | int run = 1000; |
lmpell | 0:c3b88e0b90bf | 83 | while(run--){ |
lmpell | 0:c3b88e0b90bf | 84 | blue.putc(correct); |
lmpell | 0:c3b88e0b90bf | 85 | red = 1; |
lmpell | 0:c3b88e0b90bf | 86 | green = 0; |
lmpell | 0:c3b88e0b90bf | 87 | } |
lmpell | 0:c3b88e0b90bf | 88 | wait(3); |
lmpell | 0:c3b88e0b90bf | 89 | } |
lmpell | 0:c3b88e0b90bf | 90 | } |
lmpell | 0:c3b88e0b90bf | 91 | } |
lmpell | 0:c3b88e0b90bf | 92 | } |