scieee Science in your language
[es] (orig)

Sistema IoT para el control y monitorización de un terrario con Eclipse Kura, Amazon AWS y Angular

Abstract

Debido a la imparable digitalización que está aconteciendo en la actualidad, numerosos objetos y dispositivos que en el pasado no eran más que eso, se están viendo actualizados y conectados en una red formada por estos. Surge así el concepto de Internet of Things. Este concepto intenta proponer soluciones que hagan que la vida cotidiana de las personas sea mucho más sencilla, haciendo uso de la tecnología. Para ello, se le dota a los objetos de una conectividad que antes no tenían, abriendo paso a un conjunto de infinitas posibilidades, como la facilidad de realizar alguna acción o el análisis de datos para poder tomar mejores decisiones. Como consecuencia, numerosos dispositivos se están viendo conectados y surgen conceptos como las Smart Cities o la Domótica. Este trabajo viene a plantear una solución en este campo, haciendo uso de tecnologías de vanguardia, como el uso de Eclipse Kura como Gateway IoT1 en una Raspberry Pi. Además, se ponen en marcha servicios en la nube haciendo uso del conjunto de utilidades que proporciona Amazon AWS, como IoT Core, DynamoDB, Lambda y API Gateway, otorgando fiabilidad, seguridad y facilidad de uso al sistema. Para la presentación e interacción con estos sistemas a través de una interfaz web se hace uso de Angular.

Read accessible full text

Sistema IoT para el control y monitorización de un terrario con Eclipse Kura, Amazon AWS y Angular

Author: Jiménez Casas, Juan
Year: 2019
Source: https://idus.us.es/bitstreams/a6fb5f42-5fd8-4f3c-935a-2f258a3687de/download
–Equa ion Chap e 1 Sec ion 1
T abajo de Fin de G ado
G ado en Ingenie ía de las Tecnologías de
Telecomunicación
Sis ema IoT pa a el con ol y moni o ización de un
e a io con Eclipse Ku a, Amazon AWS y Angula
Au o : Juan Jiménez Casas
Tu o : Ma ía Te esa A iza Gómez
Depa amen o de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2019
2
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Índice de Figu as
3
T abajo de Fin de G ado
G ado en Ingenie ía de Tecnologías de Telecomunicación
Sis ema IoT pa a el con ol y moni o ización de un
e a io con Eclipse Ku a, Amazon AWS y Angula
Au o :
Juan Jiménez Casas
Tu o :
Ma ía Te esa A iza Gómez
P o eso i ula
Depa amen o de Ingenie ía Telemá ica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2019
4
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
T abajo in de G ado: Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a,
Amazon AWS y Angula
Au o :
Juan Jiménez Casas
Tu o :
Ma ía Te esa A iza Gómez
El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es miemb os:
P esiden e:
Vocales:
Sec e a io:
Acue dan o o ga le la cali icación de:
Se illa, 2019
El Sec e a io del T ibunal
Índice de Figu as
5
A mi amilia
A mis amigos
A mis maes os

6
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Índice de Figu as
7
Ag adecimien os
Sin duda, el momen o más di ícil y a la ez más impo an e en la ealización de oda es a memo ia no es
más que el que acon ece en es e apa ado. Es de especial impo ancia pa a mí el ac o de ag adece a odas
las pe sonas que me han acompañado du an e es e camino. Po ello, y a pesa de odo, c eo que con es e
apa ado nunca se á su icien e pa a ag adece odo lo que os debo.
Ag adece , en p ime luga , a la u o a de es e p oyec o, Ma ía Te esa A iza Gómez, el iempo, la
con ianza y empeño dedicado en ayuda a la ealización de es e abajo. Además, me gus a ía ag adece al
es o de p o eso es que, en cualquie momen o de es os años, me han se ido como ayuda y han endido
su mano pa a que odo es o sea más sencillo.
Todo es o no hubiese sido posible sin oso os, mis pad es, mis he manos, mis abuelos, mi amilia.
Muchas g acias, nunca pod é compensa os odo lo que hacéis po mí. Es e abajo ambién es igual de
ues o que mío. G acias po con ia an o en mí y po guia me pa a se quien soy. Po enseña me día as
día, po inculca me unos alo es. Po da lo odo, sin pedi nada a cambio. Os quie o.
No puedo deja a ás a o o de mis pila es undamen ales, mi compañe a en odo es e camino, quien me
ha apoyado día as día, ha aguan ado mis días malos y me ha ayudado a desconec a en odo el caos que
han sido es os cua o años. Es e pá a o a po i.
Po úl imo, pe o no po ello menos impo an e, me gus a ía hace un ag adecimien o a la casualidad, a la
casualidad de encon a me unos compañe os, que pasa on a se amigos y hoy en día son amilia. Sin
ellos, hoy en día no es a ía esc ibiendo es o y sin ellos no ol e ía a epe i . Desde ese p ime encuen o
casual, las isas po no llo a , los días is es y los días elices, los consejos, los momen os i idos, los
des a íos u os del ago amien o, los agobios y como no, las quejas. No hace al a que os nomb e, si ya
leyendo es e pá a o os habéis sen ido iden i icados, signi ica que sois pa e de es a dedica o ia.
Juan Jiménez Casas
De Las Cabezas de San Juan a Se illa, 2019
8
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Resumen
Debido a la impa able digi alización que es á acon eciendo en la ac ualidad, nume osos obje os y
disposi i os que en el pasado no e an más que eso, se es án iendo ac ualizados y conec ados en una ed
o mada po es os. Su ge así el concep o de In e ne o Things.
Es e concep o in en a p opone soluciones que hagan que la ida co idiana de las pe sonas sea mucho más
sencilla, haciendo uso de la ecnología. Pa a ello, se le do a a los obje os de una conec i idad que an es no
enían, ab iendo paso a un conjun o de in ini as posibilidades, como la acilidad de ealiza alguna acción
o el análisis de da os pa a pode oma mejo es decisiones. Como consecuencia, nume osos disposi i os
se es án iendo conec ados y su gen concep os como las Sma Ci ies o la Domó ica.
Es e abajo iene a plan ea una solución en es e campo, haciendo uso de ecnologías de angua dia,
como el uso de Eclipse Ku a como Ga eway IoT
1
en una Raspbe y Pi. Además, se ponen en ma cha
se icios en la nube haciendo uso del conjun o de u ilidades que p opo ciona Amazon AWS, como IoT
Co e, DynamoDB, Lambda y API Ga eway, o o gando iabilidad, segu idad y acilidad de uso al sis ema.
Pa a la p esen ación e in e acción con es os sis emas a a és de una in e az web se hace uso de Angula .
1
Un Ga eway IoT es un disposi i o ísico o un p og ama de so wa e que si e como pun o de conexión en e la nube y los
con olado es, senso es y disposi i os in eligen es.
Índice de Figu as
9
Abs ac
Due o he uns oppable digi aliza ion ha is happening oday, se e al objec s and de ices ha in he pas
we e no hing mo e han ha , a e being upda ed and connec ed in a ne wo k o med by hem. So, i a ises
he concep o In e ne o Things.
This concep ies o p opose solu ions ha make people's daily li e much simple and easie , making use
o echnology. To do his, he objec s a e p o ided wi h a connec i i y ha hey did no ha e be o e,
opening he way o a se o in ini e possibili ies, such as he ease o pe o ming some ac ion o he
analysis o da a in o de o make be e decisions. As a esul , se e al de ices a e being connec ed and
concep s such as Sma Ci ies o Home Au oma ion a ise.
This wo k comes o p opose a solu ion in his ield, making use o cu ing-edge echnologies, such as he
use o Eclipse Ku a as Ga eway IoT in a Raspbe y Pi. In addi ion, cloud se ices a e deployed using he
se o u ili ies p o ided by Amazon AWS, such as IoT Co e, DynamoDB, Lambda and API Ga eway,
p o iding eliabili y, secu i y and ease o use o he sys em. Angula is used o p esen and in e ac wi h
hese sys ems h ough a web in e ace.
16
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
1.2 Obje i os
El obje i o del T abajo es la implemen ación de un sis ema o mado po :
• Senso es de empe a u a y humedad conec ados a una Raspbe y Pi, la cual con e i emos en un
disposi i o IoT, haciendo uso de Eclipse Ku a.
• En o no de Cloud Compu ing el cual ecibi á in o mación de un disposi i o IoT median e MQTT,
almacena á dicha in o mación en una Base de Da os y la o ece á a a és de una API REST.
• Aplicación web desa ollada en Angula con la que el usua io pueda ob ene in o mación de un
de e minado e a io y pueda in e ac ua con es e.
1.3 An eceden es
Los an eceden es de es e abajo co esponden a un p oyec o ealizado en la asigna u a Sis emas
Ope a i os, la cual impa e la u o a de es e T abajo Fin de G ado, Ma ía Te esa A iza Gómez. Aquel
p oyec o enía como uncionalidad la de con ola y moni o iza un e a io a pequeña escala, desde la
e minal de la Raspbe y Pi y haciendo uso de los con enidos impa idos en aquella asigna u a, pa a
ob ene la in o mación de los dis in os senso es.
Como p opues a de mejo a a es e, se ha buscado el con e i la Raspbe y Pi en un disposi i o IoT, pa a
en ia es a in o mación a la nube, con el in de p ocesa es a, almacena la en una base de da os y
o ece la a a és de un se icio REST. Además, se ha desa ollado una aplicación Web que nos pe mi a
accede a la in o mación de es e e a io, así como de más e a ios si uese necesa io, con el uso de es e
se icio.
1.4 Desc ipción de la solución
A con inuación, se desc ibe de mane a gene alizada la solución implemen ada, con el in de alcanza los
obje i os p opues os.
1.4.1 Obje i os Especí icos
• Ob ención y en ío de los da os de los senso es.
Pa a ob ene la in o mación de humedad y empe a u a se han u ilizado senso es DHT11, de bajo cos e,
pe o de g an u ilidad pa a ep esen a la oma de da os. Pa a la ob ención y en ío de la in o mación de
es os, se ha u ilizado Eclipse Ku a, que se enca ga de ob ene la in o mación de los senso es y publica las
en el IoT Co e de AWS, haciendo uso del p o ocolo MQTT.
• Publicación de o ma segu a de in o mación en Amazon AWS.
Pa a ello se han u ilizado ce i icados de cla e pública y p i ada, i mados po la p opia CA
3
aíz de
Amazon. De es a o ma, cuando un disposi i o quie a publica o susc ibi se a la in o mación del IoT Co e
de Amazon, debe á ene un ce i icado álido.
• Almacenamien o y consul a de los da os.
Se ha u ilizado una Base de Da os noSQL, llamada Amazon DynamoDB, donde se almacena la
in o mación de cada uno de los es ados en los que es á un Obje o IoT.
3
Au o idad de ce i icación.

In oducción
17
• C eación de un se icio se e less, basado en el p ocesamien o en la nube.
Haciendo uso de las dis in as he amien as que p opo ciona Amazon Web Se ices, como son IoT Co e,
DynamoDB, Lambda Func ion y API Ga eway; se ha implemen ado un se icio REST sin ene que
implemen a de o ma local un se ido que o ezca de es os ecu sos pa a que luego, una aplicación Web
consuma de es os.
• Obje i os de disponibilidad, escalabilidad y e iciencia.
Al hace uso de la compu ación en la nube, o o gamos a nues o sis ema de una obus ez, que,
desa ollándolo en un se ido local, no pod íamos. Además, con he amien as como AWS Lambda,
nues o se icio solo consume la capacidad de p ocesamien o que necesi a. Es o en conjunción con IoT
Co e, le o o ga una g an capacidad de escalabilidad, po lo que nues o sis ema puede pasa de o ma
au omá ica de escasas pe iciones a un g an núme o de es as.
• P esen ación
Pa a que nues o sis ema pueda se usable po cualquie usua io se hace uso de una aplicación Web. Es a
es á desa ollada en Angula . Es e amewo k p opo ciona, en e o as, la capacidad de eca ga au omá ica
del con enido que se es á mos ando en una página, así como la posibilidad de in e ac ua con una API
REST de o ma sencilla, haciendo uso del p o ocolo HTTP.
1.4.2 Funcionalidades
De ca a al usua io inal, el sis ema diseñado o ece las siguien es uncionalidades:
• Consul a de los dis in os e a ios que hay disponibles pa a consul a .
• Ob ención de in o mación de humedad y empe a u a de cada uno de los e a ios.
• Modi icación del nomb e de un e a io, así como de su desc ipción.
• Acceso al his ó ico de humedad y empe a u a de un e a io.
• In e acción con el sis ema IoT, pudiendo ac i a o desac i a posibles uncionalidades de es e,
como se ían un adiado o una bombilla.
18
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
1.4.3 Esquema de la a qui ec u a
A con inuación, se mues a la a qui ec u a de la solución adop ada:
Figu a 1: Esquema de la a qui ec u a
GPIO
MQTT
Reglas IoT
NoSQL
HTTP
E en os
REST
Usua io
TERRARIO
In oducción
19
Como podemos obse a en la Figu a 1: Esquema de la a qui ec u a, en el escena io o mado, un e a io
a con ola y moni o iza es a ía compues o po un senso DHT11 y una Raspbe y Pi.
Es a Raspbe y Pi end ía ins alado Eclipse Ku a, que se ía el enca gado de ob ene la in o mación que
los senso es DHT11 en ían a la Raspbe y Pi, median e los pines GPIO. Una ez iene es a in o mación,
haciendo uso del p o ocolo MQTT, publica á en un opic MQTT p opo cionado po el IoT Co e de
Amazon AWS. De es a o ma, la Raspbe y Pi se con ie e en un disposi i o IoT. De igual mane a, se
susc ibi á a o o opic pa a ecibi in o mación del IoT Co e, en iándosela pos e io men e a la Raspbe y
Pi.
El en o no de Cloud Compu ing de AWS end ía dos pun os de en ada y salida de in o mación. Uno se ía
el IoT Co e, que median e el p o ocolo MQTT se comunica ía con Eclipse Ku a y la Raspbe y Pi. El o o
se ía la API REST que p opo cionamos haciendo uso del se icio API Ga eway, pa a la comunicación
con el usua io, a a és de una Aplicación Web Angula .
In e namen e, en AWS u ilizamos 4 se icios:
• IoT Co e: median e el cual ecibimos/en iamos in o mación pe enecien e a los Disposi i os IoT,
haciendo uso de MQTT.
• API Ga eway: p opo ciona una URL a la que pod emos hace pe iciones HTTP, pa a accede a
los ecu sos de Amazon AWS. P opo ciona ía un se icio REST.
• DynamoDB: p opo ciona una Base de Da os donde almacena emos el his ó ico de humedades y
empe a u as que ha enido un Disposi i o IoT.
• Lambda Func ions: unciones ejecu adas cuando se p oduce un e en o o se ac i a una Regla IoT.
Son el pun o de in e conexión en e los dis in os se icios de AWS. Pa icula men e:
• Almacena á la in o mación en DynamoDB, cuando se p oduzcan e en os p oceden es de la API
Ga eway de esc i u a de in o mación (mé odo POST de HTTP) o cuando se ac ualice el es ado de
un Disposi i o IoT en el IoT Co e.
• P opo ciona á la in o mación almacenada en DynamoDB cuando un e en o p oceden e de API
Ga eway se lo solici e median e un mé odo GET de HTTP.
En su conjun o, se o ma un sis ema in e conec ado de ex emo a ex emo, que hace uso de di e en es
p o ocolos, como MQTT o HTTP en cada uno de sus pun os de in e conexión. Como esul ado, se
p opo ciona la moni o ización y con ol de un e a io.
1.5 Es uc u a de la memo ia
Con el in de acili a la lec u a del documen o, se p opo ciona en es e apa ado un esumen de cada
capí ulo:
1. In oducción: P esen ación del p oblema, el con ex o que lo in oluc a y la solución adop ada.
2. Recu sos u ilizados: Recu sos ha dwa e y so wa e u ilizados pa a la lec u a de la in o mación,
despliegue de las dis in as ecnologías empleadas (bases de da os, aplicación web, se icios en la
nube) así como pa a implemen a los senso es y su comunicación con el sis ema.
3. Tecnologías u ilizadas: Resumen de las p incipales ecnologías u ilizadas pa a la
implemen ación.
4. Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a: Análisis y Ca ac e ís icas de la
implemen ación en la Raspbe y Pi, así como la publicación de la in o mación en la nube de
Amazon.
20
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
5. Aplicación desa ollada: Nube Amazon AWS: Es uc u a y análisis de la implemen ación en
Amazon AWS (IoT Co e, DynamoDB, Lambda, API Ga eway).
6. Aplicación desa ollada: In e az web Angula : Es uc u a y análisis de la aplicación web
desa ollada en Angula , así como la ob ención de la in o mación de la API REST de AWS.
7. Conclusiones y líneas u u as: Ideas y ca ac e ís icas que pod ían implemen a se pa a mejo a el
sis ema en p óximas e siones de es e.
Además de los capí ulos mencionados, se p opo ciona una se ie de Anexos que pe mi i án implemen a el
Sis ema paso a paso:
• Anexo A: Ins alación de Senso es DHT11 y Leds en Raspbe y Pi.
• Anexo B: Ins alación y con igu ación de Eclipse Ku a en Raspbe y Pi.
• Anexo C: C eación de usua ios y con igu ación de se icios en AWS.
• Anexo D: Despliegue del sis ema.
Recu sos u ilizados
21
2 RECURSOS UTILIZADOS
con inuación se exponen los ecu sos u ilizados pa a lle a a cabo la implemen ación. Se
de alla án las ca ac e ís icas más ele an es de cada uno de ellos.
2.1 Recu sos Ha dwa e
2.1.1 MacBook P o
El o denado en el que se ha desa ollado odo el código necesa io pa a que uncione el abajo ha sido un
MacBook P o-Re ina de 13 pulgadas, de p incipios de 2015. En e sus especi icaciones encon amos:
• P ocesado In el Co e i5 a 2,7 GHz.
• 16 GB de memo ia RAM DDR3 a 1867 MHz.
• G á icos In el I is G aphics 6100.
• 128 GB de almacenamien o SSD.
Figu a 2: MacBook P o de 13 pulgadas modelo 2015.
A
The pessimis sees di icul y in e e y
oppo uni y. The op imis sees he oppo uni y
in e e y di icul y.
- Wins on Chu chill -

22
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
2.1.2 Raspbe y Pi Model 3B+
Es e es el núcleo de p ocesamien o y comunicación IoT. En es a se conec a án los senso es de los que se
ob end á la in o mación, los leds pa a indica que se es á ac uando en base a las decisiones omadas.
También se á el disposi i o enca gado de publica y susc ibi se en la nube pa a el in e cambio de
in o mación. Po lo an o, cumple las unciones de Ga eway IoT.
Figu a 3: Raspbe y Pi Model 3B+
Especi icaciones [1]:
• SoC: B oadcom BCM2837B0 quad-co e A53 (ARM 8) 64-bi @ 1.4GHz
• GPU: B oadcom Videoco e-IV
• RAM: 1GB LPDDR2 SDRAM
• Ta je a de ed: Gigabi E he ne ( ia USB channel), 2.4GHz and 5GHz 802.11b/g/n/ac Wi-Fi
• Blue oo h: Blue oo h 4.2, Blue oo h Low Ene gy (BLE)
• S o age: Mic o-SD
• GPIO: 40-pin GPIO heade , popula ed
• Pue os: HDMI, 3.5mm analogue audio- ideo jack, 4x USB 2.0, E he ne , Came a Se ial
In e ace (CSI), Display Se ial In e ace (DSI)
2.1.3 Senso de humedad y empe a u a DHT11
Senso de humedad y empe a u a de bajo cos e, muy ú il pa a expe imen os y usos donde se necesi an
g an can idad de medidas. La e sión u ilizada de es e es la que con iene 3 pines de conexión con los
pue os GPIO de la Raspbe y Pi.
Los alo es que es capaz de cap a son los siguien es [2]:. El implemen ado es el que se mues a en la
Figu a 4: Senso DHT11.
• Humedad: 20-80% (5% p ecisión)
• Tempe a u a: 0-50°C (±2°C p ecisión)
Recu sos u ilizados
23
Figu a 4: Senso DHT11
2.1.4 LEDs
Pa a emi i señales luminosas simulando la ac uación sob e cada uno de los posibles elemen os con los
que in e ac ua . Los leds son de dis in os colo es, conec ándose es os a la Raspbe y Pi a a és de una
placa de p uebas. Se mues an en la Figu a 5: LED
Figu a 5: LED
2.2 Recu sos So wa e
2.2.1 Sis ema Ope a i o MacOs Moja e
Es e P oyec o se ha desa ollado sob e MacOs Moja e e sión 10.14.6, como sis ema ope a i o pa a los
dis in os ecu sos so wa e que han sido necesa ios pa a el desa ollo de la aplicación.
2.2.2 Na egado Web Google Ch ome
Se ha u ilizado el na egado de Google pa a la in e acción con las dis in as in e aces web, así como la
depu ación y desa ollo de la aplicación web.
Figu a 4: Google Ch ome
24
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
2.2.3 Eclipse IDE
Pa a el desa ollo de los bundles que u iliza á Eclipse Ku a se ha u ilizado el en o no de desa ollo que
p opo ciona Eclipse pa a Eclipse Ku a. [3]
Figu a 5: Eclipse
2.2.4 Pos man
Es un en o no de desa ollo de API. Ha sido de g an u ilidad pa a desa olla la API REST, así como
e i ica la publicación/susc ipción a los di e en es emas MQTT.
Figu a 6: Pos man
2.2.5 S ackBli z y Sublime Tex 3
Se han u ilizado ambos edi o es de ex o pa a la codi icación. Sublime Tex 3 se ha u ilizado pa a
desa olla los con olado es de los dis in os senso es.
Cabe des aca que S ackBli z ha sido de g an u ilidad pa a el desa ollo de la aplicación Web en Angula ,
ya que pe mi ía la codi icación del código online, gua dando au omá icamen e y un con ol de e siones
en Gi Hub de o ma sencilla. Además, pe mi i á el despliegue de la aplicación Web median e un
na egado web in eg ado.
Figu a 6: S ackBli z y Sublime Tex 3
Recu sos u ilizados
25
2.2.6 VNC
Pe mi e u iliza de o ma emo a la Raspbe y Pi. Se accede a es a indicando la di ección IP que iene
asignada e iniciando sesión con el nomb e de usua io y con aseña que hayamos con igu ado.
Figu a 7: VNC
32
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
3.3 Angula
Angula es un amewo k
7
pa a aplicaciones web desa ollado en TypeSc ip [22], de código abie o,
man enido po Google, que se u iliza pa a c ea y man ene aplicaciones web de una sola página (SPA).
Su obje i o es aumen a las aplicaciones basadas en na egado con capacidad de Modelo Vis a
Con olado (MVC)
8
, en un es ue zo pa a hace que el desa ollo y las p uebas sean más áciles.
Figu a 14: Aplicaciones web de una sola página
Una aplicación web SPA c eada con Angula es una web de una sola página, en la cual la na egación
en e secciones y páginas de la aplicación, así como la ca ga de da os, se ealiza de mane a dinámica, casi
ins an ánea, asínc onamen e haciendo llamadas al se ido (backend con un API REST) y sob e odo sin
e esca la página en ningún momen o.
Angula se basa en clases ipo "Componen es. s", cuyas p opiedades son las usadas pa a hace el binding
9
de los da os. En dichas clases enemos p opiedades ( a iables) y mé odos ( unciones a llama ).
Angula es la e olución de Angula JS [23] aunque incompa ible con su p edeceso .
Figu a 15: A qui ec u a Angula
7
Un amewo k es una es uc u a concep ual y ecnológica de asis encia de inida, no malmen e, con a e ac os o módulos conc e os
de so wa e, como lib e ías, que puede se i de base pa a la o ganización y desa ollo del so wa e.
8
Modelo- is a-con olado (MVC) es un pa ón de a qui ec u a de so wa e, que sepa a los da os y la lógica de negocio de una aplicación
de su ep esen ación y el módulo enca gado de ges iona los e en os y las comunicaciones.
9
Binding: Enlazado o unión de a iables.

Tecnologías u ilizadas
33
A con inuación, se explica á la a qui ec u a que iene una aplicación en Angula . Pa a que sea más isual
la a qui ec u a que que emos explica , cada uno de los apa ados que se mues an a con inuación hacen
e e encia a los mos ados en la Figu a 15: A qui ec u a Angula .
3.3.1 Módulos
El bloque básico pa a cons ui una aplicación en Angula son los NgModules, es os p opo cionan una
compilación de los dis in os componen es, eniendo en cuen a el con ex o y haciendo uso de los módulos
que necesi e. Se á necesa io un módulo oo , el cual nos pe mi i á indica el es o de los módulos de los
que que emos hace uso pa a lanza la aplicación. Es e se llama po con ención AppModule. Es o ayuda
a o ganiza el código en módulos uncionales, de o ma que la adminis ación del desa ollo en
aplicaciones complejas sea más sencilla.
3.3.2 Componen es
Cada aplicación en Angula iene, al menos, un componen e: el componen e oo . Es e se enca ga de
conec a los dis in os componen es con el con enido que se ans ie e a la página Web, conocido como
documen objec model (DOM). Cada componen e de ine una clase que con iene los da os de la
aplicación y la lógica de es a. Es a clase es asociada con una plan illa HTML, que de ine la is a en la que
se a a mos a .
Pa a iden i ica una clase como componen e se u iliza el deco a o
10
@Componen (). Es e iden i ica a la
clase en la que se esc ibe como un componen e y le asocia un me ada o especí ico que lo iden i ica como
clase.
3.3.3 Plan illas, di ec i as y enlace de da os
Las plan illas combinan HTML con ma cado en Angula pa a que los elemen os HTML puedan se
modi icados an es de se mos ados. Las di ec i as de las plan illas p opo cionan al p og ama la lógica y
el ma cado pa a el enlazado que conec a los da os de la aplicación con el DOM.
Hay dos ipos de enlazado de da os:
• E en binding: deja a u aplicación esponde a una en ada de in o mación po pa e del usua io,
ac ualizando los da os de la aplicación.
• P ope y binding: deja in e pola los alo es que han sido ob enidos desde los da os de la
aplicación al HTML.
An es de que una is a sea p esen ada, Angula e alúa las di ec i as y esuel e el enlazado, haciendo uso
de las plan illas, pa a modi ica los elemen os HTML o el DOM, de acue do con la lógica del p og ama.
3.3.4 Se icios e inyección de dependencias
Pa a los da os o la lógica que no es á asociada con una is a especí ica y se quie e compa i con los
dis in os componen es, se c ean clases de Se icios. Pa a la de inición de una clase Se icio, se debe
acompaña del deco a o @Injec able (). Es e p opo ciona los me ada os pa a que o os componen es
puedan inyec a es as dependencias en sus clases.
La inyección de dependencias e pe mi e que us clases sean limpias y e icien es, ya que no ob ienen la
in o mación di ec amen e del se ido , sino que delega es o a los se icios, que inyec an lo ob enido.
10
Un deco a o es una unción que modi ica las clases de Ja aSc ip . Angula iene de inidos una se ie de deco a o s que asocia me ada os
especí icos a las clases. De es a o ma, el sis ema sabe qué clases son y cómo deben unciona .
34
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
3.3.5 Rou ing
El NgModule Rou e de Angula p opo ciona un se icio que e deja de ini una u a de na egación pa a
los di e en es es ados y is as de la aplicación. De es a o ma podemos accede a cada una de las is as de
la aplicación haciendo uso de la URL en la ba a de na egación del buscado o asociando bo ones de las
is as a u as.
Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a
35
4 APLICACIÓN DESARROLLADA: RASPBERRY PI
Y ECLIPSE KURA
a a qui ec u a del sis ema diseñado, cons a de es bloques di e enciados. La implemen ación en la
Raspbe y Pi, la pa e en la nube de Amazon y la aplicación Web. En es e capí ulo se p o undiza en
la implemen ación que in oluc a la Raspbe y Pi, así como su in eg ación con Eclipse Ku a.
4.1 Lec u a de in o mación de los senso es en la Raspbe y Pi
Los senso es DHT11, se comunican median e comunicación se ie a a és de los pines GPIO de la
Raspbe y Pi. Es os es a án conec ados a es a al y como se indica en el Anexo A: Ins alación de Senso es
DHT11 y Leds en Raspbe y Pi.
A a és de es os se puede ob ene la in o mación de empe a u a y humedad. Pa a ello, necesi an hace
uso de una lib e ía de Py hon, llamada Ada ui . Es a se enca ga de con e i la in o mación ecibida
median e comunicación se ie a un alo de empe a u a y humedad álido. Pa a la implemen ación de
es a, se ha u ilizado Py hon 3.
El código que es capaz de suminis a es a in o mación se co esponde con el iche o Ada ui DHT.py.
Es e código iene incluido como un enlace, en el paque e que ienen los senso es. Pa a desca ga es e se
puede accede a la Web p opo cionada como e e encia [2].
Pa a ejecu a lo enemos que ejecu a el comando que emos a con inuación y pasa le como pa áme os el
ipo de senso DHT que es, que en nues o caso es 11 y el pin GPIO al que es á conec ado, que en nues o
caso es el 20.
$ py hon Ada ui DHT.py 11 20
La in o mación ob enida de es a lec u a se á esc i a en el iche o empe a u a.log donde se almacena á
el his ó ico de empe a u a y humedades. El bundle de Eclipse Ku a accede á a es e y ob end á la
in o mación de los senso es.
L
I ha e no ailed. I´ e jus
ound 10,000 ways ha won´
wo k.
- Thomas A. Edison -
36
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
4.2 Publicación y susc ipción de la in o mación IoT Co e de Amazon AWS. Se icio
CloudSe ice.
Pa a la comunicación con el se icio IoT que p opo ciona Amazon AWS, u iliza emos el p o ocolo
MQTT. Publica emos y nos susc ibi emos a los opics que el IoT Co e nos p opo ciona pa a la
in e acción con las somb as. Los opics se en en el capí ulo 5.1.1 In e acción con el Obje o: Thing
Shadow. Eclipse Ku a p opo ciona un se icio pa a ello, CloudSe ice [24]. Es e nos p opo ciona á los
se icios que podemos e en la Figu a 16: CloudSe ice.
Figu a 16: CloudSe ice
Pa a nues o sis ema, han sido de u ilidad los se icios:
• CloudPublishe : Pe mi e a las aplicaciones publica en una pla a o ma cloud.
• CloudSusc ibe : Pe mi e a las aplicaciones susc ibi se a una pla a o ma cloud.
Pa a que odo uncione, es necesa io es ablece conexión con un CloudEnpoin . En nues o caso se á el
p opo cionado po Amazon AWS. En el apa ado Con igu ación pa a la compa ibilidad con AWS, del
Anexo B: Ins alación y con igu ación de Eclipse Ku a en Raspbe y Pi, se mues a cómo c ea un
CloudSe ice, asociándole un CloudEndpoin [25].
Una ez se ha c eado el CloudSe ice, podemos modi ica median e la in e az Web de Eclipse Ku a
pa áme os de es e en el apa ado MQTTDa aT anspo de Cloud Connec ions, en nues o caso,
asignamos los que se pueden e en la Figu a 17: MQTTDa aT anspo . Son los siguien es:
Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a
37
• B oke -u l: CloudEndpoin p opo cionado po Amazon AWS.
• Accoun -Name: Pa a una conexión con Amazon AWS. En nues o caso lo llama emos aws.
• Clien -id: Opcional, en nues o caso le hemos pues o hings. Lo u iliza emos pa a es ablece
la u a en la que publica /susc ibi nos.
• Topic: Topic en el que que emos publica . En nues o caso se á $#accoun -name/#clien -id. El
"#" lo elaciona con los pa áme os (accoun -name, clien -id) mencionados an e io men e.
Con es a con igu ación, los publicado es/susc ip o es lo ha án en los opics del CloudEndpoin indicado
en el campo B oke -u l. Además, lo ha án con la u a $aws/ hings g acias a la in o mación del
campo Topic.
Figu a 17: MQTTDa aT anspo
4.2.1 CloudPublishe
Pa a publica la in o mación en un opic de Amazon AWS, c ea emos un se icio CloudPublishe . Pa a
c ea uno, lo hemos ealizado al y como se indica en el u o ial de Eclipse Ku a [25].
Pa iendo de que ya hemos c eado el CloudSe ice, como se indica en el Anexo B: Ins alación y
con igu ación de Eclipse Ku a en Raspbe y Pi. Debemos i al menú que apa ece en la pa e izquie da de
la in e az Web de Eclipse Ku a.
En es e seleccionamos Cloud Connec ions. Hacemos click sob e el CloudSe ice que enemos c eado.
P esionamos sob e el bo ón que indica New Pub/Sub. Le asignamos el PID (nomb e) que que amos y
elegimos que que emos un Publishe . A con inuación, se nos mos a á el desplegable de con igu ación
que se mues a en la Figu a 18: CloudPublishe .

38
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 18: CloudPublishe
Lo des acable de la con igu ación, que podemos e en la Figu a 18: CloudPublishe es que le hemos
indicado en el campo Applica ion Id, la u a pa a hace e e encia a la somb a de un obje o, en es e caso
ku a-ga eway/shadow.
En el campo Applica ion Topic, le hemos asignado upda e, ya que cuando publicamos, lo que
que emos es ac ualiza una somb a. Po lo an o, la u a del opic en el que amos a publica es:
$aws/ hings/ku a-ga eway/shadow/upda e
En el apa ado 5.1.1 In e acción con el Obje o: Thing Shadow e emos que se co esponde con la u a
que nos p opo ciona IoT Co e de AWS pa a ac ualiza el es ado de una somb a median e MQTT.
4.2.2 CloudSusc ibe
La in o mación y con igu ación en el CloudSusc ibe es análoga a la del CloudPublishe . Po lo que pa a
c ea un CloudSusc ibe , lo podemos hace como se ha indicado en el apa ado 4.2.1 CloudPublishe ,
pe o indicando que que emos un CloudSusc ibe en luga de un CloudPublishe . Lo des acable de es e es
la u a del opic a la que nos amos a susc ibi , que es:
$aws/ hings/ku a-ga eway/shadow/upda e/accep ed
Es a es la u a en la que se publica el es ado de una Somb a una ez se ha ac ualizado.
Pa a pode e la in o mación que ecibimos de es e, lo amos a enlaza con el se icio Logge que
p opo ciona Eclipse Ku a. Es e se icio nos esc ibi á en el iche o / a /log/ku a.log oda la
in o mación que ecibamos. Pa a ealiza el enlazado, se puede hace median e la in e az Web de Eclipse
Ku a. Se hace de mane a g á ica, al y como se puede e en la Figu a 19: Ku a Wi es.
Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a
39
Se deben selecciona de la columna Wi e Componen s los componen es que que emos enlaza , en es e
caso Susc ibe y Logge . Con el uso del a ón se conec an ambos componen es.
Figu a 19: Ku a Wi es
De es a o ma, si mos amos el con enido del iche o / a /log/ku a.log ob enemos la
in o mación ecibida del opic al que nos hemos susc i o. Es o se mues a en la Figu a 20: Fiche o
/ a /log/ku a.log.
Figu a 20: Fiche o / a /log/ku a.log
4.3 Bundle implemen ado en Eclipse Ku a: Hea e
Como ya se comen ó en la sección 3.1.1.1 Bundles, los bundles son unos JAR y un mani ies o. Pa a
implemen a es os bundles, es necesa io u iliza Eclipse como en o no de desa ollo [26]. Pa a desa olla
nues os bundles se han u ilizado los ejemplos que apa ecen en es a documen ación.
La clase que se enca ga de ob ene la in o mación de los senso es y de implemen a los mé odos
necesa ios pa a el uncionamien o de cada uno de los se icios que u iliza y expo a es la clase
Hea e .ja a.
40
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
A con inuación, se an a de alla los iche os de me ada os del bundle, los se icios que es a usa y su
uncionamien o.
4.3.1 Fiche os de me ada os
P opo ciona án in o mación ace ca de nues o bundle. Es os iche os son: MANIFEST.MF y
componen .xml
4.3.1.1 MANIFEST.MF
El iche o MANIFEST.MF de nues o p oyec o es el siguien e:
Mani es -Ve sion: 1.0
Bundle-Mani es Ve sion: 2
Bundle-Name: o g.eclipse.ku a.demo.hea e
Bundle-SymbolicName: o g.eclipse.ku a.demo.hea e ;single on:= ue
Bundle-Ve sion: 1.0.600.quali ie
Bundle-Vendo : Eclipse Ku a
Bundle-Requi edExecu ionEn i onmen : Ja aSE-1.8
Se ice-Componen : OSGI-INF/*.xml
Bundle-Ac i a ionPolicy: lazy
Impo -Package: o g.eclipse.ku a.cloud; e sion="[1.0,2.0)",
o g.eclipse.ku a.cloudconnec ion.lis ene ; e sion="[1.0,2.0)",
o g.eclipse.ku a.cloudconnec ion.message; e sion="[1.0,2.0)",
o g.eclipse.ku a.cloudconnec ion.publishe ; e sion="[1.0,2.0)",
o g.eclipse.ku a.con igu a ion; e sion="[1.0,2.0)",
o g.eclipse.ku a.message; e sion="[1.0,2.0)",
o g.osgi.se ice.componen ; e sion="1.2.0",
o g.sl 4j; e sion="1.6.4"
Con la cabece a Mani es -Ve sion indicamos la e sión de la especi icación pa a iche os
mani ies o que sigue el iche o. En es e caso la 1.0.
El es o de las cabece as que comienzan po Bundle- nos especi ican ca ac e ís icas de OSGi. Las más
des acadas son:
• Bundle-Name: Especi ica el nomb e del bundle.
• Bundle-SymbolicName: Especi ica el nomb e del paque e que iden i ica al bundle.
• Bundle-Ve sion: Especi ica la e sión del bundle.
• Bundle-Requi edExecu ionEn i onmen : Especi ica la e sión de Ja a con la
que se ejecu a.
Con la cabece a Se ice-Componen : especi icamos la u a local al p oyec o donde se si úa un
iche o de de inición del componen e componen .xml.
Median e la cabece a Impo -Package indicamos las dependencias necesa ias del wo kspace de
Ku a pa a el uncionamien o de nues o Bundle.
4.3.1.2 componen .xml
Es e iche o nos pe mi e indica cual es la clase p incipal del bundle, los se icios que implemen a,
expo a y u iliza. En nues o p oyec o es el siguien e:
Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a
41
<?xml e sion="1.0" encoding="UTF-8"?>
<sc :componen xmlns:sc ="h p://www.osgi.o g/xmlns/sc / 1.2.0"
name="o g.eclipse.ku a.demo.hea e .Hea e "
ac i a e="ac i a e"
deac i a e="deac i a e"
modi ied="upda ed"
enabled=" ue"
immedia e=" ue"
con igu a ion-policy=" equi e">
<implemen a ion class="o g.eclipse.ku a.demo.hea e .Hea e "/>
<p ope y name="se ice.pid" ype="S ing"
alue="o g.eclipse.ku a.demo.hea e .Hea e "/>
<se ice>
<p o ide
in e ace="o g.eclipse.ku a.con igu a ion.Con igu ableComponen "/>
</se ice>
< e e ence name="CloudPublishe "
policy="dynamic"
bind="se CloudPublishe "
unbind="unse CloudPublishe "
ca dinali y="0..1"
in e ace="o g.eclipse.ku a.cloudconnec ion.publishe .CloudPublishe "/
>
</sc :componen >
El elemen o aiz es sc :componen . Median e el elemen o implemen a ion indicamos que
clase es nues a clase componen e. Es a clase que se enca ga de implemen a los mé odos ac i a e y
deac i a e pa a a anca y pa a el bundle.
Es e además con iene un elemen o se ice po cada se icio que implemen a y expo a. Con iene un
elemen o e e ence po cada se icio que u iliza. En es e caso implemen a y expo a
Con igu ableComponen y u iliza el se icio CloudPublishe .
En cada elemen o se ice, indicamos median e el elemen o p o ide cuál es la in e az del se icio
que se implemen a.
En nues o caso: o g.eclipse.ku a.con igu a ion.Con igu ableComponen .
En cada elemen o e e ence, indicamos median e el a ibu o:
• name: El nomb e del se icio.
• policy: Polí ica asociada.
• bind: Mé odo llamado pa a ob ene la e e encia del se icio.
• unbind: Mé odo llamado pa a elimina la e e encia del se icio.
Po lo an o, la clase Hea e debe:
• Implemen a la in e az Con igu ableComponen .
• Implemen a los mé odos ac i a e, deac i a e y upda e.
• Implemen a los mé odos se CloudPublishe y unse CloudPublishe .
48
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 25: Ku a Wi es
El con enido del sc ip es el siguien e:
a eco d = inpu . eco ds[0] //Se ob iene la in o mación del
Susc ibe
o ( a p op in eco d) { // Se i e a en el con enido ecibido
i ( eco d[p op].ge Type()==BOOLEAN){ //Se busca el campo con
in o mación booleana
logge .in o('{}: {}', p op, eco d[p op])
a coun e Reco d = newWi eReco d() //Flujo de salida
coun e Reco d.LED = eco d[p op] // Se asigna el alo al Led
ou pu .add(coun e Reco d) //Se inse a el alo en el lujo de
salida
}
}
De es a o ma, se consigue encende /apaga el LED conec ado al pin GPIO 21 cuando se eciba
in o mación de con ol (boolean) en el opic al que es á susc i o el CloudSusc ibe . En las igu as: Figu a
26: Con ol enciende LED, Figu a 27: Con ol apaga LED, se e leja el mensaje MQTT que p oduce es e
cambio.

Aplicación desa ollada: Raspbe y Pi y Eclipse Ku a
49
Figu a 26: Con ol enciende LED
Figu a 27: Con ol apaga LED
50
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
5 APLICACIÓN DESARROLLADA: CLOUD
COMPUTING EN AMAZON AWS
an can idad del desa ollo ealizado en es e abajo es á di ec amen e implemen ado sob e los
se icios que p opo ciona el en o no de Amazon Cloud Compu ing. En es e capí ulo se analiza
cómo se ha conseguido desa olla en es e en o no conc e o an o el conexionado de los
se icios que o ece, como el código que lo hace posible. En el Anexo C: C eación de usua ios y
con igu ación de se icios en AWS, se mues a la in o mación necesa ia pa a egis a nos en AWS, así
como los pasos necesa ios pa a c ea cada uno de los se icios u ilizados.
5.1 IoT Co e: Pue a de acceso al Cloud Compu ing pa a un Ga eway IoT.
Nues o sis ema es á pensado pa a que pueda se usado an o po un único e a io, como po múl iples
e a ios que pod ían llega a ag upa se en iendas. Pa a simplicidad y acilidad, se a a supone que un
e a io con iene una Raspbe yPi, jun o con los senso es necesa ios pa a ob ene la in o mación. Así es
como se mues a en la Figu a 1: Esquema de la a qui ec u a.
Es po es o po lo que es de i al impo ancia sepa a la in o mación de cada e a io. Del mismo modo,
es necesa io que cada e a io enga una iden idad y que es o le pe mi a maneja su in o mación de
mane a segu a, es deci , que nadie que no enga pe misos pa a accede a la in o mación de es e pueda
en ia u ob ene in o mación ela i a a él.
Pa a ello se hace uso del componen e Regis o que p opo ciona IoT Co e.
Cada e a io se c ea á en el sis ema como un "Obje o" en el egis o de "Obje os". Pa a más in o mación
de cómo egis a un obje o en IoT Co e, consul a el apa ado 7.4 IoT Co e del Anexo C: C eación de
usua ios y con igu ación de se icios en AWS.
Como podemos obse a , hemos c eado un Obje o denominado "ku a-ga eway" co espondien e a una
Raspbe y Pi con Eclipse Ku a ins alado. Pa a cada obje o, en su c eación se c ea y se ac i a un
ce i icado, del cual podemos ob ene su cla e p i ada. Es o se mues a en la Figu a 28: Ce i icado
asociado a un obje o.
G
I you business is no on he
In e ne , hen you business will
be ou o business.
- Bill Ga es -
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
51
Figu a 28: Ce i icado asociado a un obje o
Con es e ce i icado, el Obje o adquie e una Iden idad, que u iliza el componen e Se icio de segu idad
e iden idad pa a que la Raspbe y Pi pueda conec a se a la nube y accede a la in o mación en su
nomb e. La uncionalidad del se icio de segu idad e iden idad es la que se de alla en el apa ado 3.2.1
AWS IoT Co e
A es e ce i icado se le an a asocia unas Polí icas pe sonalizadas, que nos an a pe mi i es ingi el
núme o de Raspbe y Pi que pueden publica en un Obje o. Pa a su simplicidad, se end á en cuen a la
conside ación ealizada an e io men e y a cada obje o asigna emos una Raspbe y Pi.
52
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 29: Polí ica asociada a un ce i icado
Como emos en la Figu a 29: Polí ica asociada a un ce i icado, el documen o de una polí ica se esc ibe
en o ma o JSON, y su obje o S a emen con iene una se ie de eglas en las que se especi ica si se
pe mi e o no (E ec ) una ope ación (Ac ion) sob e un ecu so (Resou ce) [30].
Si quisié amos asigna una es icción de los disposi i os que se pueden conec a bas a ía con cambia a
" Resou ce" : " opic_publicación_eclipse_ku a
12
"
5.1.1 In e acción con el Obje o: Thing Shadow
Pa a cada obje o se c ea una Somb a de es e, haciendo uso del componen e Somb a del Disposi i o, que
no es más que un documen o JSON que nos indica el es ado de un obje o.
12
opic_publicacion_eclipse_ku a: Ru a del opic MQTT en el que se quie a publica /susc ibi .
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
53
Figu a 30: Somb a de un Obje o
Como podemos e en la Figu a 30: Somb a de un Obje o, cada Somb a puede ene a ios es ados, con
in o mación ela i a a es e.
• El es ado desi ed co esponde a una in o mación de es ado deseado. En es e campo es donde se
modi ica á y almacena á la in o mación p oceden e de la aplicación Web pa a con ola cada uno
de los e a ios.
• El es ado epo ed co esponde a una in o mación de es ado epo ado. En es e campo es donde
se modi ica á y almacena á la in o mación p oceden e del Disposi i o Ku a, ya que con end á la
in o mación epo ada po cada uno de los senso es.
• El es ado del a co esponde a una in o mación de es ado a ian e. En es e campo se incluye la
in o mación que se ha modi icado en la úl ima ac ualización de una Somb a. Es de g an u ilidad
pa a comp oba que odo unciona según lo espe ado y no se ha p oducido ningún e o .
Pa a pode in e ac ua con los dis in os obje os c eados u iliza emos el componen e Se icio De ice
Shadow. La uncionalidad de es e se indica en el apa ado 3.2.1 AWS IoT Co e. Es e componen e nos
p opo ciona la posibilidad de ac ualiza y ob ene in o mación de una Somb a median e:
1. Un pun o de enlace a una API REST [31]:
Es a API es la que u iliza emos pa a ac ualiza la in o mación de la somb a desde la aplicación Web. Los
mé odos que p opo ciona son: GET, UPDATE y DELETE.
2. Un ema MQTT pa a ac ualiza , ob ene o elimina la in o mación de es ado de una Somb a [32]:
En los emas MQTT que podemos e en la Figu a 31: Se icio De ice Shadow, nos susc ibi emos y
publica emos la in o mación ob enida p oceden e/des inada a la Raspbe y Pi.

54
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 31: Se icio De ice Shadow
5.1.2 Reglas
Las eglas son una pa e undamen al pa a la in e conexión en e los dis in os se icios que p opo ciona
AWS.
Es as son acciones que ealiza cuando se p oduce un e en o dado, ya sea un mensaje ecibido/en iado
po un obje o o ac ualiza la somb a de es e. Es as eglas necesi an sabe el o igen de los mensajes, y los
a ibu os que se quie en de es e. Pa a acili a su uso, es as consul as se ealizan en lenguaje SQL:
SELECT <A ibu e> FROM <Topic Fil e > WHERE <Condi ion>
En la Figu a 32: Acciones AWS, se mues an las di e en es acciones que se pueden hace desde el IoT
Co e.
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
55
Figu a 32: Acciones AWS
Pa a el desa ollo de nues a pla a o ma, han sido de g an u ilidad las eglas de Inse a un mensaje en
una abla de DynamoDB, así como In oca a una unción Lambda pa a pasa los da os del
mensaje. El uncionamien o de es as se de alla á en los apa ados a con inuación.
Pa a el desa ollo de nues a aplicación, hemos c eado una egla llamada sendToDB. Es a se enca ga de
in oca una unción Lambda cuando se ac ualiza la Somb a de un Obje o.
Cuando se p oduce la egla, a la unción Lambda se le pasa el con enido de es a somb a, así como el
nomb e del Obje o al cual se le es á ac ualizando la Somb a. Es o se consigue con la sen encia SQL:
SELECT s a e. epo ed.* , s a e.desi ed.* , opic(3) AS ku aId FROM
'$aws/ hings/+/shadow/upda e/accep ed'
Ya que es a íamos haciendo un SELECT sob e el opic en el que se gua da la in o mación ac ualizada de
una Somb a ($aws/ hings/+/shadow/upda e/accep ed) y ex ayendo los pa áme os de es ado "deseado" y
" epo ado".
Como acla ación, el '+' es el elemen o comodín pa a elegi el opic, (es como un *). Signi ica cualquie a.
Es o es de g an u ilidad de ca a a la escalabilidad, ya que amos a pode u iliza la misma egla pa a
ob ene la Somb a de odos los Obje os que engamos c eados. Pa a sabe de qué obje o se ha ob enido la
in o mación, se ob iene ambién el pa áme o opic (3), co espondien e al e ce elemen o de la u a del
opic, que se co esponde ía con lo que se in oduce en el elemen o '+'.
En caso de que se p oduzca algún e o se en ia á un mensaje con los da os de e o a CloudWa ch
13
.
Desde la in e az Web de AWS, una ez se ha c eado la egla, se nos debe mos a la in o mación
con enida en la Figu a 33: Regla SendToDB.
13
CloudWa ch es el se icio de e en os y ale as in e no de Amazon AWS.
56
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 33: Regla SendToDB
5.2 Dynamo DB
Pa a almacena la in o mación pe enecien e a los es ados de las dis in as Somb as, u iliza emos una Base
de Da os noSQL. El obje i o de es a Base de Da os es la de almacena un his ó ico de los dis in os
es ados en los que se ha encon ado un e a io, pa a pode isualiza lo y ac ua en consecuencia.
Además, es a se á la Base de Da os a la que se acceda median e la API REST p opo cionada po API
Ga eway.
Hemos c eado una abla llamada e a io. Es a iene una cla e p ima ia llamada ku aId (s ing) y una
cla e de o denación llamada da e (numbe ). Se han elegido de es a o ma ya que iden i ica emos a cada
e a io po su nomb e y u iliza emos la cla e de o denación pa a accede al his ó ico de in o mación po
echas de un e a io. Una ez hayamos c eado la abla, se nos debe mos a la in o mación que se
mues a en la Figu a 34: In o mación Base de Da os e a io.
La Base de Da os posee un ARN p opio, que u iliza emos pa a asigna los dis in os pe misos necesa ios
pa a pode lee /esc ibi en es a desde el es o de los se icios de AWS. Tan o la c eación de la Base de
Da os como el ARN se e en más de enimien o en el Anexo C: C eación de usua ios y con igu ación de
se icios en AWS, apa ado 7.5 DynamoDB.
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
57
Figu a 34: In o mación Base de Da os e a io
Pa a el uso que se ha de inido, la abla con end á elemen os con in o mación:
• ku aId (s ing): Nomb e iden i ica i o que se le asigna al e a io.
• da e (numbe ): Fecha en la que se ha incluido la in o mación.
• name (s ing): Nomb e que indica in o mación ace ca del e a io, como el dueño o la ienda.
• ype (s ing): Campo que indica si la in o mación in oducida es de ipo desi ed o epo ed.
• humidi yDesi ed (s ing): Humedad deseada.
• humidi yRepo ed (s ing): Humedad epo ada.
• empe a u eDesi ed (s ing): Tempe a u a deseada.
• empe a u eRepo ed (s ing): Tempe a u a epo ada.
• mois u eRepo ed (s ing): Campo que indica si ha habido alguna incidencia o no.
• id (numbe ): Índice que hace e e encia a un e a io en un momen o dado. Es de u ilidad pa a
accede a un es ado dado del e a io desde la aplicación Web.
En la Figu a 35: Elemen os de e a io, podemos obse a cómo se isualizan los dis in os elemen os que
se incluyen en la abla.
Figu a 35: Elemen os de e a io
64
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Como podemos obse a en la Figu a 44: Función dynamodb_w i e, iene un e en o desencadenado , la
API Ga eway. Po lo an o, el con enido del obje o e en con end á la in o mación ela i a a la
pe ición HTTP que se haga a es a. En el apa ado de API Ga eway se indica cómo se iene que en ia es a
in o mación pa a que ambos ex emos puedan unciona . Se esponde á a la pe ición HTTP con el
esul ado de la ejecución del código.
Como es a unción se enca ga de ac ualiza el es ado de la Somb a, no es necesa io que acceda a la Base
de Da os, pe o si a la Somb a del Obje o. Pa a ello, son necesa ias las líneas de código:
cons AWS = equi e('aws-sdk');
a con ig = {
" hingName":"ku a-ga eway",
"endpoin Add ess":"a2i 4dwpo41h6e-a s.io .eu-wes 3.amazonaws.com"
};
a io da a = new AWS.Io Da a({endpoin : con ig.endpoin Add ess});
Donde hingName se co esponde con el nomb e del Obje o al que que emos accede y
endpoin Add ess es la di ección co espondien e al pun o de acceso pe sonalizado que podemos ob ene
en nues o IoT Co e. En el Anexo C: C eación de usua ios y con igu ación de se icios en AWS, IoT
Co e se e de o ma de allada como ob ene es a di ección. La di ección es la que se mues a en la Figu a
45: Pun o de acceso pe sonalizado.
Figu a 45: Pun o de acceso pe sonalizado
Pa a que la ac ualización de la Somb a sea posible, c eamos una a iable llamada upda e, con la
in o mación pe enecien e al es ado "desi ed"
14
que puede ene la Somb a de un Obje o.
Con el mé odo upda eThingShadow() ac ualiza emos la in o mación de la Somb a, incluyendo en es a
la in o mación de la a iable upda e [34]. El con enido de es e se mues a en la Figu a 46: Mé odo
upda eThingShadow.
14
Como mencionamos en el apa ado 5.1.1 In e acción con el Obje o: Thing Shadow, el es ado "desi ed" es el que u iliza emos pa a
almacena la in o mación pe enecien e a la in e acción de la aplicación Web, po lo que es es e el es ado que ac ualiza emos.

Aplicación desa ollada: Cloud Compu ing en Amazon AWS
65
Figu a 46: Mé odo upda eThingShadow
Cabe des aca que como con es a unción lo que ac ualizamos es la Somb a de un Obje o, como
consecuencia di ec a, se in oca la unción Lambda shadowToDB, po lo que ambién se ac ualiza ía la
Base de Da os con la in o mación del nue o es ado de la Somb a.
Po lo an o, si ealizamos una pe ición POST a la URL que nos p opo ciona la API Ga eway, que
e emos en el apa ado 5.4 API Ga eway, con la in o mación de un nue o es ado de la Somb a, es a se
ac ualiza á y pod emos consul a lo an o en el IoT Co e, como en la Base de Da os. Pa a es a pe ición
hacemos uso de Pos man. Es o se ecoge en las igu as:
Figu a 47: Ac ualización somb a median e POST usando Pos man, Figu a 48: Somb a ac ualizada en IoT
Co e y Figu a 49: Base de Da os ac ualizada con el nue o es ado de la somb a.
Figu a 47: Ac ualización somb a median e POST usando Pos man
66
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 48: Somb a ac ualizada en IoT Co e
Figu a 49: Base de Da os ac ualizada con el nue o es ado de la somb a.
5.4 API Ga eway
Pa a que nues o sis ema se e less en la nube sea de u ilidad, es necesa io que o as aplicaciones puedan
accede , sin ene conocimien o de cómo es én implemen adas es as a a és de una API. Amazon AWS
p opone una he amien a denominada API Ga eway pa a ello. Es a nos p opo ciona acceso a los ecu sos
que enemos en AWS a a és de una API REST. Po lo an o, pod emos accede a es e se icio
ealizando pe iciones HTTP.
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
67
G acias a es o, end emos desa ollado el backend de nues a aplicación, sin ene que desplega noso os
mismos un se ido local, sino que lo " end emos en la nube". Pa a que sea más isual lo que se quie e
consegui con odos es os se icios, es de g an ayuda la Figu a 50: Backend IoT AWS [35]:
Figu a 50: Backend IoT AWS
Como podemos e , el backend de nues o sis ema es a ía compues o po :
• En o no IoT:
El cual in oluc a la Somb a de un Obje o. In e acciona emos con es a median e su opic IoT. Además,
end emos una se ie de eglas que ienen como obje i o inal in oduci la in o mación de es a Somb a en
una Base de Da os. Pa a ello se ha á uso de una unción Lambda llamada shadowToDB.
• En o no Web:
En es e en o no ob enemos/modi icamos la in o mación que hemos almacenado an o en la Somb a de un
Obje o, como en la Base de Da os median e HTTP. Pa a ello ha emos uso de una API REST,
p opo cionada po API Ga eway.
Es a in oca á a la unción Lambda dynamodb_ ead si que emos lee in o mación de la Base de Da os o
a la unción dynamodb_w i e si que emos publica in o mación en el opic IoT pa a ac ualiza una
somb a, y como consecuencia, ac ualiza la Base de Da os.
Pa a ello, en la he amien a API Ga eway c ea emos una API, llamada ku a. La in o mación de cómo
c ea una API se ecoge en el Anexo C: C eación de usua ios y con igu ación de se icios en AWS. En la
Figu a 51: API ku a podemos e la API c eada.
Figu a 51: API ku a
68
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
En es a c ea emos los mé odos median e los cuales que emos accede a los ecu sos. En nues o caso
se án los mé odos GET y POST pa a ob ene y modi ica la in o mación espec i amen e. En el Anexo C:
C eación de usua ios y con igu ación de se icios en AWS, apa ado 7.7 API Ga eway se indica como
c ea los di e en es mé odos que se mues an en la Figu a 52: Recu sos API ku a.
Figu a 52: Recu sos API ku a
5.4.1 Mé odo GET
El mé odo GET co espondien e a la API REST llamada ku a, que se ha c eado con API Ga eway, se ha
con igu ado pa a que llame a una unción Lambda. En es e caso a la unción dynamodb_ ead, is a en el
apa ado 5.3.2 Función dynamodb_ ead. Un esquema de es e mé odo se mues a en la Figu a 53: Mé odo
GET. En es e se mues a la secuencia en la que se p oduce la ejecución de un mé odo GET.
No se le han con igu ado pa áme os de segu idad, po lo que ac ualmen e, cualquie a que disponga de la
URL que nos p opo ciona la API al implemen a la, pod á accede a la in o mación de la Base de Da os.
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
69
Figu a 53: Mé odo GET
Pa a que podamos accede a la base de da os y consul a un único elemen o de la abla (u iliza mé odo
ge () de la unción Lambda), es necesa io que añadamos una plan illa de mapeo como la que se mues a
en la Figu a 54: Plan illa de mapeo GET. En el Anexo C: C eación de usua ios y con igu ación de
se icios en AWS se indica como c ea an o un mé odo de la API como las plan illas de mapeo.
Figu a 54: Plan illa de mapeo GET
Es o lo que indica son los dis in os pa áme os que podemos ob ene en la pe ición GET. En es e caso,
enemos un campo en o ma o JSON: "ku aId":"iden i icado ", cuando en iemos la
in o mación a la unción Lambda, se co esponde á con la in o mación que con enga e en .ku aId.
5.4.2 Mé odo POST
El mé odo POST co espondien e a la API REST llamada ku a, que se ha c eado con API Ga eway, se ha
con igu ado pa a que llame a una unción Lambda. En es e caso a la unción dynamodb_w i e, is a en
el apa ado 5.3.3 Función dynamodb_w i e. Un esquema de es e mé odo se mues a en la Figu a 55:
Mé odo POST. En es e se mues a la secuencia en la que se p oduce la ejecución de un mé odo POST.
No se le han con igu ado pa áme os de segu idad, po lo que ac ualmen e, cualquie a que disponga de la
URL que nos p opo ciona la API al implemen a la, pod á accede a la in o mación de la Base de Da os.

70
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 55: Mé odo POST
Pa a que podamos ac ualiza la in o mación de la Somb a, es necesa io que añadamos una plan illa de
mapeo, pa a que la nue a in o mación se aslade a la unción Lambda al y como es a lo espe a. Es a se
mues a en la Figu a 56: Plan illa de mapeo POST. En el Anexo C: C eación de usua ios y con igu ación
de se icios en AWS se indica como c ea an o un mé odo de la API como las plan illas de mapeo.
Figu a 56: Plan illa de mapeo POST
Aplicación desa ollada: Cloud Compu ing en Amazon AWS
71
Es o lo que indica es la in o mación ecibida en o ma o JSON, de igual mane a que con el mé odo GET.
5.4.3 Implemen ación de la API
Una ez hemos c eado los dis in os mé odos que end á nues a API, end emos que implemen a la, pa a
que consigamos una URL a la cual accede . Pa a ellos enemos que c ea una E apa. Es o nos pe mi e
ene a ias API de unos mismos mé odos, con el in de pode p oba nue as e siones de la API sin que
la que es á en uncionamien o deje de es a lo. En nues o caso, c ea emos la E apa p od. Pa a más
in o mación de cómo c ea una E apa, consul a el Anexo C: C eación de usua ios y con igu ación de
se icios en AWS. En la Figu a 57: E apa p od se mues a la API implemen ada.
Figu a 57: E apa p od
Si que emos accede a los ecu sos que p opo ciona es a API, end emos que accede a la URL
h ps://l jjl cw 8.execu e-api.eu-wes -3.amazonaws.com/p od/ku a
El esul ado es el que se mues a en la Figu a 58: Acceso API. Como podemos e , la in o mación
mos ada se co esponde con el de la base de da os an e io men e mos ada en la Figu a 49: Base de
Da os ac ualizada con el nue o es ado de la somb a..
Figu a 58: Acceso API
72
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
6 APLICACIÓN DESARROLLADA: INTERFAZ WEB
ANGULAR
a a pode ob ene oda la in o mación almacenada en la Base de Da os, así como pode
in e ac ua con la Somb a de un Obje o y po consecuen e, la Raspbe y Pi, se ha p opo cionado
una in e az de usua io o on end desa ollado en Angula .
6.1 Módulos u ilizados
En el iche o app.module. s es donde hemos indicado los dis in os módulos de Angula que amos a
u iliza , así como los componen es que hemos decla ado noso os mismos.
Figu a 59: Módulo app.module. s
P
The only way o do g ea wo k is o lo e
wha you do. I you ha en' ound i ye , keep
looking. Don' se le
- S e e Jobs -
Aplicación desa ollada: In e az web Angula
73
Como podemos e en la Figu a 59: Módulo app.module. s, se impo an al código los dis in os módulos y
componen es a a és de las u as donde se encuen an cada uno de los módulos que se quie en
e e encia pos e io men e en @NgModule{}.
Los módulos que se impo an p o ienen de la lib e ía de Angula y son:
• B owse Module: Pe mi e hace búsquedas de elemen os en los da os de la aplicación.
• Fo msModule: Pe mi e ellena un o mula io y ans e i la in o mación a los da os de la
aplicación.
• AppRou ingModule: Pe mi e hace Rou ing den o de la aplicación.
• H pClien Module: Pe mi e hace pe iciones HTTP a la API REST.
Los componen es que se decla an y expo an como consecuencia, son los c eados pa a lle a a cabo las
uncionalidades deseadas y son:
• AppComponen : Componen e p incipal, es la p ime a is a que se mues a. Se enca ga de llama
al es o de componen es.
• Dashboa dComponen : Componen e que mues a los úl imos e a ios a los que hemos
accedido, pe mi iendo hace click en ellos pa a ob ene una in o mación más de allada.
• Te a iosComponen : Componen e que almacena cada uno de los e a ios, así como la
in o mación ecien e de cada uno de es os.
• Te a iosDe ailComponen : Componen e que con iene la in o mación de cada uno de los
e a ios, así como el his ó ico de empe a u a de es os.
• MessagesComponen : Componen e que nos pe mi e sabe el es ado de cada una de las pe icione
ealizadas, en o ma de mensajes, pa a la depu ación.
La implemen ación de es os componen es se de alla en el apa ado 6.3 Componen es Implemen ados.
6.2 Se icio Te a io Se ice
Es e se icio es el enca gado de ealiza las pe iciones HTTP a la API REST que nos p opo ciona API
Ga eway, is a en el apa ado 5.4 API Ga eway. Pa a ello hace uso del módulo HTTPClien . Es e
p opo ciona los mé odos GET y POST necesa ios pa a ob ene la in o mación almacenada en AWS.
Los pa áme os de con igu ación que amos a u iliza son los que se mues an en la Figu a 60:
Con igu ación e a io.se ice. s.
80
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
@Componen ({
selec o : 'app- e a ios',
empla eU l: './ e a ios.componen .h ml',
s yleU ls: ['./ e a ios.componen .css']
})
C eamos dos obje os, pa a hace el mapeo del JSON ob enido a clases a las que podamos accede .
e a ios: Te a io[];
i ems: I ems;
Po úl imo, cabe des aca el mé odo que se llama á pa a ob ene los e a ios. Es e se susc ibi á a el
mé odo ge Te a ios() de Te a ioSe ice.
ge Te a ios(): oid { his. e a ioSe ice.ge Te a ios()
.subsc ibe(i ems => {
his.i ems = {
i ems: (i ems as any).I ems,
coun : (i ems as any).Coun ,
scannedCoun : (i ems as any).ScannedCoun
};
his. e a ios = his.i ems.i ems;
console.log( his. e a ios);
});
}
Es o lo que hace es asigna al obje o i ems, el JSON ob enido de la pe ición GET. Pos e io men e, al
obje o e a ios se le asignan odos los e a ios que se ob ienen, que es el con enido de la a iable
i ems del obje o i ems. De es a o ma, la is a ob iene odos los e a ios.
6.3.4 Componen e Dashboa d Componen
Es e componen e nos pe mi e ob ene una is a ápida de los úl imos e a ios a los que hemos accedido.
6.3.4.1 Vis a HTML
En es e componen e, la is a queda al y como se mues a en la Figu a 66: Página p incipal. La única
di e encia es el amaño de los bo ones.
6.3.4.2 Da os y lógica TypeSc ip
La lógica de es e componen e es idén ica a la del componen e Te a ios, pe o a la ho a de asigna los
e a ios al obje o e a ios, sólo se asigna án los 2 p ime os. Es o se consigue con la siguien e línea de
código:
his. e a ios = his.i ems.i ems.slice(0,2);
6.3.5 Componen e Te a ios De ail
Es e componen e es el que nos pe mi e e el his ó ico de empe a u as que ha enido un e a io dado.
Además, pe mi e con ola el e a io median e un o mula io.

Aplicación desa ollada: In e az web Angula
81
6.3.5.1 Vis a HTML
Es e componen e nos mos a á en o ma de lis a el his ó ico de empe a u a y humedad de un e a io.
Además, se pod á ellena un o mula io que nos pe mi a ac i a o desac i a el con olado y en ia la
empe a u a o humedad deseada. La is a en el na egado Web se ía la mos ada en la Figu a 69: Vis a
Te a ios De ail.
Figu a 69: Vis a Te a ios De ail
Pa a ep esen a cada uno de los es ados del e a io en o ma de lis a se ha empleado el siguien e código:
<ul class=" e a ios">
<li *ngFo ="le e a io o e a ios">
<a>
<span class="badge">Fecha: {{ e a io.da e}} </span>
Tempe a u a: {{ e a io. empe a u eRepo ed}} Humedad:
{{ e a io.humidi yRepo ed}}
</a>
</li>
</ul>
Pa a c ea el o mula io y asigna es a in o mación a los da os de la pa e TypeSc ip se ha empleado el
siguien e código:
<di >
<label>Ac i a /Desac i a Con olado :
<inpu # e a ioCon ol />
</label>
<label> Tempe a u a deseada:
<inpu # empe a u e />
</label>
82
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
<label> Humedad deseada:
<inpu #humidi y />
</label>
<!-- (click) passes inpu alue o add() and hen clea s he inpu
-->
<bu on (click)="add( e a ioCon ol. alue, empe a u e. alue,
humidi y. alue); e a ioCon ol. alue=''; empe a u e. alue='';
humidi y. alue=''">
En ia
</bu on>
</di >
De es a o ma, cuando le demos al bo ón en ia de la in e az Web, se en ia á una pe ición POST a la
URL "h ps://l jjl cw 8.execu e-api.eu-wes -3.amazonaws.com/p od/ku a" p opo cionada po API
Ga eway de AWS con el con enido del o mula io en el cue po de la pe ición POST.
Es a se enca ga á de in oca a la unción Lambda 5.3.3 Función dynamodb_w i e pa a ac ualiza la
Somb a del Obje o co espondien e y la Base de Da os. Como la Raspbe y Pi es á susc i a a es a
median e el CloudSusc ibe is o en el apa ado 4.2.2 CloudSusc ibe , es a ecibi á la in o mación de
con ol y se encende án/apaga án los LEDs al y como se mues a en las igu as: Figu a 26: Con ol
enciende LED, Figu a 27: Con ol apaga LED del apa ado 4.4 Ku a Wi es y GPIOD i e : Con ol de
LEDs.
6.3.5.2 Da os y lógica TypeSc ip
Es e compon en e se ha de inido u ilizando la dependencia:
@Componen ({
selec o : 'app- e a io-de ail',
empla eU l: './ e a io-de ail.componen .h ml',
s yleU ls: [ './ e a io-de ail.componen .css' ]
})
Como que emos que la in o mación de u a sea u ilizable po Rou ingComponen , así como pode ob ene
in o mación de la u a pa a hace la pe ición GET necesa ia, necesi amos implemen a el siguien e
cons uc o :
cons uc o (
p i a e ou e: Ac i a edRou e,
p i a e e a ioSe ice: Te a ioSe ice,
) {}
Con es o conseguimos in oduci en la a iable ou e, la URL en la que nos encon amos.
Pa a ob ene la a iable ku aId, que es la cla e de un e a io, sólo enemos que ob ene la de la
a iable ou e:
le ku aId = his. ou e.snapsho .pa amMap.ge ('ku aId');
Pa a ob ene la in o mación del e a io, llamamos al mé odo ge Te a io(ku aId) del apa ado
6.2 Se icio Te a io Se ice, en la que nos de uel e la in o mación y la asignamos de la misma o ma
que en Te a iosComponen , pe o en es e caso, sólo es la in o mación ela i a a un e a io.
Aplicación desa ollada: In e az web Angula
83
Pa a en ia la in o mación de con ol, llamamos al mé odo addTe a io( e a ioEn ) del
apa ado 6.2 Se icio Te a io Se ice.
Pa a que es a pe ición se p oduzca de o ma sa is ac o ia, hemos enido que c ea una in e az
denominada Pos ing. La in e az Pos ing con iene los a ibu os:
expo class Pos ing {
id: numbe ;
name: s ing;
empe a u eDesi ed: s ing;
ku aId: s ing;
humidi yDesi ed: s ing;
con ol: boolean;
}
Es a nos pe mi e in oduci in o mación de con ol en un e a io y de empe a u a/humedad deseada. Es
la que se u iliza pa a mapea la in o mación p oceden e del o mula io. Es o se consigue con el siguien e
código:
add(con ol: boolean, empe a u e: s ing, humidi y: s ing): oid {
his. e a ioEn = {
id : his. e a io.id,
empe a u eDesi ed : empe a u e,
ku aId : his.ku a,
humidi yDesi ed : humidi y,
name: his. e a io.name,
con ol : con ol,
}
}
Siendo el mé odo add el que se in oca cuando se pulsa el bo ón En ia del o mula io.
6.3.6 Componen e Messages
Es e componen e nos pe mi e isualiza in o mación de depu ación en la pan alla. Pa a de ini lo se ha
u ilizado la siguien e dependencia:
@Componen ({
selec o : 'app-messages',
empla eU l: './messages.componen .h ml',
s yleU ls: ['./messages.componen .css']
})
Po lo an o, en el es o de las is as se inclui á <app-messages></app-messages> pa a que
se mues e la in o mación cap u ada en es e. Mues a la in o mación como se puede ap ecia en las
igu as: Figu a 66: Página p incipal y Figu a 68: Vis a Te a ios Componen .
84
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Con la inalidad de acla a el uncionamien o y las posibles in e acciones que es a aplicación Web o ece,
en la Figu a 70: Casos de uso se mues an los dis in os casos de uso que es a aplicación p opo ciona.
Figu a 70: Casos de uso
Además en la Figu a 71: Diag ama de secuencia ob ene e a io, se mues a un diag ama de secuencia
pa a el caso de uso de ob ene el de alle de un e a io.
Figu a 71: Diag ama de secuencia ob ene e a io
Aplicación desa ollada: In e az web Angula
85
Po úl imo, en la Figu a 72: Diag ama de secuencia con ola e a io se mues a un diag ama de
secuencia pa a el caso de uso de con ola e a io.
Figu a 72: Diag ama de secuencia con ola e a io

86
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
7 CONCLUSIONES Y LÍNEAS FUTURAS
omo pun o inal a es e T abajo de Fin de G ado me gus a ía e lexiona sob e los conocimien os
adqui idos, la uncionalidad conseguida pa a es e, así como la capacidad de mejo a que iene.
Desde el pun o de is a del ap endizaje, me gus a ía ema ca los conocimien os adqui idos pa a la
c eación de un se icio basado en el Cloud Compu ing, que nos p opo ciona acilidades como no
p eocupa se po el man enimien o, po el ap o isionamien o de los ecu sos, po la in eg idad de la
in o mación. Además, odo el desa ollo modula con Eclipse Ku a y la Raspbe y Pi me han hecho ene
consciencia de la impo ancia de la modula idad y la eu ilización de código, aspec os cla e hoy en día
pa a el desa ollo.
Desde el pun o de is a de la uncionalidad desa ollada, conside o que se ob iene una buena solución
inicial pa a el p oblema que se plan eaba. Sin emba go, aún iene mucho ma gen de mejo a. Ac ualmen e,
se p opo ciona un sis ema IoT, que pe mi e la moni o ización de la empe a u a y humedad de un e a io
y el con ol de unos LEDs median e una in e az Web.
La in e az Web implemen ada en Angula , es capaz de mos a la in o mación y accede a los dis in os
ecu sos de una o ma sencilla. Po con aposición, la o ma de mos a es a in o mación no es la más
isual ni in ui i a, ya que lo mejo pa a es o se ía hace uso de g á icas y es ilos a la o den del día. Pa a
ello conside o una mejo a sus ancial el inclui una plan illa de es ilos en Boo s ap.
En el apa ado del Cloud Compu ing, se o o ga al sis ema de una segu idad in e na en el p ocesamien o y
ges ión de la in o mación, así como en la comunicación con la Raspbe y Pi. Se han u ilizado di e en es
se icios den o de es e en o no, como son IoT Co e, DynamoDB como Base de Da os, Lambda y API
Ga eway. Sin emba go, la API REST no p opo ciona ningún ipo de segu idad, po lo que cualquie a que
conozca la URL de es a, puede accede a los ecu sos median e los mé odos que p opone. Po lo an o, en
un u u o es a ía a bien inco po a le esa segu idad que le al a.
Finalmen e, la implemen ación en Eclipse Ku a ha sido la que más queb ade os de cabeza me ha dado,
aunque a p io i pa ecía la más sencilla. Es o se debe a que se necesi a ene un conocimien o muy
p o undo de cómo unciona pa a pode empeza a desa olla us p opias aplicaciones. Una ez se
adquie e, la modula idad y la can idad de ecu sos que p opo ciona "lo ponen odo en bandeja". A pesa
de odo, me hubiese gus ado implemen a más uncionalidades en es a, como la in eg ación con mo o es y
elés que se accionen en unción de una empe a u a y humedad deseada.
C
I you ge up in he mo ning and
hink he u u e is going o be be e , i
is a b igh day. O he wise, i ´s no .
- Elon Musk-
Anexo A: Ins alación de Senso es DHT11 y Leds en Raspbe y Pi
87
ANEXO A: INSTALACIÓN DE SENSORES DHT11
Y LEDS EN RASPBERRY PI
En es e anexo se explica paso a paso cómo conec a los senso es de humedad y empe a u a DHT11 a los
pines GPIO de la Raspbe y Pi, pa a que se pueda ob ene la in o mación de es os. Además, se mues a el
conexionado de los LEDs u ilizados.
Pa a el conexionado del senso DHT11, se ha u ilizado la siguien e e e encia [2]. Inicialmen e, hay que
iden i ica qué ipo de senso DHT11 enemos. Los hay de 3 pines y de 4 pines. La di e encia en e es os
adica en que el de 3 pines no necesi a una esis encia pa a conec a lo con los pines GPIO de la Raspbe y
Pi, ya que la ae inco po ada. En el caso de que engamos uno de 4 pines, necesi a emos adicionalmen e
una esis encia de en e 4,7K y 10 K Ohmios que coloca emos en e el pin 1 y el in 2 [2]. En nues o caso,
el senso es de 3 pines, po lo que no la necesi a emos.
Figu a 73: Senso DHT11
Pa a hace e e encia a los pines del senso mos ados en la Figu a 73: Senso DHT11, de izquie da a
de echa nos e e i emos como:
• Pin 1: Posi i o.
• Pin 2: Da os.
• Pin 3: Nega i o.
Pa a e e i nos a los pines GPIO de la Raspbe y Pi los nume a emos como se indica en la Figu a 74:
Pines GPIO.
Figu a 74: Pines GPIO
88
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Po lo an o, el conexionado del Pin 1 debe ía hace se con un pin de ol aje posi i o, po ejemplo, el Pin 1
(3.3V) de la Raspbe y Pi.
El conexionado del Pin 3 debe á hace se con un pin de ie a, en es e caso el Pin 39 (GND) de la
Raspbe y Pi.
Pa a la ansmisión de da os, debemos conec a el Pin 2 con alguno de los pines denominados como
GPIO XX, que son los que pe mi en el in e cambio de da os. En nues o caso, lo ha emos con el Pin 38
(GPIO 20).
Con odo es o, si ejecu amos el p og ama que nos pe mi e lee la in o mación de los senso es DHT11
(Ada ui DHT.py) nos mos a á la siguien e salida:
Pa a el conexionado de los LEDs, se han conec ado di ec amen e al PIN GPIO del que an a ob ene
in o mación en el polo posi i o de es e. El polo nega i o se ha conec ado a una esis encia de 1K Ohmios
y pos e io men e a un pin de ie a (GND). El conexionado an o de los senso es como del LED se
mues a en la Figu a 75: Conexionado Raspbe y Pi.
Figu a 75: Conexionado Raspbe y Pi
ANEXO B: INSTALACIÓN Y CONFIGURACIÓN DE
ECLIPSE KURA EN RASPBERRY PI
En es e anexo se explica paso a paso cómo ins ala y con igu a Eclipse Ku a 4.1.0 en una Raspbe y Pi 3,
así como los pa áme os necesa ios pa a su con igu ación.
7.1 Ins alación de Eclipse Ku a 4.1.0 en una Raspbe y Pi 3 con Raspbian Bus e
Se ins ala á Eclipse Ku a en una Raspbe y Pi 3 con la imagen Raspbian Bus e , e sión Julio de 2019
[36] pa a con e i es e disposi i o en una pasa ela IoT. Pa a ello se han seguido los pasos indicados en la
documen ación de Eclipse Ku a. [37]
Desde una e minal en la Raspbe y Pi ejecu amos los siguien es comandos:
1. Desins alamos paque es que son incompa ibles con Eclipse Ku a.
$ sudo ap -ge pu ge dhcpcd5
2. Ins alamos la he amien a gdebi, necesa ia pa a el uncionamien o.
$ sudo ap -ge upda e
$ sudo ap -ge ins all gdebi-co e
3. Ins alamos Ja a 8 en caso de no ene lo ins alado.
$ sudo ap -ge ins all openjdk-8-j e-headless
4. Desca gamos el paque e de Eclipse Ku a y lo ins alamos usando la he amien a gdebi
$ wge h p://download.eclipse.o g/ku a/ eleases/< e sion>/ku a_4
.1.0_ aspbe y-pi-2-3_ins alle .deb
$ sudo gdebi ku a_4.1.0_ aspbe y-pi-2-3_ins alle .deb
T as ejecu a es os comandos end íamos ins alado Eclipse Ku a en nues a Raspbe y Pi. A con inuación,
se puede einicia y accede a la in e az Web de Ku a haciendo uso de un na egado Web, haciendo uso
de una de las di ecciones IP que enga asignada, o en nues o caso, la local. Se debe mos a el con enido
de la Figu a 76: In e az inicio sesión de Eclipse Ku a.
h ps://localhos
96
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
ANEXO C: CREACIÓN DE USUARIOS Y
CONFIGURACIÓN DE SERVICIOS EN AWS
En es e anexo se explica paso a paso cómo c ea un usua io y c ea y con igu a los dis in os se icios
u ilizados en Amazon AWS. Pa a el desa ollo de es e T abajo de Fin de G ado, odos los se icios
u ilizados han sido g a ui os, ya que no se ha excedido el lími e de ecu sos g a ui os que la pla a o ma
p opo ciona.
7.3 C eación de usua io AWS
Pa a c ea nos un usua io en la pla a o ma de Amazon AWS, enemos que di igi nos a la siguien e URL:
h ps://aws.amazon.com/ ee. Una ez en es a, podemos e odos los p oduc os que AWS o e a en su
pla a o ma de Cloud Compu ing. Pa a c ea una cuen a, debemos hace click en el bo ón na anja de la
esquina supe io de echa (C ea una cuen a de AWS).
Figu a 83: Fo mula io AWS
Se debe á ellena el o mula io que apa ece en la Figu a 83: Fo mula io AWS con la in o mación
pe sonal del usua io a c ea . Se debe á ellena oda la in o mación que se solici e en cada paso. Pide una
a je a de c édi o pa a e i ica la iden idad, pe o no se ha á ningún ca go a es a. Una ez hayamos
comple ado el egis o, end emos nues a sesión c eada. Se nos mos a á nues o panel p incipal, como
podemos e en la Figu a 84: Panel p incipal AWS.

Anexo C: C eación de usua ios y con igu ación de se icios en AWS
97
Figu a 84: Panel p incipal AWS
7.4 IoT Co e
En es e apa ado se indican los pasos necesa ios pa a c ea un Obje o en el IoT Co e de AWS. Es e obje o
se á el u ilizado en el en o no de Cloud Compu ing de AWS pa a ep esen a un disposi i o IoT, en es e
caso, la Raspbe y Pi con Eclipse Ku a.
Pa a empeza a u iliza IoT Co e, debemos hace click en el elemen o Se icios que apa ece en la Figu a
84: Panel p incipal AWS. Ahí in oduci emos en el buscado IoT Co e. Se nos debe mos a lo que
apa ece en la Figu a 85: IoT Co e.
98
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 85: IoT Co e
Una ez en es e, debemos c ea un Obje o. Pa a ello debemos i a Adminis ación -> Obje os -> C ea .
Debemos elegi la opción c ea un solo Obje o. Hab á que ellena cada uno de los campos que se
solici an en la Figu a 86: C eación Obje o.
Figu a 86: C eación Obje o
Anexo C: C eación de usua ios y con igu ación de se icios en AWS
99
En es e caso, le asigna emos el nomb e ku a-ga eway. Es e obje o ep esen a á la Raspbe y Pi, ya que
es un Ga eway IoT, haciendo uso de Eclipse Ku a. No le aplica emos ningún ipo. No es necesa io
asigna le aho a un g upo al que pe enece . A con inuación, debemos da le a Siguien e.
Pa a que es e Obje o adquie a una Iden idad, que nos pe mi a que se conec en a es e disposi i o IoT de
o ma segu a, debemos asigna le unos ce i icados. La o ma más ácil es hace lo a a és de la opción
que p opo ciona Amazon AWS. Pa a ello debemos hace click en C ea ce i icado en un click.
Debemos de desca ga nos y ac i a los ce i icados que apa ecen en la Figu a 28: Ce i icado asociado a
un obje o.
Es os son los que u iliza emos en el Anexo B: Ins alación y con igu ación de Eclipse Ku a en Raspbe y
Pi, apa ado 7.2.2 y en el apa ado 5.1.1 In e acción con el Obje o: Thing Shadow.
Figu a 28: Ce i icado asociado a un obje o
Po úl imo, debemos asocia le unas polí icas al obje o. Las polí icas asociadas son las que se mues an en
la Figu a 29: Polí ica asociada a un ce i icado. Es as son las polí icas po de ec o que se incluyen en la
documen ación de AWS [30].
Con odo es o, ya end íamos nues o Obje o ku a-ga eway con igu ado y con las di ecciones que se
mues an en la Figu a 31: Se icio De ice Shadow, pa a que se pueda in e ac ua con es os. La di ección
que apa ece en el apa ado HTTPS coincide con la di ección de pun o de enlace pe sonalizado.
100
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 31: Se icio De ice Shadow
7.5 DynamoDB
En es e apa ado se indica cómo c ea una base de da os NoSQL en AWS. U iliza emos la Base de Da os
g a ui a que se p opo ciona en es e en o no. En ella almacena emos la in o mación ela i a a un e a io.
Pa a empeza a u iliza DynamoDB debemos hace click en el elemen o Se icios que apa ece en la
Figu a 84: Panel p incipal AWS. Ahí in oduci emos en el buscado DynamoDB. Se nos debe mos a lo
que apa ece en la Figu a 87: Panel de con ol DynamoDB.
Anexo C: C eación de usua ios y con igu ación de se icios en AWS
101
Figu a 87: Panel de con ol DynamoDB
El p ime paso es c ea una abla. Pa a ello hacemos click en el bo ón que indica C ea abla. Debemos
ellena los campos al y como se mues an en la Figu a 88: Pa áme os abla e a io. Con es os
pa áme os, la abla se co esponde á con la indicada en el apa ado 5.2 Dynamo DB.
Figu a 88: Pa áme os abla e a io
Una ez c eada, nos debe apa ece la in o mación de es a al y como se mues a en la Figu a 34:
In o mación Base de Da os e a io. Como podemos ap ecia , se nos p opo ciona un Nomb e de ecu so
de Amazon (ARN). Es e es el que u iliza emos pa a e e i nos a es a abla, desde cualquie pun o del
en o no de Amazon AWS (asocia polí icas o accede desde las unciones Lambda).

102
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
Figu a 34: In o mación Base de Da os e a io
7.6 Funciones Lambda
En es e apa ado se indica cómo c ea una unción Lambda en AWS. Escoge emos como lenguaje de
p og amación Node.js. Además, se e á como asigna le los pe misos necesa ios pa a que pueda accede a
los ecu sos que necesi e (IoT Co e o DynamoDB).
Pa a empeza a u iliza Lambda debemos hace click en el elemen o Se icios que apa ece en la Figu a
84: Panel p incipal AWS. Ahí in oduci emos en el buscado Lambda. Se nos debe mos a lo que apa ece
en la Figu a 89: Panel de con ol Lambda.
Figu a 89: Panel de con ol Lambda
Pa a c ea una unción debemos hace click en el bo ón C ea una unción. Debemos ellena los
campos con la in o mación que se mues a en la Figu a 90: C ea unción. En el campo de Rol, pa a la
Anexo C: C eación de usua ios y con igu ación de se icios en AWS
103
p ime a unción se debe á c ea uno nue o. Pa a el es o de las unciones se puede u iliza el mismo si se
quie en compa i los pe misos que se le asignen a ese Rol.
Figu a 90: C ea unción
Una ez se haya c eado la unción, debe á apa ece nos un panel como se mues a en la Figu a 91: Panel
de con ol de una unción Lambda. Lo p ime o que debemos hace es asigna le los desencadenado es que
pueda ene la unción (API Ga eway, AWS IoT o DynamoDB). Ahí le asigna emos la egla o la pe ición
que la in oque.
Figu a 91: Panel de con ol de una unción Lambda
Pos e io men e, en el edi o de ex o que p opo ciona, implemen a emos lo que que emos que la unción
haga en cada caso. Pa a que odo uncione co ec amen e, al Rol de la unción enemos que da le
104
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
pe misos pa a que acceda a los ecu sos a los que se necesi e accede en cada caso. Es o se hace al y
como se indica en el u o ial de Amazon AWS pa a c ea una unción Lambda [40]. Pa a ello, enemos
que i al apa ado que se mues a en la Figu a 92: Rol de ejecución Lambda. Haciendo click en Consul e
el ol (nomb e_ ol), nos een ia á al se icio que nos pe mi e ges iona lo, que es AWS IAM.
Figu a 92: Rol de ejecución Lambda
Figu a 93: Resumen Rol
En es e se nos mos a á un panel como el que se mues a en la
Figu a 93: Resumen Rol. Como podemos ap ecia , iene 3 polí icas inse adas.
Anexo C: C eación de usua ios y con igu ación de se icios en AWS
105
• AWSLambdaBasicExecu ionRole-bd0cb128-5510-4521-b 85-b 76b8773022: Es la que se le
asocia au omá icamen e al c ea el ol con la unción Lambda. Es a le asocia los pe misos
necesa ios pa a que pueda ejecu a la unción cuando ecibe un e en o desencadenado .
• ullDynamoDB: Polí ica c eada pa a que es e ol enga an o acceso de esc i u a como de lec u a
a la Base de Da os e a io. El con enido de es a polí ica es el que se puede e en la Figu a 94:
Polí ica ullDynamoDB.
Figu a 94: Polí ica ullDynamoDB
• io ullaccess: Polí ica c eada pa a que es e ol enga pe misos pa a publica /susc ibi se a un opic
IoT del IoT Co e. El con enido de es a polí ica es el que se mues a en la Figu a 95: Polí ica
io ullaccess.
Figu a 95: Polí ica io ullaccess
Con es as polí icas, las unciones Lambda que engan asociado es e Rol pa a sus ejecuciones, pod án
ene odos los pe misos necesa ios pa a accede a los ecu sos que se necesi an pa a es e p oyec o.
112
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula
REFERENCIAS
[1] «Raspbe y Pi 3B+ Specs and Benchma ks - The MagPi MagazineThe MagPi Magazine». [En
línea]. Disponible en: h ps://www. aspbe ypi.o g/magpi/ aspbe y-pi-3bplus-specs-benchma ks/.
[2] «DHT11 Tempe a u e and Humidi y Senso and he Raspbe y Pi - Raspbe y Pi Spy». [En línea].
Disponible en: h ps://www. aspbe ypi-spy.co.uk/2017/09/dh 11- empe a u e-and-humidi y-
senso - aspbe y-pi/#p e yPho o.
[3] «Ge ing S a ed». [En línea]. Disponible en: h ps://eclipse.gi hub.io/ku a/de /ku a-se up.h ml.
[4] «Eclipse Ku a | The Eclipse Founda ion». [En línea]. Disponible en:
h ps://www.eclipse.o g/ku a/.
[5] «Ga eways | IoT de elopmen made simple - io .eclipse.o g». [En línea]. Disponible en:
h ps://io .eclipse.o g/ga eways/.
[6] «Ga eways IoT | Ap endiendo A duino». [En línea]. Disponible en:
h ps://ap endiendoa duino.wo dp ess.com/2018/11/21/ga eways-io /.
[7] «Wha is OSGi? – OSGiTM Alliance». [En línea]. Disponible en:
h ps://www.osgi.o g/de elope /wha -is-osgi/.
[8] «Wha is OSGi (Open Se ice Ga eway Ini ia i e)? - De ini ion om Wha Is.com». [En línea].
Disponible en: h ps://sea chne wo king. ech a ge .com/de ini ion/OSGi.
[9] «Bene i s o Using OSGi – OSGiTM Alliance». [En línea]. Disponible en:
h ps://www.osgi.o g/de elope /bene i s-o -using-osgi/.
[10] «A chi ec u e – OSGiTM Alliance». [En línea]. Disponible en:
h ps://www.osgi.o g/de elope /a chi ec u e/.
[11] «Amazon Web Se ices (AWS) : ¿qué es y qué o ece?» [En línea]. Disponible en:
h ps://www. icpo al.es/ emas/cloud-compu ing/amazon-web-se ices.
[12] J. M. L. Sille o, «Amazon Web Se ices». [En línea]. Disponible en:
h ps://www2.deloi e.com/es/es/pages/ echnology/a icles/in oduccion-a-amazon-web-
se ices.h ml.
[13] «Wha is AWS IoT (Amazon Web Se ices in e ne o hings)? - De ini ion om Wha Is.com».
[En línea]. Disponible en: h ps://sea chaws. ech a ge .com/de ini ion/AWS-IoT-Amazon-Web-
Se ices-in e ne -o - hings.
[14] «¿Qué es AWS IoT? - AWS IoT». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/io /la es /de elope guide/wha -is-aws-io .h ml.
[15] «¿Qué es Amazon DynamoDB? - Amazon DynamoDB». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/amazondynamodb/la es /de elope guide/In oduc ion.h ml.
[16] «Ci ado en eposo de DynamoDB - Amazon DynamoDB». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/amazondynamodb/la es /de elope guide/Enc yp ionA Res .h
ml.
[17] «Wha is Se e less? | Se e less S ack». [En línea]. Disponible en: h ps://se e less-
s ack.com/chap e s/wha -is-se e less.h ml.
[18] «¿Qué es AWS Lambda? - AWS Lambda». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/lambda/la es /dg/welcome.h ml.
[19] «Tiempos de ejecución de AWS Lambda. - AWS Lambda». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/lambda/la es /dg/lambda- un imes.h ml.
[20] «▷ ¿Qué es una API REST? | Guía 【2019】 - Iden o». [En línea]. Disponible en:
h ps://www.iden o.es/blog/desa ollo-web/que-es-una-api- es /.
[21] «¿Qué es REST? Conoce su po encia | OpenWebina s». [En línea]. Disponible en:
h ps://openwebina s.ne /blog/que-es- es -conoce-su-po encia/.
[22] «TypeSc ip - Wikipedia, la enciclopedia lib e». [En línea]. Disponible en:
h ps://es.wikipedia.o g/wiki/TypeSc ip .
[23] «Qué es Angula | OpenWebina s». [En línea]. Disponible en: h ps://openwebina s.ne /blog/que-
es-angula /.

Re e encias
113
[24] «O e iew». [En línea]. Disponible en: h ps://eclipse.gi hub.io/ku a/cloud-api/1-o e iew.h ml.
[25] «Use guide». [En línea]. Disponible en: h ps://eclipse.gi hub.io/ku a/cloud-api/2-use -
guide.h ml.
[26] Raspbe y Pi Founda ion, «Deploying Bundles». [En línea]. Disponible en:
h ps://eclipse.gi hub.io/ku a/de /deploying-bundles.h ml.
[27] «Con igu able Applica ion». [En línea]. Disponible en:
h ps://eclipse.gi hub.io/ku a/de /con igu able_componen .h ml.
[28] «Publishing Applica ion». [En línea]. Disponible en:
h ps://eclipse.gi hub.io/ku a/de /hea e _demo.h ml.
[29] «GPIO d i e in Ku a Wi es». [En línea]. Disponible en: h ps://eclipse.gi hub.io/ku a/wi es/ku a-
wi es-gpio.h ml.
[30] «Polí icas de AWS IoT - AWS IoT». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/io /la es /de elope guide/io -policies.h ml.
[31] «API REST ul de somb a de disposi i o - AWS IoT». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/io /la es /de elope guide/de ice-shadow- es -api.h ml.
[32] «Temas - AWS IoT». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/io /la es /de elope guide/ opics.h ml.
[33] «¿Qué es AWS Lambda? | Se e less S ack». [En línea]. Disponible en: h ps://se e less-
s ack.com/chap e s/es/wha -is-aws-lambda.h ml.
[34] «API REST ul de somb a de disposi i o - AWS IoT». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/io /la es /de elope guide/de ice-shadow- es -api.h ml.
[35] «Implemen ing a Se e less AWS IoT Backend wi h AWS Lambda and Amazon DynamoDB |
AWS Compu e Blog». [En línea]. Disponible en:
h ps://aws.amazon.com/es/blogs/compu e/implemen ing-a-se e less-aws-io -backend-wi h-aws-
lambda-and-amazon-dynamodb/.
[36] Raspbe y Pi Founda ion, «Ins alling ope a ing sys em images - Raspbe y Pi Documen a ion»,
2008. [En línea]. Disponible en:
h ps://www. aspbe ypi.o g/documen a ion/ins alla ion/ins alling-images/.
[37] Raspbe y Pi Founda ion, «Raspbe y Pi- Quick s a », 2012. [En línea]. Disponible en:
h ps://eclipse.gi hub.io/ku a/in o/ aspbe y-pi-quick-s a .h ml.
[38] Raspbe y Pi Founda ion, «Ne wo k Con igu a ion». [En línea]. Disponible en:
h ps://eclipse.gi hub.io/ku a/con ig/ne wo k-con igu a ion.h ml.
[39] «Amazon AWS IoTTM pla o m». [En línea]. Disponible en: h ps://eclipse.gi hub.io/ku a/cloud-
s acks/ku a-aws-cloud.h ml.
[40] «Uso de polí icas basadas en ecu sos pa a AWS Lambda - AWS Lambda». [En línea]. Disponible
en: h ps://docs.aws.amazon.com/es_es/lambda/la es /dg/access-con ol- esou ce-based.h ml.
[41] «TUTORIAL: Desa olla una API con in eg ación HTTP que no sea de p oxy - Amazon API
Ga eway». [En línea]. Disponible en:
h ps://docs.aws.amazon.com/es_es/apiga eway/la es /de elope guide/api-ga eway-c ea e-api-s ep-
by-s ep.h ml.
[42] «Angula - A chi ec u e o e iew». [En línea]. Disponible en:
h ps://angula .io/guide/a chi ec u e.
114
Sis ema IoT pa a el con ol y moni o ización de un e a io con Eclipse Ku a, Amazon AWS y Angula