TFG Pedro Andre Camarena Gamarra
TFG Pedro Andre Camarena Gamarra
Memoria
Resumen
Abstract
The implementation of a LoRaWAN® network for the IoT will be investigated. In the
future, it is expected to have several types of networks that provide a solution to the
different challenges that arise within the industry.
Once the study and implementation of this project has been carried out, sufficient
information is available to affirm that the LoRaWAN® network has been successfully
developed within the ETSEIB campus.
Desarrollo de una red LoRaWAN® para IoT Pág. 3
Sumario
Resumen 1
Sumario 3
Glosario 5
Prefacio 7
Origen del proyecto 7
Motivación 7
Requerimientos previos 7
Introducción 8
Objetivos del proyecto 8
Alcance del Proyecto 8
Marco teórico 9
Introducción al IoT 9
Análisis de la red IoT 11
Estructura de red IoT 12
Protocolos de comunicación IoT 13
Porque utilizar LoRa® 14
Protocolo de comunicación LoRa® 15
Red de comunicación LoRaWAN® 18
Experimentación 23
Análisis de componentes 23
Dispositivo STM32WL55 28
Gateway Multitech Conduit IP67 32
Conexión entre sistemas 34
Comentarios 37
Conclusiones 39
Agradecimientos 40
Bibliografía 41
Pág. 4 Memoria
Desarrollo de una red LoRaWAN® para IoT Pág. 5
1. Glosario
LoRaWAN® : Protocolo de comunicación y arquitectura de red.
C : Lenguaje de programación.
BW : Ancho de Banda.
TX : Transmitir.
RX : Recibir.
DC : Ciclo de Trabajo.
IP : Internet Protocol.
2. Prefacio
2.2. Motivación
● Protocolos de telecomunicaciones.
● Microprocesadores.
● Protocolos de comunicación en ordenadores
● Programación de software embebido en c.
● Configuración básica de routers (servidores de red) que emplean Linux
para ejecutar los sistemas desarrollados por los fabricantes.
● Cómo configurar sesiones de red en servidores LoRaWAN®.
Pág. 8 Memoria
3. Introducción
4. Marco teórico
Los microcontroladores están ideados para cumplir con todas las funciones de un
dispositivo electrónico gracias a la estructura conformada por buses, registros de
memoria, periféricos y unidades de control. En la Figura 4.1.1 se observan las
conexiones de los sistemas de comunicación electrónica en las dos arquitecturas
digitales más conocidas.
Pág. 10 Memoria
Por otro lado, el Internet está coordinado por la ICANN “Internet Corporation for Assigned
Names and Numbers” quien se encarga de administrar todos los nombres de los sitios
web y asociarlos a una sola dirección IP. El Internet está implantado a nivel mundial
gracias a una extensa red de cables de fibra óptica tendidos sobre el lecho marino o
enterrados en tierra que interconectan todos los continentes del planeta.
A la hora de implementar una aplicación IoT, se tendrá que definir la red y esta debe
especificar el conjunto de protocolos de comunicación a utilizar, en muchos casos ya
existen protocolos de comunicación estandarizados para la red. Debido a que el conjunto
de los protocolos de comunicación es grande, se comentará acerca de un modelo
estandarizado que segmenta los distintos protocolos de comunicación que dan origen a
la red. El modelo OSI “Open Systems Interconnection” es un modelo que se encarga de
Desarrollo de una red LoRaWAN® para IoT Pág. 11
segmentar la comunicación digital por capas (ISO/IEC 7498-1). Como se puede observar
en la Figura 4.1.2. Las capas dentro de una red quedan agrupadas dependiendo de la
funcionalidad que tengan.
Según lo explicado anteriormente, los sistemas IoT se pueden dividir en diferentes capas
y cada una explica las funcionalidades de los diferentes protocolos de comunicación.
Dentro de estos protocolos, están los que establecen la transmisión de datos de manera
inalámbrica mediante ondas electromagnéticas, se encuentran en la capa física (1).
Entre la capa física y la capa de red (3) se establece la comunicación relacionada con el
medio físico. Mientras que desde la capa de transporte (4) en adelante, la comunicación
se relaciona más con el ordenador (host) conectado. Cabe destacar que la capa de
aplicación (7) puede funcionar como central de control de la información, ejecutando de
manera automática comandos dirigidos hacia el resto de las demás capas.
el RJ45 (cable de ethernet), cuentan con una mayor latencia y con sistemas de seguridad
y encriptación de datos, debido a que esta información se emite en el aire y puede ser
captada por varios receptores desconocidos. Estos protocolos inalámbricos están
diseñados para soportar distintos flujos de información (bit/s), y los más utilizados
actualmente son el WiFi, Bluetooth, 3G, 4G, 5G, Zigbee, LoRaWAN®, Nb-iot, Z-bee, etc.
A la hora de definir una estructura de red dentro del IoT, se tiene que definir
específicamente la aplicación que se le desea dar al sistema. Es por eso que existen
diferentes tipos de arquitectura, las cuales tienen en común la función de integrar
componentes. Dentro de estas arquitecturas se encuentran las que incorporan a la red
sensores de equipos urbanos, conexión con la nube a través del Gateway IoT e
integración de estos datos con Internet. La arquitectura de la Figura 4.3.1 es un ejemplo
de arquitectura disruptiva dentro del IoT, ya que plantea la integración del IoT a la red
pública urbana.
● El WiFi que se encuentra regulado con los estándares del IEEE 802.11, está
perfeccionando sus protocolos de envío de paquetes de información para ofrecer
un mejor servicio.
● Las redes de telefonía móvil con el desarrollo del 5G tienen una velocidad de
transmisión de datos mayor que sus predecesoras, el 4G y el 3G.
Sin embargo, todo este desarrollo está fijado a las características físicas de transmisión.
LoRa® se caracteriza principalmente por ofrecer un amplio rango de comunicación, poco
consumo de energía, estructura de red y coste de implementación económico en
comparación a las antenas de telefonía móvil.
La red funciona de la siguiente manera, los dispositivos finales o “end devices” o “end
nodes” utilizan LoRa® para establecer una conexión con el “gateway”. El “gateway” o
puerta de enlace es un componente que establece los medios de comunicación de la red
LoRaWAN® con los dispositivos finales. Además, a través de protocolos de
comunicación de servidores MQTT se puede direccionar esta información a diferentes
servidores (remotos o locales). Una representación esquemática de esta estructura de
red se puede observar en la Figura 4.4.2. donde se muestra el esquema de red en una
arquitectura LoRaWAN®.
Fig. 4.4.2. Servidor de unión LoRaWAN® en una implementación de una red típica de LoRaWAN® [2].
Dentro del IoT existe la necesidad técnica de administrar los cientos de dispositivos de la
red de manera organizada y significativa. LoRa® es útil donde se planea implementar
dispositivos a largo alcance y de bajo consumo.
Semtech creó este protocolo para satisfacer las necesidades de una red más grande que
Desarrollo de una red LoRaWAN® para IoT Pág. 15
cubra un espacio amplio para los usuarios finales. Esta misión también fue adoptada por
parte de la Alianza LoRa® la cual tiene como propósito estandarizar los protocolos
LPWAN (Low Power Wide Area Network) para el desarrollo de aplicaciones IoT.
LoRaWAN® tiene como objetivo el convertirse en el tipo de red Sub-Ghz más importante
de Europa y de otros países del mundo gracias a que ofrece a sus usuarios la posibilidad
de comunicar información a través de largas distancias y con bajo coste.
LoRa® implementa la variación de frecuencia, desde ahora conocida como chirp, como la
base para demodular cada símbolo de bits. Esta señal se puede dividir en s imágenes
𝑆𝐹
desde 0 hasta 2 − 1 posibles imágenes donde SF es el factor de dispersión. A cada
una de estas s imagenes le corresponde una señal binaria c que se puede observar en la
Figura 4.6.1.. Donde Ts es el período de muestreo de la variación de la frecuencia, s es
el número binario de la imagen que le corresponde a la señal para cada caso n y k es el
incremento natural en cada instante. El implemento de la función mod lleva la señal al
valor ínfimo cuando se alcanza el límite del ancho de banda BW. Esta discontinuidad
ocasionada por la función mod permite las variaciones de la señal chirp y es la que
Pág. 16 Memoria
Una vez la señal llega al receptor ocurre una técnica de demodulación conocida como la
“transformada de Fourier rápida”. Esta consiste en multiplicar la señal por la señal base
“dechirping” y después por cada una de las s para encontrar la correlación máxima, es
decir, encuentra el valor dentro del grupo de s que más se parezca la señal. Finalmente,
Desarrollo de una red LoRaWAN® para IoT Pág. 17
Como mencionamos al inicio LoRa® puede demodular las señales por debajo del ruido
de fondo. Este fenómeno se debe a que el factor de correlación puede demodular la
señal aunque contenga un ruido (dB) elevado.
A nivel funcional, LoRa® cuenta con una frecuencia de banda de 868 MHz para Europa
(entre 863-870 MHz), esta frecuencia de banda varía dependiendo del continente donde
se encuentre implementado el proyecto. Además, posee un ancho de banda BW (rango
de frecuencias dentro de una banda) que varía en función de la del factor de dispersión
SF (“spreading factor”) y se encuentra entre 125 KHz o 500 KHz. El factor de dispersión
es un valor adaptativo que se fija dependiendo de la distancia en la que se encuentre el
gateway y el dispositivo final.
Las decisiones sobre la velocidad de datos dentro de un sistema LoRa® pueden ocurrir
de manera automática si se programa. Esto tiene como consecuencia una mejora en la
capacidad de la red.
En resumen, las prestaciones clave que permiten que LoRa® sea una red eficaz son las
siguientes:
● Tasa de datos (bps) adaptable, ya que permite variar el rango de alcance dentro
de una misma banda.
● Demodulación mediante CSS que permite mayor inmunidad al ruido.
● Establecimiento de canal en movimiento (resistente al “Efecto Doppler”), ya que
se puede establecer el canal en movimiento sin perder información en la
comunicación.
● Alto rango de comunicación, ya que al ser una red que opera en la banda de
frecuencia de las Sub-Ghz posee un amplio radio de alcance.
Una vez que se abren estás ventanas, el servidor LoRaWAN® puede responder dentro
de estos dos intervalos RX1 y RX2. En caso favorable, se establece la comunicación y la
recepción del mensaje. Esta clase se utiliza muy a menudo debido a que consumen muy
poca energía porque los tiempos entre Uplinks sucesivos se pueden mantener bastante
largos y puede permanecer en modo de ahorro de energía.
Por último, la clase C [Figura 4.7.3] se caracteriza principalmente por mantener una
ventana de recepción continua, a menos que se encuentre en transmisión. Este factor la
hace obtener una latencia menor a cambio de consumir mucha más energía.
LoRaWAN® es viable a partir del uso de gateways que enlazan a los nodos finales. Los
gateways están diseñados con tecnologías de red LoRaWAN® para que puedan
establecer una comunicación segura con el dispositivo final [Figura 4.7.4.]. Cabe
mencionar que la MAC (Medium Access Control) proporciona el control del flujo de
información en el aire y es la encargada de establecer la capa de enlace de datos (2) en
función de la clase LoRaWAN®.
Desarrollo de una red LoRaWAN® para IoT Pág. 21
El gateway reenvía la información que emiten los dispositivos finales hacia el servidor
LoRaWAN®. Este sistema tiene la posibilidad de ser implantado a gran escala porque el
servidor LoRaWAN® puede conectarse a múltiples gateways que a su vez se conectan
con múltiples dispositivos. Esta estructura ramificada [Figura 4.7.5] brinda la posibilidad
de mejorar la conexión, ya que el dispositivo final puede ser atendido por más gateways
lo cual reduce el error de comunicación y aumenta la capacidad de geolocalización de los
dispositivos finales en caso de que ambos dispongan de estos módulos.
Una vez la comunicación sea redirigida hacia el servidor LoRaWAN®, para que pueda
establecerse el intercambio de información, se necesitará del servidor de unión (Join
Pág. 22 Memoria
Los dispositivos nodo y gateway han de contar a nivel de Hardware con el módulo
LoRa®. Estos módulos actualmente se pueden encontrar en una amplia gama de
dispositivos porque las licencias LoRa® las han comprado diferentes fabricantes. No
obstante, las prestaciones que pueden llegar a tener estos sistemas dependen de la
calidad del dispositivo que se utilice y del código implementado a nivel de software.
5. Experimentación
El ARM Cortex-R se utiliza en aplicaciones de tiempo real, por ejemplo en redes de datos
(routers) o en coches. El ARM Cortex-M se utiliza en sistemas IoT o en dispositivos
embebidos, ya que son sistemas de bajo costo y bajo consumo de energía. Por último, el
ARM Cortex-A se utiliza en aplicaciones de alta capacidad de respuesta como en
ordenadores de escritorio.
Para que el dispositivo final de nuestra red LoRa® funcione de manera efectiva dentro de
una aplicación IoT será necesario utilizar un microprocesador dentro de la línea ARM
Cortex M. Dentro de esta línea tenemos al ARM M4 que tiene buenas prestaciones a la
hora de la comunicación inalámbrica y poder bajo de consumo. También se encuentra el
ARM M0 + , estos dispositivos están destinados a necesidades muy limitadas con niveles
de reloj mucho más bajos que el M4. Por tanto, el ARM Cortex M4 es el diseño ideal para
el dispositivo final.
En la Tabla 5.1.1 se mencionan las ventajas y desventajas que conlleva usar los
componentes de los principales fabricantes de hardware. Estos fabricantes poseen
entornos de desarrollo integrado “IDE” donde se programan las tareas que ejecutará el
Pág. 24 Memoria
dispositivo.
Dentro del conjunto de dispositivos IoT de la marca STM, podemos observar en la Figura
5.1.1. que tenemos las líneas de productos STM32WL y STM32WB para las
comunicaciones inalámbricas.
Desarrollo de una red LoRaWAN® para IoT Pág. 25
complejo que un nodo final porque al tener una estructura de servidor, ha de garantizar
que la información sea correctamente enlazada, encriptada y distribuida. Por tanto, se ha
de contar con Gateways fabricados por parte de empresas con aplicaciones
desarrolladas para el funcionamiento adecuado de los servicios que pueden ofrecer estos
dispositivos. Los principales gateways dentro del mercado son los siguientes:
Dentro de estos productos podemos encontrar sistemas que permiten crear una red
LoRaWAN® de dos maneras, mediante un servidor en la nube o un servidor local. En
este caso, si buscamos implementar el proyecto en la universidad, solo es seleccionable
la opción de hardware que te permita generar una red local propia. Esto es debido a que
al estar dentro de la UPC la red de la universidad podría verse vulnerada.
Figura 5.2.3. Panel principal de las plantillas de proyectos LoRaWan® [IDE: STM32Cube MX].
Pág. 30 Memoria
Dentro de este código se puede utilizar diferentes entornos de desarrollo para que el
microcontrolador se programe, en este caso se ha optado por utilizar el entorno de
desarrollo Keil µVision de la marca ARM. En la Figura 5.2.4 se puede observar como
queda el conjunto de carpetas del proyecto. El conjunto está escrito en código C.
Este código se define por ficheros con dos tipos de extensiones. La extensión punto c
indica los diferentes archivos ejecutables los cuales serán compilados. En cambio, la
extensión punto h se encarga de definir los macros y las variables dentro de un
ejecutable c. El compilador empezará a ejecutar nuestros archivos desde el archivo
main.c y avanzará una por una las miles de líneas de código dentro del proyecto. Estas
líneas han sido definidas a partir de la estructura de un microprocesador y definen los
parámetros de reloj para que todo el hardware funcione.
Figura 5.2.4. Carpetas y archivos dentro del proyecto [IDE: Keil µVision].
STM provee una guía en donde se puede ver las partes principales que servirán para
construir una aplicación LoRa®. Dentro de este fichero se puede identificar el modelo
Desarrollo de una red LoRaWAN® para IoT Pág. 31
La puerta de enlace o gateway fabricado por Multitech es un dispositivo que incorpora los
módulos de comunicación LoRa® y GNSS (ubicación satelital de alta precisión). Estos
módulos se encuentran integrados en la tarjeta principal y están protegidos por una
estructura metálica de resistencia IP67. La estructura cuenta a su vez con materiales de
vidrio que se encargan de recolectar las señales GNSS y LoRa® emitidas en una forma
de ondas electromagnéticas. Este componente es alimentado a través de un cable RJ45
el cual se conecta a un transformador de corriente POE.
El transformador cuenta con una entrada de alimentación y dos salidas. La primera salida
se conecta con el gateway, mientras que la segunda salida se conecta hacia un
ordenador, el cual puede estar ubicado de manera local o remota. Estas salidas se
conectan mediante un cable RJ45 como se puede observar en la Figura 5.3.1
Una de las principales ventajas es que integra una aplicación que permite configurar las
distintas características relacionadas con la red LoRaWAN® Figura 5.3.2.
Desarrollo de una red LoRaWAN® para IoT Pág. 33
Esta interfaz se puede acceder configurando el puerto de conexiones de red local desde
el ordenador. Se ha de introducir la IP y la Subnet Mask del gateway de valores
192.168.2.1 y 255.255.255.0 respectivamente. Después se ha de acceder a la dirección
IP 192.168.2.1 por medio de un navegador web, el cual abrirá una página de sesión por
defecto, que se puede personalizar en la sección de administración. Una vez dentro de la
aplicación se pueden configurar los siguientes parámetros LoRAWAN®:
Cabe destacar que el gateway posee un apartado llamado firewall que limita el acceso a
determinadas IP 's en caso de que la conexión a la red sea pública. Es decir que si se
tuviera que instalar estos sistemas en lugares poco accesibles, al acceder a la red
pública de la UPC se vería limitado el acceso a los desarrolladores de aplicaciones IT de
la ETSEIB que se encuentren dentro de una IP determinada.
Esta conexión se establece a través de solicitudes de unión (join request) que se envían
al join server cuando el dispositivo se encuentra iniciando el proceso de unión. Además,
a la hora de definir la clase de comunicación se ha elegido la clase “A” debido a que es el
tipo de clase que se puede alimentar por batería, por lo que posee poco consumo de
energía.
A nivel físico de componentes tenemos el DEV EUI y el GATEWAY EUI que son códigos
únicos establecidos por los fabricantes de la pieza, por ejemplo
“00:80:E1:15:00:0A:9F:BF”. Este código está pegado en cada uno de los componentes
que fabrica STM. Por último, los valores del network key (NWK KEY), app session key
(APP_S_KEY) y network session key (NWK_S_KEY) se han mantenido iguales al del
APP KEY. En la Figura 5.4.1. y en la 5.4.2 se pueden observar las líneas de código que
Desarrollo de una red LoRaWAN® para IoT Pág. 35
5.4.2. Líneas de código que definen las llaves de la sesión [Keil µVision].
Del mismo modo, se ha de configurar el gateway, que cuenta con servidor LoRaWAN®
local, el Join Server Local y el servidor de aplicaciones integrado en la interfaz
Pág. 36 Memoria
Por último, para comprobar el estado de conexión del dispositivo y del gateway se han
consultado dos herramientas, el puerto serial USB ( software de Tera Term) y la interfaz
del gateway multitech. En el gateway se podía observar con más detalle la información
de los paquetes que se habían sido recibidos por parte de todos los dispositivos
STM32WL55JC1 conectados, lo cual permitía ver en tiempo real el envío de los distintos
dispositivos configurados a lo largo del proyecto (Figura 5.4.4.). Mientras que en el putty
se observa en la Figura 5.4.5. que los dispositivos STM32WL55JC1 siempre emiten
señales de temperatura mientras se encuentran alimentados por una fuente (fuente de
5V).
Desarrollo de una red LoRaWAN® para IoT Pág. 37
5.4.4. Paquetes recibidos por gateway emitidos por el STM32WL55JC [Gateway Multitech].
5.4.5. Paquetes de temperatura emitidos por el STM32WL55JC y registrados en el ordenador [Tera Term].
5.5. Comentarios
5.5.1. Líneas de código que define el proceso de reintento de unión al arranque [Keil µVision].
A nivel del firewall, una vez dentro de la aplicación, se configuró el acceso solamente a
las direcciones IP que tengan en su estructura el código correspondiente a los
ordenadores del ala derecha de la planta 9 en la ETSEIB. Estos ordenadores pertenecen
a los del departamento de electrónica, en donde se encuentran los despachos de los
profesores y los laboratorios de investigación electrónica.
Desarrollo de una red LoRaWAN® para IoT Pág. 39
6. Conclusiones
A futuro sería recomendable establecer más dispositivos agrupados y que puedan enviar
señales de alta importancia.
7. Agradecimientos
Agradezco a Antonio Calomarde por ser mi tutor durante este proyecto de investigación. Por otro
lado, dedico este trabajo a mi familia por estar conmigo apoyándome durante mi estancia en la
ETSEIB.
Pág. 41 Memoria
8. Bibliografía
Referencias bibliográficas
[3] FINDSTACK. PERSPECTIVAS B2B. Estadísticas del IoT para el 2022. Londres,
2021. [https://findstack.com/es/internet-of-things-statistics/, 25 de febrero de 2022].
[4] ZIBTEK®. Arquitectura IoT. Componentes de una arquitectura IoT. Utah, 2020.
[https://www.zibtek.com/blog/iot-architecture/, 5 de marzo de 2022].
[9] MOUSER. EQUIPO STM32WL55JC1. Ficha técnica y precio del dispositivo final.
Texas, 2022.
Pág. 42 Memoria
[https://www.mouser.es/ProductDetail/STMicroelectronics/NUCLEO-WL55JC1?qs=z
W32dvEIR3uxo98jZ7%2FN0g%3D%3D, 15 de marzo de 2022].
[13] Hassan, Abbas & Awad, Ali Ismail., 2018. Urban Transition in the Era of the Internet
of Things: Social Implications and Privacy Challenges. IEEE Access. PP. 1-1.
10.1109/ACCESS.2018.2838339.
[15] Petajajarvi, Juha & Mikhaylov, Konstantin & Pettissalo, Marko & Janhunen, Janne &
Iinatti, Jari., 2017. Performance of a low-power wide-area network based on LoRa
technology: Doppler robustness, scalability, and coverage. International Journal of
Distributed Sensor Networks. Vol. 13. 1-16. 10.1177/1550147717699412.
mayo de 2022].
[19] STM. NOTA EXPLICATIVA. Cómo construir una aplicación LoRa® con STM32Cube.
Ginebra.
[https://www.st.com/resource/en/application_note/an5406-how-to-build-a-lora-applic
ation-with-stm32cubewl-stmicroelectronics.pdf,4 de mayo de 2022].
[20] THE THINGS NETWORK. DEVICES CLASSES. Tipos de clases dentro de la red
LoRaWAN®. Ginebra. [https://www.thethingsnetwork.org/docs/lorawan/classes/,4 de
mayo de 2022].
[21] SEMTECH. What are LoRa® and LoRaWAN®?. Información técnica sobre la red
LoRa® and LoRaWAN® . California.
[https://lora-developers.semtech.com/documentation/tech-papers-and-guides/lora-an
d-lorawan/#:~:text=A%20proprietary%20spread%2Dspectrum%20modulation,KHz%
20(for%20downlink%20channels).,5 de mayo de 2022].
[22] VISUAL ELECTRIC. How LoRa Modulation really works. Información sobre la
modulación LoRa®. California.
[https://www.youtube.com/watch?v=jHWepP1ZWTk&ab_channel=VisualElectric,9 de
mayo de 2022].
[23] L. Vangelista, "Frequency Shift Chirp Modulation: The LoRa Modulation," in IEEE
Signal Processing Letters, vol. 24, no. 12, pp. 1818-1821, Dec. 2017, doi:
10.1109/LSP.2017.2762960.
[24] Kim, Dong-Hoon & Lee, Eun-Kyu & Kim, Jibum. (2019). Experiencing LoRa Network
Establishment on a Smart Energy Campus Testbed. Sustainability. 11. 1917.
10.3390/su11071917.
[25] Liando, Jansen & Gamage, Amalinda & Tengourtius, Agustinus & Li, Mo. (2019).
Known and Unknown Facts of LoRa: Experiences from a Large-scale Measurement
Study. ACM Transactions on Sensor Networks. 15. 1-35. 10.1145/3293534.