En estas semanas en las que el coronavirus nos ha trastornado la vida a todos, he aprovechado para retomar algunos viejos proyectos que por diversas razones había dejado aparcados hasta mejor ocasión. Uno de estos proyectos (ya habrá tiempo para hablar de otros) era el de lograr un sistema que permitiera recibir información de sensores distribuidos en zonas abiertas. En pocas palabras, sensorización IoT en el ámbito rural. No es exactamente una idea nueva, y era algo que me rondaba la cabeza cuando volví de Irlanda. Ya en su momento me hice con un par de dispositivos Heltec LoRa 32, que disponen de pantalla OLED incorporada, para hacer mis pinitos con ellos. Unos cacharros bastante interesantes, ESP32, con conectividad WiFi y Bluetooth Low Energy además de LoRa. Y aquí la parte importante es LoRa. LoRa (Long Range) es un protocolo de comunicación de larga distancia (WAN) y bajo consumo energético, que haciendo uso de frecuencias libres, permite crear enlaces de datos entre distintos dispositivos, o bien establecer redes de datos completas (cuando ya hablamos de LoRaWAN). Las principales características del protocolo LoRa son las siguientes:
Como decía, adquirí los dispositivos, pero luego nunca tuve tiempo para ponerme a dedicarme a ello. Hasta estas semanas, que han coincidido varias circunstancias que me hicieron volver a dedicarle tiempo al proyecto: el confinamiento por coronavirus, unas iniciativas en el trabajo a las que esta tecnología podría aplicar, y que he dedicado algo más de tiempo a investigar con sistemas ESP32 que con los convencionales ESP8266. Así que tocó desempolvar los viejos Heltec LoRa que tenía guardados, y ponerlos a funcionar.
Heltec proporciona una librería bastante interesante para el IDE de Arduino que permite hacer funcionar de una manera bastante sencilla a una pareja de dispositivos. Como decía más arriba, los Heltec pueden funcionar en modo unidireccional (una unidad emisora y otra receptora), bidireccional (intercambio en ambos sentidos para cada dispositivo) o bien en multidifusión (un mensaje es recibido por todos los dispositivos que estén en su rango de alcance). La manera más simple de empezar es con un emisor y un receptor, sin hacer uso de direcciones de dispositivo. Simple y efectivo, la librería viene con ejemplos de funcionamiento de este tipo, y en cuestión de minutos puedes tener un enlace LoRa funcionando. En mi caso, los dispositivos de que dispongo funcionan a 433 MHz, y pude tener comunicación en toda la casa, y en campo abierto pude llegar a establecer sin muchos problemas enlaces de 300 metros con las antenas que traen los dispositivos.
Bien, 300 metros no es gran cosa cuando según el protocolo podemos llegar a decenas de kilómetros. Con estas primeras pruebas pude aprender algunas cosas interesantes:
Tras haber aprendido esto en una serie de pruebas sucesivas, pero en las que no podía verificar el alcance efectivo alcanzado debido al confinamiento, me preparé para hacer una verdadera prueba de campo, en cuanto tuviera la oportunidad. Y la oportunidad llegó hoy. Al haberse permitido salir a realizar actividades deportivas por la mañana, preparé un escenario de prueba que pudiera efectuar mientras -cómo no- saliera a dar una vuelta con la bici por los alrededores de mi domicilio. La prueba consistió en lo siguiente:
Los resultados de la prueba han sido espectaculares. En dirección norte he logrado un enlace de 5.3 km de distancia, sin visibilidad directa con Santiponce, debido a las ondulaciones del terreno. Esto representa casi el doble del alcance que indica el fabricante para este tipo de dispositivos. Si bien esta ha sido la mayor distancia que ha alcanzado un paquete, una señal confiable, sin pérdida apreciable de paquetes, la he conseguido a 4.5 km de distancia, igualmente sin visibilidad directa.
Hacia el sureste, he alcanzado de manera confiable los 4.2 km de distancia en el enlace, en el mismísimo puente de la SE-30 sobre la Guadalquivir, junto al Estadio Olímpico.
Es probable que la señal pudiera llegar más allá, pero por la configuración del terreno, y porque se alcanzaba el fin del horario establecido para hacer deporte por la mañana, me tocaba volver a casa. También es de reseñar que en esta dirección a gran parte de la zona se encontraba en una sombra de cobertura, ya que las edificaciones de Santiponce, además de los taludes de la autovía y la vía férrea a Huelva se interponían entre ambas antenas, bloqueando la línea directa de visión.
Pero visto lo visto, es bastante posible que a una altura elevada se pueda tener un nivel de recepción decente en la Isla de la Cartuja. Cuando tenga oportunidad, haré pruebas desde la azotea del edificio de GMV, ubicado a 5.2 km de mi receptor.
Durante las pruebas he realizado algunas grabaciones en puntos significativos del recorrido. He compilado las más interesantes en el siguiente vídeo
[...] de las pruebas de comunicación LoRa realizadas el pasado día 2, el 3 volví a salir en los ratos en los que hay autorización para salir de casa por el [...]
[...] con las pruebas de alcance con tecnología LoRa. Estas pruebas consistieron en la repetición de la efectuada en Santiponce el pasado mes de mayo, pero sustituyendo la orografía prácticamente plana de Sevilla por una zona montañosa de las [...]
Hola! estoy intentando realizar una prueba de la misma manera, en mi caso quiero obtener al menos 4 kilómetros de distancia entre el emisor y el receptor, el gateway Lora que estoy utilizando es el Dragino DLOS8 y el módulo lora es una placa arduino con un modulo LoRa Shield. Es posible lograr el mismo alcance?
Hola, Marcos. Gracias por escribir. He tenido muy buenas experiencias trabajando con los Dragino, tanto el DLOS8 como el LG308. En el caso del DLOS8, esa antena externa debería ayudar bastante a conseguir esos 4 kilómetros. El LoRa Shield con una buena antena también debería permitírtelo. Aquí el punto clave es saber el entorno de esos 4 kilómetros. ¿Son campo, ciudad, zona de montaña…? En general, en cualquier espacio abierto y sin obstáculos, debería de ser sencillo lograrlo. En una ciudad, por el contrario, lo veo complicado.
Si te pones a ello, te agradecería que me contaras el resultado. ¡Un saludo!
Hola, realice un proyecto similar, pero de lo mas bien que funcionaba, no recibi mas mensajes. Puse los 2 equipos bien cerca, pegados, se encendia la luz de envio de mensaje, pero no recibia el receptor. No se que pude haber sucedido. Alguna idea?
Hola, Waldo, gracias por escribir. Empezaría verificando lo básico: antenas bien colocadas, dispositivos que hagan uso de la misma frecuencia (la primera vez que compré dispositivos de este tipo, compré por error uno de 433 MHz y otro de 868), y verificar con los demostradores básicos que el envío/recepción es correcto. Si todo esto falla, me haría con un dispositivo para verificar que el emisor de verdad esté emitiendo en el espectro previsto (ya sea 433 u 868 MHz). Para esto, una buena idea es hacerse con un RTL, y hacer uso de algunos programas gratuitos para verificar la recepción de señales. Aquí puedes encontrar algo más de información: https://www.luisllamas.es/receptor-radiofrecuencia-en-tu-pc-con-sdrsharp-y-rtl2832u/
Otra idea puede ser esta: https://www.rtl-sdr.com/decoding-the-iot-lora-protocol-with-an-rtl-sdr/
Un saludo.