Andrea Coronado
/
Movimiento
Sensor de movimiento con bluetooth
movimiento.cpp@1:b0059057fd23, 2014-11-29 (annotated)
- Committer:
- AndreaC
- Date:
- Sat Nov 29 22:54:32 2014 +0000
- Revision:
- 1:b0059057fd23
- Parent:
- 0:0a405c6f350d
movimiento
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndreaC | 0:0a405c6f350d | 1 | #include "mbed.h" |
AndreaC | 0:0a405c6f350d | 2 | Serial pc(USBTX, USBRX); |
AndreaC | 0:0a405c6f350d | 3 | |
AndreaC | 0:0a405c6f350d | 4 | DigitalOut led = (PTC9); // LED que comprueba movimiento |
AndreaC | 0:0a405c6f350d | 5 | DigitalIn pinLectura = (PTB0); // Pin de lectura del sensor INPUTPIN |
AndreaC | 0:0a405c6f350d | 6 | Timer timer; |
AndreaC | 0:0a405c6f350d | 7 | int begin, end; |
AndreaC | 0:0a405c6f350d | 8 | |
AndreaC | 1:b0059057fd23 | 9 | PwmOut buzzer_valor(PTB2); |
AndreaC | 1:b0059057fd23 | 10 | |
AndreaC | 0:0a405c6f350d | 11 | Serial bt(PTE0, PTE1); |
AndreaC | 0:0a405c6f350d | 12 | |
AndreaC | 1:b0059057fd23 | 13 | void fBuzzer() |
AndreaC | 1:b0059057fd23 | 14 | { // funcion del buzzer |
AndreaC | 1:b0059057fd23 | 15 | bt.baud(9600); |
AndreaC | 1:b0059057fd23 | 16 | buzzer_valor.period_ms(1); // set PWM period |
AndreaC | 1:b0059057fd23 | 17 | bt.printf("INTRUSO!"); |
AndreaC | 1:b0059057fd23 | 18 | while(1) |
AndreaC | 1:b0059057fd23 | 19 | { |
AndreaC | 1:b0059057fd23 | 20 | if(bt.readable()) |
AndreaC | 1:b0059057fd23 | 21 | { |
AndreaC | 1:b0059057fd23 | 22 | //valorDIP = switchSistemaSeguridad.read(); |
AndreaC | 1:b0059057fd23 | 23 | buzzer_valor = 0.5; //set duty cycle |
AndreaC | 1:b0059057fd23 | 24 | wait(0.3); //hold for beat period |
AndreaC | 1:b0059057fd23 | 25 | buzzer_valor = 0; |
AndreaC | 1:b0059057fd23 | 26 | wait(0.3); |
AndreaC | 1:b0059057fd23 | 27 | |
AndreaC | 1:b0059057fd23 | 28 | /*ledsPrincipales = 1; //set duty cycle |
AndreaC | 1:b0059057fd23 | 29 | wait(0.3); //hold for beat period |
AndreaC | 1:b0059057fd23 | 30 | ledsPrincipales = 0; |
AndreaC | 1:b0059057fd23 | 31 | wait(0.3);*/ |
AndreaC | 1:b0059057fd23 | 32 | |
AndreaC | 1:b0059057fd23 | 33 | int blue = bt.getc(); |
AndreaC | 1:b0059057fd23 | 34 | if (blue == 'd'){ |
AndreaC | 1:b0059057fd23 | 35 | bt.printf("Sistema Desactivado"); |
AndreaC | 1:b0059057fd23 | 36 | return; |
AndreaC | 1:b0059057fd23 | 37 | } |
AndreaC | 1:b0059057fd23 | 38 | } |
AndreaC | 1:b0059057fd23 | 39 | } |
AndreaC | 1:b0059057fd23 | 40 | } |
AndreaC | 1:b0059057fd23 | 41 | |
AndreaC | 0:0a405c6f350d | 42 | void f_SensorMovimiento() |
AndreaC | 0:0a405c6f350d | 43 | { |
AndreaC | 0:0a405c6f350d | 44 | timer.start(); |
AndreaC | 0:0a405c6f350d | 45 | while(timer <= 3) |
AndreaC | 0:0a405c6f350d | 46 | { |
AndreaC | 0:0a405c6f350d | 47 | led = 1; |
AndreaC | 0:0a405c6f350d | 48 | } |
AndreaC | 0:0a405c6f350d | 49 | timer.stop(); |
AndreaC | 0:0a405c6f350d | 50 | timer.reset(); |
AndreaC | 0:0a405c6f350d | 51 | |
AndreaC | 0:0a405c6f350d | 52 | int val2 = pinLectura.read(); |
AndreaC | 0:0a405c6f350d | 53 | |
AndreaC | 0:0a405c6f350d | 54 | if(val2 == 0){ |
AndreaC | 0:0a405c6f350d | 55 | f_SensorMovimiento(); |
AndreaC | 0:0a405c6f350d | 56 | } |
AndreaC | 0:0a405c6f350d | 57 | |
AndreaC | 0:0a405c6f350d | 58 | else{ |
AndreaC | 0:0a405c6f350d | 59 | led = 0; |
AndreaC | 0:0a405c6f350d | 60 | return; |
AndreaC | 0:0a405c6f350d | 61 | } |
AndreaC | 0:0a405c6f350d | 62 | } |
AndreaC | 0:0a405c6f350d | 63 | |
AndreaC | 0:0a405c6f350d | 64 | int main() |
AndreaC | 0:0a405c6f350d | 65 | { |
AndreaC | 0:0a405c6f350d | 66 | bt.baud(9600); |
AndreaC | 0:0a405c6f350d | 67 | while(1) |
AndreaC | 0:0a405c6f350d | 68 | { |
AndreaC | 1:b0059057fd23 | 69 | |
AndreaC | 1:b0059057fd23 | 70 | int val = pinLectura.read(); |
AndreaC | 1:b0059057fd23 | 71 | |
AndreaC | 0:0a405c6f350d | 72 | if(bt.readable()) //establesco la conexion del bluethooth |
AndreaC | 0:0a405c6f350d | 73 | { |
AndreaC | 0:0a405c6f350d | 74 | char c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable |
AndreaC | 0:0a405c6f350d | 75 | //bt.printf("%c\n\r", c); |
AndreaC | 0:0a405c6f350d | 76 | |
AndreaC | 1:b0059057fd23 | 77 | if(c == 's') |
AndreaC | 1:b0059057fd23 | 78 | { |
AndreaC | 1:b0059057fd23 | 79 | bt.printf("Sistema Activado"); |
AndreaC | 1:b0059057fd23 | 80 | if(val == 0) |
AndreaC | 1:b0059057fd23 | 81 | { |
AndreaC | 1:b0059057fd23 | 82 | fBuzzer(); |
AndreaC | 1:b0059057fd23 | 83 | } |
AndreaC | 1:b0059057fd23 | 84 | } |
AndreaC | 1:b0059057fd23 | 85 | |
AndreaC | 0:0a405c6f350d | 86 | if (c == 'm') |
AndreaC | 0:0a405c6f350d | 87 | { |
AndreaC | 0:0a405c6f350d | 88 | bt.printf("Iluminacion Automatica Activada\r"); |
AndreaC | 0:0a405c6f350d | 89 | while(c != 'v'){ |
AndreaC | 0:0a405c6f350d | 90 | |
AndreaC | 0:0a405c6f350d | 91 | if (val == 0) |
AndreaC | 0:0a405c6f350d | 92 | { |
AndreaC | 0:0a405c6f350d | 93 | f_SensorMovimiento(); |
AndreaC | 0:0a405c6f350d | 94 | } |
AndreaC | 0:0a405c6f350d | 95 | if(bt.readable()) |
AndreaC | 0:0a405c6f350d | 96 | { // reestablese la conexcion del bluethooth para solisitar o checar si se vumple la opcion para salir del while(c!=='v') |
AndreaC | 0:0a405c6f350d | 97 | c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable |
AndreaC | 0:0a405c6f350d | 98 | led = 0; //apaga el led si se sale de este pedaso |
AndreaC | 0:0a405c6f350d | 99 | } |
AndreaC | 0:0a405c6f350d | 100 | } |
AndreaC | 0:0a405c6f350d | 101 | bt.printf("Iluminacion Automatica Desactivada"); |
AndreaC | 0:0a405c6f350d | 102 | } |
AndreaC | 0:0a405c6f350d | 103 | if(c == 'p') |
AndreaC | 0:0a405c6f350d | 104 | { |
AndreaC | 0:0a405c6f350d | 105 | bt.printf("Prueba"); |
AndreaC | 0:0a405c6f350d | 106 | } |
AndreaC | 0:0a405c6f350d | 107 | } |
AndreaC | 0:0a405c6f350d | 108 | } |
AndreaC | 0:0a405c6f350d | 109 | } |