alarma finca rionegro
Dependencies: DebouncedIn mbed
main.cpp@0:f7aa7972da4d, 2016-10-21 (annotated)
- Committer:
- tony63
- Date:
- Fri Oct 21 20:28:49 2016 +0000
- Revision:
- 0:f7aa7972da4d
alarma finca rionegro
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tony63 | 0:f7aa7972da4d | 1 | /*************************Alarma para una finca********************************************************* |
tony63 | 0:f7aa7972da4d | 2 | Como modem usa un celular SIEMENS a56i |
tony63 | 0:f7aa7972da4d | 3 | Envia el mensaje intruso en rionegro |
tony63 | 0:f7aa7972da4d | 4 | Como modem GSM usa un celular SIEMENS A56i |
tony63 | 0:f7aa7972da4d | 5 | El conector se distingue asi: |
tony63 | 0:f7aa7972da4d | 6 | Cable verde es RX conectelo a PTE0 cable blanco es TX conectelo a PTE1 |
tony63 | 0:f7aa7972da4d | 7 | La alarma se dispara segun la señal de un sensor PIR que se le filtra el ruido |
tony63 | 0:f7aa7972da4d | 8 | La alarma puede hacer accionamientos como: |
tony63 | 0:f7aa7972da4d | 9 | Accionamiento Permanente de una sirena |
tony63 | 0:f7aa7972da4d | 10 | Accionaminto temporizado de una sirena |
tony63 | 0:f7aa7972da4d | 11 | Accionamiento de un Mensaje de voz reperido y temporizado |
tony63 | 0:f7aa7972da4d | 12 | */ |
tony63 | 0:f7aa7972da4d | 13 | |
tony63 | 0:f7aa7972da4d | 14 | #include "mbed.h" |
tony63 | 0:f7aa7972da4d | 15 | #include "DebouncedIn.h" |
tony63 | 0:f7aa7972da4d | 16 | #include "stdio.h" |
tony63 | 0:f7aa7972da4d | 17 | #include "string.h" |
tony63 | 0:f7aa7972da4d | 18 | |
tony63 | 0:f7aa7972da4d | 19 | int i,ret; |
tony63 | 0:f7aa7972da4d | 20 | Timer t; |
tony63 | 0:f7aa7972da4d | 21 | DigitalOut LedVerde(LED2); |
tony63 | 0:f7aa7972da4d | 22 | DigitalOut LedRojo(LED1); |
tony63 | 0:f7aa7972da4d | 23 | DigitalOut LedAzul(LED3); |
tony63 | 0:f7aa7972da4d | 24 | DigitalOut Camara(PTD4); |
tony63 | 0:f7aa7972da4d | 25 | DigitalOut Sirena(PTA2); |
tony63 | 0:f7aa7972da4d | 26 | DigitalOut Luces(LED3); |
tony63 | 0:f7aa7972da4d | 27 | DebouncedIn PIR(PTA13); //señal que inicia el envio del mensaje |
tony63 | 0:f7aa7972da4d | 28 | Serial GSM(PTE0,PTE1); //Configura puerto UART de la FRDMKL25Z |
tony63 | 0:f7aa7972da4d | 29 | Serial pc(USBTX,USBRX);//Configura puerto USB a la consola serial del PC conectado. |
tony63 | 0:f7aa7972da4d | 30 | char buffer[50]; |
tony63 | 0:f7aa7972da4d | 31 | char resp[10]; |
tony63 | 0:f7aa7972da4d | 32 | char tel[10]; |
tony63 | 0:f7aa7972da4d | 33 | char tam [2]; |
tony63 | 0:f7aa7972da4d | 34 | char msg [10]; |
tony63 | 0:f7aa7972da4d | 35 | //***************************************FUNCIONES EN C********************* |
tony63 | 0:f7aa7972da4d | 36 | //**************************************************************************************************************** |
tony63 | 0:f7aa7972da4d | 37 | //esta funcion de abajo lee todo un bufer hasta encontrar CR o LF y el resto lo rellena de |
tony63 | 0:f7aa7972da4d | 38 | //$, count es lo que va a leer.Lo leido lo mete en buffer que es una cadena previamente definida |
tony63 | 0:f7aa7972da4d | 39 | //incorpora medida de tiempo si se demora mas de tres segundos retorna fracaso con -1 |
tony63 | 0:f7aa7972da4d | 40 | //**************************************************************************************************************** |
tony63 | 0:f7aa7972da4d | 41 | int readBuffer(char *buffer,int count) |
tony63 | 0:f7aa7972da4d | 42 | { |
tony63 | 0:f7aa7972da4d | 43 | int i=0; |
tony63 | 0:f7aa7972da4d | 44 | t.start(); // start timer |
tony63 | 0:f7aa7972da4d | 45 | while(1) { |
tony63 | 0:f7aa7972da4d | 46 | while (GSM.readable()) { |
tony63 | 0:f7aa7972da4d | 47 | char c = GSM.getc(); |
tony63 | 0:f7aa7972da4d | 48 | if (c == '\r' || c == '\n') c = '$'; |
tony63 | 0:f7aa7972da4d | 49 | buffer[i++] = c; |
tony63 | 0:f7aa7972da4d | 50 | if(i > count)break; |
tony63 | 0:f7aa7972da4d | 51 | } |
tony63 | 0:f7aa7972da4d | 52 | if(i > count)break; |
tony63 | 0:f7aa7972da4d | 53 | if(t.read() > 3) { |
tony63 | 0:f7aa7972da4d | 54 | t.stop(); |
tony63 | 0:f7aa7972da4d | 55 | t.reset(); |
tony63 | 0:f7aa7972da4d | 56 | break; |
tony63 | 0:f7aa7972da4d | 57 | } |
tony63 | 0:f7aa7972da4d | 58 | } |
tony63 | 0:f7aa7972da4d | 59 | wait(0.5); |
tony63 | 0:f7aa7972da4d | 60 | while(GSM.readable()) { // display the other thing.. |
tony63 | 0:f7aa7972da4d | 61 | char c = GSM.getc(); |
tony63 | 0:f7aa7972da4d | 62 | } |
tony63 | 0:f7aa7972da4d | 63 | return 0; |
tony63 | 0:f7aa7972da4d | 64 | } |
tony63 | 0:f7aa7972da4d | 65 | //******************************************************************************** |
tony63 | 0:f7aa7972da4d | 66 | /* esta funcion de abajo limpia o borra todo un "buffer" de tamaño "count" |
tony63 | 0:f7aa7972da4d | 67 | lo revisa elemento por elemento y le mete el caracter null que indica fin de cadena |
tony63 | 0:f7aa7972da4d | 68 | no retorna nada |
tony63 | 0:f7aa7972da4d | 69 | */ |
tony63 | 0:f7aa7972da4d | 70 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 71 | void cleanBuffer(char *buffer, int count) |
tony63 | 0:f7aa7972da4d | 72 | { |
tony63 | 0:f7aa7972da4d | 73 | for(int i=0; i < count; i++) { |
tony63 | 0:f7aa7972da4d | 74 | buffer[i] = '\0'; |
tony63 | 0:f7aa7972da4d | 75 | } |
tony63 | 0:f7aa7972da4d | 76 | } |
tony63 | 0:f7aa7972da4d | 77 | /* esta funcion de abajo envia un comando parametrizado como cadena |
tony63 | 0:f7aa7972da4d | 78 | puede ser un comando tipo AT |
tony63 | 0:f7aa7972da4d | 79 | */ |
tony63 | 0:f7aa7972da4d | 80 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 81 | void sendCmd(char *cmd) |
tony63 | 0:f7aa7972da4d | 82 | { |
tony63 | 0:f7aa7972da4d | 83 | GSM.puts(cmd); |
tony63 | 0:f7aa7972da4d | 84 | } |
tony63 | 0:f7aa7972da4d | 85 | //**************************************************************************************** |
tony63 | 0:f7aa7972da4d | 86 | /* esta funcion de abajo espera la respuesta de un comando que debe ser identica a la cadena "resp" y un tiempo timeout" |
tony63 | 0:f7aa7972da4d | 87 | si todo sale bien retorna un cero que en la programacion hay que validar |
tony63 | 0:f7aa7972da4d | 88 | si algo sale mal ( no se parece o se demora mucho )retorna -1 que debera validarse con alguna expresion logica |
tony63 | 0:f7aa7972da4d | 89 | */ |
tony63 | 0:f7aa7972da4d | 90 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 91 | int waitForResp(char *resp, int timeout) |
tony63 | 0:f7aa7972da4d | 92 | { |
tony63 | 0:f7aa7972da4d | 93 | int len = strlen(resp); |
tony63 | 0:f7aa7972da4d | 94 | int sum=0; |
tony63 | 0:f7aa7972da4d | 95 | t.start(); |
tony63 | 0:f7aa7972da4d | 96 | |
tony63 | 0:f7aa7972da4d | 97 | while(1) { |
tony63 | 0:f7aa7972da4d | 98 | if(GSM.readable()) { |
tony63 | 0:f7aa7972da4d | 99 | char c = GSM.getc(); |
tony63 | 0:f7aa7972da4d | 100 | sum = (c==resp[sum]) ? sum+1 : 0;// esta linea de C# sum se incrementa o se hace cero segun c |
tony63 | 0:f7aa7972da4d | 101 | if(sum == len)break; //ya acabo se sale |
tony63 | 0:f7aa7972da4d | 102 | } |
tony63 | 0:f7aa7972da4d | 103 | if(t.read() > timeout) { // time out chequea el tiempo minimo antes de salir perdiendo |
tony63 | 0:f7aa7972da4d | 104 | t.stop(); |
tony63 | 0:f7aa7972da4d | 105 | t.reset(); |
tony63 | 0:f7aa7972da4d | 106 | return -1; |
tony63 | 0:f7aa7972da4d | 107 | } |
tony63 | 0:f7aa7972da4d | 108 | } |
tony63 | 0:f7aa7972da4d | 109 | t.stop(); // stop timer antes de retornar |
tony63 | 0:f7aa7972da4d | 110 | t.reset(); // clear timer |
tony63 | 0:f7aa7972da4d | 111 | while(GSM.readable()) { // display the other thing.. |
tony63 | 0:f7aa7972da4d | 112 | char c = GSM.getc(); |
tony63 | 0:f7aa7972da4d | 113 | } |
tony63 | 0:f7aa7972da4d | 114 | |
tony63 | 0:f7aa7972da4d | 115 | return 0; |
tony63 | 0:f7aa7972da4d | 116 | } |
tony63 | 0:f7aa7972da4d | 117 | /* esta funcion de abajo es muy completa e util se encarga de enviar el comando y esperar la respuesta |
tony63 | 0:f7aa7972da4d | 118 | si todo sale bien retorna un cero(herencia de las funciones contenedoras) que en la programacion hay que validar |
tony63 | 0:f7aa7972da4d | 119 | con alguna expresion logica |
tony63 | 0:f7aa7972da4d | 120 | */ |
tony63 | 0:f7aa7972da4d | 121 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 122 | int sendCmdAndWaitForResp(char *cmd, char *resp, int timeout) |
tony63 | 0:f7aa7972da4d | 123 | { |
tony63 | 0:f7aa7972da4d | 124 | sendCmd(cmd); |
tony63 | 0:f7aa7972da4d | 125 | return waitForResp(resp,timeout); |
tony63 | 0:f7aa7972da4d | 126 | } |
tony63 | 0:f7aa7972da4d | 127 | /* esta funcion de abajo chequea que el modem este vivo envia AT y le contesta con OK y espera 2 segundos |
tony63 | 0:f7aa7972da4d | 128 | */ |
tony63 | 0:f7aa7972da4d | 129 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 130 | int powerCheck(void)// este comando se manda para verificar si el modem esta vivo o conectado |
tony63 | 0:f7aa7972da4d | 131 | { |
tony63 | 0:f7aa7972da4d | 132 | return sendCmdAndWaitForResp("AT\r\n", "OK", 2); |
tony63 | 0:f7aa7972da4d | 133 | } |
tony63 | 0:f7aa7972da4d | 134 | |
tony63 | 0:f7aa7972da4d | 135 | /* esta funcion de abajo chequea el estado de la sim card |
tony63 | 0:f7aa7972da4d | 136 | y si todo sale bien retorna un cero que en la programacion hay que validar |
tony63 | 0:f7aa7972da4d | 137 | con alguna expresion logica |
tony63 | 0:f7aa7972da4d | 138 | */ |
tony63 | 0:f7aa7972da4d | 139 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 140 | int checkSIMStatus(void) |
tony63 | 0:f7aa7972da4d | 141 | { |
tony63 | 0:f7aa7972da4d | 142 | char gprsBuffer[30]; |
tony63 | 0:f7aa7972da4d | 143 | int count = 0; |
tony63 | 0:f7aa7972da4d | 144 | cleanBuffer(gprsBuffer,30); |
tony63 | 0:f7aa7972da4d | 145 | while(count < 3) { |
tony63 | 0:f7aa7972da4d | 146 | sendCmd("AT+CPIN?\r\n"); |
tony63 | 0:f7aa7972da4d | 147 | readBuffer(gprsBuffer,30); |
tony63 | 0:f7aa7972da4d | 148 | if((NULL != strstr(gprsBuffer,"+CPIN: READY"))) { |
tony63 | 0:f7aa7972da4d | 149 | break; |
tony63 | 0:f7aa7972da4d | 150 | } |
tony63 | 0:f7aa7972da4d | 151 | count++; |
tony63 | 0:f7aa7972da4d | 152 | wait(1); |
tony63 | 0:f7aa7972da4d | 153 | } |
tony63 | 0:f7aa7972da4d | 154 | |
tony63 | 0:f7aa7972da4d | 155 | if(count == 3) { |
tony63 | 0:f7aa7972da4d | 156 | return -1; |
tony63 | 0:f7aa7972da4d | 157 | } |
tony63 | 0:f7aa7972da4d | 158 | return 0; |
tony63 | 0:f7aa7972da4d | 159 | } |
tony63 | 0:f7aa7972da4d | 160 | /* esta funcion de abajo chequea la calidad de la señal |
tony63 | 0:f7aa7972da4d | 161 | y si todo sale bien retorna con el valor de señal util o un -1 si no es aceptable, en la programacion hay que validar |
tony63 | 0:f7aa7972da4d | 162 | con alguna expresion logica |
tony63 | 0:f7aa7972da4d | 163 | */ |
tony63 | 0:f7aa7972da4d | 164 | //*************************************************************************************** |
tony63 | 0:f7aa7972da4d | 165 | int checkSignalStrength(void) |
tony63 | 0:f7aa7972da4d | 166 | { |
tony63 | 0:f7aa7972da4d | 167 | char gprsBuffer[100]; |
tony63 | 0:f7aa7972da4d | 168 | int index,count = 0; |
tony63 | 0:f7aa7972da4d | 169 | cleanBuffer(gprsBuffer,100); |
tony63 | 0:f7aa7972da4d | 170 | while(count < 3) { |
tony63 | 0:f7aa7972da4d | 171 | sendCmd("AT+CSQ\r\n"); |
tony63 | 0:f7aa7972da4d | 172 | readBuffer(gprsBuffer,25); |
tony63 | 0:f7aa7972da4d | 173 | if(sscanf(gprsBuffer, "AT+CSQ$$$$+CSQ: %d", &index)>0) { |
tony63 | 0:f7aa7972da4d | 174 | break; |
tony63 | 0:f7aa7972da4d | 175 | } |
tony63 | 0:f7aa7972da4d | 176 | count++; |
tony63 | 0:f7aa7972da4d | 177 | wait(1); |
tony63 | 0:f7aa7972da4d | 178 | } |
tony63 | 0:f7aa7972da4d | 179 | if(count == 3) { |
tony63 | 0:f7aa7972da4d | 180 | return -1; |
tony63 | 0:f7aa7972da4d | 181 | } |
tony63 | 0:f7aa7972da4d | 182 | return index; |
tony63 | 0:f7aa7972da4d | 183 | } |
tony63 | 0:f7aa7972da4d | 184 | |
tony63 | 0:f7aa7972da4d | 185 | //*********************esta funcion inicializa el modem*************** |
tony63 | 0:f7aa7972da4d | 186 | int init() |
tony63 | 0:f7aa7972da4d | 187 | { |
tony63 | 0:f7aa7972da4d | 188 | if (0 != sendCmdAndWaitForResp("AT\r\n", "OK", 5)){ |
tony63 | 0:f7aa7972da4d | 189 | return -1; |
tony63 | 0:f7aa7972da4d | 190 | } |
tony63 | 0:f7aa7972da4d | 191 | if (0 != sendCmdAndWaitForResp("AT+CNMI=1,1\r\n", "OK", 5)){ |
tony63 | 0:f7aa7972da4d | 192 | return -1; |
tony63 | 0:f7aa7972da4d | 193 | } |
tony63 | 0:f7aa7972da4d | 194 | if (0 != sendCmdAndWaitForResp("AT+CMGF=0\r\n", "OK", 5)){ |
tony63 | 0:f7aa7972da4d | 195 | return -1; |
tony63 | 0:f7aa7972da4d | 196 | } |
tony63 | 0:f7aa7972da4d | 197 | if (0 != sendCmdAndWaitForResp("AT+CBST=0,0,1\r\n", "OK", 5)){ |
tony63 | 0:f7aa7972da4d | 198 | return -1; |
tony63 | 0:f7aa7972da4d | 199 | } |
tony63 | 0:f7aa7972da4d | 200 | return 0; |
tony63 | 0:f7aa7972da4d | 201 | } |
tony63 | 0:f7aa7972da4d | 202 | |
tony63 | 0:f7aa7972da4d | 203 | //*****************SE INICIA EL PROGRAMA PRINCIPAL******************************************************* |
tony63 | 0:f7aa7972da4d | 204 | int main() { |
tony63 | 0:f7aa7972da4d | 205 | LedVerde=1; //APAGO LOS LEDS |
tony63 | 0:f7aa7972da4d | 206 | LedRojo=1; |
tony63 | 0:f7aa7972da4d | 207 | LedAzul=1; |
tony63 | 0:f7aa7972da4d | 208 | LedRojo=0; // PRENDO EL LED ROJO |
tony63 | 0:f7aa7972da4d | 209 | |
tony63 | 0:f7aa7972da4d | 210 | //****************CONFIGURAMOS EL MODEM GSM (TELEFONO CELULAR SIEMENS A56i) |
tony63 | 0:f7aa7972da4d | 211 | inicio1: |
tony63 | 0:f7aa7972da4d | 212 | ret = init(); |
tony63 | 0:f7aa7972da4d | 213 | if(ret==0){ |
tony63 | 0:f7aa7972da4d | 214 | LedRojo=1; |
tony63 | 0:f7aa7972da4d | 215 | LedVerde=0; |
tony63 | 0:f7aa7972da4d | 216 | } |
tony63 | 0:f7aa7972da4d | 217 | else{ |
tony63 | 0:f7aa7972da4d | 218 | wait(5); |
tony63 | 0:f7aa7972da4d | 219 | goto inicio1; |
tony63 | 0:f7aa7972da4d | 220 | } |
tony63 | 0:f7aa7972da4d | 221 | //******************************************************************************************* |
tony63 | 0:f7aa7972da4d | 222 | //inicia la recepcion de un mensaje de texto |
tony63 | 0:f7aa7972da4d | 223 | while(1){ |
tony63 | 0:f7aa7972da4d | 224 | if (GSM.readable()) { |
tony63 | 0:f7aa7972da4d | 225 | readBuffer(buffer,100); |
tony63 | 0:f7aa7972da4d | 226 | pc.printf("%s\r\n",buffer); |
tony63 | 0:f7aa7972da4d | 227 | for(i=0;i<5;i++) |
tony63 | 0:f7aa7972da4d | 228 | { |
tony63 | 0:f7aa7972da4d | 229 | resp[i]=buffer[i]; |
tony63 | 0:f7aa7972da4d | 230 | } |
tony63 | 0:f7aa7972da4d | 231 | pc.printf("%s\r\n",resp); |
tony63 | 0:f7aa7972da4d | 232 | if(strcmp("$$+CM",resp) == 0){ //COMPARA resp con "+CMTI" |
tony63 | 0:f7aa7972da4d | 233 | pc.printf("llego MSG\r\n"); |
tony63 | 0:f7aa7972da4d | 234 | cleanBuffer(buffer,10); |
tony63 | 0:f7aa7972da4d | 235 | wait(0.5); |
tony63 | 0:f7aa7972da4d | 236 | GSM.printf("AT+CMGL=0\r\n");//envio comando para leer mensaje |
tony63 | 0:f7aa7972da4d | 237 | pc.printf("AT+CMGL=0\r\n"); |
tony63 | 0:f7aa7972da4d | 238 | //if (GSM.readable()) { |
tony63 | 0:f7aa7972da4d | 239 | GSM.printf("AT+CMGD=0\r\n"); |
tony63 | 0:f7aa7972da4d | 240 | readBuffer(buffer,100); |
tony63 | 0:f7aa7972da4d | 241 | pc.printf("%s\r\n",buffer); |
tony63 | 0:f7aa7972da4d | 242 | wait(5); |
tony63 | 0:f7aa7972da4d | 243 | //leer telefono |
tony63 | 0:f7aa7972da4d | 244 | for(i=0;i<10;i++){ |
tony63 | 0:f7aa7972da4d | 245 | tel[i]=buffer[i+40]; |
tony63 | 0:f7aa7972da4d | 246 | } |
tony63 | 0:f7aa7972da4d | 247 | pc.printf("%s-\r\n",tel); |
tony63 | 0:f7aa7972da4d | 248 | //leer tamaño |
tony63 | 0:f7aa7972da4d | 249 | for(i=0;i<2;i++){ |
tony63 | 0:f7aa7972da4d | 250 | tam[i]=buffer[i+68]; |
tony63 | 0:f7aa7972da4d | 251 | } |
tony63 | 0:f7aa7972da4d | 252 | pc.printf("%s-\r\n",tam); |
tony63 | 0:f7aa7972da4d | 253 | //leer mensaje |
tony63 | 0:f7aa7972da4d | 254 | for(i=0;i<14;i++){ |
tony63 | 0:f7aa7972da4d | 255 | msg[i]=buffer[i+70]; |
tony63 | 0:f7aa7972da4d | 256 | } |
tony63 | 0:f7aa7972da4d | 257 | pc.printf("%s-\r\n",msg); |
tony63 | 0:f7aa7972da4d | 258 | //decodificar mensaje |
tony63 | 0:f7aa7972da4d | 259 | //comparar mensaje |
tony63 | 0:f7aa7972da4d | 260 | if(strcmp("417658DE0EC700",msg) == 0){ //COMPARA resp con "417658DE0EC700" que es Alarma1 |
tony63 | 0:f7aa7972da4d | 261 | LedVerde=1; |
tony63 | 0:f7aa7972da4d | 262 | LedAzul=0; |
tony63 | 0:f7aa7972da4d | 263 | wait(15); |
tony63 | 0:f7aa7972da4d | 264 | LedAzul=1; |
tony63 | 0:f7aa7972da4d | 265 | LedVerde=0; |
tony63 | 0:f7aa7972da4d | 266 | } |
tony63 | 0:f7aa7972da4d | 267 | if(strcmp("417658DE0ECB00",msg) == 0){ //COMPARA resp con "417658DE0ECB00" que es Alarma2 |
tony63 | 0:f7aa7972da4d | 268 | LedVerde=1; |
tony63 | 0:f7aa7972da4d | 269 | LedRojo=0; |
tony63 | 0:f7aa7972da4d | 270 | wait(15); |
tony63 | 0:f7aa7972da4d | 271 | LedRojo=1; |
tony63 | 0:f7aa7972da4d | 272 | LedVerde=0; |
tony63 | 0:f7aa7972da4d | 273 | } |
tony63 | 0:f7aa7972da4d | 274 | |
tony63 | 0:f7aa7972da4d | 275 | |
tony63 | 0:f7aa7972da4d | 276 | //ejecurar orden //ya se ejecuto |
tony63 | 0:f7aa7972da4d | 277 | //08-D6379B1E569763 esto es Voltaje1 |
tony63 | 0:f7aa7972da4d | 278 | |
tony63 | 0:f7aa7972da4d | 279 | |
tony63 | 0:f7aa7972da4d | 280 | cleanBuffer(buffer,100); |
tony63 | 0:f7aa7972da4d | 281 | |
tony63 | 0:f7aa7972da4d | 282 | } |
tony63 | 0:f7aa7972da4d | 283 | } |
tony63 | 0:f7aa7972da4d | 284 | |
tony63 | 0:f7aa7972da4d | 285 | |
tony63 | 0:f7aa7972da4d | 286 | |
tony63 | 0:f7aa7972da4d | 287 | |
tony63 | 0:f7aa7972da4d | 288 | //***************ALARMA POR ACTIVACION PIR*************************************************** |
tony63 | 0:f7aa7972da4d | 289 | if (PIR.falling()) |
tony63 | 0:f7aa7972da4d | 290 | { |
tony63 | 0:f7aa7972da4d | 291 | wait(1); |
tony63 | 0:f7aa7972da4d | 292 | if (!PIR) |
tony63 | 0:f7aa7972da4d | 293 | { |
tony63 | 0:f7aa7972da4d | 294 | |
tony63 | 0:f7aa7972da4d | 295 | //**********se envia la palabra Intrusos en rionegro a cuatro telefonos diferentes.... |
tony63 | 0:f7aa7972da4d | 296 | //******Gustavo |
tony63 | 0:f7aa7972da4d | 297 | GSM.printf("AT+CMGS=50\n\r"); |
tony63 | 0:f7aa7972da4d | 298 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 299 | GSM.printf("0011000A9113223717370000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10"); |
tony63 | 0:f7aa7972da4d | 300 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 301 | GSM.putc((char)0x1A); |
tony63 | 0:f7aa7972da4d | 302 | } |
tony63 | 0:f7aa7972da4d | 303 | } |
tony63 | 0:f7aa7972da4d | 304 | |
tony63 | 0:f7aa7972da4d | 305 | |
tony63 | 0:f7aa7972da4d | 306 | }// while |
tony63 | 0:f7aa7972da4d | 307 | }// main |
tony63 | 0:f7aa7972da4d | 308 | /* |
tony63 | 0:f7aa7972da4d | 309 | // P |
tony63 | 0:f7aa7972da4d | 310 | /* GSM.printf("AT+CMGS=50\n\r"); |
tony63 | 0:f7aa7972da4d | 311 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 312 | GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10"); |
tony63 | 0:f7aa7972da4d | 313 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 314 | GSM.putc((char)0x1A); |
tony63 | 0:f7aa7972da4d | 315 | // Y |
tony63 | 0:f7aa7972da4d | 316 | GSM.printf("AT+CMGS=50\n\r"); |
tony63 | 0:f7aa7972da4d | 317 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 318 | GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10"); |
tony63 | 0:f7aa7972da4d | 319 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 320 | GSM.putc((char)0x1A); |
tony63 | 0:f7aa7972da4d | 321 | // S |
tony63 | 0:f7aa7972da4d | 322 | GSM.printf("AT+CMGS=50\n\r"); |
tony63 | 0:f7aa7972da4d | 323 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 324 | GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10"); |
tony63 | 0:f7aa7972da4d | 325 | wait_ms(200); |
tony63 | 0:f7aa7972da4d | 326 | GSM.putc((char)0x1A); |
tony63 | 0:f7aa7972da4d | 327 | |
tony63 | 0:f7aa7972da4d | 328 | wait(30); |
tony63 | 0:f7aa7972da4d | 329 | } |
tony63 | 0:f7aa7972da4d | 330 | } |
tony63 | 0:f7aa7972da4d | 331 | } //while |
tony63 | 0:f7aa7972da4d | 332 | } //main |
tony63 | 0:f7aa7972da4d | 333 | |
tony63 | 0:f7aa7972da4d | 334 | /* |
tony63 | 0:f7aa7972da4d | 335 | Camara on |
tony63 | 0:f7aa7972da4d | 336 | |
tony63 | 0:f7aa7972da4d | 337 | da esto |
tony63 | 0:f7aa7972da4d | 338 | +CMGL: 1,0,,26 |
tony63 | 0:f7aa7972da4d | 339 | 0791751330512411040AA1132237173700006150709060250A09C3703B2C0F83DE6E |
tony63 | 0:f7aa7972da4d | 340 | |
tony63 | 0:f7aa7972da4d | 341 | Camara of da esto |
tony63 | 0:f7aa7972da4d | 342 | +CMGL: 2,0,,26 |
tony63 | 0:f7aa7972da4d | 343 | 0791751330080089040AA1132237173700006150709001520A09C3703B2C0F83DE66 |
tony63 | 0:f7aa7972da4d | 344 | |
tony63 | 0:f7aa7972da4d | 345 | OK |
tony63 | 0:f7aa7972da4d | 346 | |
tony63 | 0:f7aa7972da4d | 347 | Sirena on |
tony63 | 0:f7aa7972da4d | 348 | da esto |
tony63 | 0:f7aa7972da4d | 349 | |
tony63 | 0:f7aa7972da4d | 350 | +CMGL: 3,0,,26 |
tony63 | 0:f7aa7972da4d | 351 | 0791751330512411040AA1132237173700006150709031540A09D3B4BCEC0E83DE6E |
tony63 | 0:f7aa7972da4d | 352 | |
tony63 | 0:f7aa7972da4d | 353 | OK |
tony63 | 0:f7aa7972da4d | 354 | |
tony63 | 0:f7aa7972da4d | 355 | Sirena of |
tony63 | 0:f7aa7972da4d | 356 | |
tony63 | 0:f7aa7972da4d | 357 | da esto |
tony63 | 0:f7aa7972da4d | 358 | +CMGL: 4,0,,26 |
tony63 | 0:f7aa7972da4d | 359 | 0791751330512411040AA1132237173700006150709051750A09D3B4BCEC0E83DE66 |
tony63 | 0:f7aa7972da4d | 360 | |
tony63 | 0:f7aa7972da4d | 361 | OK |
tony63 | 0:f7aa7972da4d | 362 | |
tony63 | 0:f7aa7972da4d | 363 | Alarma 1 |
tony63 | 0:f7aa7972da4d | 364 | |
tony63 | 0:f7aa7972da4d | 365 | +CMGL: 1,0,,25 |
tony63 | 0:f7aa7972da4d | 366 | 0791751330512411040AA1132237173700006150702153640A08417658DE0E8362 |
tony63 | 0:f7aa7972da4d | 367 | 5 |
tony63 | 0:f7aa7972da4d | 368 | |
tony63 | 0:f7aa7972da4d | 369 | |
tony63 | 0:f7aa7972da4d | 370 | |
tony63 | 0:f7aa7972da4d | 371 | */ |