Casa Domotica

Dependencies:   Servo mbed

Fork of bluetooth by oscar orozco

Committer:
AndreaC
Date:
Mon Dec 01 13:38:09 2014 +0000
Revision:
1:4262d6cea937
Final de Informatica

Who changed what in which revision?

UserRevisionLine numberNew 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