Aniket Udare
/
VoiceControlledHomeAutomationSystem
Smart home automation system using FRDM-K64F
main.cpp@0:5e39f0b60013, 2018-03-06 (annotated)
- Committer:
- udareaniket
- Date:
- Tue Mar 06 01:03:51 2018 +0000
- Revision:
- 0:5e39f0b60013
Initial Commit;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
udareaniket | 0:5e39f0b60013 | 1 | #include "mbed.h" |
udareaniket | 0:5e39f0b60013 | 2 | #include <string.h> |
udareaniket | 0:5e39f0b60013 | 3 | #include <stdio.h> |
udareaniket | 0:5e39f0b60013 | 4 | //Initialize peripheral ports. |
udareaniket | 0:5e39f0b60013 | 5 | DigitalOut light(LED_GREEN); |
udareaniket | 0:5e39f0b60013 | 6 | DigitalOut ac(LED_RED); |
udareaniket | 0:5e39f0b60013 | 7 | DigitalOut tv(LED_BLUE); |
udareaniket | 0:5e39f0b60013 | 8 | DigitalOut open_curtain(D9); |
udareaniket | 0:5e39f0b60013 | 9 | DigitalOut close_curtain(D8); |
udareaniket | 0:5e39f0b60013 | 10 | Serial bt(PTC15, PTC14); |
udareaniket | 0:5e39f0b60013 | 11 | char speech[255] = ""; |
udareaniket | 0:5e39f0b60013 | 12 | |
udareaniket | 0:5e39f0b60013 | 13 | int main() |
udareaniket | 0:5e39f0b60013 | 14 | { |
udareaniket | 0:5e39f0b60013 | 15 | //initialize peripherals |
udareaniket | 0:5e39f0b60013 | 16 | int curtain_pos = 0; |
udareaniket | 0:5e39f0b60013 | 17 | light = 1; |
udareaniket | 0:5e39f0b60013 | 18 | ac = 1; |
udareaniket | 0:5e39f0b60013 | 19 | tv = 1; |
udareaniket | 0:5e39f0b60013 | 20 | open_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 21 | close_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 22 | unsigned char rx; |
udareaniket | 0:5e39f0b60013 | 23 | bt.baud(9600); |
udareaniket | 0:5e39f0b60013 | 24 | while (1) { |
udareaniket | 0:5e39f0b60013 | 25 | //check if data available via bluetooth |
udareaniket | 0:5e39f0b60013 | 26 | if(bt.readable()) { |
udareaniket | 0:5e39f0b60013 | 27 | rx = bt.getc(); |
udareaniket | 0:5e39f0b60013 | 28 | speech[0] = rx; |
udareaniket | 0:5e39f0b60013 | 29 | |
udareaniket | 0:5e39f0b60013 | 30 | //do respective task from code received by bluetooth |
udareaniket | 0:5e39f0b60013 | 31 | if(strstr(speech,"1")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 32 | light = 0; |
udareaniket | 0:5e39f0b60013 | 33 | } |
udareaniket | 0:5e39f0b60013 | 34 | if(strstr(speech,"2")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 35 | light = 1; |
udareaniket | 0:5e39f0b60013 | 36 | } |
udareaniket | 0:5e39f0b60013 | 37 | if(strstr(speech,"3")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 38 | light = !light; |
udareaniket | 0:5e39f0b60013 | 39 | } |
udareaniket | 0:5e39f0b60013 | 40 | if(strstr(speech,"4")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 41 | ac = 0; |
udareaniket | 0:5e39f0b60013 | 42 | } |
udareaniket | 0:5e39f0b60013 | 43 | if(strstr(speech,"5")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 44 | ac = 1; |
udareaniket | 0:5e39f0b60013 | 45 | } |
udareaniket | 0:5e39f0b60013 | 46 | if(strstr(speech,"6")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 47 | ac = !ac; |
udareaniket | 0:5e39f0b60013 | 48 | } |
udareaniket | 0:5e39f0b60013 | 49 | if(strstr(speech,"7")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 50 | tv = 0; |
udareaniket | 0:5e39f0b60013 | 51 | // d9 = !d9; |
udareaniket | 0:5e39f0b60013 | 52 | } |
udareaniket | 0:5e39f0b60013 | 53 | if(strstr(speech,"8")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 54 | tv = 1; |
udareaniket | 0:5e39f0b60013 | 55 | } |
udareaniket | 0:5e39f0b60013 | 56 | if(strstr(speech,"9")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 57 | tv = !tv; |
udareaniket | 0:5e39f0b60013 | 58 | } |
udareaniket | 0:5e39f0b60013 | 59 | if(strstr(speech,"a")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 60 | ac = 0; |
udareaniket | 0:5e39f0b60013 | 61 | light = 0; |
udareaniket | 0:5e39f0b60013 | 62 | tv = 0; |
udareaniket | 0:5e39f0b60013 | 63 | open_curtain = 1; |
udareaniket | 0:5e39f0b60013 | 64 | } |
udareaniket | 0:5e39f0b60013 | 65 | if(strstr(speech,"b")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 66 | ac = 1; |
udareaniket | 0:5e39f0b60013 | 67 | light = 1; |
udareaniket | 0:5e39f0b60013 | 68 | tv = 1; |
udareaniket | 0:5e39f0b60013 | 69 | open_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 70 | } |
udareaniket | 0:5e39f0b60013 | 71 | if(strstr(speech,"c")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 72 | ac = !ac; |
udareaniket | 0:5e39f0b60013 | 73 | light = !light; |
udareaniket | 0:5e39f0b60013 | 74 | tv = !tv; |
udareaniket | 0:5e39f0b60013 | 75 | open_curtain = !open_curtain; |
udareaniket | 0:5e39f0b60013 | 76 | } |
udareaniket | 0:5e39f0b60013 | 77 | if(strstr(speech,"d")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 78 | printf("open curtain"); |
udareaniket | 0:5e39f0b60013 | 79 | close_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 80 | open_curtain = 1; |
udareaniket | 0:5e39f0b60013 | 81 | wait_ms(10000); |
udareaniket | 0:5e39f0b60013 | 82 | open_curtain =0; |
udareaniket | 0:5e39f0b60013 | 83 | curtain_pos = 1; |
udareaniket | 0:5e39f0b60013 | 84 | } |
udareaniket | 0:5e39f0b60013 | 85 | if(strstr(speech,"e")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 86 | close_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 87 | open_curtain = 1; |
udareaniket | 0:5e39f0b60013 | 88 | wait_ms(5000); |
udareaniket | 0:5e39f0b60013 | 89 | open_curtain =0; |
udareaniket | 0:5e39f0b60013 | 90 | curtain_pos = 2; |
udareaniket | 0:5e39f0b60013 | 91 | } |
udareaniket | 0:5e39f0b60013 | 92 | if(strstr(speech,"f")!=NULL) { |
udareaniket | 0:5e39f0b60013 | 93 | open_curtain = 0; |
udareaniket | 0:5e39f0b60013 | 94 | close_curtain = 1; |
udareaniket | 0:5e39f0b60013 | 95 | if(curtain_pos ==1)wait_ms(10000); |
udareaniket | 0:5e39f0b60013 | 96 | else if(curtain_pos ==2)wait_ms(5000); |
udareaniket | 0:5e39f0b60013 | 97 | close_curtain =0; |
udareaniket | 0:5e39f0b60013 | 98 | } |
udareaniket | 0:5e39f0b60013 | 99 | } |
udareaniket | 0:5e39f0b60013 | 100 | } |
udareaniket | 0:5e39f0b60013 | 101 | } |