02 abril 2018

Transmitiendo datos con IEEE 802.15.4 y LoRa

¡Hola a todos! Los que están pendientes de nuestro Instagram y Facebook se habrán dado cuenta que casi desde hace como año y medio estamos metidos de cabeza en el desarrollo de soluciones IoT utilizando el estándar para telecomunicaciones inalámbricas IEEE 802.15.4 (Que no es lo mismo que WiFi/IEEE802.11).

¿Por qué no usar WiFi?

La razón es simple: El estándar IEEE 802.15.4 permite comunicar dispositivos utilizando muy poca energía a cambio de ofrecer menos ancho de banda comparado con redes de alta velocidad como WiFi o la red de datos móviles.

En un mundo donde cada día buscamos conexiones más rápidas esto podría parecer un retroceso, sin embargo, en el mundo del Internet de las Cosas se requiere que los dispositivos consuman muy poca energía o que incluso puedan ser capaces de funcionar durante meses con pequeñas baterías. Esto último es imposible de lograr con estándares como WiFi o redes de datos móviles así que 802.15.4 trata de llenar ese vacío.

El problema es que este estándar tiene una pequeña limitante y es que el rango normalmente es bastante "corto" (Unos 100m en condiciones ideales). ¿Pero que pasa  si quieres superar la bandera de los cientos de metros o incluso quieres controlar y transmitir a dispositivos que se encuentran a kilómetros de distancia?

Conociendo a LoRa

LoRa por otra parte intenta cubrir la necesidad comunicar datos sobre distancias muy largas sacrificando aun más ancho de banda. Piensen que cada mensaje de LoRa es un poco más pequeño que el tamaño de un "tweet", tampoco puede enviar datos de forma continua ya que (dicho un poco mal) debe esperar que el gateway ceda un turno para comunicarse.

Como mencionamos antes, esto puede parecer una limitante, pero en contextos donde solo necesitamos enviar datos de forma poco regular (Un medidor de humedad de suelo que envia datos cada hora) estas soluciones son más que ideales para trabajar con baterías y permitir funcionamiento en el rango de meses (o años) de trabajo.

¿Descartamos entonces IEEE 802.15.4 para largas distancias?

No necesariamente. Muy recientemente se aceptaron cambios al estándar IEEE 802.15.4 para poder transmitir sobre las bandas 925 y 815MHz, estas bandas resultan "transparentes" a muchos obstáculos (por ejemplo árboles) y permiten alcanzar mayores distancias en tanto contemos con un amplificador para nuestro radio. Sin embargo, en muchos países esas frecuencias requieren licenciamiento lo cual limita el despliegue de redes de sensores de bajo costo.

Afortunadamente es posible encontrar radios amplificados en la banda de 2.5Ghz como el AB-AT-RF233-CR de Microchip que pueden ser utilizados fácilmente con tarjetas microcontroladoras como la Teensy.

Recientemente adquirimos en el Hackerspace San Salvador algunos de estos radios amplificados para 802.15.4 y decidimos salir a la calle a probar que tan lejos podíamos llegar.

La prueba

Para la prueba decidimos simplemente tomar los radios tal cual y hacer las pruebas según las condiciones que nos permitiera el terreno.

Esto tiene una desventaja ya que estábamos a merced de las condiciones del entorno. Afortunadamente era el último domingo luego de las vacaciones de Semana Santa así que el tráfico era muy bajo y eso nos permitió recorrer la mayor parte del paseo general escalón sin mayor problema.

Explicamos a continuación algunas limitantes al alcance de los radios:
  1. Decidimos dejar un módulo transmisor LoRa y un módulo IEE803.15.4 en un lugar alto de la ciudad pero relativamente cerca del suelo. Esto afecta considerablemente el rango de alcance ya que mucha señal puede "rebotar" en el suelo.
  2. Los otros módulos decidimos llevarlos en un carro y decidimos manejar en línea recta hasta que no lograramos recibir mensajes. Un carro es un conjunto de metales y materiales que afectan la recepción de señal, así que de nuevo, teníamos otro factor limitante del alcance.
  3. Solo los módulos LoRa contaban con una antena relativamente decente. Los radios IEEE 802.15.4 tenían antenas cerámicas. Este tipo de antenas tiene la ventaja que son casi que independientes de la orientación de la misma, pero tienen la desventaja que reducen la distancia máxima alcanzable entre radios.


La base "fija" con el par de radios estaba ubicada al final del Paseo General Escalón, unos metros adelante del restaurante "La Pampa Argentina" y el otro par de radios estaban en un carro haciendo un recorrido sobre el Paseo General Escalón en dirección oriente.

¿Por qué no hacer la prueba en mejores condiciones? Simple: El mundo real no es el ideal y queríamos ver bajo estas pésimas condiciones de prueba qué tan lejos eramos capaces de llegar.

El Resultado


Radios amplificados 802.15.4 con antena cerámica



Estos radios amplificados lograron un alcance de poco más de 850m enviando mensajes entre sí. Aunque no parece mucho, para el tipo de antena utilizada es un resultado muy bueno. Significa que con uno de estos pueden cubrir por completo un edificio que requiera la interconexión de una red de sensores dentro de sí.

Radios LoRa



Aunque la conexión no era estable, logramos llegar hasta los 2.9Km de distancia. Estamos seguros de que podríamos llegar más lejos pero la altura de la antena y la cantidad de obstáculos en el camino dificultaba la conexión entre ambos radios. Todo esto con un módulo corriendo con 3 pequeñas baterías AAA.

¿Cómo mejorar el alcance?

Esto siempre es una pregunta difícil ya que la respuesta se resume en lo siguiente: El alcance depende de las características de las antenas y la topología del terreno.

A pesar de lo anterior podemos hacer dos cambios "sencillos" que pueden incrementar el rango de cualquier radio:
  1. Reemplazar las antenas omni-direccionales por antenas direccionales. Esto reduce el área de donde "podemos" enviar y recibir  datos, pero a cambio ganamos mayor distancia de transmisión.
  2. Incrementar la altura de las antenas. En general mientras más separamos la antena del suelo, menos es la probabilidad de encontrarnos obstáculos y también reducimos la señal que "rebote" en el suelo.
Pueden notar que no hemos hablado de utilizar amplificadores y la razón es que el nivel de amplificación que tiene una señal depende también de las regulaciones locales. Tu te puedes ver tentado a incrementar la potencia de transmisión colocando un amplificador a tu radio, pero luego te encuentras con que las reglamentaciones locales no permiten superar cierta cantidad de potencia sin pagar licenciamiento del espectro y en ese momento, las redes de sensores dejan de ser de bajo costo por la cantidad de gastos administrativos en los cuales se debe invertir.

Materiales y componentes utilizados en la prueba

Si quieres replicar esta prueba en otro entorno vas a necesitar armar los rigs de prueba como se detalla a continuación. Queríamos compartir primero los resultados, vamos a crear más adelante otra entrada en este blog explicando como armar los rigs de prueba y como cargar el código de prueba.

Rig de pruebas 802.15.4:

El código de ejemplo se encuentra en la carpeta "Source" del repositorio de hardware para contiki del Hackerspace San Salvador. Es necesario también instalar la biblioteca I32CTT para Arduino del Hackerspace San Salvador.

Rig de pruebas LoRa:
El código utilizado puede encontrarse en el repositorio del Hackerspace San Salvador. Puede utilizarse tambien el código de ejemplo de STM32Cube para este módulo, sin embargo la versión utilizada en el Hackerspace tiene algunas modificaciones en el código que le permiten utilizar la banda libre del espectro en El Salvador y el código es compilable con las herramientas de GNU ARM GCC.

Conclusiones

Tanto 802.15.4 como LoRa resultan opciones muy interesantes para el establecimiento de redes de bajo consumo y larga distancia. En general, si necesitas un poco más de ancho de banda y tu área de cobertura no es mayr a un edificio puedes optar por radios amplificados 802.15.4, si por el contrario quieres consumo extremadamente bajo y alcanzar grandes distancias en el rango de varios kilometros puede que LoRa sea una opción más atractiva.


¡Hasta la próxima!

No hay comentarios: