–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