Podcast: Descargar (52.2MB)
En la era del Internet de las Cosas o del IoT, donde los objetos están conectados, se hace necesario localizar o posicionar nuestros proyectos. Utilizar un GPS Arduino, WiFi, GSM, UBW o las LPWAN son algunas de las posibilidades que tenemos a nuestro alcance.
Pero seguramente te preguntes ¿para qué quiero geolocalizar Arduino? Dependerá el sector en el que te muevas.
Últimamente me han llegado diferentes preguntas a través del email. En sectores donde se alquila o se presta maquinaria o diferentes objetos es necesario controlar su posición.
Si nos metemos en el mundo de la logística, posicionar la flota de vehículos con un GPS y Arduino puede ser una solución económica y efectiva.
Y como Maker que eres, la mejor razón para utilizar la geolocalización con Arduino es por curiosidad. Sí, curiosidad por entender cómo funcionan esos sistemas y más importante aún, porque Arduino nos permite ver en acción todas estas tecnologías.
De todo esto vamos a hablar hoy en este artículo. Las diferentes formas o modos que tenemos para localizar un Arduino en el mundo.

Indice de contenidos
- 1 Localización en exteriores e interiores
- 2 Esquema general de una aplicación localización de exteriores
- 3 Geolocalización GPS Arduino
- 4 Utilizando las redes móviles con GSM
- 5 LPWAN la siguiente generación de comunicaciones de baja potencia
- 6 Geolocalización por WiFi con Arduino
- 7 Conclusión geolocalización con WiFi, GSM, LPWAN y GPS Arduino
Localización en exteriores e interiores
La localización en exteriores también llamada geolocalización, es la capacidad de situar o ubicar geográficamente un objeto o dispositivo.
La localización en interiores sin embargo, se refiere a la capacidad de ubicar un objeto o dispositivo en el interior de un edificio.
Aunque se parezcan mucho, es evidente que las técnicas para conseguir el objetivo en cada caso son diferentes.
Localización en exteriores o geolocalización con Arduino
Se basan en sistemas ya implantados como antenas o satélites. Se consigue una precisión de metros y utilizan la ubicación de esos sistemas para hacer la triangulación con el dispositivo u objeto.
Una de las ventajas, como veremos más adelante, es que las antenas y los satélites ya están instalados o implementados.
Por lo tanto, solo tendremos que acceder a la información a través de un GPS Arduino, un módulo WiFi o cualquier otra tecnología.
Entre ellas podemos destacar las siguientes:
- WiFi
- GPS
- GSM
- LPWAN (Sigfox y LoRa)
Existen dos desventajas a tener en cuenta. Por un lado la cobertura no es total por ejemplo, no podemos utilizar el GPS en interiores y el GSM o el WiFi dependerá de si llega señal o no.
Por otro lado la precisión. Depende mucho de la calidad de la señal pero estamos hablando de precisión de metros. Si lo que necesitas es una precisión mayor, incluso llegar a centímetros, tendrás que utilizar la localización de interiores.
Localización en interiores con Arduino
Gracias a la localización en interiores podremos ubicar un dispositivo, objeto o un Arduino en el interior de un edificio de varias maneras.
La gran desventaja con respecto a la localización en exteriores es la infraestructura, tendremos que suministrarla nosotros.
Si en el caso anterior las antenas y los satélites ya están instalados, con la localización de interiores nosotros tendremos que poner los dispositivos repetidores o emisores (balizas).
Este es el gran inconveniente ya que supone un aumento en el coste total del sistema para localizar.
Hay dos alternativas. Por un lado utilizar balizas basadas en WiFi o Bluetooth. Dos tecnologías más que conocidas y comúnmente llamadas de banda estrecha.
En un artículo anterior ya presentamos un proyecto con el ESP8266 que nos permitía localizar un ESP8266 en el interior de una vivienda gracias al sistema SubPos.
Básicamente consiste en poner como balizas otros dispositivos con WiFi y gracias al software poder hacer la triangulación y su ubicación.
Los Beacons de Google también son otra alternativa que utilizan la misma tecnología.
Por otra parte existen los sistemas basados en UWB (Ultra Wide Band en español Banda Ultra Ancha) que utilizan una banda de frecuencia mayor de 500 MHz para transmitir.
Hay diferentes productos en el mercado compatibles con Arduino.
Localino es de código abierto y tienes a tu disposición todos los esquemáticos para construir las balizas y la etiqueta por ti mismo.
Y Pozyx es un producto comercial ideal para museos y salas donde se requiera de este servicio.
La gran desventaja que tiene es que el rango de distancias que soporta es muy corto, apenas unos metros.En los dos casos se consiguen precisiones de centímetros según la posición y configuración de las balizas.
Esquema general de una aplicación localización de exteriores
Partiendo de la base que vamos a crear un sistema donde las balizas ya están colocadas (routers, antenas y satélites) el esquema general se reduce bastante. Solo debemos de preocuparnos de la parte de la placa y la programación.
En un sistema donde lo único que necesitemos es ubicar el dispositivo, no tendremos ningún sensor conectado a no ser que la placa de desarrollo no tenga la tecnología necesaria incorporada.

En la parte de geolocalización vamos a ver cuatro tecnologías, GPS, GSM, LPWAN y WiFi.
Para cada tecnología tenemos un hardware y un software que te permite obtener la latitud y la longitud donde se encuentra un dispositivo. Como veremos más adelante, dependerá de cada proyecto elegir una u otra.
Las plataformas para el IoT en la nube están proliferando por todos lados. Podemos encontrar versiones gratuitas de muchas de ellas para hacer nuestras pruebas. El objetivo es poder almacenar, de alguna manera, la latitud y longitud donde se encuentra el dispositivo. Esto nos permitirá consultar esta información a través de una aplicación.
Por último, necesitamos algún tipo de aplicación para visualizar la ubicación. Lo lógico es mostrarlo en un mapa y como no, el sistema más utilizado y famoso es Google Maps. Si no te quieres complicar la vida puedes hacer una aplicación web donde mostrar toda esta información.
Este artículo se centra en ver las posibilidades de cada tecnología sin entrar de lleno en cada una de ellas. Hay multitud de shields, módulos y placas y cada uno de ellos podría ser un tutorial por si mismo.

Geolocalización GPS Arduino
El Sistema de Posicionamiento Global o GPS (del inglés Global Positioning System) es un sistema de posicionamiento desarrollado por el Departamento de Defensa de EEUU. Utiliza satélites para ubicar la posición de un dispositivo.
Gracias a la triangulación sabremos en todo momento donde se encuentra en cualquier parte de la tierra con una precisión de unos 5 metros. Si utilizas solo GPS Arduino no tendrás acceso a Internet y por lo tanto no podrás transmitir datos.

Uno de los inconvenientes es que no sirve para la localización en interiores ya que en todo momento tenemos que tener una visión directa con los satélites. Esto restringe su utilización a espacios abiertos.
En la actualidad no hay ninguna placa de Arduino (original) que incorpore un módulo GPS, pero existen diferentes shields o módulos que se pueden conectar a cualquier placa.
El precio varía, como siempre, dependiendo de la calidad. Algunos ejemplos de GPS Arduino son los siguientes:
- SIM808 GPS GSM. Este módulo cuesta alrededor de 40€ e incorpora la tecnología GSM para enviar información a través de las redes móviles.
- Kuman SIMCOM SIM900. Al igual que el otro módulo, también incorpora GSM para transmitir datos. Su precio ronda los 40€.
- Módulo A7. También incorpora GSM y es el más económico de todos. Lo podemos encontrar por unos 20€.
- GPS Neo-6m: su precio invita a adquirir uno de ellos ya que por solo 6€ podemos incorporar uno de estos a nuestro proyecto. El inconveniente es que no tiene conexión GSM.
Utilizando las redes móviles con GSM
Si el GPS Arduino utiliza los satélites, el GSM utiliza las antenas móviles para ubicar o localizar un dispositivo. El GSM o Sistema Global de comunicación Móvil (del inglés Global System for Mobile comunications) se trata de un estándar de comunicación para telefonía móvil.
Al igual que el GPS Arduino, utiliza la triangulación para ubicar los dispositivos que se conectan a la red móvil pero por el contrario, es bastante más preciso, unas 10 veces más. Otra ventaja es que siempre y cuando tengamos cobertura podremos localizar dentro de interiores.

Cuando un operador instala una nueva antena en algún sitio, dicha antena tiene un identificador único. Además, se almacena su latitud y su longitud. Por lo tanto, accediendo a varias antenas de este tipo resulta relativamente sencillo conocer la ubicación de un dispositivo gracias a la intensidad de la señal.
Dentro de esta tecnología tenemos que distinguir la localización y la conexión a la red móvil para enviar o recibir datos. Por sí solo podremos localizar un dispositivo sin necesidad de tener una tarjeta SIM. Si además queremos conexión a Internet deberemos incorporar una tarjeta de este tipo pagando la cuota mensual o anual correspondiente.
Dentro del amplio abanico de modelos que nos ofrece Arduino, no encontramos ninguna placa con GSM integrado. Sin embargo, si que hay varios módulos y shields que podemos utilizar.
- Módulo A6. Es un módulo compatible con Arduino y con posibilidad de incorporar una tarjeta SIM. Lo mejor es su precio unos 11€.
- SIM800. Es un módulo muy compacto y económico que da una buena relación calidad precio y uno de los más utilizados por los Makers. Lo podemos encontrar por unos 15€.
- LE910. Se trata de un shield de la empresa española Libelium. Es muy preciso e incorpora GPS. Lo pero su precio, más de 500€.
El gran inconveniente de esta tecnología es que se está abandonando. Las nuevas redes LTE basadas en conexiones 4G están cogiendo mucho peso en la transmisión de datos para el IoT. Por ahora, en España, seguirá funcionando al menos unos cuantos años.
LPWAN la siguiente generación de comunicaciones de baja potencia
Las LPWAN o redes de extensa área y baja potencia (del inglés Low Power Wide Area Network) se están implementando en todo el mundo como un estándar para las comunicaciones entre dispositivos del IoT.
Ya hemos tratado este tema en varios artículos y capítulos del podcast. Empresas como Sigfox o la especificación LoRa, están apostando fuerte por quedarse con el mercado de las comunicaciones entorno al IoT.
No dependen de otras tecnologías e instalan sus propias antenas para crear sus propias redes. Lo típico, en el caso de Sigfox, es utilizar los repetidores de televisión instalados por todo el territorio nacional.
Por ahora la localización y ubicación de dispositivos que utilizan LPWAN no aportan gran precisión (en ocasiones es de kilómetros). Sin embargo tiene la ventaja de llegar a muchos sitios donde el GPS Arduino y el GSM no llegan. Zonas rurales e incluso en interiores.
Utilizan la triangulación y están apareciendo placas de desarrollo que ya incorporan módulos con LoRa, Sigfox y la más reciente LET-M. La empresa Arduino presentó su apuesta por este tipo de redes con el MKRFOX1200 el cual tiene un módulo para conectarse a Sigfox con una suscripción durante 2 años.

Pero también encontramos placas basadas en el ESP32 (la versión más moderna del ESP8266) que no solo incorporan Sigfox, también son compatibles con LoRa y con LET-M. La empresa PyCom tiene en su tienda la placa FiPy (compatible con las 3 redes), SiPy (compatible con Sigfox), LoPy (compatible con LoRa) y GPy (compatible con LTE-M).

Sin duda alguna este es un mercado que está en continuo crecimiento. Veremos si las alternativas a las operadoras de telefonía móvil como Sigfox y LoRa se imponen a la apuesta de éstas con LTE-M.
Geolocalización por WiFi con Arduino
Sin duda alguna esta es quizás la apuesta de muchos Makers para ubicar sus proyectos. Esto es debido a que no hace falta utilizar servicios externos como antenas o satélites. Simplemente debemos tener a nuestro alcance varios puntos de acceso a Internet por WiFi.
Esto simplifica mucho el desarrollo pero por el contrario tienen dos inconvenientes. El primero es que solo se puede utilizar en sitios donde hay routers WiFi cerca del dispositivo eliminando así cualquier ubicación que no sean núcleos urbanos.
Por otro lado, si queremos transmitir y recibir información a Internet, deberemos conocer la contraseña de una de esas redes WiFi. Para entornos urbanos y proyectos caseros es una muy buena opción.
¿Cómo puede ser que a través de routers WiFi podamos conocer la ubicación de un Arduino?
Aquí las empresas como Google y Apple es donde «hacen trampa». Al igual que podemos conectar un Arduino o cualquier otra placa de prototipado, también se conectan móviles.
Un dispositivo móvil tiene un montón de sensores y, por supueso, un GPS y conexión GSM. Todo esto junto a que cada router está identificado dentro de la red con un identificador único, la MAC, es almacenado por las grandes empresas.
Es algo parecido a lo que se hace con la tecnología GSM pero con routers. La diferencia radica en que la geolocalización de los routers se hace automáticamente a través de dispositivos móviles o tablets. Mira el vídeo donde Chema Alonso explica su funcionamiento.
Por lo tanto, cuando queremos localizar un dispositivo o un proyecto que incorpora WiFi, solo tenemos que leer los puntos de acceso a nuestro alrededor. Gracias a la MAC (identificador único de cada punto de acceso) sabremos que puntos de acceso son y dónde están ubicados.
Todo esto junto con la intensidad de la señal se lo enviamos a un servicio como Google API Location. Este servicio nos devolverá la ubicación del dispositivo gracias a técnicas de Big Data y créeme, funciona muy bien.
Nosotros (Germán y yo) lo utilizamos en el proyecto Dash Button Santa que presentamos al concurso The Arduino Internet of Holiday Things. En este proyecto utilizamos un Arduino MKR1000.

Con respecto a placas de desarrollo, no hace falta que te diga que placas como Arduino MKR1000 o NodeMCU son las idóneas para utilizar esta tecnología debido a que incorporan ya un módulo WiFi.
Si quieres profundizar más en esta tecnología mira el tutorial donde te explico cómo utilizar la geolocalización WiFi con Arduino MKR1000 y NodeMCU.
Conclusión geolocalización con WiFi, GSM, LPWAN y GPS Arduino
En este artículo hemos visto diferentes posibilidades a la hora de ubicar y localizar un dispositivo con Arduino u otro tipo de placas. No hay una tecnología que sirva para todos los casos, dependerá de cada situación.
Hay que diferenciar entre localización de interiores y de exteriores, donde se utilizan tecnologías diferentes.
GPS Arduino es quizás la más potente y la más utilizada pero tiene el gran inconveniente de no funcionar en interiores. También debemos de tener en cuenta que solo con GPS no tendrás acceso a Internet.
GSM es una alternativa debido al intensivo uso de esta tecnología para móviles. Ten en cuenta que se está convirtiendo en obsoleta y tarde o temprano desaparecerá.
LPWAN son las redes del IoT. Aunque todavía no están muy extendidas si que será una de las palancas que impulse el IoT a nuestras vidas cotidianas.
WiFi es la tecnología recomendada para proyectos Makers caseros que no requieran de una inversión extra. Podemos encontrar placas muy asequibles con módulos WiFi en el mercado.
¿Qué tecnología utilizas para geolocalizar tus proyectos?
¿Conoces alguna alternativa a la ubicación de dispositivos con WiFi, GSM, LPWAN o GPS Arduino?
Tus comentarios y dudas aquí abajo, gracias :).
Puedes escuchar este programa en, iVoox, iTunes y en Spreaker. Si lo haces, por favor valora y comenta, así podremos llegar a más gente.
Gracias a Shutterstock por ceder los derechos de las siguientes imágenes: