38
MCE TrackMe (GPS) 2013 MCE TrackMe (GPS) - mcelectronics.com.ar © 2012 Sistema de rastreo, telemetría y control remoto a través de la red celular. electronics mc

TrackMe (GPS) 2013 by mcelectronics

Embed Size (px)

DESCRIPTION

TrackMe (GPS) es un sistema de telemetria y control remoto a través de la red celular. Posee un módulo SIM908 con conectividad GSM y GPS. Puede transmitir por GSM o GPRS, además cuenta con sensores de aceleración, luz y temperatura. La bateria se carga por USB y tiene la posibilidad de almacenar las coordenadas en la memoria interna del microcontrolador.

Citation preview

Page 1: TrackMe (GPS) 2013 by mcelectronics

MCE TrackMe (GPS) 2013

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Sistema de rastreo, telemetría y control remoto a través de la red celular.

electronicsmc

Page 2: TrackMe (GPS) 2013 by mcelectronics

Somos un equipo de profesionales que trabaja con pasión para asegurar que Ud. tenga siempre un producto innovador. Cuidamos los detalles para fabricar herramientas de calidad. Todas nuestros productos son diseñados y fabricados en Argentina.

Este producto cuenta con 1 año de garantía por defectos de fabricación o falla de sus componentes.

Información actualizada on-line:http://www.mcelectronics.com.ar/desarrollos

Alejandro AiroldiResponsable del Control de Calidad

Garantía de Calidad

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Page 3: TrackMe (GPS) 2013 by mcelectronics

Introducción

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

TrackMe (GPS) es un sistema de telemetría y control remoto a través de la red celular. Posee un módulo GPS MN5515HS y un módulo GSM SIM900. Puede transmitir por GSM o GPRS, además cuenta con sensores de aceleración, luz y temperatura. La batería se carga por USB y tiene la posibilidad de almacenar las coordenadas en la memoria interna del microcontrolador PIC18F26J50.

TrackMe (GPS) 2012 incluye proyectos completos programados en CCS. Además, ejemplos para decodificar las tramas NMEA del GPS, recibir comandos por mensaje de texto, utilizar el acelerómetro y presentar la información en un mapa de GoogleMaps™ !

Page 4: TrackMe (GPS) 2013 by mcelectronics

Layout versión 2013

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

(+) Comparación de tamaño con un teléfono celular.

54 mm

85 m

m

Page 5: TrackMe (GPS) 2013 by mcelectronics

Distribución de componentes

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Conector para tarjeta SIM

USB para alimentar, cargar la batería y transferir datos.

LED indicador de carga

Antena GPSAntena GSM

(desmontable)

LED indicador de Power.

Header de expansión

Pulsador de pánico

Page 6: TrackMe (GPS) 2013 by mcelectronics

Header de expansión

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

MÓDULO SIM908

SPEAKER P

SPEAKER N

MIC P

MIC N

BAT

BAT

+3V3

+3V3

GND

GND

XOUT

YOUT

ZOUT

IO5

IO4

IO3

IO2

IO1

GSM TX

GSM RX

RING

GSM STATUS

GSM NET

GSM ON

GPS TX

GPS RX

+3V3

PANIC

LDR

TEMP

NC

PGD

PGC

GND

+3V3

MCLR

Programador PICKit 2, PICKit 3 o compatible

Page 7: TrackMe (GPS) 2013 by mcelectronics

Interruptores y LEDs

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

NET

READ

Y

Destella cada 2s cuando el equipo se registra en la red celular (debe tener un chip activo).

Se enciende cuando el módulo SIM900 está listo

para operar.

El interruptor RF desactiva el módulo SIM908 pero permite elfuncionamiento del resto de los dispositivos de la placa.

RFMAIN

ON

Page 8: TrackMe (GPS) 2013 by mcelectronics

Dispositivos analógicosde Microchip

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

TC1262-3.3

ANALOG

Cargador para baterías de Li-ion de una celda. Incluye censado de corriente y protección contra descarga inversa.

TC1047

3.3v

3.3v

Sensor de temperatura analógico 10mV/C

VBATVIN

MCP73838

VBAT

PIC18F26J50

Page 9: TrackMe (GPS) 2013 by mcelectronics

Acelerómetro

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

NC

AN2 X OUT

AN3 Y OUT

AN4 Z OUT

GND

3.3V

NC

NC

NC

NC

NC

NC

NC

3.3V

Freescale MMA7368L

La placa incluye un acelerómetro analógico de 3 ejes (X OUT, Y OUT, Z OUT). Se conectan directamente a los acanales analógicos del PIC.

±1.5g Three Axis Low-g Micromachined Accelerometer

Canales analógicos del

PIC

Tasa de cambio: 800mV/G

Z

Y

X

Page 10: TrackMe (GPS) 2013 by mcelectronics

Acelerómetro

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

NC

X OUT

Y OUT

Z OUT

GND

3.3V

NC

NC

NC

NC

NC

NC

NC

3.3V

Freescale MMA7368L

Page 11: TrackMe (GPS) 2013 by mcelectronics

Módulo GSM SIM908

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

GSMSIM908

Quad-band : GSM850, EGSM900, DCS1800, PCS1900

GPRS multi-slot : Class 10 / Class 8

Noise Suppression

Echo Cancellation

Sleep mode current consumption: 1.5mA

Page 12: TrackMe (GPS) 2013 by mcelectronics

Conexiones del Módulo GSM

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

SIM CARD

RFIN

ANT

PIC 18F26J50

SIM TX

SIM RX

GSMSIM908

SIM BUS

1,8 - 3v

PWRKEY

NETSTATUS

El módulo SIM908 se conecta al PIC a través de los pines SIM TX (RP0) y SIM RX (RP1). Además necesita el conector de la antena y la tarjeta SIM para operar.

Page 13: TrackMe (GPS) 2013 by mcelectronics

Módulo GSM SIM908

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

El módulo SIM908 necesita un 0 en el pin PWRKEY para encender. En este caso la placa tiene un transistor en emisor común (inversor), con lo debemos poner el pin RC1 (GSMON) del PIC en 1 para encender el módulo.

PWRKEY

Low > 1s. Delay > 2s.

STATUS

El módulo se apagará automáticamente (STATUS = low) cuando se detecte tensión de alimentación fuera del rango 3.3 < VBAT < 4.6 o cuando la temperatura este por encima de 85°C. Sin embargo 0.1v antes de los limites envía warnings por la USART.

Page 14: TrackMe (GPS) 2013 by mcelectronics

Comandos AT

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

El módulo GSM se maneja por medio de comandos a través de la USART.

Estos comandos se denominan comandos AT.

Los comandos AT permiten realizar llamadas, enviar SMS, consultar los parámetros del modulo, medir la señal celular y realizar todas las configuraciones del SIM900.

Comunicación tipo conversación. Siempre se debe esperar la respuesta antes de enviar el próximo comando.

AT (Atención)

Page 15: TrackMe (GPS) 2013 by mcelectronics

Sincronización

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Por defecto esta autobauding habilitado. Para sincronizar la velocidad del PIC con el SIM908 se debe enviar A y esperar de 3 a 5 segundos. Luego enviamos el comando ATantes de iniciar la comunicación… Una vez sincronizados el SIM900 responde OK

AT GSMSIM908PIC

18F26J50

Rango de Autobauding: 1200 bps a 115200 bps (N,8,1)

A

OK

Page 16: TrackMe (GPS) 2013 by mcelectronics

Comandos básicos

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

ATISIMCOM_LtdSIMCOM_SIM900Revisión:1008B10SIM900S32_(SPANSION)SIMCOM_Ltd

AT+GSN // número IMEI del SIM900355117001566879OK

AT+CSQ // Nivel de señal [rssi,ber]rssi (0= -113dBm o 1= -111dBm o 2 a 30= -109dBm a -53dBm o 31= -51dBmo >/99 no se conoce). ber (En % bit error rate)[17,0]

Estos comandos pueden enviarse a través del HyperTerminal (utilizando el driver USB-GSM incluido) o bien a través del microcontrolador sin utilizar la PC.

Page 17: TrackMe (GPS) 2013 by mcelectronics

Comandos básicos

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

ATD51065802; Realizar una llamada - SIM908 disca 51065802

AT+CLIP=1 // Mostrar el numero de la llamada entrante (Caller ID)OK

RING+CLIP: “51065802",129 // Número de llamada entrante 51065802OK

ATH // Colgar

RINGATA // Atender una llamada entranteOK

Page 18: TrackMe (GPS) 2013 by mcelectronics

Enviar un SMS

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Envío de SMS al 51065802

AT+CMGF=1 // Selecciono modo textoAT+CMGS=“51065802” <ENTER> // Numero de teléfono y 0x0D > SU MENSAJE <CRTL+Z> // Escriba el mensaje y 0x1A

Devuelve la posición en la memoria de enviadosOK+CMGS: 123

Page 19: TrackMe (GPS) 2013 by mcelectronics

Recibir un SMS

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Recepción de SMS

AT+CMGF=1 // modo textoAT+CNMI=2,2,0,0,0 // no lo guarda en memoria lo envia por USART

Al llegar un mensaje lo envía por TX automáticamente !

+CMT: ”12345678”,,”28/05/10,11:20:28+32” Hola Mundo

Page 20: TrackMe (GPS) 2013 by mcelectronics

Módulo GPS SIM908

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Receptor GPS basado en el SIRFstarIII de 42 canales

Consumo menor a 77 mA

Protocolos NMEA o SiRF

Adquisición rápida de satélites 30 s.

Sensibilidad de tracking: -160dBm

GPSSIM908

Page 21: TrackMe (GPS) 2013 by mcelectronics

Conexiones del Módulo GPS

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

VANTVRF = 2.85v

RFIN

PIC 18F26J50

GPS TX

GPS RX (*)

GPSSIM908

ONANT LNA

El módulo GPS se conecta al PIC a través de los pines GPS TX (RP3) y GPS RX (RP4). Además necesita la antena y el LNA (Low Noise Aplifier) para operar.

(*) GPS RX se utiliza para solicitar otras tramas o variar el intervalo de recepción desde el PIC.

Page 22: TrackMe (GPS) 2013 by mcelectronics

Trama NMEA

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

NMEA 0183 es un protocolo a través del cual los instrumentos de navegación marítima y terrestre pueden comunicarse. Ha sido definido, y está controlado, por la organización estadounidense National Marine Electronics Association.

En la trama NMEA tenemos información como posición, velocidad, dirección de desplazamiento, hora UTC, posición de los satélites, intensidad de la señal que se recibe y datos de control.

Page 23: TrackMe (GPS) 2013 by mcelectronics

Trama NMEA básica

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

La trama $GPRMC contiene la información básica de rastreo y es la que vamos a utilizar para determinar la posición y demás datos como velocidad, dirección y hora.

Recommended Minimum Message

Hora UTC04:03:02.663 AM

$GPRMC,040302.663, A,3939.7, N,10506.6,W, 0.27, 358.86,200812,*1A

A = Activo (por lo menos 3 satélites), V = InvalidoA

N = Norte, S = SurN

W = Oeste, E = EsteW

Latitud 39°39.7'

Longitud 105°06.6'

Velocidad medida en Knots

1 knots = 1.85200 kilometers

Dirección de movimiento (azimuth) 358.86°

Fecha 20/08/12

Checksum*1A

Page 24: TrackMe (GPS) 2013 by mcelectronics

Programa para decodificar la Trama NMEA

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

La placa TrackMe GPS incluye un programa (SirfDemo) para decodificar la trama NMEA y mostrar la información en forma gráfica. Debemos abrir el HyperTerminal y seleccionar modo GPS (opción 2), luego abrimos el software SirfDemo a 4800 bps y hacemos clic en Connect para visualizar la información en tiempo real.

Page 25: TrackMe (GPS) 2013 by mcelectronics

Programa para decodificar la Trama NMEA

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Se requieren por lo menos 3 satélites para determinar la posición. En este caso todos los satélites están en rojo por lo que aun no hay señal suficiente.

El GPS debe tener una vista clara del cielo para funcionar correctamente.

Page 26: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Todos los ejemplos están programados en C para el compilador CCS. Puede encontrar el código completo junto con los archivos de la placa. A continuación vamos a describir las rutinas básicas.

El sombreado representa líneas de código.

Page 27: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

void inicializacionSIM900(void){

int cont;delay_ms(1000);puts("A",SERIAL_GSM); //para sincronizar el baudrate del SIM 900delay_ms(300);putchar(0x0d,SERIAL_GSM);delay_ms(3000);

for(cont=0;cont<5;cont++) // mando varios AT para el autobauding{puts("AT",SERIAL_GSM);delay_ms(300);putchar(0x0d,SERIAL_GSM);delay_ms(200);output_high(LED);delay_ms(200);output_low(LED);}

puts("AT+CMGF=1\r",SERIAL_GSM); // configuro para que trabaje en modo texto y no PDUdelay_ms(100);putchar(0x0d,SERIAL_GSM);delay_ms(100);return;

}

Inicialización del módulo SIM908Es importante respetar los delays para inicializar el modulo correctamente.

Page 28: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

#define X_ADC 2 // Defino el canal analógico#define Y_ADC 3#define Z_ADC 4#define TEMP_ADC 11

set_adc_channel(X_ADC); // Selecciono el canal con el multiplexordelay_ms(3); // Defino un delay de 3 ms para cargar el capacitor de lecturaeje_x=read_adc(); // Guardo el valor en la variable

set_adc_channel(Y_ADC);delay_ms(3);eje_y=read_adc();

set_adc_channel(Z_ADC);delay_ms(3);eje_z=read_adc();

set_adc_channel(TEMP_ADC);delay_ms(3);temperature=read_adc();

Leer canales analógicos

En este ejemplo simplemente se seleccionan los canales analógicos del acelerómetro y el sensor de temperatura y se guardan los valores en variables (no se muestra la definición en el recuadro)

Page 29: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

sprintf(string_temp,"Temp=%1.2f C ",grados);

fprintf(SERIAL_GSM,"AT+CMGS=\"1512345678\"\r"); // aca poner el numero de celular que recibe el SMSdelay_ms(200);fputs(string_temp,SERIAL_GSM);delay_ms(100);fprintf(SERIAL_GSM,"%c",0x1a);output_high(led);

while(input(PANIC)==0);

Enviar la temperatura por SMS

El ejemplo completo consiste en leer el sensor TC1047, convertir el valor de tensión en grados y enviarlo por SMS cuando se presiona el botón de pánico. En este fragmento vemos que los datos deben ser pasados como string, con lo cual convertimos la variable grados de float a string con sprintf. Lo mismo aplica para enviar las mediciones del acelerómetro.

Page 30: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

if ( kbhit (SERIAL2) ) // Espero un nuevo dato en la USART2{

e=0;e=getchar(SERIAL2); // En la variable e se guardan los caracteresswitch(e){

case 10: // Espero el new line feedif(cbuffGPS[0]=='$' && cbuffGPS[1]=='G' && cbuffGPS[2]=='P' && cbuffGPS[3]=='R' && cbuffGPS[4]=='M' &&cbuffGPS[5]=='C' && cbuffGPS[18]=='A' ) //esta linea valida si el dato es valido (detecto al menos 3 satelites){

PIN_ON(LED);strcpy(cbuffGPS2,cbuffGPS); // La trama $GPRMC completa queda guardada en cbuffGPS2

}xbuff=0;flag=0;break;default:

cbuffGPS[xbuff++]=e;if(xbuff>(lenbuffGPS-1)) xbuff=lenbuffGPS;

} }

Leer y almacenar la trama NMEA del GPS

La idea es leer y almacenar una trama válida en una variable, para luego procesarla y enviarla como un link de GoogleMaps.

Page 31: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

if(cbuffGPS2[0]=='$' && cbuffGPS2[1]=='G' && cbuffGPS2[2]=='P' && cbuffGPS2[3]=='R' && cbuffGPS2[4]=='M' && cbuffGPS2[5]=='C')

{strncpy(latg,&cbuffGPS[20],2); // convierto en coordenadas googlemapsstrncpy(latm,&cbuffGPS[22],7);strncpy(longg,&cbuffGPS[32],3);strncpy(longm,&cbuffGPS[35],7);

latitudgoogle=(atof(latm))/60;longitudgoogle=(atof(longm)/60);

sprintf(&latitud[1],"%.6f",latitudgoogle);latitud[0]=latg[0];latitud[1]=latg[1];

sprintf(&longitud[2],"%.6f",longitudgoogle);longitud[0]=longg[0];longitud[1]=longg[1];longitud[2]=longg[2];

}

Convertir al formato de GoogleMaps

Debemos obtener la latitud y longitud de la trama $GPRMC (cbuffGPS2) y además convertir los valores a coordenadas decimales. Luego los parámetros quedan en las variables latitud y longitud.

Page 32: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

fprintf(SERIAL_GSM,"AT+CMGS=\"1512345678\"\r"); // aca poner el numero de celular que recibe el SMSdelay_ms(200);printf("http://maps.google.com/maps?q=-%s,+-%s+(TrackMe esta aqui)",latitud,longitud);delay_ms(100);fprintf(SERIAL_GSM,"%c",0x1a);output_high(led);

while(input(PANIC)==0);

Enviar un link compatible con GoogleMaps

Simplemente incluimos las variables latitud y longitud, con el formato adecuado, dentro de la URL de GoogleMaps.

El usuario recibe en su celular un SMS con un link que le muestra la ubicación de la placa.

Page 33: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Enviar datos por GPRS

Podemos enviar la información a GoogleEarth en tiempo real a través de GPRS. El truco consiste en enviar la trama NMEA completa (sin procesar) a un servidor TCP. Luego en el servidor, que puede ser nuestra computadora, corremos una aplicación que nos permita retransmitir los datos recibidos por TCP a un Puerto COM Virtual. Por último abrimos GoogleEath y seleccionamos ese puerto virtual como entrada de datos.

De esta forma se puede ver en tiempo real, la posición y la velocidad de la placa en un mapa de GoogleEarth.

Page 34: TrackMe (GPS) 2013 by mcelectronics

Ejemplos y Aplicaciones

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Almacenar datos en la memoria interna del PIC

También es posible almacenar la trama completa en la memoria de programa del PIC18F26J50 y luego convertir esa información a KML en la PC para abrirla con GoogleEarth o GoogleMaps.

Page 35: TrackMe (GPS) 2013 by mcelectronics

Cargar el firmware del PIC

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Para cargar un nuevo programa en el PIC18F26J50, primero debemos conectar el programador en los 6 pines de programación, abrir el programa para el PICKit2 y seleccionar File->Import HEX

El archivo de fábrica es mce_trackme_2012.hex y se encuentra dentro de la carpeta Firmware del servidor. Luego hacemos click en “Write” y debe aparecer la leyenda “Programación exitosa” una vez concluida la verificación.

Page 36: TrackMe (GPS) 2013 by mcelectronics

Cargar el firmware del PIC

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Es posible cambiar el seteo de los registros CONFIG sin necesidad de recompilar el proyecto, haciendo click en “Configuration”.

El procedimiento de conexión y programación es idéntico para el PIC18F26J50.

También es posible utilizar el MPLAB en caso de posee un PICKIT 3 o ICD3.

Page 37: TrackMe (GPS) 2013 by mcelectronics

Activación de la línea

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012

Antes de enviar y recibir mensajes o realizar una llamada debemos activar el CHIP CLARO para que la compañía celular nos asigne un número. Si ud. ya posee un CHIP activado puede utilizarlo con la placa.

Para activar el CHIP CLARO:

1 - Coloque el CHIP en su teléfono2 - Marque *22#3 - Contestar los datos solicitados (Documento, sexo, código de área)4 - A los pocos minutos llega un mensaje con el numero de TE asignado5 - Coloque el CHIP en la placa TrackMe (GPS) para empezar a trabajar.

Debe cargar crédito para enviar mensajes y realizar llamadas !

Page 38: TrackMe (GPS) 2013 by mcelectronics

© mcelectronicsBuenos Aires - Argentina

Septiembre 2012

MCE TrackMe (GPS)Manual REV: 09042012

Austria 1760 - OF 8Ciudad de Buenos Aires (1425).BA. Argentina.

(011) [email protected]

www.mcelectronics.com.ar

MCE TrackMe (GPS) - mcelectronics.com.ar © 2012