Andrea Coronado
/
final_Informatica
Casa Domotica
Fork of bluetooth by
Final_Informatica.cpp@1:4262d6cea937, 2014-12-01 (annotated)
- Committer:
- AndreaC
- Date:
- Mon Dec 01 13:38:09 2014 +0000
- Revision:
- 1:4262d6cea937
Final de Informatica
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AndreaC | 1:4262d6cea937 | 1 | #include "mbed.h" //libreria de mbed lol XD |
AndreaC | 1:4262d6cea937 | 2 | #include "Servo.h" // libreria del servo, es para controlar el servo |
AndreaC | 1:4262d6cea937 | 3 | |
AndreaC | 1:4262d6cea937 | 4 | Serial bt(PTE0, PTE1); // establese puentos que comunican con el bluethoot, establese una varialbe llamada "bt" para estos puertos |
AndreaC | 1:4262d6cea937 | 5 | Serial pc(USBTX,USBRX); // comunicacion serial con la computadora |
AndreaC | 1:4262d6cea937 | 6 | PwmOut servo(PTA5); // esptablece una variable Pwm llamada "servo" |
AndreaC | 1:4262d6cea937 | 7 | PwmOut buzzer_valor(PTB1); // establece una variable Pwm llamada "buzzer_valor" |
AndreaC | 1:4262d6cea937 | 8 | PwmOut led_foto(PTC8); //establece una variable pwm llamada "led" |
AndreaC | 1:4262d6cea937 | 9 | AnalogIn fotoresistencia_valor(PTB3); //establece una variable Analogica llamada "fotoresistencia_valor", esta variable la resive la freedom, |
AndreaC | 1:4262d6cea937 | 10 | DigitalOut led_sensorm(PTC9); |
AndreaC | 1:4262d6cea937 | 11 | DigitalIn pinLectura = (PTB0); // Pin de lectura del sensor INPUTPIN |
AndreaC | 1:4262d6cea937 | 12 | Timer timer; |
AndreaC | 1:4262d6cea937 | 13 | |
AndreaC | 1:4262d6cea937 | 14 | int valorReedSwitch = 0; |
AndreaC | 1:4262d6cea937 | 15 | DigitalIn reedSwitch(PTA13); |
AndreaC | 1:4262d6cea937 | 16 | |
AndreaC | 1:4262d6cea937 | 17 | void f_SensorMovimiento() |
AndreaC | 1:4262d6cea937 | 18 | { |
AndreaC | 1:4262d6cea937 | 19 | timer.start(); |
AndreaC | 1:4262d6cea937 | 20 | while(timer <= 3) |
AndreaC | 1:4262d6cea937 | 21 | { |
AndreaC | 1:4262d6cea937 | 22 | led_sensorm = 1; |
AndreaC | 1:4262d6cea937 | 23 | } |
AndreaC | 1:4262d6cea937 | 24 | timer.stop(); |
AndreaC | 1:4262d6cea937 | 25 | timer.reset(); |
AndreaC | 1:4262d6cea937 | 26 | led_sensorm=0; |
AndreaC | 1:4262d6cea937 | 27 | } |
AndreaC | 1:4262d6cea937 | 28 | |
AndreaC | 1:4262d6cea937 | 29 | void fotoresistencia() |
AndreaC | 1:4262d6cea937 | 30 | { // funcion de la fotoresistencia |
AndreaC | 1:4262d6cea937 | 31 | float valor=fotoresistencia_valor.read(); // lee es lavor de la fotoresistencia y la asigna a una variable flotante llamada "valor" |
AndreaC | 1:4262d6cea937 | 32 | wait(.025); // timer se .025s |
AndreaC | 1:4262d6cea937 | 33 | valor=((fotoresistencia_valor -(.039))*(-10)); // funcion que recorre los valores de la freedom |
AndreaC | 1:4262d6cea937 | 34 | //valor=((1)-(valor)); // nada |
AndreaC | 1:4262d6cea937 | 35 | if(valor<0) |
AndreaC | 1:4262d6cea937 | 36 | { // si el valor es menor a cero |
AndreaC | 1:4262d6cea937 | 37 | valor=0; // iguala el valor a 0 |
AndreaC | 1:4262d6cea937 | 38 | } |
AndreaC | 1:4262d6cea937 | 39 | if(valor>1) |
AndreaC | 1:4262d6cea937 | 40 | { //si el valor es mayor a cero |
AndreaC | 1:4262d6cea937 | 41 | valor=1; // iguala el valor a 1 |
AndreaC | 1:4262d6cea937 | 42 | } |
AndreaC | 1:4262d6cea937 | 43 | led_foto=valor; // enciende el led con una intencidad = al valor |
AndreaC | 1:4262d6cea937 | 44 | } |
AndreaC | 1:4262d6cea937 | 45 | |
AndreaC | 1:4262d6cea937 | 46 | void buzzer() |
AndreaC | 1:4262d6cea937 | 47 | { // funcion del buzzer |
AndreaC | 1:4262d6cea937 | 48 | bt.printf("Alarma Activada\n\r"); //imprime un string como respuesta, ay comnicacion y la funcion esta siendo corrida |
AndreaC | 1:4262d6cea937 | 49 | buzzer_valor.period_ms(1); // set PWM period |
AndreaC | 1:4262d6cea937 | 50 | timer.start(); |
AndreaC | 1:4262d6cea937 | 51 | while(timer <= 5) |
AndreaC | 1:4262d6cea937 | 52 | { |
AndreaC | 1:4262d6cea937 | 53 | buzzer_valor = 0.5; //set duty cycle |
AndreaC | 1:4262d6cea937 | 54 | led_sensorm = 1; |
AndreaC | 1:4262d6cea937 | 55 | wait(0.3); //hold for beat period |
AndreaC | 1:4262d6cea937 | 56 | buzzer_valor = 0; |
AndreaC | 1:4262d6cea937 | 57 | led_sensorm = 0; |
AndreaC | 1:4262d6cea937 | 58 | wait(0.3); |
AndreaC | 1:4262d6cea937 | 59 | } |
AndreaC | 1:4262d6cea937 | 60 | timer.stop(); |
AndreaC | 1:4262d6cea937 | 61 | timer.reset(); |
AndreaC | 1:4262d6cea937 | 62 | } // termina la funcion |
AndreaC | 1:4262d6cea937 | 63 | |
AndreaC | 1:4262d6cea937 | 64 | int main() |
AndreaC | 1:4262d6cea937 | 65 | { // inicia el programa |
AndreaC | 1:4262d6cea937 | 66 | |
AndreaC | 1:4262d6cea937 | 67 | bt.baud(9600); // establese la comunicacion serial entre la freedom y el bluethooth |
AndreaC | 1:4262d6cea937 | 68 | servo.period_ms(20); // esta linea asigna un periodo en milisegundos, este periodo es asignado para pode usar es servo |
AndreaC | 1:4262d6cea937 | 69 | |
AndreaC | 1:4262d6cea937 | 70 | while(1) // esta parte del programa se repite infinitamente |
AndreaC | 1:4262d6cea937 | 71 | { |
AndreaC | 1:4262d6cea937 | 72 | if(bt.readable()) //establesco la conexion del bluethooth |
AndreaC | 1:4262d6cea937 | 73 | { |
AndreaC | 1:4262d6cea937 | 74 | char c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable char |
AndreaC | 1:4262d6cea937 | 75 | |
AndreaC | 1:4262d6cea937 | 76 | bt.printf("%c\n\r",c); // como respuesta para verificar que la informacion mandada aya llegado a la freedom |
AndreaC | 1:4262d6cea937 | 77 | // la imprime en la terminal del usuario |
AndreaC | 1:4262d6cea937 | 78 | |
AndreaC | 1:4262d6cea937 | 79 | if (c == 'w') |
AndreaC | 1:4262d6cea937 | 80 | { //checa si el caracter mandado por el usuario es una "w" |
AndreaC | 1:4262d6cea937 | 81 | |
AndreaC | 1:4262d6cea937 | 82 | servo.pulsewidth_us(1700);// move servo to 180° position |
AndreaC | 1:4262d6cea937 | 83 | bt.printf("serbou\n\r"); // imprime en la terminal del usuario un string"servoa" |
AndreaC | 1:4262d6cea937 | 84 | |
AndreaC | 1:4262d6cea937 | 85 | } |
AndreaC | 1:4262d6cea937 | 86 | if (c == 's') |
AndreaC | 1:4262d6cea937 | 87 | { //checa si el caracter mandado por el usuario es una "s" |
AndreaC | 1:4262d6cea937 | 88 | |
AndreaC | 1:4262d6cea937 | 89 | servo.pulsewidth_us(1000);//move servo to 0 degrees |
AndreaC | 1:4262d6cea937 | 90 | bt.printf("servob\n\r"); //imprime en la terminal del usuario un string "servob" |
AndreaC | 1:4262d6cea937 | 91 | } |
AndreaC | 1:4262d6cea937 | 92 | |
AndreaC | 1:4262d6cea937 | 93 | if( c == 'p') |
AndreaC | 1:4262d6cea937 | 94 | {//checa si el caracter mandado por el usuario es una "p" |
AndreaC | 1:4262d6cea937 | 95 | buzzer(); //manda llamar la funcion del buzzer |
AndreaC | 1:4262d6cea937 | 96 | } |
AndreaC | 1:4262d6cea937 | 97 | |
AndreaC | 1:4262d6cea937 | 98 | if( c == 'r') |
AndreaC | 1:4262d6cea937 | 99 | {//checa si el caracter mandado por el usuario es una "p" |
AndreaC | 1:4262d6cea937 | 100 | while(c != 'v') |
AndreaC | 1:4262d6cea937 | 101 | { |
AndreaC | 1:4262d6cea937 | 102 | valorReedSwitch = reedSwitch.read(); |
AndreaC | 1:4262d6cea937 | 103 | if(valorReedSwitch == 1); |
AndreaC | 1:4262d6cea937 | 104 | buzzer(); |
AndreaC | 1:4262d6cea937 | 105 | } |
AndreaC | 1:4262d6cea937 | 106 | } |
AndreaC | 1:4262d6cea937 | 107 | |
AndreaC | 1:4262d6cea937 | 108 | if (c == 'm') |
AndreaC | 1:4262d6cea937 | 109 | { |
AndreaC | 1:4262d6cea937 | 110 | |
AndreaC | 1:4262d6cea937 | 111 | bt.printf("Iluminacion Automatica Activada\r"); |
AndreaC | 1:4262d6cea937 | 112 | while(c != 'v') |
AndreaC | 1:4262d6cea937 | 113 | { |
AndreaC | 1:4262d6cea937 | 114 | int val = pinLectura.read(); |
AndreaC | 1:4262d6cea937 | 115 | if (val == 0) |
AndreaC | 1:4262d6cea937 | 116 | { |
AndreaC | 1:4262d6cea937 | 117 | f_SensorMovimiento(); |
AndreaC | 1:4262d6cea937 | 118 | } |
AndreaC | 1:4262d6cea937 | 119 | if(bt.readable()) |
AndreaC | 1:4262d6cea937 | 120 | { // reestablese la conexcion del bluethooth para solisitar o checar si se vumple la opcion para salir del while(c!=='v') |
AndreaC | 1:4262d6cea937 | 121 | c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable |
AndreaC | 1:4262d6cea937 | 122 | led_sensorm = 0; //apaga el led si se sale de este pedaso |
AndreaC | 1:4262d6cea937 | 123 | } |
AndreaC | 1:4262d6cea937 | 124 | } |
AndreaC | 1:4262d6cea937 | 125 | bt.printf("Iluminacion Automatica Desactivada"); |
AndreaC | 1:4262d6cea937 | 126 | } |
AndreaC | 1:4262d6cea937 | 127 | |
AndreaC | 1:4262d6cea937 | 128 | if (c == 'a') |
AndreaC | 1:4262d6cea937 | 129 | { |
AndreaC | 1:4262d6cea937 | 130 | bt.printf("Sistema de Seguridad Activado\r"); |
AndreaC | 1:4262d6cea937 | 131 | while(c != 'v') |
AndreaC | 1:4262d6cea937 | 132 | { |
AndreaC | 1:4262d6cea937 | 133 | int val = pinLectura.read(); |
AndreaC | 1:4262d6cea937 | 134 | if (val == 0) |
AndreaC | 1:4262d6cea937 | 135 | { |
AndreaC | 1:4262d6cea937 | 136 | bt.printf("INTRUSO!"); |
AndreaC | 1:4262d6cea937 | 137 | while (c != 'e'){ |
AndreaC | 1:4262d6cea937 | 138 | buzzer(); |
AndreaC | 1:4262d6cea937 | 139 | if(bt.readable()) |
AndreaC | 1:4262d6cea937 | 140 | { // reestablese la conexcion del bluethooth para solisitar o checar si se vumple la opcion para salir del while(c!=='v') |
AndreaC | 1:4262d6cea937 | 141 | c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable |
AndreaC | 1:4262d6cea937 | 142 | led_sensorm = 0; //apaga el led si se sale de este pedaso |
AndreaC | 1:4262d6cea937 | 143 | } |
AndreaC | 1:4262d6cea937 | 144 | } |
AndreaC | 1:4262d6cea937 | 145 | } |
AndreaC | 1:4262d6cea937 | 146 | if(bt.readable()) |
AndreaC | 1:4262d6cea937 | 147 | { // reestablese la conexcion del bluethooth para solisitar o checar si se vumple la opcion para salir del while(c!=='v') |
AndreaC | 1:4262d6cea937 | 148 | c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable |
AndreaC | 1:4262d6cea937 | 149 | led_sensorm = 0; //apaga el led si se sale de este pedaso |
AndreaC | 1:4262d6cea937 | 150 | } |
AndreaC | 1:4262d6cea937 | 151 | } |
AndreaC | 1:4262d6cea937 | 152 | bt.printf("Alarma Desactivada"); |
AndreaC | 1:4262d6cea937 | 153 | } |
AndreaC | 1:4262d6cea937 | 154 | |
AndreaC | 1:4262d6cea937 | 155 | if(c =='f') |
AndreaC | 1:4262d6cea937 | 156 | { // checa si el caracter mandado por el usuario es una "v" |
AndreaC | 1:4262d6cea937 | 157 | bt.printf("Fotoresistencia Activada\r"); |
AndreaC | 1:4262d6cea937 | 158 | while(c != 'v') |
AndreaC | 1:4262d6cea937 | 159 | { // la siguiente parte del programa se va a repetir infinitamente hasta que c no sea igual a "v" |
AndreaC | 1:4262d6cea937 | 160 | fotoresistencia(); //manda llamar la funcion de la resistencia |
AndreaC | 1:4262d6cea937 | 161 | if(bt.readable()) |
AndreaC | 1:4262d6cea937 | 162 | { // reestablese la conexcion del bluethooth para solisitar o checar si se vumple la opcion para salir del while(c!=='v') |
AndreaC | 1:4262d6cea937 | 163 | c = bt.getc(); //resive un caracter via bluethoth y lo asigna a una variable char |
AndreaC | 1:4262d6cea937 | 164 | led_foto=0; //apaga el led si se sale de este pedaso |
AndreaC | 1:4262d6cea937 | 165 | }//comunicacion |
AndreaC | 1:4262d6cea937 | 166 | }//cierra el while( c!=v) |
AndreaC | 1:4262d6cea937 | 167 | bt.printf("fotoresistencia DESACTIVADA\n\r"); //imprime en la terminal que se desactivo la resistnecia |
AndreaC | 1:4262d6cea937 | 168 | } //cierra el if de(c=='f') |
AndreaC | 1:4262d6cea937 | 169 | }//cierra el if de la comunicacion |
AndreaC | 1:4262d6cea937 | 170 | }// cierra el while (1) |
AndreaC | 1:4262d6cea937 | 171 | }// ciera el int main |