RASTREADOR SATELITAL POR MENSAJERIA DE TEXTO SMS Y LA RED DE CELULAR GPRS

Debido a que es muy dificil encontrar un proyecto completo y serio en la internet de un sistema de localizacion satelital basado en mensajeria de texto por la red de telefonia celular, decidi publicar este proyecto donde he invertido bastante tiempo. Se implemento toda la programacion en lenguaje C por protocolo de transmision de datos tipo PDU-hexadecimal. mucho mas completo que el metodo texto PDU (adeptos a Arduino...) que no permite obtener informacion vital, como el numero de telefono de quien envia el mensaje. Evitando asi un sistema de numeros telefonicos fijos, que exigen reprogramar el modulo. Aclaro; el metodo de localizacion, no es por la red GPRS es por la red GSM en mensajeria de texto PDU. aunque no presenta datos en estricto tiempo real. Por mi experiencia se que es mas robusta en zonas alejadas que el metodo GPRS. Luego de extensivas pruebas logramos una version muy estable. Este sistema trabaja bastante bien. Se puede ensamblar con toda confianza. Mas abajo describo en detalle el metodo en tiempo real GPRS.

Imagen relacionada

El sistema es multiproposito lo concebi para varias aplicaciones:

  1. Localizador remoto con GPS.
  2. Apertura de puerta de carro asegurada por bloqueo central, cerradura electromagnetica de casa.
  3. Cierra y abre valvula de combustible en auto.
  4. Lee un valor analogo para leer sensor.

Como Localizador funciona enviando por SMS, el mensaje "Coordenadas " o tambien asi; "coordenadas". devuelve dos mensajes de texto; el primero en llegar es uno diciendo Orden Recibida y dependiendo del trafico de la red GSM, luego devuelve un link de GoogleMaps indicando la localizacion del equipo.

 Como apertura de puerta, se puede usar para abrir la puerta de un auto que quedo cerrada de forma accidental y no hay forma de abrirla desde afuera. Esta salida se puede emplear para emitir un pulso al sistema de bloqueo central de un carro y facilitar la apertura de puertas. desde el sistema de bloqueo central. Tambien en edificios y apartamentos se usan cerraduras magneticas que dan apertura por medio de un pulso. Use el mensaje "Pulso" o "pulso"

Como accionamiento de valvula se puede cablear una valvula sonlenoide para abrir o cerrar flujo de combustible de un auto y dificultar la movilizarlo por supuesto robo. En este caso envie On, Off,  on,  off.

Puede leer un sensor analogico como temperatura, presion, gas, flujo, o cualquier cosa que se pueda leer por sensor analogico y devolver este valor medido. En este caso envie el mensaje "Voltaje"

Como plataforma de programacion se uso mbed.org donde reside el codigo original de este proyecto ademas se usaron dos placas para montar (dos opciones) este sistema; FRDMKL23Z y STM32F103 (la bluepill china de bajisimo costo).

Se puede hacer depuracion desde una PC instaladole un adaptador USB a TTL de 3,3v en Serial3(DONGLE USB). El GPS real (de 3,3v) se conecta en Serial1 o puede verificar el montaje con un GPS simulado, usando un dongle usb a ttl y el programa proteus con un GPS virtual. El modem GSM/GPRS se conecta en serial1 PB_7 y PB_6. Se adicionaron tres leds de señalizacion y salidas para valvula y cerradura. Todas las conexiones para puertos de salida son activas altas sobre el nivel de tierra. La entrada digital sin GPS (a tierra trabaja el sistema sin gps. Evitando que por diseño se bloquee )

Dongle USB 

Como MODEM GSM/GPRS se uso un telefono celular Siemens A56 o C55 que dispone de terminales RS323 para modem. Para lograr esto es necesario hacer una conexion a traves de un conector apropiado puede ser adaptando un audifono o cargador como se muestra en el grafico siguiente. Se pueden usar modulos SIM900  (prefiera modulos cuatribanda ) funcionan en todo el mundo.

 

EL SISTEMA TAMBIEN SE IMPLEMENTO SOBRE UNA FRDMKL25Z, El resto de conexiones se deducen de el codigo en C.

     

Se puede probar el sistema con un GPS simulado en proteus con el siguiente esquema

El aspecto del programa en proteus es el siguiente, es facil de implementar con el com-pim virtual.

la libreria necesaria de proteus para el GPS se baja de aca.

BAJAR CODIGO HEX PARA PROGRAMAR FRDMKL25Z desde mbed.org (sacar cuenta)

BAJAR CODIGO HEX PARA STM32F103 (bluepill de China)

En esta pagina encontrara todas las indicaciones para programar estos modulos, LA FRDMKL25Z con mbed.org y el procesador STM32F103 con una interfaz STLINK.

PROXIMAMENTE MAS VERSIONES COMPILADAS y ESTA APLICACION HACIENDO TRACK EN TIEMPO REAL CON PETICIONES GET Y CONEXION GPRS

Sin respuestas de "Mensaje Recibido" (sin acuse de recibo, ACK)

Mensajes con mas salidas de control suicheadas, con y sin acuse de recibo

On1   Off1   (Con y Sin  ACK)

On2   Off2   (Con y Sin  ACK)

On3   Off3  (Con y Sin  ACK)

On4  Off4   (Con y Sin  ACK)

RASTREADOR SATELITAL EN TIEMPO REAL CON LA RED DE CELULAR GPRS

Iniciamos este proyecto configurando la coneccion a la nube por parte del modem GPRS. La red GPRS nos permite llevar o traer datos a un modem GPRS desde la nube. Se puede emplear en el internet de las cosas. El ejemplo que vamos a tratar en esta oportunidad es implementar un sistema de rastreo. Algunos lo llaman "Rastreo de flotas". En otra oportunidad presentaremos la programacion del microcontrolador que lee cordenadas de GPS y las lleva a una pagina web que despliega un mapa y muestra en tiempo real, la geolocaliza de un movil que lleva este sistema. Hemos tomado como base e inspiracion el trabajo de SAUL CINTERO, proyecto que trabaja muy bien. Saul no explica como se envian los datos desde una conexion GPRS y nosotros vamos a complementar eso ya que en el proyecto de SAUL el interes es usar una aplicacion en android y desde un telefono celular Geolocalizarse. A diferencia de ello aca, el interes es implementar un modulo autonomo basado en microcontrolador que discretamente se instala dentro de un auto o camion. Que envie coordenadas a una red GPRS y luego las ponga en un mapa en tiempo real. Empecemos.

Para apropiarnos de esta tecnologia se requieren los siguientes recurzos:

  1. Disponer de un servicio de hosting webb, yo usare mi servidor alojado en godaddy.com. Es fundamental contactar al web master godaddy y solicitarle que le ayude a liberar los permisos de escritura en los archivos del servidor que se requiera. En godaddy es facil sin ayuda del webmaster. Se entra por file manager, se busca su directorio y archivo en el lado derecho de la pantalla del pc, se selecciona, se pulsa sobre el icono con forma de ojo (privacy) y aparecen 4 opciones. Se deben seleccionar, las dos primeras (web visible y web writeable) salvar y salir y listo.

  2. Se requiere de un moden GSM/GPRS (cuatribanda y con las ordenes AT que usaremos en este proyecto). Advierto que no todos los Modems disponen de todas las ordenes AT que se requieren en este ejemplo. Antes de comprarlo verifique eso en la hoja de datos. Yo usare uno que dispone del famoso chip SIM900. No me funcionaron los economicos modems A6 de thinker(aunque con otra forma de escribir los comandos AT y sus secuencias tienen que funcionar). Tampoco sirve el celular que usamos en el proyecto anterior, osea el SIEMENS A56 o C55. De plano no tiene implementadas todas las ordenes AT requeridas para hacer la conexion GPRS. Anexamos imagen del modem que se empleo.

  3. Una guia de conexion se encuentra aca
  4. Una guia de conexion a la red GPRS esta aca
  5. Un SIMCARD con DATOS, o plan de datos pre o post (usaremos CLARO-Colombia)
  6. Un dongle USB
  7. El programa DockLight ver 1.9. Este  sirve para enviar mandos AT, simples y macros. Permite gravar secuencias de macros para el modem en archivos, la version demo no permite salvar archivos de secuencias (indispensable) otros programas similares hacen esto, incluso gratuitos.
  8. Bajar el proyecto completo de SAUL CINTERO y carguelo en su servidor con los cambios indicados (centrado del mapa de su ciudad.... paso 10)
  9. Modificar el centro de los mapas, para que el mapa no le salga en España (ja!....). Para hacer eso, entre a la siguiente pagina que soporta el proyecto libre de geolocalizacion (pagina centrada en la ciudad de Medellin, segun el link) centre su mapa y apunte las coordenadas que se leen en el lado izquierdo localicese con el mouse pise boton izquierdo y pidale mostrar direccion, luego en el proyecto de Saul, que bajo en formato rar. Abra el archivo mapview.php, editelo y modifique la linea 55 como indico a continuacion: (para medellin colombia)
  10.  var initLonLat = new OpenLayers.LonLat(-75.5736,6.2604).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());   
  11. Editando adecuadamente mapview.php se pueden agregar mas iconos para mas moviles(adicionados en el directorio imagenes), ademas se deben generar archivos gps#.php por cada movil y de ser necesario las propiedades y caracteristicas del mapa.

Las coordenadas de arriba, son aca en mi ciudad, en el centro de Medellin-Colombia.

Nota: fijese que trocan la latitud y la longitud.

Instalamos la SIMCARD por el reverso del modulo y deslizamos el suiche cercano al plug DC del modulo, luego pulsamos el boton power por cinco segundos, hasta que los leds rojos cercanos a la conexion del puerto serie (dongle usb) se enciendan. Ahora todo esta listo para configurar el modem y la conexion a la red GPRS. Las ordenes en secuencia a enviar son las siguientes:

  1. AT+CGATT=1<CR><LF>    esperamos y nos conectamos al servidor de CLARO
  2. AT+CSTT="internet.comcel.com.co","comcel","comcel"<CR><LF>  //consulte su respectivo APN
  3. AT+CIICR<CR><LF>   //habilitar conexion inalambrica
  4. AT+CIFSR<CR><LF>  //obtener ip local

Luego el servidor de claro nos asigna una IP y quedamos conectados a GPRS CLARO, mejor dicho conectados a internet desde una consola.

Ahora iniciemos el envio de datos en nuestro caso, las coordenadas de un GPS.

  1. AT+CIPSTART="TCP","unrobotica.com","80"<CR><LF>  //Le indicamos a donde nos vamos a conectar en la nube en nuestro caso es el web server donde estan los archivos, los servicios de geolocalizacion en linea por puerto 80. (mi servidor en godaddy)
  2. AT+CIPSEND<CR><LF>    //informamos que vamos a iniciar el envio
  3. el servidor contesta con control+Z
  4. GET /xxxxxxxx/gps1.php?lat=6.27329&lon=-75.59308 HTTP/1.1<CR><LF>  // enviamos las coordenadas a un archivo del servidor en modo GET, con el path completo (gps1.php) es el archivo para un movil. movil numero1
  5. Host: unrobotica.com<CR><LF>  // indicamos el nombre de Host
  6. <CR><LF>   // damos enter para confirmar
  7. <SUB><CR><LF>  //enviamos control+Z

si se van a mandar mas datos inicie de nuevo por el paso 2. no lo haga en el paso 1. Este da error; ya que ya estamos conectados.

abajo estan las ordenes en azul y la respuesta del sevidor en rojo. sobre la consola de dockligth ver 1.9. Mandamos coordenadas de la (facultad de Minas) sitio conocido en mi ciudad.

Puede bajar el archivo con los macros de conexion para Docklight aca.

y para los datos: enviamos lo siguiente:

Dependiendo de la frecuencia de envio de datos, si es muy larga se recomienda hacer una desconecion de la siguiente forma: para no desgastar los datos de la  SIMCARD.

,

Antes de mandar las coordenadas, el aspecto del mapa es este:                y       luego el aspecto esta a la derecha.

Carrera 80 con la calle colombia (Glorieta)                                              Facultad de Minas en la ciudad de Medellin-Colombia

Equipo 1 es el globo naranja

               

Segun el nombre del archivo gps(numero).php que enviemos a unrobotica.com nos marca el movil de la flota que quiera marcarse en el mapa, esos iconos estan en el archivo que cargamos en el sevidor, en el folder img.

Ahora el paso siguiente sera programar las ordenes y la negociacion con la respuesta en un microcontrolador de forma semejante en nuestro proyecto anterior y eso sera en nuestra proxima oportunidad. Cuando digo negociacion, es que aca en este programa es necesario analizar la respuesta en mas detalle que en el proyecto anterior, de lo contrario la comunicacion puede resultar muy inestable. Puede que algun paso en las secuencias estas fallen y sea necesario repetirlas o detectar que definitivamente que el modem GPRS tiene problemas. Y toque ensayar otra forma de comunicar. inclusive darle reset desde una salida independiente del procesador, con un transistor.(nada de usar las manos).

Una vez escrito el software del microcontrolador seria muy interesante simular que en tiempo real se traza una ruta sobre el mapa. Eso se puede simular con la siguiente herramienta que simula trayectorias de moviles con gps de forma virtual. SatGen Nmea. Desde google earth se genera archivo .kml y se carga en este programa datos que se envi al al microcontrolador desde un dongle usb.