¿Qué es LoRa?
LoRa (Long Range) es una tecnología de comunicación inalámbrica diseñada para transmitir datos a largas distancias con un consumo de energía muy bajo.
Permite enviar pequeños paquetes de información, como temperatura o ubicación, de un dispositivo a otro, incluso cuando se encuentran a kilómetros de distancia. Es ideal para aplicaciones como monitoreo de sensores remotos.
La tecnología se desarrolló en Francia en 2012 por Cycleo y adquirida posteriormente por Semtech, que se encargaría de impulsarla. LoRa no utiliza modulaciones “clásicas” como FSK o PSK, sino una modulación especial llamada Chirp Spread Spectrum (CSS) (modulación por espectro expandido por silbidos), ideal para tolerar el ruido y para que una señal vaya por múltiples caminos.
Para utilizar LoRa sólo necesitamos dos dispositivos con un módulo LoRa para enviar y recibir información entre ellos.
Las frecuencias de funcionamiento varían dependiendo del país y suelen ser las bandas 433 MHz, 868 MHz y 915 MHz.
Conexión de dispositivosLoRaWAN (Long Range Wide Area Network) , por otro lado, es un protocolo de red que utiliza la tecnología LoRa para conectar múltiples dispositivos a una red central. Imagina que LoRa es como el camino por el que viajan los datos y LoRaWAN es la autopista que organiza y gestiona este tráfico de datos. LoRaWAN permite que muchos dispositivos LoRa se comuniquen de forma eficiente con una estación base o una red central, lo que es útil para casos de uso como ciudades inteligentes o agricultura de precisión.
Largo AlcanceUn solo gateway permite conectar miles de dispositivos, una cifra que aumenta con cada nueva puerta que se añade. Así, se facilita la creación de una red barata, amplia y con un consumo energético bajo.
Los aparatos ligados mandarán sus datos en tiempo real y durante largos periodos. Para ello, existen diferentes formas de cobertura LoRawan: redes privadas, redes de terceros y operadoras de dispositivos. Además, estas características ayudan a escalar la arquitectura.
El proceso de escalado se efectúa añadiendo módulos a todo el sistema. Esto hace posible la conexión de millones de sensores que se siguen mediante geolocalización. Cada puerta de enlace se encarga de gestionar miles de dispositivos, toda una ayuda para aumentar la capacidad de la red.
Transmisión de datosEsta es una de las características más destacadas por las implicaciones que conlleva. La tecnología está diseñada para funcionar en ciudades y atravesar todo tipo de obstáculos. En presencia de numerosos edificios y construcciones, dispone de un alcance de tres kilómetros. Sin embargo, la capacidad aumenta a los 20 km en zonas abiertas.
LoRa no envía bits uno por uno, sino que envía símbolos , que son como "paquetes de bits". Por tanto, un símbolo es un pedazo de información que contiene varios bits.
El parámetro SF (Spreading Factor) permite variar el factor de “esparcimiento” que varía la velocidad y el alcance de la emisión.
La cantidad de bits que lleva un símbolo depende del Spreading Factor (SF) :
SF7 → cada símbolo tiene 7 bits
SF8 → cada símbolo tiene 8 bits
SF12 → cada símbolo tiene 12 bits
Ejemplo:
Queremos enviar la temperatura: 23 °C. En binario (8 bits): 00010111
Si utilizamos SF7:
Símbolo 1: 0001011
Símbolo 2: 1000000 (Se añaden 0's detrás de relleno)
Si utilizamos SF12:
Mensaje: 00010111(8 bits)
Dividimos en bloques de 12 bits (12 bits por símbolo)
Como sólo tenemos 8 bits, añadimos ceros: 000101110000→ 12 bits
La duración de un símbolo T depende de SF y BW:
Si consideramos un ancho de banda BW = 125 kHz:
SF7
Número de símbolos: 2
Tiempo total = 2 × 1,024 ≈ 2,05 ms
SF12
Número de símbolos: 1
Tiempo total = 1 × 32,768 ≈ 32,77 ms
Teniendo en cuenta el Tiempo de símbolo y que cuanto más largo es un símbolo, más fácil es de detectar y más difícil es que el ruido lo estropee., podemos decir que:
SF7 → rápido pero menos robusto
SF12 → lento pero muy resistente al ruido e interferencias
Valores con ancho de banda de 125Khz (por defecto):
Transmisión de datos bajahttps://www.thethingsnetwork.org/docs/lorawan/spreading-factors/
Bajo consumo energético y costeLa velocidad de transmisión de datos es baja, pero no es importante para la mayoría de procesos. La información se envía desde miles de dispositivos de forma continuada. Pese a que la velocidad es de entre 0,3 y 50 Kbps, es suficiente para enfrentarse al volumen generado por la red.
Amplia variedad de dispositivos y aplicacionesLoRa y LoRaWAN con arduinoblocks y ESP32 STEAMakers - v1 Permite mantener dispositivos con baterías pequeñas sin necesidad de recargarlos durante largos periodos. Esta característica reduce la intervención humana, así como las necesidades energéticas.
No importa que la red se extienda a través de decenas de kilómetros, ya que estará optimizada desde un punto de vista energético. De este modo, es más sencillo escalarla sin incurrir en grandes costes.
Los dispositivos que se pueden emplear son muy variados y dependen del objetivo de la red. Ayudan a adelantarse a problemas en ciernes y prevenirlos de manera adecuada. Algunos ejemplos son los sensores de humedad, temperatura o de conductividad eléctrica.
Estas son sus principales aplicaciones:
Seguridad● Smart cities.
● Smart industry.
● Agricultura.
● Logística.
● Cadena de suministro.
La regla del 1%La seguridad de la red es primordial en despliegues IoT y LoRaWAN define dos capas de criptografía.
Una única clave de sesión de red de 128bit compartida por el end-point y servidor de red. Una única clave (AppSKey) de aplicación de 128bit compartida end-to-end y la capa de aplicación
En Europa la banda 868 MHz tiene un par de limitaciones. La primera es la potencia de emisión: 25 mW, que no nos preocupa mucho ya que los módulos que utilizaremos no llegan a tanta. Pero la segunda si que es importante y debemos evitar violar la regulación.
Esta regla simplificadamente lo que dice es que no podemos transmitir más que el 1% del tiempo. Es decir si por ejemplo enviar un paquete nos lleva 100 ms, tendremos que mantenernos sin emitir por 900 ms. Como norma general, no envíes más de una vez cada 3 minutos y cumplirás la reglamentación. Si quieres enviar más a menudo, existen calculadoras para obtener los tiempos entre envío mínimos.
La limitación del 1% en las transmisiones LoRa se refiere al "duty cycle" o ciclo de trabajo que se aplica a las comunicaciones LoRa que operan en bandas ISM (Industrial, Scientific, and Medical) sin licencia, especialmente en Europa bajo las regulaciones ETSI (European Telecommunications Standards Institute).
Esta limitación significa que un dispositivo LoRa sólo puede transmitirse durante el 1% del tiempo total en una frecuencia específica. En otras palabras, después de enviar una transmisión, el dispositivo debe esperar 99 veces la duración de esta transmisión antes de poder transmitir de nuevo en la misma frecuencia.
Por ejemplo:
Si un dispositivo transmite durante 1 segundo, debe esperar 99 segundos antes de poder volver a transmitir
Si un mensaje tarda 0,5 segundos en enviarse, el dispositivo debe esperar 49,5 segundos
Esta limitación tiene diversas implicaciones prácticas:
Reduce la cantidad de datos que pueden enviarse en un período determinado
Limita la frecuencia de comunicación de los dispositivos IoT
Afecta al diseño de aplicaciones que requieren comunicaciones frecuentes
Cabe destacar que esta restricción varía según la región y la banda de frecuencia específica. En Estados Unidos, por ejemplo, las regulaciones FCC son distintas y no imponen el mismo ciclo de trabajo del 1%.
Si sobrepasara el límite del 1% del ciclo de trabajo en las transmisiones LoRa, podrían producirse varias consecuencias:
1. Incumplimiento legal: Estaría violando las regulaciones de telecomunicaciones establecidas por la ETSI en Europa. Esto puede comportar:
- Sanciones administrativas
- Multas económicas que pueden ser significativas
- Orden de cese de las operaciones
2. Interferencias en la red:
- Aumentaría la congestión en las bandas ISM
- Podría causar interferencias a otros dispositivos que operan legalmente
- Reduciría la eficiencia general de la red LoRa en la zona
3. Problemas técnicos:
- Algunos gateways LoRaWAN están programados para rechazar transmisiones que excedan los límites regulatorios
- Los operadores de redes LoRaWAN públicas podrían bloquear su dispositivo
- Podría ser identificado como un emisor problemático por los sistemas de monitorización
4. Impacto a largo plazo:
- Contribuiría a degradar la calidad de las comunicaciones en estas bandas de uso compartido
- Podría provocar cambios regulatorios más restrictivos si muchos usuarios incumplen las normas
Debe tenerse en cuenta que las autoridades reguladoras pueden monitorizar el espectro radioeléctrico e identificar emisiones irregulares, especialmente si éstas causan interferencias notables o son persistentes.
Para calcular el tiempo que tarda un dispositivo LoRa en transmitir datos (tiempo de aire o "Time on Air"), es necesario considerar varios parámetros que afectan a la duración de la transmisión. Aquí tienes cómo calcularlo:
Factores que determinan el tiempo de transmisión
- Factor de expansión (Spreading Factor – SF): Valores de 7 a 12, donde valores más altos aumentan considerablemente el tiempo de transmisión.
- Ancho de banda (Bandwidth - BW): Habitualmente 125 kHz, 250 kHz o 500 kHz. A menor anchura, mayor tiempo de transmisión.
- Tasa de codificación (Coding Rate - CR): Normalmente entre 4/5 y 4/8, afecta a la redundancia del mensaje.
- Tamaño del payload: Cantidad de bytes a transmitir.
- Presencia de preámbulo: Generalmente de 8 símbolos.
- Cabecera: Si se utiliza modo explícito o implícito.
Módulo LoRa para ESP32 STEAMakers
Para utilizar la comunicación LoRa desde ESP32 STEAMakers debemos añadir un módulo capaz de trabajar con la modulación LoRa, para ello utilizaremos un módulo basado en el chip de Semtech SX1276 (módulo RFM95).
El módulo utiliza conexión SPI y algunas señales de control extra dependiendo de si utilizamos LoRa o LoRaWAN en nuestro dispositivo. Para facilidad del conexionado se ha diseñado un módulo específico listo para conectar a la placa ESP32 STEAMakers directamente:
Vista real del módulo LoRa/LoRaWAN conectado a ESP32 STEAMakers:
Antena externa
El módulo permite conectar una antena externa mediante el conector IPX. En caso de utilizar antena externa es necesario quitar la antena integrada. La antena externa debe estar diseñada para trabajar en la frecuencia correcta (868 MHz, 915 MHz, etc.).
Módulo LoRa con antena externa para 868 MHz
Configuración del módulo
El módulo permite habilitar los 2 pines extras: 1 (D6/IO27) y 2 (D7/IO14).
En caso de utilizar LoRa (sin WAN) podemos deshabilitar los dos pinos y así utilizarlos para otros usos, aunque si los dejamos en ON funcionará el modo LoRa y entonces NO debemos conectar nada a los pines.
Por otro lado, si utilizamos LoRaWAN obligatoriamente el módulo debe tener los dos microinterruptores en posición ON y no podremos conectar nada a estos pinos.
Recomendación: Deja siempre los microinterruptores a ON y en caso de necesitar pines extras y utilizar solo conexión tipo LoRa puedes ponerlos a OFF para habilitarlos.
https://shop.innovadidactic.com/es/standard-perifericos/1663-modulo-lora-lorawan-8436574314656.html
Primera comunicación LoRa
Montaje
Programación
Bloques LoRa
Iniciar
→ configura el módulo LoRa (ajustado por defecto para el módulo ESP32 STEAMakers LoRa). Si seleccionamos la opción de encriptación es necesario especificar la misma clave de 16 caracteres en el emisor y en el receptor (clave de encriptación AES-128, es decir 128 bits --> 16 bytes).
Enviar
→ envía una trama de datos (máxima longitud: 51 ~ 242 bytes/caracteres). La longitud máxima de la trama de datos dependerá de la frecuencia (zona del mundo) y de parámetros internos de la modulación (SF, Bandwith, etc.).
Ejemplo de longitud máxima de la trama de datos según diversas configuraciones
https://www.thethingsnetwork.org/docs/lorawan/regional-parameters
Al recibir datos
→ evento que se produce cuando se reciben datos. Dentro de este bloque el valor del bloque Datos recibidos tendrá el texto con la trama de datos recibida y el valor RSSI indicando la intensidad de la señal recibida.
Establecer
→ el bloque de ajuste de parámetros avanzados permite ajustar algunos valores internos:
Spreading Factor (SF): es el factor de esparcimiento. Permite valores entre 7 y 12. (Valor por defecto = 7)
Frequency (MHz): Valor por defecto 868. Es el valor en MHz de la frecuencia en la que trabaja el módulo LoRa. Podemos especificar una banda de frecuencia específica dentro de los márgenes de nuestro módulo LoRa.
A veces querremos trabajar con varios equipos en espacios muy cercanos y, lógicamente, estos equipos no pueden compartir la misma frecuencia porque no habría forma de determinar quién envía y quién recibe los datos. Se hace necesario en este caso realizar una distribución de frecuencias que para la zona Europea la realizaremos en base a la frecuencia de referencia de EU868 MHz que puede variar entre 863 y 870 MHz . Tendremos en cuenta el ancho de banda de la señal LoRa que por defecto es de 125 Khz.
En base a lo dicho anteriormente podemos construir una tabla de frecuencias, separadas en 200 kHz (para tener margen con los 125Khz de BW), para asignarlas a canales como la siguiente:
Signal Bandwith: ancho de banda de la señal LoRa. Valores posibles:
7800, 10400, 15600, 20800, 312500, 41700, 62500, 125000, 250000, 500000
(Valor por defecto = 125000)
Tx Power: potencia de transmisión del módulo LoRa. Valor entre 2 y 20 dB. (Valor por defecto = 17)
Coding Rate: los valores admitidos están entre 5 y 8, que corresponden a tasas de codificación de 4/5 y 4/8. El numerador de la tasa de codificación se fija en 4. (Valor por defecto = 5)
Preamble Length: los valores admitidos están entre 6 y 65535. (Valor por defecto = 8)
Sync Word: valor de sincronización. (Valor por defecto = 0x12)
Gain: configura la ganancia de LNA para obtener una mejor sensibilidad de RX. De forma predeterminada se utiliza AGC (control automático de ganancia) y no se utiliza la ganancia de LNA.
Valores de 0 (ganancia automática) hasta 6. (Valor por defecto = 0 → auto)
CRC: determina si todos los bytes del mensaje se recibieron correctamente.
IQ invert: invierte las señales LoRa I y Q.
Ejemplo de programa LoRa
LoRa 1 → emisor contador + receptor OLED
EMISOR
RECEPTOR
JSON: formato para intercambio de datos
Ejemplo de JSON:A la hora de intercambiar información entre dispositivos y, sobre todo, en comunicaciones de baja frecuencia como en el caso de LoRa, debemos enviar varios valores y de la forma más compacta posible.
El formato de empaquetado de datos “JSON” es una forma sencilla de encapsular varios datos de información en una misma trama de datos con un formato fácilmente entendible y que ocupa poco espacio extra en el envío (existen otros tipos como XML con mucha más carga de datos).
JSON es el acrónimo de “JavaScript Object Notation”, y es un formato de texto sencillo que permite encapsular en forma de texto cualquier objeto (un objeto es un concepto dentro de la programación que encapsula las variables, tipos de datos y valores de un estado del programa o de la información necesaria, incluyendo jerarquía, listas, valores, tipos de datos, etc.).
tenemos en un sistema informático el concepto de objeto “vehículo”. Una posible representación en formato JSON sería:
{
Matrícula: KLC1245,
“Año”:2021,
"Conductor": {
“Principal”: “Joan”,
“Secundario”: “María”,
},
“Seguro”: “El piñazo SL”,
“Benzina”: True,“Gasoil”: False,
“Eléctrico”: False,
“Revisiones”: [2021, 2023, 2024],
}
Ejemplos prácticos:El formato JSON, de forma práctica en aplicaciones LoRa/LoRaWAN con ESP32, lo vamos a utilizar para encapsular dentro del bloque de datos ( { } ) varios pares “clave” : “valor” y poder recuperarlos fácilmente al receptor a partir del nombre “clave”.
JSON con datos para controlar un LED RGB
{ “R”: 100, “G”: 50, “B”: 0}
JSON con datos para mover 2 servos (S1 , S2)
{ “S1”: 120, “S2”: 45 }
JSON con datos para enviar un texto para mostrar a dos pantallas remotas (P1, P2)
{ “P1”: “Hola”, “P2”: “Toni” }
JSON con datos eléctricos
Ejemplo sencillo{ “V”: 232.5 , “I”: 0.6 , “Wh”: 326.4 }
→ datos a encapsular de 2 sensores conectados al emisor:
· Valor de temperatura
· Valor de humedad
· Presión atmosférica
JSON para empaquetar estos 3 valores:
EMISOR{ “T”: 23, “H”: 58, “P”: 930.2}
Opción 1: formato manual:
Opción 2: Formato con los bloques específicos (recomendado)
RECEPTOR
Si dejamos el receptor como en el ejemplo anterior:
Por la pantalla vemos la cadena en formato JSON que estamos recibiendo. Pero lo normal es que queramos recuperar cada dato de cada sensor.
La decodificación de una cadena de texto en formato JSON es sencilla. Se debe analizar, ya partir de ahí podremos extraer los datos de este nivel. Si existe un subnivel (ramificación) se deberá obtener el valor del subnivel y volverlo a analizar para acceder a sus datos de forma directa. No existe límite de niveles y subniveles.
Ejemplo para extraer los datos codificados en el ejemplo anterior:
Programas con datos CSV
Programa emisor
Programa receptor
Elección de la tecnología de comunicació
1. Comunicación inalámbrica (CANSAT)
Durante el vuelo, debemos poder recibir sus medidas en tiempo real (temperatura, presión, altitud, posición GPS...) desde la estación base en el suelo.
Como CanSat está volando, no podemos conectarlo con cables.
Por tanto, la comunicación debe ser inalámbrica, es decir, mediante ondas electromagnéticas que transmitan la información a distancia.
Esta comunicación inalámbrica debe ser:
Segura, por no perder datos.
De largo alcance, para llegar hasta la estación base.
De bajo consumo, porque CanSat tiene poca energía.
2. ¿Qué son las ondas electromagnéticasPor ello, elegir la tecnología adecuada de transmisión es una de las partes más importantes del proyecto.
Las ondas electromagnéticas son vibraciones de energía que pueden propagarse tanto por el aire como por el vacío, y viajan a una gran velocidad: la velocidad de la luz.
Ejemplos:
La luz que vemos
Los rayos X de un hospital
WiFi, la radio y el Bluetooth
3. El espectro radioeléctrico
Es como una gran escala que agrupa a todas las ondas electromagnéticas, ordenadas según su frecuencia (o su longitud de onda).
Dos cosas importantes:
Frecuencia (Hz): cuántas veces vibra la onda cada segundo
Longitud de onda (λ): la distancia entre dos puntos iguales de la onda
Relación fundamental:
donde
λ = longitud de onda (m)
c = velocidad de la luz (aprox. 3 × 108 m/s )
f = frecuencia (Hz)
¡Mi onda se ha perdido!Las ondas de radio son quizás el tipo de onda electromagnética más utilizado en las comunicaciones a diario. Pero, ¿por qué son tan útiles? En esta actividad aprenderemos sobre las ventajas de las ondas de radio para las comunicaciones y cómo la frecuencia y la longitud de onda escogidas para nuestras ondas de radio serán críticas para nuestro proyecto.
Sólo hay ciertos tipos de ondas en el espectro electromagnético que no son absorbidas por la atmósfera. La siguiente imagen muestra en qué punto de la atmósfera se absorben las ondas del espacio.
Pérdida en el espacio libreComo puede ver, las ondas de radio tienen un lugar privilegiado en el espectro electromagnético, ya que la mayoría pasa a través de la atmósfera sin ser absorbidas!
Las ondas de radio, así como algunas microondas, son, por tanto, la mejor opción para nuestros satélites de comunicaciones en órbita.
EjercicioHay otro aspecto que debemos tener en cuenta en la comunicación por radio. Free-space path loss (FSPL) es la pérdida de la intensidad de la señal de una onda electromagnética que resultaría de un trayecto online de visión a través del espacio libre, sin obstáculos cercanos para atenuar la señal. Pero si no existen obstáculos, ¿por qué tenemos una pérdida de intensidad de la señal? Probamos una analogía:
Imagínense inflar un poco un globo y dibujar un círculo con un rotulador. Si intentamos ver el interior del globo, veremos que el material del globo es demasiado denso para verlo a través. Ahora hinchamos el globo un poco más y vuelva a dibujar un círculo del mismo tamaño en la superficie. El área que estamos mirando es la misma, pero como el globo se ha expandido en todas direcciones, el material es menos denso y ahora podemos verlo a través. Éste es un principio similar a como surge la FSPL. La FSPL aparece al vacío en condiciones ideales, por ejemplo, una comunicación por radio entre satélites. La pérdida en el espacio libre se puede calcular como una relación entre la potencia transmitida y la recibida:
Calcule el FSPL en decibelios de un transmisor CanSat que utiliza LoRa (f de 868 MHz) en el momento del despliegue de CanSat (1 km).
Teníamos que:
dónde:
m
Hz
FSP L dB = 20 log 10 ( 1000 ) + 20 log 10
Esto significa que, sólo por la distancia y la frecuencia, la señal ha perdido unos 91 dB antes de llegar al receptor.
Para un transmisor LoRa típico (por ejemplo 14 dBm ≈ 25 mW), si la pérdida es 91 dB, la potencia recibida será mucho más baja:
5. ¡Elegimos tecnología de comunicación!LoRa puede recibir señales tan bajas como -140 dBm dependiendo del spreading factor, así que -77 dBm es perfectamente aceptable.
Cuando lanzamos el CanSat al aire (¡hasta 1 km de altura!), debemos enviar datos hacia una estación en el suelo: como la temperatura, la altitud o la presión.
Para ello, es necesario elegir una tecnología inalámbrica. Pero... ¡ no todas sirven!
Comparación de tecnologías inalámbricas
¿Por qué LoRa es una muy buena opción para CanSat?
Llega muy lejos (más de 1 km sin problemas).
Gasta muy poca batería, así que la pila dura más.
Funciona bien al aire libre, sin obstáculos.
Aunque es lento, es suficiente para enviar datos como temperatura, altura, etc.
Se ha utilizado en muchos otros proyectos CanSat con éxito.
https://randomnerdtutorials.com/ttgo-lora32-sx1276-arduino-ide/
https://randomnerdtutorials.com/esp32-spi-communication-arduino/
https://www.luisllamas.es/en/esp32-spi/La
https://docs.espressif.com/projects/arduino-esp32/en/latest/api/spi.html

.png)








.png)
%20(1).png)
.png)
.png)
.png)
.png)

.png)

.png)
.png)
.png)


.png)
.png)
.png)


.png)
.png)
.png)
.png)
%20(1).png)






No hay comentarios:
Publicar un comentario