version que corrige algunos errores de sincronizacion probada y funciona ok

Dependencies:   DebouncedIn mbed

Fork of ALARMA_FINCA_GSM by Gustavo Ramirez

Committer:
tony63
Date:
Sun Nov 05 07:15:28 2017 +0000
Revision:
1:9dc429267e43
Parent:
0:f7aa7972da4d
actualizacion de algunos errores de sincronizacion

Who changed what in which revision?

UserRevisionLine numberNew 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 1:9dc429267e43 30 char buffer[100];
tony63 1:9dc429267e43 31 char resp[6];
tony63 1:9dc429267e43 32 char tel[21];
tony63 1:9dc429267e43 33 char tam [3];
tony63 1:9dc429267e43 34 char msg [15];
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 1:9dc429267e43 53 if(t.read() > 5) {
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 1:9dc429267e43 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 1:9dc429267e43 225 readBuffer(buffer,6);
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 1:9dc429267e43 233 pc.printf("llegoo MSG\r\n");
tony63 1:9dc429267e43 234 cleanBuffer(buffer,6);
tony63 1:9dc429267e43 235 GSM.printf("AT+CMGL=0");//envio comando para leer mensaje
tony63 1:9dc429267e43 236 GSM.putc(0x0D);//envoi du caractere \n
tony63 0:f7aa7972da4d 237 pc.printf("AT+CMGL=0\r\n");
tony63 1:9dc429267e43 238 loop1: if (GSM.readable()) {
tony63 1:9dc429267e43 239 readBuffer(buffer,100);
tony63 1:9dc429267e43 240 pc.printf("%s\r\n",buffer);
tony63 1:9dc429267e43 241 goto seguir1;
tony63 1:9dc429267e43 242 }
tony63 1:9dc429267e43 243 goto loop1;
tony63 0:f7aa7972da4d 244 //leer telefono
tony63 1:9dc429267e43 245 seguir1: for(i=0;i<10;i++){
tony63 1:9dc429267e43 246 tel[i]=buffer[i+50];
tony63 0:f7aa7972da4d 247 }
tony63 0:f7aa7972da4d 248 pc.printf("%s-\r\n",tel);
tony63 0:f7aa7972da4d 249 //leer tamaño
tony63 0:f7aa7972da4d 250 for(i=0;i<2;i++){
tony63 1:9dc429267e43 251 tam[i]=buffer[i+78];
tony63 0:f7aa7972da4d 252 }
tony63 0:f7aa7972da4d 253 pc.printf("%s-\r\n",tam);
tony63 0:f7aa7972da4d 254 //leer mensaje
tony63 0:f7aa7972da4d 255 for(i=0;i<14;i++){
tony63 1:9dc429267e43 256 msg[i]=buffer[i+80];
tony63 0:f7aa7972da4d 257 }
tony63 1:9dc429267e43 258 pc.printf("%s-\r\n",msg);
tony63 1:9dc429267e43 259 GSM.printf("AT+CMGD=0");//envio comando para borrar mensaje
tony63 1:9dc429267e43 260 GSM.putc(0x0D);//envoi du caractere \n
tony63 1:9dc429267e43 261 wait(1);
tony63 1:9dc429267e43 262 GSM.printf("AT+CMGD=1");//envio comando para borrar mensaje
tony63 1:9dc429267e43 263 GSM.putc(0x0D);//envoi du caractere \n
tony63 1:9dc429267e43 264 wait(1);
tony63 0:f7aa7972da4d 265 //decodificar mensaje
tony63 0:f7aa7972da4d 266 //comparar mensaje
tony63 0:f7aa7972da4d 267 if(strcmp("417658DE0EC700",msg) == 0){ //COMPARA resp con "417658DE0EC700" que es Alarma1
tony63 0:f7aa7972da4d 268 LedVerde=1;
tony63 0:f7aa7972da4d 269 LedAzul=0;
tony63 0:f7aa7972da4d 270 wait(15);
tony63 0:f7aa7972da4d 271 LedAzul=1;
tony63 0:f7aa7972da4d 272 LedVerde=0;
tony63 0:f7aa7972da4d 273 }
tony63 0:f7aa7972da4d 274 if(strcmp("417658DE0ECB00",msg) == 0){ //COMPARA resp con "417658DE0ECB00" que es Alarma2
tony63 0:f7aa7972da4d 275 LedVerde=1;
tony63 0:f7aa7972da4d 276 LedRojo=0;
tony63 0:f7aa7972da4d 277 wait(15);
tony63 0:f7aa7972da4d 278 LedRojo=1;
tony63 0:f7aa7972da4d 279 LedVerde=0;
tony63 0:f7aa7972da4d 280 }
tony63 0:f7aa7972da4d 281
tony63 0:f7aa7972da4d 282
tony63 0:f7aa7972da4d 283 //ejecurar orden //ya se ejecuto
tony63 0:f7aa7972da4d 284 //08-D6379B1E569763 esto es Voltaje1
tony63 0:f7aa7972da4d 285
tony63 0:f7aa7972da4d 286
tony63 0:f7aa7972da4d 287 cleanBuffer(buffer,100);
tony63 0:f7aa7972da4d 288
tony63 0:f7aa7972da4d 289 }
tony63 0:f7aa7972da4d 290 }
tony63 0:f7aa7972da4d 291
tony63 0:f7aa7972da4d 292
tony63 0:f7aa7972da4d 293
tony63 0:f7aa7972da4d 294
tony63 0:f7aa7972da4d 295 //***************ALARMA POR ACTIVACION PIR***************************************************
tony63 0:f7aa7972da4d 296 if (PIR.falling())
tony63 0:f7aa7972da4d 297 {
tony63 0:f7aa7972da4d 298 wait(1);
tony63 0:f7aa7972da4d 299 if (!PIR)
tony63 0:f7aa7972da4d 300 {
tony63 0:f7aa7972da4d 301
tony63 0:f7aa7972da4d 302 //**********se envia la palabra Intrusos en rionegro a cuatro telefonos diferentes....
tony63 0:f7aa7972da4d 303 //******Gustavo
tony63 0:f7aa7972da4d 304 GSM.printf("AT+CMGS=50\n\r");
tony63 0:f7aa7972da4d 305 wait_ms(200);
tony63 0:f7aa7972da4d 306 GSM.printf("0011000A9113223717370000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10");
tony63 0:f7aa7972da4d 307 wait_ms(200);
tony63 0:f7aa7972da4d 308 GSM.putc((char)0x1A);
tony63 1:9dc429267e43 309 wait(10);
tony63 1:9dc429267e43 310 ///si el operador contesta con mensaje borrar de nuevo
tony63 1:9dc429267e43 311 GSM.printf("AT+CMGD=0");//envio comando para borrar mensaje
tony63 1:9dc429267e43 312 GSM.putc(0x0D);//envoi du caractere \n
tony63 1:9dc429267e43 313 wait(1);
tony63 1:9dc429267e43 314 GSM.printf("AT+CMGD=1");//envio comando para borrar mensaje
tony63 1:9dc429267e43 315 GSM.putc(0x0D);//envoi du caractere \n
tony63 1:9dc429267e43 316 wait(1);
tony63 1:9dc429267e43 317
tony63 0:f7aa7972da4d 318 }
tony63 0:f7aa7972da4d 319 }
tony63 0:f7aa7972da4d 320
tony63 0:f7aa7972da4d 321
tony63 0:f7aa7972da4d 322 }// while
tony63 0:f7aa7972da4d 323 }// main
tony63 0:f7aa7972da4d 324 /*
tony63 0:f7aa7972da4d 325 // P
tony63 0:f7aa7972da4d 326 /* GSM.printf("AT+CMGS=50\n\r");
tony63 0:f7aa7972da4d 327 wait_ms(200);
tony63 0:f7aa7972da4d 328 GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10");
tony63 0:f7aa7972da4d 329 wait_ms(200);
tony63 0:f7aa7972da4d 330 GSM.putc((char)0x1A);
tony63 0:f7aa7972da4d 331 // Y
tony63 0:f7aa7972da4d 332 GSM.printf("AT+CMGS=50\n\r");
tony63 0:f7aa7972da4d 333 wait_ms(200);
tony63 0:f7aa7972da4d 334 GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10");
tony63 0:f7aa7972da4d 335 wait_ms(200);
tony63 0:f7aa7972da4d 336 GSM.putc((char)0x1A);
tony63 0:f7aa7972da4d 337 // S
tony63 0:f7aa7972da4d 338 GSM.printf("AT+CMGS=50\n\r");
tony63 0:f7aa7972da4d 339 wait_ms(200);
tony63 0:f7aa7972da4d 340 GSM.printf("0011000A91-00000000-0000AA2A21970B19CE83926EBABC3E7FCF41453788190699D3EE7118442E83A4E9B7BB7C96BF5DAE10");
tony63 0:f7aa7972da4d 341 wait_ms(200);
tony63 0:f7aa7972da4d 342 GSM.putc((char)0x1A);
tony63 0:f7aa7972da4d 343
tony63 0:f7aa7972da4d 344 wait(30);
tony63 0:f7aa7972da4d 345 }
tony63 0:f7aa7972da4d 346 }
tony63 0:f7aa7972da4d 347 } //while
tony63 0:f7aa7972da4d 348 } //main
tony63 0:f7aa7972da4d 349
tony63 0:f7aa7972da4d 350 /*
tony63 0:f7aa7972da4d 351 Camara on
tony63 0:f7aa7972da4d 352
tony63 0:f7aa7972da4d 353 da esto
tony63 0:f7aa7972da4d 354 +CMGL: 1,0,,26
tony63 0:f7aa7972da4d 355 0791751330512411040AA1132237173700006150709060250A09C3703B2C0F83DE6E
tony63 0:f7aa7972da4d 356
tony63 0:f7aa7972da4d 357 Camara of da esto
tony63 0:f7aa7972da4d 358 +CMGL: 2,0,,26
tony63 0:f7aa7972da4d 359 0791751330080089040AA1132237173700006150709001520A09C3703B2C0F83DE66
tony63 0:f7aa7972da4d 360
tony63 0:f7aa7972da4d 361 OK
tony63 0:f7aa7972da4d 362
tony63 0:f7aa7972da4d 363 Sirena on
tony63 0:f7aa7972da4d 364 da esto
tony63 0:f7aa7972da4d 365
tony63 0:f7aa7972da4d 366 +CMGL: 3,0,,26
tony63 0:f7aa7972da4d 367 0791751330512411040AA1132237173700006150709031540A09D3B4BCEC0E83DE6E
tony63 0:f7aa7972da4d 368
tony63 0:f7aa7972da4d 369 OK
tony63 0:f7aa7972da4d 370
tony63 0:f7aa7972da4d 371 Sirena of
tony63 0:f7aa7972da4d 372
tony63 0:f7aa7972da4d 373 da esto
tony63 0:f7aa7972da4d 374 +CMGL: 4,0,,26
tony63 0:f7aa7972da4d 375 0791751330512411040AA1132237173700006150709051750A09D3B4BCEC0E83DE66
tony63 0:f7aa7972da4d 376
tony63 0:f7aa7972da4d 377 OK
tony63 0:f7aa7972da4d 378
tony63 0:f7aa7972da4d 379 Alarma 1
tony63 0:f7aa7972da4d 380
tony63 0:f7aa7972da4d 381 +CMGL: 1,0,,25
tony63 0:f7aa7972da4d 382 0791751330512411040AA1132237173700006150702153640A08417658DE0E8362
tony63 0:f7aa7972da4d 383 5
tony63 0:f7aa7972da4d 384
tony63 0:f7aa7972da4d 385
tony63 0:f7aa7972da4d 386
tony63 0:f7aa7972da4d 387 */