Professional Documents
Culture Documents
POSICIONAMIENTO Y REGISTRO EN
SERVIDOR
Contenido
P á g i n a 2 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Tabla De Figuras
Tabla De Tablas
Tabla 1. Comandos AT Usados .......................................................................................................... 5
Tabla 2. APN Operadores Colombianos ...................................................................................................... 17
P á g i n a 3 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
1. INTRODUCCIÓN
Existe un tema fuerte entorno a todo este desarrollo llamado popularmente como los
comandos AT. Se presentará un contenido respecto a este tema con el fin de
contextualizar al lector.
2. COMANDOS AT
Los módems han sido usados desde el comienzo de la historia de los computadores. La
palabra modem es una combinación de palabras (modulador demodulador) que
básicamente define su función. Los módems más antiguos solo eran capaces de enviar y
recibir datos. Para establecer una conexión, se necesitaba un dispositivo secundario como
un marcador. Algunas veces las conexiones se establecían manualmente marcando el
número de teléfono apropiado, y el modem era encendido siempre y cuando la conexión
estuviera presente. Esto no fue problemático en los viejos tiempos cuando las
computadoras eran operadas por técnicos capacitados. En los años setenta, pequeñas
computadoras entraban en el mercado interno y los costos y la falta de conocimientos
técnicos se convertían en un problema. Idealmente un modem debería poder marcar los
números de teléfono deseados sin interferencia del usuario o marcador externo.
Como se puede ver en la disposición del puerto RS232, el estándar RS232 describe un
canal de comunicación secundario en el conector DB25 de 25 pines que se proyectó
originalmente para enviar comandos de control al módem adjunto. Esto podría incluir
comandos para marcar un número de teléfono especifico. Desafortunadamente en las
implementaciones RS232 de bajo costo presente en las computadoras hogareñas en los
años setenta, ese canal de comunicación secundario no se implementó.
Por lo tanto, se tuvo que definir un método para utilizar el canal de datos existente no solo
para transferir datos de un extremo al otro, sino también para controlar los comandos
destinados únicamente al módem local.
P á g i n a 4 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Dennis Hayes vino en 1977 con la solución. Su Smartmodem usó el único canal de
comunicación RS232 a la computadora conectada para transferir los comandos de control
y los datos. Debido a que todos los comandos comenzaron con AT de “atención”, el
lenguaje de control definido por Hayes pronto se conoció como el conjunto de comandos
de Hayes AT. Debido a su simplicidad e implementación de bajo costo, pronto se
implementó el conjunto de comandos de Hayes AT en módems de otros fabricantes. Como
la funcionalidad y la complejidad de los módems aumentaron en el tiempo, también lo hizo
el lenguaje de comandos de Hayes AT y pronto todos los fabricantes de módems
implementaron su propio dialecto. Hoy en día, el conjunto de comandos de Hayes AT
incluye un comando para las comunicaciones de datos, fax, voz y SMS.
STATE: IP INITIAL
AT+CIPCLOSE Cierra la conexión STATE: TCP CLOSED
TCP
AT+CIPSHUT Desactiva el gprs SHUT OK
P á g i n a 5 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
3. Coordenadas Geográficas
La latitud mide el ángulo entre cualquier punto y el ecuador. Las líneas de latitud se llaman
paralelos y son círculos paralelos al ecuador en la superficie de la tierra. La latitud es la
distancia que existe entre un punto cualquiera y el Ecuador.
La longitud mide el ángulo a lo largo del ecuador desde cualquier punto de la tierra. Se
acepta que Greenwich en Londres es la longitud 0. Las líneas de longitud son círculos
máximos que pasan por los polos y se llaman meridianos.
4. Módulo SIM808
Este módulo tiene integrado una quad-band GSM / GPRS y de tecnología de navegación
GPS, compatible con Arduino UNO, Leonardo, Mega y otras placas base. En comparación
con el SIM908, tiene algunas mejoras en el rendimiento y la estabilidad. Además de las
funciones normales de SMS y de teléfono, el módulo también es compatible con MMS,
DTMF, FTP y otras funciones. Se puede lograr la adquisición de datos, transmisor-
receptor inalámbrico de datos, la aplicación de la IO y orientar GPS. También se puede
conectar directamente a la antena GSM y GPS mediante un conector de antena externa.
SIM808 GPS / GPRS / GSM utiliza la última versión del módulo SIM808 Simcom, el
módulo más reciente tiene una mejor estabilidad.
P á g i n a 6 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
entradas pueden manejar un voltaje de 5v-26v. La ultima entrada es para una batería Li-
On capaz de manejar voltajes de 3.5v-4v
5. ARDUINO UNO
Arduino es una placa con un microcontrolador de la marca Atmel y con toda la circuitería
de soporte, que incluye, reguladores de tensión, un puerto USB. Un arduino dispone de
14 pines que pueden configurarse como entrada o salida y a los que puede conectarse
cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V.
También dispone de entradas y salidas analógicas. Mediante las entradas analógicas
podemos obtener datos de sensores en forma de variaciones continuas de un voltaje. Las
salidas analógicas suelen utilizarse para enviar señales de control en forma de señales
PWM.
Puede alimentarse directamente a través del propio cable USB o mediante una fuente de
alimentación externa, como puede ser un pequeño transformador o, por ejemplo, una pila
de 9V. Los límites están entre los 6 y los 12 V. Como única restricción hay que saber que,
si la placa se alimenta con menos de 7V, la salida del regulador de tensión a 5V puede
dar menos que este voltaje y si sobrepasamos los 12V, probablemente dañaremos la
P á g i n a 7 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
6. Antes De Comenzar
P á g i n a 8 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
El hardware de arduino UNO cuenta con una sola UART por lo tanto la comunicación
serial con otro dispositivo se hace a través de los pines 0 y 1. En un principio se pretende
hacer supervisión de los comandos AT y su respectiva respuesta entre el Arduino Uno y
el módulo SIM808, para ello se usa la comunicación serial entre el PC y el propio arduino.
Pero si se usa la UART con el computador ¿Cómo se pueden transmitir datos al SIM808?
Para darle solución a este dilema se hace indispensable crear una segunda comunicación
serial para enlazar el Arduino Uno y el SIM 808, para ello se hace uso de una librería.
P á g i n a 9 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Se procede a realizar la configuración inicial del programa dentro del método Setup. Con
el método begin del objeto sim808 se configura la velocidad de comunicación entre el
arduino y el módulo Sim808.
Con el método begin del objeto serial se configura la velocidad de comunicación entre el
arduino y el computador. (esto último para ver la respuesta del módulo sim808 a cada
comando).
Finalizando la etapa de configuración se hacen los llamados a los métodos power_on,
tcp_on y gps_on, en donde se comprueba el estado del módulo, se activa la conexión
GPRS y se inicia el servicio de GPS y TCP.
Nota: Se realizan bloqueos de 1 segundo a la tarjeta con el fin de que las configuraciones no
interfieran entre sí.
P á g i n a 10 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Es un método que retorna un valor de tipo int. Y que requiere de 3 parámetros para
funcionar, los cuales son ATcommand y resp_correcta de tipo char* y tiempo de tipo
unsigned int.
P á g i n a 11 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Se usa el método memset para hacer que cada uno de los elementos de respuesta sean
0. Es decir, lo que se pretende es realizar una limpieza del array. Y finalmente se pone un
retardo de 100 milisegundos, con el fin de evitar que este proceso no afecte la lectura del
puerto serial.
Se hace una limpieza del bufer de entrada, con el fin de eliminar caracteres de ruido.
Se almacena en la variable “anterior” el tiempo que hasta ese punto le ha tomado ejecutar
a la placa el programa usando el método millis.
Se hace uso de una estructura do/while para crear un bloque de código cíclico que
depende de una condición booleana doble la cual es: si la variable “correcto” es igual a 0
y si el tiempo que se toma la placa en realizar el proceso del do/while es menor al tiempo
asignado en los parámetros del método, entonces se ejecuta el código.
Después dentro del do/while se tiene que si existen datos en el bufer de entrada, se hace
la lectura y el almacenamiento en el array respuesta. Si alguna respuesta supera los 100
caracteres se genera un mensaje de desborde. Finalmente, si el valor de respuesta es
igual al valor deseado enviado en los parámetros del método.
P á g i n a 12 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Este método está encargado de comprobar si el módulo SIM 808 está listo para comenzar
a trabajar. El método simplemente envía el comando “AT” a través del método enviarAT
al módulo hasta que la respuesta sea “OK”.
P á g i n a 13 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Al igual que el método power_on, este método lo que hace es enviar comandos AT para
activar el GPS y realizar el proceso de localización, básicamente el código no avanza
hasta que el módulo no devuelva el mensaje de Location 3D FIX, el cual indica que se
encuentra preparado para entregar la posición.
El método comienza con una revisión del registro de la SIM CARD insertada en el módulo
SIM808, esto se logra con los comandos “AT+CPIN?” y “AT CREG?”. Una vez
garantizadas estas respuestas, se activa, registra y adjunta a la conexión GPRS.
Nota: En el comando AT+CISTT se agrega el APN web.colombiamovil.com.co sin usuario y sin
contraseña, debido a que las pruebas se realizaron con una SIM CARD del operador TIGO
Colombia, si se desea usar una SIM CARD de otro operador se debe consultar la tabla 2 de APN
operadores colombianos.
P á g i n a 14 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Para que este método funcione requiere de 4 parámetros los cuales deben ser de tipo
String. Lo que se hace es construir una dirección con los parámetros, y posteriormente
convertirlo a tipo Char para poder ser enviado en el método enviarAT. Cuando se tiene
preparada la dirección se abre la conexión TCP y se procede a enviar los datos, que no
es más que acceder a través de la conexión GPRS a la dirección construida. Si en algún
momento llegara a fallar dicho envío se realiza el llamado del método tcp_on con el fin de
crear nuevamente la conexión.
P á g i n a 15 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
P á g i n a 16 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
P á g i n a 17 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
9. CONEXIONES ELECTRICAS
Debido a que el prototipo debe contar con autonomía y poder desplazarse libremente sin
limitaciones, se requiere sustituir el adaptador de corriente AC-DC por una batería o algún
otro sistema de energía DC portable. Es por eso que se realizó una medición con la ayuda
de un multímetro, de la corriente de consumo del dispositivo tanto en reposo como en
funcionamiento continuo.
Se encontró que la operación del arduino sin la entrada en funcionamiento del SIM 808
tenía un consumo fijo de 58.9mA (ver figura 15). En el momento en que se daba inicio a
la operación del SIM 808 y empezaba la comunicación entre las dos tarjetas, la corriente
aumentaba y oscilaba entre 100mA y 200mA (ver figura 16).
P á g i n a 18 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
P á g i n a 19 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
Se ubica la Sim Card correctamente teniendo en cuenta que esta debe tener activo el
servicio de datos.
Se ubican las antenas en sus respectivos lugares.
Se revisan las conexiones eléctricas.
Se conecta la fuente de energía.
Se oprime el botón para encender el módulo SIM 808.
Se espera a que se realice la localización.
Se verifican que los datos estén siendo enviados. (3 Leds Indicadores D3,D4,D5).
Nota: Si una vez pasado un tiempo de 5 minutos no se logran evidenciar un envío de datos, se
deben realizar una de las siguientes acciones: a) Reiniciar el arduino UNO b) buscar un espacio
más abierto o acercar la cabeza de la sonda GPS a una ventana.
11. Conclusiones
http://ieeexplore.ieee.org.bdigital.udistrital.edu.co:8080/stamp/st
amp.jsp?tp=&arnumber=8093545
https://www.elecrow.com/download/SIM808%20SPEC_V1507.pdf
P á g i n a 20 | 21
Posicionamiento Y Registro en Servidor SIM808 Y Arduino Uno
https://hetpro-store.com/TUTORIALES/sim900-gsm-
shieldarduino/
http://oa.upm.es/22322/1/PFC_ALBERTO_CASTRO_DOMINGUEZ.
pdf
http://www.niplesoft.net/blog/wp-
content/uploads/2016/02/SIM808-Hardware-Design-1.02.pdf
https://www.lammertbies.nl/comm/info/hayes-at-commands.html
https://vsblogs.wordpress.com/2013/11/28/tcp-connection-over-
gprs-using-sim900-and-at-commands/
https://es.slideshare.net/DevrhoidDavis1/at-command-set-for-
sending-data-via-tcp-using-sim900
https://cdn-learn.adafruit.com/downloads/pdf/adafruit-fona-808-
cellular-plus-gps-shield-for-arduino.pdf
P á g i n a 21 | 21