Equipo Azul
Dependencies: mbed RASTREO_GPRS DebouncedIn GPS_G
Revision 3:17d367fba9c1, committed 2019-08-30
- Comitter:
- Giovani_Cardona
- Date:
- Fri Aug 30 21:22:41 2019 +0000
- Parent:
- 2:f4483748eee0
- Commit message:
- Equipo Azul
Changed in this revision
61_RASTREO_GPRS.lib | Show annotated file Show diff for this revision Revisions of this file |
main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r f4483748eee0 -r 17d367fba9c1 61_RASTREO_GPRS.lib --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/61_RASTREO_GPRS.lib Fri Aug 30 21:22:41 2019 +0000 @@ -0,0 +1,1 @@ +https://os.mbed.com/users/tony63/code/RASTREO_GPRS/#f4483748eee0
diff -r f4483748eee0 -r 17d367fba9c1 main.cpp --- a/main.cpp Fri Aug 30 04:47:49 2019 +0000 +++ b/main.cpp Fri Aug 30 21:22:41 2019 +0000 @@ -1,4 +1,4 @@ -/* +/*-----Equipo Azul----- PROGRAMA PARA HACER SEGUIMIENTO DE FLOTAS CON GPS Y CONEXION A LA RED GPRS se pueden simular trayectorias gravando archivos kml en google earth y usando SatGen @@ -27,6 +27,9 @@ char lon[15], lat[15]; // Cadenas a capturar para latitud y longitud. char gprsBuffer[20]; char resp[15]; + +char aux[100]; + Serial GSM(PTE0,PTE1); // Puertos del FRDM para el Módem. Serial pc(USBTX,USBRX); GPS gps(PTE22, PTE23); // Puerto del FDRM para el GPS. @@ -36,6 +39,7 @@ int count=0; int g=0; + //----------------------------------------------------------------------------------------------------------------------------- // Esta funcion de abajo lee todo un bufer hasta encontrar CR o LF y el resto lo rellena de // $, count es lo que va a leer. Lo leido lo mete en buffer que es una cadena previamente definida @@ -87,10 +91,13 @@ int len = strlen(resp); int sum=0; t.start(); - + i = 0; while(1) { if(GSM.readable()) { char c = GSM.getc(); + //pc.printf("\nc:%c",c); + aux[i] = c; + i++; sum = (c==resp[sum]) ? sum+1 : 0;// esta linea de C# sum se incrementa o se hace cero segun c if(sum == len)break; //ya acabo se sale } @@ -203,28 +210,35 @@ int init_gprs(void){ if (0 != sendCmdAndWaitForResp("AT\r\n", "OK", 3)){ + pc.printf("1"); return -1; } if (0 != sendCmdAndWaitForResp("ATE0\r\n", "OK", 3)){ //sin eco + pc.printf("2"); return -1; } if (0 != sendCmdAndWaitForResp("AT+CGATT=1\r\n", "OK", 3)){//inicia conexion GPRS + pc.printf("3"); return -1; } if (0 != sendCmdAndWaitForResp("AT+CSTT=internet.comcel.com.co,comcel,comcel\r\n", "OK", 3)){ //set apn + pc.printf("4"); return -1; } if (0 != sendCmdAndWaitForResp("AT+CIICR\r\n", "OK", 3)){ //habilitar conexion inalambrica + pc.printf("5"); return -1; } cleanBuffer(gprsBuffer,25); sendCmd("AT+CIFSR\r\n"); //obtener direccion ip if(0 != ip_detect()){ //esperar la llegada de un direccion IP + pc.printf("6"); return -1; } wait(1); LedVerde=0;//CONEXION OK... PRENDE LED VERDE.. + pc.printf("Led verde"); return 0; } @@ -269,10 +283,11 @@ if(init_gprs()<0){ LedRojo=0;//PRENDE ROJO, APAGA VERDE LedVerde=1; + pc.printf("\n\nlop1\n\n"); goto lop1;//NO SE PUEDE RECONECTAR INFINITAMENTE ESTE SALTO ES PROVISIONAL //CONTAR LOS INTENTOS Y DAR SEÑAL DE ERROR PERMANENTE } - button.fall(&off_gprs);//perdida de alimentacion,apagaron carro ejecuta interupcion + //button.fall(&off_gprs);//perdida de alimentacion,apagaron carro ejecuta interupcion //que desconecta la conexion GPRS while(1){ //si el GPS tiene conexion y datos se envian coordenadas a pagina web LedAzul=1; @@ -282,26 +297,54 @@ la = gps.latitude; sprintf (lon, "%f", lo);//pasa de flotante a caracter sprintf (lat, "%f", la);//pasa de flotante a caracter - repetir1:if (0 != sendCmdAndWaitForResp("AT+CIPSTART=TCP,unrobotica.com,80\r\n","OK", 3)){ + + GSM.printf("AT+CIPSTART=\"TCP\",\"unrobotica.com\",\"80\"\r\n"); + pc.printf("AT+CIPSTART=\"TCP\",\"unrobotica.com\",\"80\"\r\n"); + /*repetir1:if (0 != sendCmdAndWaitForResp("AT+CIPSTART=TCP,unrobotica.com,80\r\n","OK", 5)){ wait(3); LedVerde=1; LedRojo=0; + pc.printf("\n\nRep1\n\n"); goto repetir1;//salto provisional debe contar intentos y no hacer nada ya que es imposible conectarse - } + } */ repetir2:cleanBuffer(gprsBuffer,10); - if(0 !=sendCmdAndWaitForResp("AT+CIPSEND\r\n","",3)){ //devuelve control+Z + if(0 !=sendCmdAndWaitForResp("AT+CIPSEND\r\n","",5)){ //devuelve control+Z wait(1); + pc.printf("\n\nRep2\n\n"); goto repetir2;//salto provisional debe contar intentos y no hacer nada ya que es imposible conectarse } - - GSM.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.0\r\n",lat,lon); - GSM.printf("Host: unrobotica.com\n\n"); + for(i=0;i<100;i++) + { + pc.printf("%c",aux[i]); + } + wait(5); + pc.printf("\n\nRep3\n\n"); + GSM.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.1\r\n",lat,lon); + pc.printf("GET /gpstracker/gps1.php?lat=%s&lon=%s HTTP/1.1\r\n",lat,lon); + wait(5); + GSM.printf("Host: unrobotica.com\r\n"); + wait(5); GSM.printf("\r\n"); - if(0 !=sendCmdAndWaitForResp("\n\r","SEND OK",10)) + wait(5); + cleanBuffer(aux,100); + //GSM.putc((char)0x1A); + GSM.printf("\r\n"); + for(i=0;i<100;i++) + { + pc.printf("%c",aux[i]); + } + /*if(0 !=sendCmdAndWaitForResp(">\r\n","SEND OK",10)) { + pc.printf("\n -\n"); + for(i=0;i<100;i++) + { + pc.printf("%c",aux[i]); + } + pc.printf("Not - SEND OK"); } + else{pc.printf("SEND OK");}*/ //mas tarde devuelve SEND OK ...esto es suficiente para indicarnos que los datos se fueron a la nube //cleanBuffer(gprsBuffer,20); //leer bufer y encontrar respuesta exitosa devuelve "SEND OK"