TFG G5211
TFG G5211
TFG G5211
Autor:
D. Gonzalo Blanco Rico
Tutor:
Dr. D. Mario Martínez Zarzuela
TRIBUNAL
PRESIDENTE: Dra. Dª. Miriam Antón Rodríguez
SECRETARIO: Dr. D. Mario Martínez Zarzuela
VOCAL: Dr. D. David González Ortega
SUPLENTE 1: Dr. D. Carlos Gómez Peña
SUPLENTE 2: Dr. D. Francisco J. Díaz Pernas
Palabras claves
LoRa, enlace radio, LPWAN, LoRaWAN, servidor de red, pasarela, API HTTP.
Abstract
This Master Thesis has been developed in collaboration with the company
Energibid, which count with an infrastructure for data collection from their clients
electric meters, as well as a web platform able to offer a great variety of services for
analyzing this data.
The target of this project is to adapt this existing system to other type of data as
gas, temperature or humidity measurements. In addition, it will allow to reduce the costs
of the systems used for collecting and sending this data through the Internet due to the
capability of covering wide areas with minimum equipment and only just one Internet
connection.
To achieve this, it is proposed a new communication system between one or
multiple sensors, and a concentrator capable of establishing connection with the
Internet. The main advantage of this system is that sensors are wirelessly connected to
the concentrator via the LoRa Network, which consists of long-distance radio links. This
technology allows a minimum energy consumption for the sensors while offering an
enormous area covered with just one concentrator.
For easing the long-distance radio links and offering superior performance and
reliability, commercial solutions are employed for the development of this project.
The part to develop is the logic needed for recollecting all this data from the
sensors, as well as sending it to the centralized server implementing the capability to
assure its delivery and keeping this data available and accessible in an effortless way
once they have been decoded and stored in the server.
Keywords
LoRa, radio link, LPWAN, LoRaWAN, network server, gateway, API HTTP.
ÍNDICE
1. INTRODUCCIÓN ...................................................................................................... 11
1.1. MOTIVACIÓN .................................................................................................. 11
1.2. OBJETIVOS ...................................................................................................... 11
1.3. FASES DE DESARROLLO .................................................................................. 12
1.3.1. FASE DE INVESTIGACIÓN ........................................................................ 12
1.3.2. FASE DE DESARROLLO ............................................................................ 13
1.3.3. FASE DE PRUEBAS ................................................................................... 13
1.4. ESTRUCTURA DE LA MEMORIA ...................................................................... 14
2. REVISIÓN DE TECNOLOGÍAS ................................................................................... 16
2.1. LORA (CAPA FÍSICA) ........................................................................................ 18
2.2. LORAWAN (CAPA DE ENLACE) ........................................................................ 19
2.2.1. ARQUITECTURA DE RED ......................................................................... 20
2.2.2. SEGURIDAD............................................................................................. 21
2.2.3. CLASES DE DISPOSITIVOS ....................................................................... 22
2.2.4. FUNCIONAMIENTO ................................................................................. 23
2.2.5. PACKET FORWARDER Y BACKHAUL IP .................................................... 25
2.2.5.1. SEMTECH UDP PACKET FORWARDER ..................................................... 25
2.2.5.1. LORA BASICS STATION ............................................................................ 25
2.3. SERVIDOR DE RED........................................................................................... 26
2.3.1. IMPLEMENTACIÓN PROPIA .................................................................... 27
2.3.1.1. CHIRPSTACK ............................................................................................ 27
2.3.2. AMAZON WEB SERVICES (AWS) ............................................................. 29
2.3.2.1. AWS IOT CORE FOR LORAWAN .............................................................. 30
2.3.3. THE THINGS NETWORK / THE THINGS STACK......................................... 31
2.4. CAPA DE APLICACIÓN ..................................................................................... 32
2.4.1. REACT NATIVE ........................................................................................ 34
3. PROPUESTA ............................................................................................................ 36
3.1. DISPOSITIVOS (NODOS FINALES) .................................................................... 36
3.1.1. ELECCIÓN DE HARDWARE ...................................................................... 36
3.1.1.1. HELTEC WIFI LORA 32 ............................................................................. 37
3.1.1.2. HELTEC CUBECELL DEV-BOARD (HTCC-AB01)......................................... 37
3.1.1.3. SENSORES ............................................................................................... 37
8|Página
3.1.2. IMPLEMENTACIÓN CON ARDUINO......................................................... 38
3.1.2.1. INTERFAZ LORA ...................................................................................... 39
3.1.2.1. SISTEMA DE ASENTIMIENTOS................................................................. 39
3.1.2.1. ESQUEMA DEL PROGRAMA .................................................................... 45
3.2. GATEWAY ....................................................................................................... 48
3.2.1. ELECCIÓN DE HARDWARE ...................................................................... 48
3.2.2. CONFIGURACIÓN .................................................................................... 49
3.2.2.1. LORA DAEMON ....................................................................................... 49
3.2.2.2. LORA FORWARDER ................................................................................. 50
3.3. SERVIDOR DE RED........................................................................................... 50
3.3.1. ELECCIÓN DE SERVIDOR ......................................................................... 51
3.3.2. CONFIGURACIÓN DEL SISTEMA .............................................................. 52
3.3.3. CONFIGURACIÓN DE EQUIPOS ............................................................... 54
3.4. DESARROLLO DE LA APLICACIÓN MÓVIL ........................................................ 55
4. PRUEBAS Y DISCUSIÓN RESULTADOS ..................................................................... 58
5. CONCLUSIONES Y LÍNEAS FUTURAS ....................................................................... 61
6. PRESUPUESTO ........................................................................................................ 63
7. ANEXO .................................................................................................................... 64
9|Página
CAPÍTULO 1:
INTRODUCCIÓN
10 | P á g i n a
1. INTRODUCCIÓN
1.1. MOTIVACIÓN
1.2. OBJETIVOS
Para llevar a cabo el desarrollo de este sistema, se define un escenario tipo sobre
el que plantear una solución óptima y adaptada a las necesidades propuestas usando las
nuevas tecnologías emergentes en el ámbito IoT.
Este escenario propuesto surge a raíz de la crisis sanitaria provocada por el
COVID-19, y de las medidas impuestas desde el gobierno para asegurar la asistencia a
las aulas de una manera segura. Se trata de un colegio en el que es necesario monitorizar
parámetros ambientales como la temperatura y la humedad, pero especialmente la
calidad del aire. Esto permitirá llevar un control de la misma, permitiendo saber al
personal docente cuando es necesario ventilar cada una de las aulas en función de los
niveles de CO2 registrados.
Contar con la capacidad de medir de manera objetiva esta calidad del aire
permitirá no solo asegurar que cada una de las clases cuenta con una ventilación
suficiente, sino que permitirá reducir el gasto en calefacción en los meses más fríos del
año. Esto es alcanzable gracias a que el sistema indicará cuando es necesario ventilar,
por ejemplo, abriendo las ventanas; y cuando los niveles de CO2 son correctos y es
11 | P á g i n a
posible cerrarlas, reduciendo así el escape de calor y en consecuencia reduciendo el
gasto en calefacción por parte del centro docente.
Uno de los objetivos bases del proyecto es que este sistema cuente con un coste
reducido debido al desembolso que conlleva desplegar esta infraestructura para cada
una de las aulas de un centro. Si bien es posible conectar cada uno de los sensores a un
led que indique la necesidad de ventilar en cada una de las clases, es primordial que se
realice un control centralizado por parte de un supervisor, además de que de cara al
posterior análisis es necesario enviar estos datos a un servidor que ofrezca estos
servicios. Para este envío de datos es posible conectar cada uno de los sensores a
Internet de manera directa, pero existen centros cuya zona de cobertura WiFi no alcanza
a cubrir todas las aulas e instalar un cable a cada sensor supone una alternativa tediosa
y poco funcional.
Como alternativa a estas opciones, se opta por el uso de la tecnología LoRa, que
permite establecer comunicaciones de manera inalámbrica que abarcan grandes
distancias, además de resistir las interferencias que puedan existir en este tipo de
ámbitos. Esta tecnología permite la comunicación entre cada sensor con un
concentrador por lo que todo el colegio puede realizar el envío de datos a Internet desde
un único punto. Además, existen dispositivos con chips de bajo coste que permiten
implementar esta tecnología, por lo que al realizar un despliegue completo se reduce
enormemente el coste total.
Para llevar a cabo el desarrollo completo de este sistema se definen una serie de
fases que permitirán estudiar la tecnología LoRa, analizar el mercado existente para este
tipo de implementaciones, proponer una alternativa sólida y adaptada a las necesidades
propuestas y verificar que se cumplen los requisitos propuestos mediante una serie de
pruebas de funcionamiento.
12 | P á g i n a
Finalmente, y dado que los datos han de estar almacenados y accesibles desde
Internet, es necesario analizar las distintas opciones disponibles para ofrecer este
servicio de una manera sencilla y compatible con multitud de implementaciones de las
capas superiores del sistema.
Una vez completado el proceso de desarrollo, y dado que uno de los principales
requerimientos del sistema es que éste sea fiable a la hora de entregar los datos leídos
desde los sensores, se lleva a cabo una fase de pruebas en la que se evalúan las
capacidades del sistema bajo circunstancias adversas para la comunicación inalámbrica,
ya que es el punto crítico donde se darán la mayoría de fallos.
Para asegurarse de que el sistema responde de la forma esperada ante las
distintas situaciones que pueden darse en un entorno realista, se analiza el
comportamiento de este bajo situaciones en las que se pierden algunos de los datos
leídos, los dispositivos se quedan colgados o se cortan las comunicaciones durante un
largo periodo de tiempo.
Estas pruebas tienen como objetivo adaptar el sistema de manera que, aun
dándose estas situaciones, no se produzca una pérdida de datos y estos sean enviados
una vez desaparezcan estas condiciones adversas.
13 | P á g i n a
1.4. ESTRUCTURA DE LA MEMORIA
14 | P á g i n a
CAPÍTULO 2:
REVISIÓN DE TECNOLOGÍAS
15 | P á g i n a
2. REVISIÓN DE TECNOLOGÍAS
16 | P á g i n a
En cuanto al desarrollo de sistemas para la recogida de datos mediante sensores,
especialmente enfocados a variables medioambientales, existen multitud de trabajos
impulsados por la reciente crisis sanitaria, así como la creciente preocupación por los
efectos de la polución en la salud. La mayoría de estudios y proyectos realizados buscan
soluciones de bajo costo que permitan medir los parámetros ambientales necesarios
para obtener la calidad del aire.
Tras la obtención de los datos, estos son enviados mediante conexiones WiFi a
servidores en la nube en los cuales se presentan estos datos para su visualización o se
ofrecen mediante APIs. Otra alternativa es enviar los datos captados a servidores locales
en los que se presentan a través de interfaces web. Estos servidores locales suelen estar
implementados en ordenadores de bajo costo como puede ser una Raspberry Pi.
En el trabajo [3] se lleva a cabo un desarrollo de un sistema de adquisición de
datos medioambientales en un laboratorio de un centro escolar para su posterior
estudio. Para este trabajo se emplea un microcontrolador equipado con sensores
capaces de medir la calidad del aire. Este dispositivo se conecta mediante WiFi a Internet
y es capaz de enviar los datos recolectados a un servidor para su posterior visualización
en una aplicación móvil. Si bien el esquema de este sistema es sencillo y ofrece gran
fiabilidad, su principal desventaja es que depende de la existencia de cobertura WiFi en
la localización donde se desea realizar las mediciones. Además, la alimentación del
microcontrolador se realiza mediante una fuente de alimentación, lo que implica más
restricciones de cara a la instalación del equipo de medida.
En el estudio [4] se identifican los problemas más comunes de este tipo de
sistemas. Entre estos destacan los relacionados al dispositivo de medida, es decir, los
sensores. Estos producen alteraciones en las medidas debido a su construcción como
pueden ser el rango de funcionamiento, la respuesta no lineal o la deriva tras la
degradación del equipo. En este estudio se incluye también una comparativa entre las
diferentes tecnologías de comunicación disponibles para el envío de los datos obtenidos
como pueden ser WiFi, ZigBee o LoRa. Se comparan también las diferentes alternativas
para la capa de aplicación y transporte entre las que destaca el protocolo MQTT, el cual
es considerado el estándar de facto para las comunicaciones con dispositivos IoT.
Debido a que este proyecto busca ofrecer una alternativa al sistema ya existente
para la recolección de datos, se ha hecho un gran esfuerzo en buscar tecnologías que se
adapten a las necesidades propuestas, y permitan facilitar tareas como el despliegue o
mantenimiento de equipos. También supone un factor de peso el coste que puede tener
la instalación de un sistema de telemedida.
Por estas razones se opta por explotar la tecnología LoRa, la cual ha sido
desarrollada con el objetivo de reducir los costes operacionales, así como el coste
energético. Esta decisión permitirá desplegar múltiples puntos de sensorización dentro
de un área extenso limitando el coste asociado a las comunicaciones en aquellos lugares
donde sea necesario emplear redes celulares. También permitirá reducir los costes
17 | P á g i n a
asociados a cada uno de los dispositivos de lectura de medidas dado que implementan
chips LoRa, los cuales han sido diseñados de manera que su precio es mínimo.
18 | P á g i n a
(nombrados desde SF7 hasta SF12), los cuales determinan la tasa de transmisión, la
distancia de cobertura y la sensibilidad del receptor, alterando en consecuencia otros
factores como puede ser el consumo energético o el tiempo de transmisión. Cabe
destacar que debido a que los factores de dispersión son ortogonales, los datos enviados
mediante uno de los factores de dispersión disponibles no interfieren con el resto.
En cuanto a la banda de frecuencias a utilizar, la ETSI la define en los 433 MHz,
aunque en la práctica esta varía según la región. En Europa se encuentra en los 868 MHz,
mientras que en América son 915 MHz y en China y otras regiones tanto 433 MHz como
470 MHz [6]. La regulación sobre el uso del espectro electromagnético de cada zona
limita tanto la potencia como la cantidad de datos a transmitir ya que impone un
máximo de tiempo de comunicación para evitar saturar el espectro. En Europa esta se
define en el rango de 0,1 y 1% del día, en función del canal de transmisión, ofreciendo
así un tiempo de envío máximo inferior a 15 minutos al día.
Esta tecnología permite definir una capa física de comunicaciones entre varios
nodos, siguiendo un esquema punto a punto o punto a multipunto. El envío de
información se hace en modo broadcast, ya que no permite direccionar las
transmisiones hacia uno o varios receptores. Es por esto que usar esta tecnología sin
extender su funcionamiento limita enormemente las capacidades esperadas para una
comunicación eficiente, fiable y segura.
Para crear un sistema complejo que ofrezca funcionalidades añadidas basándose
en las ventajas que ofrece LoRa, han de desarrollarse capas superiores. Especialmente
la capa de enlace, que siguiendo el esquema OSI es la encargada de garantizar la
seguridad, la entrega de datos, etc.
19 | P á g i n a
Una de las principales ventajas de este estándar es que ofrece mayor flexibilidad
a la hora del despliegue, ya que los dispositivos en el borde se conectan directamente
con un servidor central, por lo que independientemente de donde se instalen, siempre
existirá una comunicación directa.
20 | P á g i n a
2.2.2. SEGURIDAD
Este estándar utiliza encriptación AES-128 en modo CBC (cifrado por bloques).
Se utilizan 2 claves: Una para asegurar la seguridad entre el dispositivo y el servidor, y
otra para encriptar los datos.
21 | P á g i n a
Tras definir estas claves en el dispositivo a conectar a la red, este se une a la red
siguiendo dos esquemas de identificación:
22 | P á g i n a
Figura 5. Tipos de dispositivos según el estándar LoRaWAN
El uso de cada una de las clases está directamente relacionado con la función que
realizará el dispositivo en la aplicación final. Como se puede apreciar en la figura 5,
aquellos dispositivos alimentados mediante baterías que no requieran la recepción de
información (como puede ser un sensor) serán de clase A, mientras que los dispositivos
con restricciones en el tiempo de retardo a la hora de recibir mensajes (como puede ser
un actuador) serán de clase C.
2.2.4. FUNCIONAMIENTO
Los dispositivos han de darse de alta en el servidor de red para que puedan
comunicarse. Al registrarlos, han de ser asignados a una aplicación. Esto permitirá
insertar las claves necesarias en el dispositivo para las dos modalidades de
autenticación. Cuando estos se inicien, se validarán frente al servidor, y este comenzará
a recibir y entregar la información enviada desde estos.
Para que la comunicación sea posible ha de existir un gateway que reenvíe los
mensajes en ambos sentidos, permitiendo así un enlace half-duplex. Este gateway es un
elemento crucial de la arquitectura, ya que de él dependerá la cobertura del enlace
LoRa. Cabe destacar que, para el envío de datos de aplicación, esta pasarela es invisible
ya que la comunicación se realiza entre el dispositivo y el servidor de red,
independientemente del gateway que intervenga en ella.
Esta pasarela recibe todos los mensajes enviados desde los dispositivos de su
área de cobertura y los reenvía vía IP al servidor de red. Cuando los mensajes llegan al
servidor de red, este los descifra mediante la clave de sesión de red, elimina los
mensajes duplicados y los entrega a la aplicación en la que esté registrado el dispositivo.
Esto permite, y además se recomienda, que se solapen zonas de cobertura de cada
23 | P á g i n a
gateway, ofreciendo así una pasarela de respaldo para que el dispositivo no se quede
sin comunicaciones si uno de los gateways dejara de prestar servicio.
Existen multitud de implementaciones para estas pasarelas, variando en la
cantidad de canales disponibles para comunicaciones simultaneas, el área de cobertura
que ofrecen, y el protocolo de comunicación que usa para comunicarse con el servidor
de red.
24 | P á g i n a
2.2.5. PACKET FORWARDER Y BACKHAUL IP
25 | P á g i n a
Ofrece soporte para los dispositivos de clase B, ya que mediante localización GPS
es capaz de sincronizar el envío de señalización de manera sincronizada entre toda la
red LoRaWAN para permitir a estos dispositivos abrir la ventana de recepción de manera
sincronizada con todas las pasarelas que forman la red. Ofrece también un sistema de
configuración y actualización remota y automática (CUPS) para este protocolo,
permitiendo así reducir el coste de mantenimiento de estos elementos de la red.
Esta implementación ha sido diseñada para permitir la máxima compatibilidad,
por lo que puede ser instalada en gateways con entornos Linux, y soporta los nuevos
diseños estandarizados para el desarrollo del hardware necesario. Cabe destacar que el
estándar LoRa Basics Station ha comenzado a usarse en el año 2020, por lo que
actualmente su compatibilidad no es tan amplia como lo será en los próximos años.
2.3.1.1. CHIRPSTACK
27 | P á g i n a
• Gateway OS: Ofrece la posibilidad de implementar tanto la pasarela, como
el servidor de red y aplicación en el mismo dispositivo. Está preparado para
soportar sistemas con base Linux como puede ser una Raspberry Pi, por lo
que además del sistema LoRaWAN, se podrían implementar también otros
servicios como una base de datos, o una aplicación web, permitiendo así
crear todo un sistema IoT controlado desde un ordenador de bajo costo,
haciéndolo ideal para proyectos piloto, o de pequeño tamaño.
• Gateway Bridge: Permite expandir las capacidades del Backhaul IP
(encargado de la conexión entre el servidor y cada pasarela) para que se
comuniquen siguiendo el protocolo MQTT. Esto permite integrarlo con
cualquier aplicación que soporte este protocolo, ofreciendo aún más
versatilidad a la hora de implementar todo un sistema basado en la red
LoRaWAN.
• Concentratord (daemon): Otorga al gateway capacidad para comunicarse
con servicios externos para facilitar la interacción con su hardware más allá
de la configuración básica para la red LoRa. Esto es posible gracias a la
librería ZeroMQ, que permite exponer una API, en este caso no se basa en
HTTP sino en sockets, para que otros servicios se conecten y puedan
interactuar con la pasarela.
ChirpStack ofrece compatibilidad con ambas implementaciones de Backhaul IP
propuestas en el estándar LoRaWAN, además de ofrecer su propia implementación con
las ventajas previamente expuestas. En la figura 7 se describe una arquitectura que ha
sido alterada respecto a la propuesta en el estándar LoRaWAN, pero que es posible
implementar mediante el bloque de software que ofrece ChirpStack, permitiendo así
una mayor flexibilidad para el sistema y una gran variedad de integraciones con capas
superiores.
28 | P á g i n a
2.3.2. AMAZON WEB SERVICES (AWS)
Este gigante empresarial cuenta con todo un sistema dedicado al sector IT.
Ofrece una gran variedad de servicios orientados a facilitar el desarrollo de sistemas
informáticos y de telecomunicaciones, y permiten integrar unos con otros de una
manera sencilla e intuitiva.
Dentro del paquete AWS, se ofrecen las denominadas infraestructura como
servicios (IaaS), que permiten contratar infraestructuras sobre las que desplegar
aplicaciones, liberando al cliente de la carga que conlleva el mantenimiento de este tipo
de servidores. Entre estos servicios ofrecidos destacan: virtualización de servidores,
bases de datos, balanceo de carga, funciones Lambda (programación funcional), redes
privadas virtuales (VPNs), machine learning y big data, contenedores tipo Docker,
almacenamiento en bloque, etc.
Además, el uso de IaaS facilita enormemente la escalabilidad de estas, y abstraen
al programador de las cuestiones más técnicas como son los cortafuegos, los backups o
el balanceo de carga mediante la virtualización de estos. Otra de las cualidades que se
destacan de estos servicios es la capacidad de pagar en función al uso de recursos de
manera que se alcanza un equilibrio entre coste y recursos hardware.
Dentro del sistema de Amazon existe un bloque dedicado al sector IoT que
permiten construir una arquitectura completa de dispositivos IoT, junto con su conexión
con la nube de AWS [12]. En él que se enmarcan los siguientes servicios:
29 | P á g i n a
Además, se debe crear un programa que se ejecuta en el dispositivo y que,
utilizando librerías de AWS, se encarga de establecer la conexión con la nube y el envío
de los datos necesarios. Esta conexión se puede implementar con el protocolo MQTT o
mediante una API REST con HTTPS 1.0 o 1.1. Para acceder a estos datos almacenados en
la nube se puede hacer mediante el protocolo MQTT, MQTT over WSS o HTTPS.
30 | P á g i n a
la toma de datos y la aplicación final. Dentro de la nube AWS pueden existir multitud de
funcionalidades que otorguen un valor añadido a los datos obtenidos desde los
dispositivos IoT, aportando así mayor riqueza a la aplicación a desarrollar.
The Things Network es una Plataforma como Servicio (PaaS) que ofrece un
servidor de red y de aplicación para implementar una red LoRaWAN [14]. Si bien cuenta
con versiones de pago con sus consecuentes ventajas, ofrece también una versión
gratuita sustentada por la comunidad e ideada para el desarrollo de prototipos.
Proporciona una interfaz web amigable para la configuración de todos los parámetros
necesarios para este despliegue y permite integrar capas superiores mediante la
conexión con bases de datos externas, APIs HTTP, y otros servicios.
En contraposición con su principal ventaja, su gratuidad, carece de servicios
extendidos para ofrecer mayor valor a los datos o para facilitar la implementación y
despliegue de aplicaciones completas.
Sobre la compatibilidad con las pasarelas LoRaWAN mediante el BackHaul IP,
este servidor es interoperable con los dos protocolos incluidos en el estándar, además
de proponer una implementación propia y optimizada para su sistema.
31 | P á g i n a
configurado a bajo serie de pasos bien serie de pasos bien
nivel en el servidor documentados documentados
Soporte Nulo Gestionado por Nulo
Amazon
Tabla 2. Comparativa entre implementaciones del servidor de red
Existe una gran variedad de opciones para implementar una capa de aplicación
que permita otorgar un valor añadido a los datos obtenidos mediante las capas
inferiores. Debido a que este proyecto está orientado a ampliar las capacidades del
sistema actual de la empresa Energibid, esta lógica de negocio será posiblemente
implementada mediante una aplicación web desarrollada en PHP. Esta aplicación utiliza
los lenguajes estandarizados para la web como son HTML, CSS y JavaScript, así como
tecnologías que facilitan el desarrollo como son Bootstrap, Handlebars, Smarty; y
extensiones que permiten añadir módulos de funcionamiento de una manera sencilla y
rápida.
Dado que integrar este proyecto en el actual sistema es una tarea que ha de ser
planificada y desarrollada por parte de la empresa, se opta por ofrecer una capa de
aplicación de desarrollo propio que, aunque de manera simplificada, sea capaz de
mostrar los datos obtenidos desde la red LoRaWAN de una manera amigable. Para
implementar esta capa de aplicación se pueden usar tecnologías web, tratando de
simular la implementación final que puede llegar a tener, aunque eso conlleva un
proceso complejo y un consecuente despliegue en un servidor.
Alternativamente, esta capa puede ser desarrollada como una aplicación móvil,
reduciendo los tiempos de desarrollo, así como la necesidad de que sea desplegada en
un servidor. Para desarrollar una aplicación móvil existen varias opciones que se
agrupan en dos bloques: aplicaciones nativas y aplicaciones multiplataforma.
La implementación mediante aplicaciones nativas ofrece un rendimiento
superior al resto de opciones, además de permitir un acceso completo al hardware en
el que se ejecutan. A cambio, este desarrollo se orienta a un sistema específico, ya sea
Android o IOS (aunque existen otros sistemas operativos, no se plantea extender el
soporte ya que su cuota de mercado es mínima). Dado que la aplicación ha de estar
disponible en ambos sistemas, implementar la aplicación de forma nativa implica dos
desarrollos paralelos.
Las aplicaciones multiplataforma permiten unificar su desarrollo, manteniendo
la compatibilidad con múltiples sistemas. El rendimiento que ofrecen estas aplicaciones
es inferior al que ofrece un desarrollo nativo, aunque existen frameworks que en los
últimos años han mejorado enormemente, permitiendo así crear aplicaciones
multiplataforma con un rendimiento similar a las nativas.
Dentro de las aplicaciones multiplataforma se distinguen tres tipos:
32 | P á g i n a
• Generadas: Permiten un desarrollo único para la lógica a implementar, pero
requieren desarrollar código específico para el acceso a las APIs del
dispositivo sobre el que se ejecutan.
• Híbridas: Ofrecen un desarrollo único íntegro gracias a las herramientas
ofrecidas por el framework para el acceso a las interfaces del dispositivo.
• Progressive Web Apps (PWA): Consisten en aplicaciones web optimizadas
para dispositivos móviles. Su desarrollo es igual que el de una aplicación
web convencional.
33 | P á g i n a
2.4.1. REACT NATIVE
34 | P á g i n a
CAPÍTULO 3:
PROPUESTA
35 | P á g i n a
3. PROPUESTA
36 | P á g i n a
Debido a que el objetivo del proyecto es ofrecer una solución versátil y
extensible, pero también simplificar la instalación de sensores gracias al uso de baterías,
se opta por escoger dos placas de desarrollo distintas, ambas desarrolladas por Heltec.
La principal razón para la elección de esta placa es que utiliza un ESP32 como
microcontrolador. Este cuenta con 2 núcleos por lo que permite implementar un sistema
de hilos y tareas que simulan una ejecución paralela, muy útil para independizar la
sensorización de variables de la transmisión de estas mediante la red LoRaWAN. Este
sistema de tareas puede ser implementado mediante un Sistema Operativo de Tiempo
Real (RTOS) como puede ser FreeRTOS [16]. Además, gracias a que el ESP32 lo permite,
cuenta con multitud de interfaces de comunicación, permitiendo así extender su
funcionamiento para aplicaciones futuras.
Su principal desventaja es que no cuenta con ningún chip que implemente el
protocolo LoRaWAN, por lo que este debe ser implementado mediante software. Si bien
el microcontrolador es lo suficientemente potente para esta tarea, siempre es más fiable
y rápido que esta lógica sea implementada por hardware. Para permitir la comunicación
con el resto de la red, existen librerías oficiales que implementan la capa LoRaWAN y la
presentan mediante funciones sencillas para su uso.
3.1.1.3. SENSORES
37 | P á g i n a
remarcar que no permite lecturas consecutivas en un periodo inferior a 2 segundos,
pero esto no supone ninguna limitación puesto que la periodicidad a utilizar para tomar
las mediciones supera ampliamente esta barrera.
Para la comunicación con la placa de desarrollo, este sensor utiliza una
comunicación bidireccional mediante un solo bus, lo que permite ahorrar pines en la
placa si en un futuro esta estuviese conectada a un número elevado de sensores.
Para la lectura de datos acerca de la calidad del aire, se escoge el sensor SGP30,
capaz de medir la concentración de etanol e hidrógeno en el aire en un rango entre 0 y
1000 ppm (partes por millón) [18]. Gracias a estas mediciones y mediante algoritmos
internos en el sensor, es capaz de calcular otras variables como son el total de
compuestos orgánicos volátiles (TVOC) y el equivalente de dióxido de carbono (eCO2)
[19]. Estas variables permiten detectar la calidad del aire para, por ejemplo, indicar
cuando ha de ser ventilada una estancia. Este tipo de casos de uso ha cobrado gran
relevancia con la reciente crisis sanitaria por lo que puede llegar a ser un aplicativo de
gran valor.
Para comunicarse con la placa, el SGP30 cuenta con una interfaz I2C. Esta se
encuentra disponible en la mayoría de placas de este tipo por lo que puede ser utilizada
con otro hardware si fuese necesario.
Este sensor, y debido a su naturaleza basada en medir concentraciones de gases,
aumenta su precisión si es calibrado mediante mediciones externas de la concentración
de humedad. Es por esto que se opta por implementar ambos sensores en el mismo chip
de manera que uno complemente al otro.
38 | P á g i n a
3.1.2.1. INTERFAZ LORA
Con el fin de simplificar este desarrollo se usan las librerías ofrecidas por el
fabricante para la interfaz de comunicaciones basada en LoRa. En el caso del
microcontrolador ESP32, existe la librería LMIC [20] que permite implementar el
protocolo LoRaWAN en un chip SX1276/SX1278 como el instalado en este dispositivo.
Esta librería se encarga de mantener el estado del dispositivo en cuanto a las fases
propuestas en el estándar LoRaWAN y de proporcionar funciones para la conexión con
el servidor de red, el registro y autenticación del dispositivo, el envío de mensajes o la
gestión de la ventana de recepción.
Para el caso de la placa de desarrollo Cubecell, se ofrece por parte de Heltec un
entorno de desarrollo para poder programar este chip [21]. En este se encuentra una
librería que facilita la comunicación con el chip LoRaWAN, siendo este el encargado de
las tareas de bajo nivel relacionadas con este protocolo.
Ambas librerías proporcionan un esqueleto sobre el que construir el programa
encargado de la lectura de los sensores instalados, y el envío de estos datos hacia el
servidor de red LoRaWAN.
39 | P á g i n a
posibles reenvíos que el nodo final ha de hacer en caso de que algún mensaje no llegue
al servidor (o el asentimiento por parte de este no llegue al nodo), se crea un buffer de
transmisión en el que se almacenan los mensajes creados con la información de las
lecturas de los sensores. Se crean dos ‘hilos’ ficticios, puesto que el programa corre
sobre un solo hilo de ejecución, en los que se diferencian las tareas de generación y
posterior guardado de estos mensajes en el buffer, y comprobación y reenvío de
mensajes que no han sido asentidos.
Esta diferenciación se describe en la figura 9, en la cual se definen dos
temporizadores, encargados de lanzar cada hilo con una frecuencia determinada. Tras
la ejecución del hilo de generación de mensajes, siempre se produce un envío, ya sea de
los nuevos datos generados, o de tramas anteriores que aún no han sido asentidas. Por
otro lado, tras la ejecución del hilo de reenvíos, solo se produce un envío si existen
tramas en el buffer de transmisión que aún no han sido asentidas. Cabe destacar que
hasta que no vence el temporizador de reenvíos (TX_INTERVAL) no se comprueba si ha
vencido el temporizador de generación de mensajes (APP_INTERVAL) por lo que el
primero deberá ser inferior al segundo para que el funcionamiento sea correcto.
40 | P á g i n a
Figura 9. Diagrama de la lógica de los nodos finales
41 | P á g i n a
suficientemente grande, este puede llenarse. Si esto ocurriese el sistema comenzará a
pisar los mensajes más antiguos almacenados tal y como se describe en la figura 10.
Para llevar un registro de aquellos mensajes que han sido entregados, podría
parecer suficiente con almacenar el contador de mensajes del último mensaje asentido:
lastACK. Si bien esto permite diferenciar qué mensajes dentro del buffer han sido
asentidos y cuáles no, si el buffer llegara a llenarse debido a un largo periodo sin
comunicaciones, las tramas comenzarían a sobrescribirse y ya no bastaría con almacenar
42 | P á g i n a
este contador puesto que el programa perdería la noción de qué tramas son antiguas y
que tramas han sobrescrito la más antigua sin confirmar, es decir, aquella que ha de
enviarse. Esta situación, descrita en la figura 10, puede solucionarse almacenando
además una marca de tiempo de todas las tramas del buffer, así como la marca de
tiempo de la última trama confirmada. Esto permitirá, independientemente del
contador almacenado como lastACK, enviar siempre la trama adecuada: la más antigua
del buffer que esté sin confirmar.
43 | P á g i n a
En la figura 11 se describe un ejemplo de funcionamiento en el que se propone
el peor escenario, tal y como se ha explicado anteriormente. En este caso se cuenta con
un buffer pequeño capaz de almacenar 16 tramas. La última trama entregada y por lo
tanto asentida es la quinta trama generada. Tras esta, no se vuelve a entregar ninguna
trama, a pesar de que el sistema continúa enviando la sexta. Cuando se genera la
vigésimo segunda trama (cuyo contador será seis), esta se almacena en el espacio de
memoria correspondiente a la sexta, por lo que, tras este instante, el sistema la da por
perdida y envía la séptima trama puesto que es la más antigua existente en el buffer que
no ha sido confirmada aún. En la figura 10 se describe el escenario en el que se han
generado ya veinticinco tramas, y el sistema trata de entregar la décima generada,
habiendo eliminado las cuatro anteriores que nuca serán entregadas.
Tras el desarrollo de este sistema de asentimientos es necesario evaluar su
comportamiento bajo diversas circunstancias. Si bien el buffer es capaz de absorber los
efectos que provoca una pérdida de comunicaciones prolongada en el tiempo, los
temporizadores tanto de la capa de transmisión como de aquella encargada de generar
las tramas han de estar bien configurados. En la figura 12 se presenta una gráfica en la
que en función del ratio entre el temporizador de generación de mensajes
(APP_INTERVAL) y el de retransmisión (TX_INTERVAL) se define la probabilidad máxima
admitida de perder un mensaje. Como puede observarse, al ir aumentando este ratio el
sistema es capaz de funcionar correctamente con probabilidades de perdida mayores,
aunque esto provocará un mayor consumo energético ya que para la misma frecuencia
de generación de tramas podrá producirse un número mayor de envíos. Esto puede
llegar a ser una ventaja si se necesita que el sistema se recupere lo antes posible.
Figura 12. Probabilidad de pérdida de trama permitida en función del ratio entre temporizadores del sistema
44 | P á g i n a
Este razonamiento ofrece un funcionamiento estable si la probabilidad de
perdida es constante, pero si la comunicación se corta por completo durante un largo
periodo de tiempo, será el buffer de transmisión el que aloje todas las tramas
pendientes de enviar. Es por esto que el buffer, además de absorber los efectos en la
variación de esta probabilidad, deberá de ser lo suficientemente grande como para
soportar un escenario sin comunicaciones en el que se enviarán todas las tramas
almacenadas una vez se restablezca la comunicación.
45 | P á g i n a
se incluye la lógica asociada a la interfaz LoRaWAN, por lo que varía en
función de la placa a utilizar.
• Clase Sender: Encargada de formar cada una de las tramas a enviar a partir
de las lecturas realizadas a los distintos sensores con los que cuenta el
dispositivo, además de gestionar los temporizadores y realizar las
comprobaciones de asentimientos.
• Clase FrameStorage: Gestiona el buffer de trasmisión en el que se
almacenan las tramas generadas. Además, contiene la lógica y los datos
necesarios para determinar qué tramas han sido ya asentidas y cuál es la
siguiente trama a enviar.
• Clase AmbientalSensors: Implementa la comunicación con el sensor de
temperatura y humedad DHT22, ofreciendo una interfaz sencilla para la
lectura de este por parte de otras clases. También almacena y gestiona el
estado de este en caso de que hubiera un error estableciendo las
comunicaciones.
• Clase AirQuality: De igual manera que con el otro sensor, esta clase
implementa y encapsula la lógica relacionada con el sensor SGP30 y además
de gestionar su estado, ofrece métodos para su calibración y lectura.
• Clase Auxiliar: Implementa funciones auxiliares que facilitan el manejo de
datos y la depuración del programa.
• Clase Screen: Implementa y encapsula funciones que permiten imprimir
información en la pantalla OLED integrada en el chip si existiera. En este
caso se usa para la placa de desarrollo Heltec Wifi LoRa 32.
46 | P á g i n a
Figura 14. Diagrama de flujo UML de la generación de una trama
Dado que este desarrollo busca sentar unas bases para su posterior explotación,
se busca la máxima versatilidad y sencillez tanto de uso como de instalación para estos
sistemas. Es por esto que, dado que deben contar con una conexión a Internet, es
importante qué opciones ofrece el hardware para realizar esta conexión. Si bien la
mayoría de soluciones permiten conexión mediante cable Ethernet y WiFi, se opta por
buscar un producto que además permita la comunicación mediante redes móviles como
puede ser el 3G. Existen multitud de adaptadores que permiten este tipo de
compatibilidades mediante un módem USB, pero a la larga estos dan problemas,
especialmente en condiciones de calor o humedad, por lo que para evitarlos se decide
que esta interfaz con redes WWAN ha de venir integrada en el hardware.
48 | P á g i n a
Finalmente, y teniendo lo anteriormente expuesto en cuenta, se decide el uso
de una solución comercial con todas estas características incluidas, buscando la máxima
fiabilidad. Se opta por la pasarela Wirnet iFemtoCell-evolution dado que cumple con los
requisitos definidos sin elevar excesivamente su coste. Cuenta con hasta 19 canales de
recepción y 1 de transmisión en la interfaz LoRa por lo que es capaz de dar servicio a
múltiples dispositivos, y ofrece la posibilidad de conectarse a internet mediante un
módem 4G integrado [22].
En cuanto a su software, cuenta con el sistema operativo KerOS basado en Linux,
por lo que soporta multitud de software para extender sus capacidades. Dado que está
orientado como dispositivo ‘plug and play’, trae ya instalado el software propietario que
facilita enormemente su configuración.
3.2.2. CONFIGURACIÓN
Este dispositivo trae instalado un software que permite definir una serie de
parámetros en fichero de configuración con sintaxis TOML, basada en pares clave-valor
y similar al formato JSON o YAML. Además, proporciona una aplicación para línea de
comandos (CLI) que permite modificar esta configuración mediante parámetros,
simplificando aún más esta tarea.
En busca de la máxima simplicidad ofrece varios métodos para su configuración,
así como para conectarse al dispositivo. A continuación, se describen los pasos seguidos
para configurarlo a través de una terminal, puesto que es el método que mayor
simplicidad ofrece si esta tarea debiera ser ejecutada de manera remota.
Para comenzar a configurar esta pasarela, el primer paso es conectarse a ella
mediante SSH. Por defecto trae asociado un nombre de host, por lo que basta con estar
conectados a la misma red que el dispositivo y usar este hostname para acceder.
Mientras que el usuario es fijo (root), por razones de seguridad la clave está basada en
el número de serie del dispositivo. Una vez accedemos, es necesario configurar tanto la
interfaz LoRa (denominada LoRa Daemon) como la interfaz IP (denominada LoRa
Forwarder).
49 | P á g i n a
dispersión disponibles en el gateway. Existen ficheros de ejemplo para cada una de las
regiones soportadas en el directorio /etc/lorad/fevo.
Tras esto, es necesario configurar la interfaz asociada al Backhaul IP. Para ello se
sigue un esquema similar al anterior caso: En el fichero /etc/default/lorafwd se define
la variable DISABLE_LORAFWD a “no” y se indica la ruta al fichero de configuración en la
variable CONFIGURATION_FILE [23].
En el fichero de configuración indicado tan solo es necesario definir tres
variables: la dirección del servidor de red, el identificador del servicio al que debe enviar
cada trama en el sentido uplink y el mismo identificador para el sentido downlink.
Dentro de este fichero existen multitud de opciones de configuración para
funcionalidades añadidas como puede ser el almacenamiento temporal de mensajes a
la espera de que puedan ser enviados, la configuración de una API HTTP para su
configuración o el empleo de filtros para descartar mensajes LoRaWAN siguiendo
distintos criterios.
Existe una alternativa para realizar esta última configuración y esta es el uso del
comando klk_apps_config [24]. Este permite modificar los parámetros antes
mencionados en forma de argumentos de este comando. Una configuración básica
como la definida anteriormente se puede realizar mediante:
Este comando ya realiza la activación del servicio Backhaul IP, así como de la
interfaz lora; pero se recomienda reiniciar el dispositivo tras realizar esta configuración.
Finalmente, es necesario conocer el EUI de esta pasarela para poder registrarla
en el servidor de red LoRaWAN. Este identificador puede ser también modificado en la
configuración de lorafwd. El definido por defecto se encuentra definido en el fichero:
/var/run/lora/gateway-id.toml
50 | P á g i n a
Cualquier implementación de un servidor de red LoRaWAN ha de cumplir con lo
recogido en el estándar para asegurar el correcto funcionamiento de la red, pero
muchas de las opciones para esta elección permiten integrar otros servicios con el fin de
mejorar las características y funcionalidades que nuestra aplicación ofrece. Estas
mejoras pueden suponer un valor añadido de cara al usuario, una mejora en el proceso
de mantenimiento y configuración de la red, o permitir un desarrollo más ágil y sencillo
de la misma.
51 | P á g i n a
debido a la sencillez para integrar estos servicios ofrecen la capacidad de optimizar los
tiempos de desarrollo y despliegue de nuevas funcionalidades.
AWS supone una solución completa y ajustada a las necesidades de este sistema,
pero su servicio para ofrecer un servidor LoRaWAN se encuentra aún en fase de pruebas
por lo que para este desarrollo se opta por una alternativa estable y madura. Cabe
remarcar que, aunque el servicio de Amazon quede temporalmente descartado puede
ser una solución interesante en el largo plazo, por lo que se el sistema completo ha sido
planteado para que sea compatible con esta.
La alternativa a AWS es The Things Network, una implementación de servidor de
red sustentada por la comunidad que, aunque no ofrece funcionalidades añadidas más
allá de lo esperado de un servidor de red, permite facilitar las tareas de configuración y
gestión de equipos. Esta plataforma supone una solución ideal para el desarrollo y
pruebas de prototipos gracias a su amplia documentación, su compatibilidad con
múltiples protocolos para el Backhaul IP y su coste, ya que se puede usar de manera
gratuita.
52 | P á g i n a
Figura 15. Función ejecutada por el servidor de red para decodificar el payload upstream
Para este proyecto se opta por usar una herramienta de integración que ofrece
una API HTTP sobre la que realizar consultas GET acerca de los datos almacenados. Este
tipo de integración es válida para el desarrollo de prototipos, pero no es recomendable
para su uso en producción, ya que se sustenta en un servicio externo llamado Swagger
[25] y los datos almacenados se eliminan tras siete días.
53 | P á g i n a
La API ofrecida mediante Swagger acepta tres tipos de consultas:
• /api/v2/devices: Devuelve una lista con los dispositivos de los que hay
datos almacenados.
• /api/v2/query: Devuelve todos los mensajes almacenados de la última
hora. Acepta un parámetro ‘last’ que permite modificar este rango de
tiempo. Este se define como un número y una unidad de tal forma que ‘2h'
indica las últimas dos horas y ‘4d’ se refiere a los últimos cuatro días.
• /api/v2/query/{device-id}: Similar al caso anterior, pero para obtener los
datos correspondientes a uno de los nodos finales de la red. Se accede a
ellos mediante el identificador de dispositivo asignado al registrar el nodo
en la plataforma TTN.
Para garantizar la seguridad del acceso a estos datos, es necesario añadir una
cabecera ‘Authorization’ a cada una de las consultas donde se incluya la clave de acceso
asociada a la aplicación TTN.
Para que cada uno de los equipos que componen la red puedan comunicarse con
el servidor TTN, es necesario darlos de alta de manera que puedan autenticarse. Por un
lado, los nodos finales de la red deben estar asociados a una aplicación ya existente.
Para ello, y desde la pestaña de la aplicación antes creada, se accede al apartado de
dispositivos.
Para llevar a cabo este registro es necesario definir un identificador de
dispositivo, así como un EUI que identifique al dispositivo inequívocamente. Tras esto, y
dado que se usa autenticación del tipo OTAA, tan solo es necesario definir el EUI de
aplicación, el EUI de dispositivo y la clave de aplicación obtenidos desde la web de TTN
en el programa que se carga en cada dispositivo para que este se valide y pueda
comunicarse con el servidor de red [26].
Por otro lado, es necesario también registrar cada una de las pasarelas que
reenvían los mensajes dentro de la red, aunque estas no corresponden a ninguna de las
aplicaciones registradas ya que reenvían cada mensaje independientemente de su
contenido. Visto desde la arquitectura del estándar LoRaWAN, estos gateways se
comunican con el servidor de red, mientras que los nodos finales lo hacen con el servidor
de aplicación.
Para registrar un gateway es necesario definir un identificador en función del EUI
del equipo. Este puede ser uno predefinido, o puede modificarse en el equipo, pero ha
de coincidir con el definido en el servidor TTN. Es necesario definir también el protocolo
a utilizar en la comunicación Backhaul IP, Lora Basics Station; así como el plan regional
de frecuencias, en este caso el marcado por el estándar y validado por las autoridades:
EU868. Finalmente, ha de indicarse a qué cluster ha de conectarse el gateway. Este
54 | P á g i n a
cluster determina la dirección del servidor LNS definido en la configuración de la
pasarela [27].
55 | P á g i n a
mostrarlos de una manera amigable y funcional. Si bien en la primera iteración del
desarrollo de la aplicación solamente se mostraba la información correspondiente a
cada trama, se optó por implementar una nueva funcionalidad que permita realizar un
análisis detallado de los datos obtenidos mediante los distintos sensores que componen
el sistema. Esta nueva funcionalidad es el renderizado de cada uno de los parámetros
leídos en gráficos, los cuales se agrupan por dispositivo y permiten obtener información
útil de una manera sencilla e intuitiva.
56 | P á g i n a
CAPÍTULO 4:
PRUEBAS Y DISCUSIÓN DE
RESULTADOS
57 | P á g i n a
4. PRUEBAS Y DISCUSIÓN RESULTADOS
58 | P á g i n a
por unos más fiables y precisos. Dado que el código de los nodos finales es modular,
implementar la lectura de los nuevos sensores no debe traer mayor complejidad.
59 | P á g i n a
CAPÍTULO 5:
CONCLUSIONES Y LÍNEAS
FUTURAS
60 | P á g i n a
5. CONCLUSIONES Y LÍNEAS FUTURAS
A lo largo de este trabajo se han descrito las diferentes tecnologías que han
permitido desarrollar un sistema de telemedida y captación de datos. Se ha hecho
énfasis en la base de este sistema, que es la posibilidad de establecer enlaces radio de
largo alcance y de gran resistencia frente a las interferencias. Gracias al estándar
LoRaWAN, y a la tecnología LoRa, en la que se basa, ha sido posible implementar una
red de comunicaciones completa, que además ofrezca funciones adicionales para su
gestión y mantenimiento, así como garantizar la seguridad y la fiabilidad en la entrega
de datos.
Además de permitir comunicaciones inalámbricas, se ha empleado un gran
esfuerzo en desarrollar el software necesario para que los nodos finales de esta red sean
capaces de comunicarse de la manera esperada, así como de leer los sensores que
permiten recoger los datos. Añadido a esto, el diseño y desarrollo de este programa ha
pretendido ofrecer fiabilidad, robustez y un funcionamiento sistematizado, permitiendo
añadir otros tipos de sensores o capacidades en un futuro. Entre estas capacidades,
podría resultar sencillo implementar la interacción con dispositivos más complejos
mediante protocolos de comunicación industrial como puede ser MODBUS.
En cuanto a la red desarrollada, y tal y como se ha descrito a lo largo de esta
memoria, basa todo su funcionamiento en el estándar propuesto, por lo que es
compatible con otros tipos de implementaciones del protocolo LoRaWAN. En
consecuencia, también permite comunicarse con soluciones comerciales más completas
siempre que estas sean compatibles con este estándar.
61 | P á g i n a
empresa Energibid a los servicios ofrecidos por AWS, permitiendo así ahorrar costes,
facilitar tareas básicas, y ofrecer un mayor rendimiento y escalabilidad para la misma.
62 | P á g i n a
6. PRESUPUESTO
Para llevar a cabo el desarrollo de este proyecto se han adquirido los distintos
equipos mencionados a lo largo de esta memoria, de los cuales se desglosa su importe
a continuación:
A este equipamiento hay que añadirle el coste asociado al servicio del servidor
de red LoRaWAN. Para el desarrollo de este prototipo se ha empleado The Things
Network, un servicio gratuito sustentado por la comunidad. De cara a un despliegue
comercial se plantea el uso de los servicios ofrecidos por Amazon Web Services, los
cuales se facturan en función del coste computacional que conlleva este sistema. Es por
esto que es posible predecir el coste que supondrá un despliegue teniendo en cuenta el
número de equipos a desplegar, así como la periodicidad con la que se enviarán cada
una de las medidas.
Gracias al servicio ofrecido por Amazon que permite estimar el precio [28], se
calcula que para un despliegue de 25 dispositivos y un periodo de 10 minutos entre cada
envío de datos el coste mensual asociado será cercano a los 0,5 USD. Este importe varía
de forma lineal con el número de dispositivos desplegados por lo que cada dispositivo
instalado conlleva un coste estimado de 0,2 USD.
63 | P á g i n a
7. ANEXO
64 | P á g i n a
65 | P á g i n a
INDICE DE FIGURAS:
66 | P á g i n a
INDICE DE TABLAS:
67 | P á g i n a
BIBLIOGRAFIA
[1] Daniel Ibaseta, et al. An IOT platform for indoor air quality monitoring using the
Web of Things. (2019). Retrieved 27 May 2021, from
https://digibuo.uniovi.es/dspace/bitstream/handle/10651/53764/AIR19005F
U1.pdf
[2] LoRaWAN. What is it? LoRa Alliance Documentation (2015). Retrieved 20 April
2021, from https://lora-alliance.org/wp-content/uploads/2020/11/what-is-
lorawan.pdf
[3] Rafia Mumtaz et al. (2021). Internet of Things (IoT) Based Indoor Air Quality
Sensing and Predictive Analytic—A COVID-19 Perspective. Retrieved 4 June
2021, from https://www.mdpi.com/2079-9292/10/2/184.
[4] V. Barot and V. Kapadia, "Air Quality Monitoring Systems using IoT: A
Review," 2020 International Conference on Computational Performance
Evaluation (ComPE), 2020, pp. 226-231, doi:
10.1109/ComPE49325.2020.9200053. Retrieved 6 June 2021, from
https://ieeexplore-ieee-org.ponton.uva.es/document/9200053.
[5] P. Edward, M. El-Aasser, M. Ashour and T. Elshabrawy, "Interleaved Chirp
Spreading LoRa as a Parallel Network to Enhance LoRa Capacity," in IEEE
Internet of Things Journal, vol. 8, no. 5, pp. 3864-3874, 1 March1, 2021, doi:
10.1109/JIOT.2020.3027100. Retrieved 20 May 2021, from https://ieeexplore-
ieee-org.ponton.uva.es/document/9207749.
[6] D. Eridani, E. D. Widianto, R. D. O. Augustinus and A. A. Faizal, "Monitoring
System in Lora Network Architecture using Smart Gateway in Simple LoRa
Protocol," 2019 International Seminar on Research of Information Technology
and Intelligent Systems (ISRITI), 2019, pp. 200-204, doi:
10.1109/ISRITI48646.2019.9034612. Retrieved 25 May 2021, from
https://ieeexplore-ieee-org.ponton.uva.es/document/9034612
[7] P. A. Barro, M. Zennaro and E. Pietrosemoli, "TLTN – The local things network:
on the design of a LoRaWAN gateway with autonomous servers for
disconnected communities," 2019 Wireless Days (WD), 2019, pp. 1-4, doi:
10.1109/WD.2019.8734239. Retrieved 23 May 2021, from https://ieeexplore-
ieee-org.ponton.uva.es/document/8734239.
[8] A. Gladisch, S. Rietschel, T. Mundt, J. Bauer, J. Goltz and S. Wiedenmann,
"Securely Connecting IoT Devices with LoRaWAN," 2018 Second World
Conference on Smart Trends in Systems, Security and Sustainability (WorldS4),
2018, pp. 220-229, doi: 10.1109/WorldS4.2018.8611576. Retrieved 23 May
2021, from https://ieeexplore-ieee-org.ponton.uva.es/document/8611576.
[9] Semtech UDP Packet Forwarder. The Things Network Documentation. (2021).
Retrieved 13 May 2021, from
https://www.thethingsnetwork.org/docs/gateways/packet-
forwarder/semtech-udp/.
68 | P á g i n a
[10] LoRa Basics™ Station. Semtech Documentation. (2021). Retrieved 10 May 2021,
from https://doc.sm.tc/station/#.
[11] ChirpStack architecture. ChirpStack Documentation. (2021). Retrieved 6 May
2021, from https://www.chirpstack.io/project/architecture/.
[12] What is AWS IoT. Amazon Web Services Documentation. (2021). Retrieved 28
April 2021, from
https://docs.aws.amazon.com/iot/latest/developerguide/what-is-aws-
iot.html.
[13] AWS IoT Core for LoRaWAN. Amazon Web Services Documentation. (2021).
Retrieved 28 April 2021, from
https://docs.aws.amazon.com/iot/latest/developerguide/connect-iot-
lorawan.html.
[14] Learn | The Things Network. The Things Network Documentation. (2021).
Retrieved 20 April 2021, from https://www.thethingsnetwork.org/docs/.
[15] React Native. Learn once, write anywhere. React Native. (2021). Retrieved 3
May 2021, from https://reactnative.dev/.
[16] José Daniel Rodríguez Munca. Dispositivo LoRa de comunicación a largo alcance
y bajo consume energético para aplicaciones del ámbito del desarrollo.
Universidad Politécnica de Madrid (2017). Retrieved 2 May 2021, from
http://oa.upm.es/44890/1/TFM_JOSE_DANIEL_RODRIGUEZ_MUNCA.pdf.
[17] Digital relative relative humidity & temperature sensor AM2302/DHT22.
Adafriut datasheet. Retrieved 30 April 2021, from https://cdn-
shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+A
M2302.pdf.
[18] Datasheet SGP30. Indoor Air Quality Sensor for TVOC and CO2eq
Measurements. Sensirion (2020). Retrieved 30 April 2021, from
https://www.sensirion.com/fileadmin/user_upload/customers/sensirion/Dok
umente/9_Gas_Sensors/Datasheets/Sensirion_Gas_Sensors_Datasheet_SGP3
0.pdf.
[19] Adafruit SGP30 TVOC/eCO2 Gas Sensor. Adafruit Library (2018). Retrieved 30
April 2021, from https://www.mouser.es/pdfdocs/adafruit-sgp30-gas-tvoc-
eco2-mox-sensor.pdf.
[20] Arduino-LMIC library ("MCCI LoRaWAN LMIC Library"). MCCI Corporation.
Retrieved 20 April 2021, from https://github.com/mcci-catena/arduino-lmic.
[21] Heltec Cubecell Series Arduino Development Environment. Heltec Automation.
Retrieved 21 April 2021, from
https://github.com/HelTecAutomation/CubeCell-Arduino.
[22] Wirnet iFemtoCell-evolution Documentation. Kerlink (2021). Retrieved 17 April
2021, from official vendor site.
69 | P á g i n a
[23] Keros 4.3.3: CPF configuration. Kerlink (2021). Retrieved 28 April 2021, from
https://wikikerlink.fr/wirnet-
productline/doku.php?id=wiki:lora:keros_4.3.3:cpf_configuration.
[24] Keros application configuration. Kerlink (2021). Retrieved 28 April 2021, from
https://wikikerlink.fr/wirnet-
productline/doku.php?id=wiki:keros_custo:keros_applications_configuration.
[25] Swagger, API Documentation & Design Tools for Teams. Swagger. (2021).
Retrieved 12 May 2021, from https://swagger.io/.
[26] Adding Devices. The Things Network Documentation. (2021). Retrieved 13 May
2021, from https://www.thethingsnetwork.org/docs/devices-and-
gateways/adding-devices/.
[27] Adding Gateways. The Things Network Documentation. (2021). Retrieved 13
May 2021, from https://www.thethingsnetwork.org/docs/devices-and-
gateways/adding-gateways/.
[28] AWS Pricing Calculator, Configure AWS IoT Core. Amazon Web Services (2021).
Retrieved 26 May 2021, from
https://calculator.aws/#/createCalculator/IoTCore
70 | P á g i n a